├── .gitignore ├── README.md ├── examples ├── active-links │ ├── Home.vue │ ├── About.vue │ ├── User.vue │ ├── Users.vue │ ├── index.js │ └── App.vue ├── auth-flow │ ├── components │ │ ├── About.vue │ │ ├── Dashboard.vue │ │ ├── App.vue │ │ └── Login.vue │ ├── index.js │ └── auth.js ├── lazy-loading │ ├── Baz.vue │ ├── Foo.vue │ ├── Bar.vue │ └── index.js ├── sfc │ ├── pages │ │ ├── About.vue │ │ ├── Home.vue │ │ ├── topics │ │ │ └── Topic.vue │ │ └── Topics.vue │ ├── App.vue │ └── index.js ├── route-props │ ├── Hello.vue │ └── index.js ├── data-fetching │ ├── api.js │ ├── index.js │ └── Post.vue ├── named-routes │ └── index.js ├── named-views │ └── index.js ├── basic │ └── index.js ├── nested-router │ └── index.js ├── transitions │ └── index.js ├── route-matching │ └── index.js ├── scroll-behavior │ └── index.js ├── route-alias │ └── index.js ├── index.js ├── simple │ └── index.js ├── nested-routes │ └── index.js ├── redirect │ └── index.js └── navigation-guards │ └── index.js ├── src ├── Browser │ ├── index.js │ ├── LoadingPage.vue │ ├── history.js │ ├── Window.vue │ └── AddressBar.vue ├── app.js ├── App.vue └── Example.vue ├── .babelrc ├── vue.config.js ├── package.json ├── generate.js ├── shrinkwrap.yaml └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /dist -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-router-trials 2 | 3 | ``` 4 | # To run: 5 | yarn start 6 | ```` 7 | -------------------------------------------------------------------------------- /examples/active-links/Home.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/Browser/index.js: -------------------------------------------------------------------------------- 1 | import Browser from './Window.vue' 2 | 3 | export default Browser 4 | -------------------------------------------------------------------------------- /examples/active-links/About.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /examples/active-links/User.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /examples/auth-flow/components/About.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "vue-app" 4 | ], 5 | "plugins": [ 6 | "transform-flow-strip-types" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /examples/active-links/Users.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /examples/auth-flow/components/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /examples/lazy-loading/Baz.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /src/Browser/LoadingPage.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /examples/sfc/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /examples/sfc/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /examples/lazy-loading/Foo.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /examples/route-props/Hello.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /examples/sfc/pages/topics/Topic.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 17 | -------------------------------------------------------------------------------- /examples/lazy-loading/Bar.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /src/Browser/history.js: -------------------------------------------------------------------------------- 1 | import { AbstractHistory } from 'vue-router/src/history/abstract' 2 | 3 | export class MemoryHistory extends AbstractHistory { 4 | constructor(context, router, base) { 5 | super(router, base) 6 | this.context = context 7 | } 8 | 9 | transitionTo(route, onComplete, onAbort) { 10 | super.transitionTo(route, () => { 11 | this.context.onComplete(this) 12 | onComplete && onComplete() 13 | }, () => { 14 | this.context.onAbort(this) 15 | onAbort && onAbort() 16 | }) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | 3 | module.exports = { 4 | webpack(config) { 5 | config.module.rules.push({ 6 | test: /\.js$/, 7 | use: 'babel-loader', 8 | include: [/node_modules\/vue-router/] 9 | }) 10 | config.devtool = 'source-map' 11 | config.resolve = config.resolve || {} 12 | config.resolve.alias = config.resolve.alias || {} 13 | config.resolve.alias['vue$'] = 'vue/dist/vue.esm.js' 14 | 15 | return config 16 | }, 17 | setup (app) { 18 | app.use('/examples', express.static('examples')) 19 | } 20 | } -------------------------------------------------------------------------------- /examples/sfc/App.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 29 | -------------------------------------------------------------------------------- /examples/active-links/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | import Home from './Home.vue' 7 | import About from './About.vue' 8 | import Users from './Users.vue' 9 | import User from './User.vue' 10 | import App from './App.vue' 11 | 12 | const router = new VueRouter({ 13 | mode: 'history', 14 | routes: [ 15 | { path: '/', component: Home }, 16 | { path: '/about', component: About }, 17 | { path: '/users', component: Users, 18 | children: [ 19 | { path: ':username', name: 'user', component: User } 20 | ] 21 | } 22 | ] 23 | }) 24 | 25 | export default { 26 | router, 27 | render: (h) => h(App) 28 | } 29 | 30 | -------------------------------------------------------------------------------- /examples/sfc/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import HomePage from './pages/Home.vue' 4 | import AboutPage from './pages/About.vue' 5 | import TopicsPage from './pages/Topics.vue' 6 | import TopicPage from './pages/topics/Topic.vue' 7 | import App from './App.vue' 8 | 9 | Vue.use(VueRouter) 10 | 11 | 12 | const router = new VueRouter({ 13 | routes: [ 14 | { path: '/', component: HomePage }, 15 | { path: '/about', component: AboutPage }, 16 | { path: '/topics', component: TopicsPage, children: [ 17 | { name: 'topic', path: ':id', component: TopicPage, props: true } 18 | ] } 19 | ] 20 | }) 21 | 22 | export default { 23 | router, 24 | render: (h) => h(App) 25 | } 26 | -------------------------------------------------------------------------------- /examples/data-fetching/api.js: -------------------------------------------------------------------------------- 1 | const posts = { 2 | '1': { 3 | id: 1, 4 | title: 'sunt aut facere', 5 | body: 'quia et suscipit suscipit recusandae consequuntur expedita et cum reprehenderit molestiae ut ut quas totam nostrum rerum est autem sunt rem eveniet architecto' 6 | }, 7 | '2': { 8 | id: 2, 9 | title: 'qui est esse', 10 | body: 'est rerum tempore vitae sequi sint nihil reprehenderit dolor beatae ea dolores neque fugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis qui aperiam non debitis possimus qui neque nisi nulla' 11 | } 12 | } 13 | 14 | export function getPost (id, cb) { 15 | // fake an API request 16 | setTimeout(() => { 17 | if (posts[id]) { 18 | cb(null, posts[id]) 19 | } else { 20 | cb(new Error('Post not found.')) 21 | } 22 | }, 100) 23 | } 24 | -------------------------------------------------------------------------------- /examples/data-fetching/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import Post from './Post.vue' 4 | 5 | Vue.use(VueRouter) 6 | 7 | const Home = { template: '
home
' } 8 | 9 | const router = new VueRouter({ 10 | mode: 'history', 11 | routes: [ 12 | { path: '/', component: Home }, 13 | { path: '/post/:id', component: Post } 14 | ] 15 | }) 16 | 17 | export default { 18 | router, 19 | template: ` 20 |
21 |

Data Fetching

22 | 28 | 29 |
30 | ` 31 | } 32 | -------------------------------------------------------------------------------- /examples/sfc/pages/Topics.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 31 | -------------------------------------------------------------------------------- /src/app.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Example from './Example.vue' 4 | import examples from '../examples' 5 | import App from './App.vue' 6 | 7 | Vue.config.devtools = true 8 | 9 | Vue.use(Router) 10 | 11 | new Vue({ 12 | router: new Router({ 13 | routes: [ 14 | { 15 | name: 'example', 16 | path: '/examples/:example', 17 | component: Example, 18 | props: (route) => examples.find(example => example.name === route.params.example), 19 | beforeEnter (to, from, next) { 20 | examples.find(example => example.name === to.params.example) ? next() : next(false) 21 | } 22 | }, 23 | { 24 | path: '*', 25 | component: { 26 | render (h) { return h('div', '404. Not Found.') } 27 | } 28 | } 29 | ] 30 | }), 31 | 32 | ...App 33 | }).$mount('#app') 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-router-trials", 3 | "version": "0.1.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "dependencies": { 7 | "babel-plugin-transform-flow-strip-types": "^6.22.0", 8 | "bulma": "^0.5.2", 9 | "express": "^4.15.3", 10 | "glob": "^7.1.2", 11 | "prism-themes": "^1.0.0", 12 | "prismjs": "^1.6.0", 13 | "vue": "^2.3.4", 14 | "vue-router": "^2.7.0" 15 | }, 16 | "devDependencies": { 17 | "babel-preset-vue-app": "^1.2.0", 18 | "node-sass": "^4.5.3", 19 | "prettier": "^1.5.2", 20 | "sass-loader": "^6.0.6" 21 | }, 22 | "scripts": { 23 | "start": "vue build --config vue.config.js -o src/app.js", 24 | "build:examples": "node generate.js", 25 | "build:app": "vue build --config vue.config.js --prod src/app.js", 26 | "build:copy": "cp -r examples dist", 27 | "build": "npm run build:examples && npm run build:app && npm run build:copy", 28 | "deploy": "surge -p dist -d vue-router-demos.surge.sh" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/auth-flow/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | import auth from './auth' 7 | import App from './components/App.vue' 8 | import About from './components/About.vue' 9 | import Dashboard from './components/Dashboard.vue' 10 | import Login from './components/Login.vue' 11 | 12 | function requireAuth (to, from, next) { 13 | if (!auth.loggedIn()) { 14 | next({ 15 | path: '/login', 16 | query: { redirect: to.fullPath } 17 | }) 18 | } else { 19 | next() 20 | } 21 | } 22 | 23 | const router = new VueRouter({ 24 | mode: 'history', 25 | routes: [ 26 | { path: '/about', component: About }, 27 | { path: '/dashboard', component: Dashboard, beforeEnter: requireAuth }, 28 | { path: '/login', component: Login }, 29 | { path: '/logout', 30 | beforeEnter (to, from, next) { 31 | auth.logout() 32 | next('/') 33 | } 34 | } 35 | ] 36 | }) 37 | 38 | export default { 39 | router, 40 | render: h => h(App) 41 | } 42 | -------------------------------------------------------------------------------- /examples/auth-flow/components/App.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 42 | -------------------------------------------------------------------------------- /examples/named-routes/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Home = { template: '
This is Home
' } 7 | const Foo = { template: '
This is Foo
' } 8 | const Bar = { template: '
This is Bar {{ $route.params.id }}
' } 9 | 10 | const router = new VueRouter({ 11 | mode: 'history', 12 | base: __dirname, 13 | routes: [ 14 | { path: '/', name: 'home', component: Home }, 15 | { path: '/foo', name: 'foo', component: Foo }, 16 | { path: '/bar/:id', name: 'bar', component: Bar } 17 | ] 18 | }) 19 | 20 | export default { 21 | router, 22 | template: ` 23 |
24 |

Named Routes

25 |

Current route name: {{ $route.name }}

26 | 31 | 32 |
33 | ` 34 | } 35 | -------------------------------------------------------------------------------- /examples/auth-flow/components/Login.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 40 | 41 | 46 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 29 | 30 | 39 | 40 | 56 | -------------------------------------------------------------------------------- /generate.js: -------------------------------------------------------------------------------- 1 | #!/bin/bash node 2 | const glob = require('glob') 3 | const path = require('path') 4 | const fs = require('fs') 5 | const prettier = require("prettier"); 6 | 7 | Promise.resolve(glob.sync(`${__dirname}/examples/*`)) 8 | .then( 9 | files => files.filter(dir => fs.lstatSync(dir).isDirectory()) 10 | ) 11 | .then( 12 | dirs => dirs.map(dir => ({path: dir, name: dir.replace(`${__dirname}/examples/`, '')})) 13 | ) 14 | .then( 15 | dirs => dirs.map(dir => ( 16 | `{ 17 | name: ${JSON.stringify(dir.name)}, 18 | files: ${JSON.stringify( 19 | glob.sync(`${dir.path}/**/*`) 20 | .filter(filename => /\.(vue|js|jsx)$/.test(filename)) 21 | .map(filename => filename.replace(`${dir.path}/`, '')), 22 | null, 2)}, 23 | bundle: () => import('./${dir.name}') 24 | }`)) 25 | ) 26 | .then( 27 | examples => fs.writeFile( 28 | path.join(__dirname, 'examples/index.js'), 29 | prettier.format('// NOTE: THIS IS AN AUTOGENERATED FILE.\nexport default [\n' + examples.join(',\n') + '\n]\n', {semi: false}), 30 | (error) => { 31 | if (error) console.log(error) 32 | }) 33 | ) -------------------------------------------------------------------------------- /examples/auth-flow/auth.js: -------------------------------------------------------------------------------- 1 | /* globals localStorage */ 2 | 3 | export default { 4 | login (email, pass, cb) { 5 | cb = arguments[arguments.length - 1] 6 | if (localStorage.token) { 7 | if (cb) cb(true) 8 | this.onChange(true) 9 | return 10 | } 11 | pretendRequest(email, pass, (res) => { 12 | if (res.authenticated) { 13 | localStorage.token = res.token 14 | if (cb) cb(true) 15 | this.onChange(true) 16 | } else { 17 | if (cb) cb(false) 18 | this.onChange(false) 19 | } 20 | }) 21 | }, 22 | 23 | getToken () { 24 | return localStorage.token 25 | }, 26 | 27 | logout (cb) { 28 | delete localStorage.token 29 | if (cb) cb() 30 | this.onChange(false) 31 | }, 32 | 33 | loggedIn () { 34 | return !!localStorage.token 35 | }, 36 | 37 | onChange () {} 38 | } 39 | 40 | function pretendRequest (email, pass, cb) { 41 | setTimeout(() => { 42 | if (email === 'joe@example.com' && pass === 'password1') { 43 | cb({ 44 | authenticated: true, 45 | token: Math.random().toString(36).substring(7) 46 | }) 47 | } else { 48 | cb({ authenticated: false }) 49 | } 50 | }, 0) 51 | } 52 | -------------------------------------------------------------------------------- /examples/named-views/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Foo = { template: '
foo
' } 7 | const Bar = { template: '
bar
' } 8 | const Baz = { template: '
baz
' } 9 | 10 | const router = new VueRouter({ 11 | mode: 'history', 12 | base: __dirname, 13 | routes: [ 14 | { path: '/', 15 | // a single route can define multiple named components 16 | // which will be rendered into s with corresponding names. 17 | components: { 18 | default: Foo, 19 | a: Bar, 20 | b: Baz 21 | } 22 | }, 23 | { 24 | path: '/other', 25 | components: { 26 | default: Baz, 27 | a: Bar, 28 | b: Foo 29 | } 30 | } 31 | ] 32 | }) 33 | 34 | export default { 35 | router, 36 | template: ` 37 |
38 |

Named Views

39 | 43 | 44 | 45 | 46 |
47 | ` 48 | } 49 | -------------------------------------------------------------------------------- /examples/route-props/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import Hello from './Hello.vue' 4 | 5 | Vue.use(VueRouter) 6 | 7 | function dynamicPropsFn (route) { 8 | const now = new Date() 9 | return { 10 | name: (now.getFullYear() + parseInt(route.params.years)) + '!' 11 | } 12 | } 13 | 14 | const router = new VueRouter({ 15 | mode: 'history', 16 | base: __dirname, 17 | routes: [ 18 | { path: '/', component: Hello }, // No props, no nothing 19 | { path: '/hello/:name', component: Hello, props: true }, // Pass route.params to props 20 | { path: '/static', component: Hello, props: { name: 'world' }}, // static values 21 | { path: '/dynamic/:years', component: Hello, props: dynamicPropsFn } // custom logic for mapping between route and props 22 | ] 23 | }) 24 | 25 | export default { 26 | router, 27 | template: ` 28 |
29 |

Route props

30 | 36 | 37 |
38 | ` 39 | } 40 | -------------------------------------------------------------------------------- /examples/basic/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | // 1. Use plugin. 5 | // This installs and , 6 | // and injects $router and $route to all router-enabled child components 7 | Vue.use(VueRouter) 8 | 9 | // 2. Define route components 10 | const Home = { template: '
home
' } 11 | const Foo = { template: '
foo
' } 12 | const Bar = { template: '
bar
' } 13 | 14 | // 3. Create the router 15 | const router = new VueRouter({ 16 | mode: 'history', 17 | base: __dirname, 18 | routes: [ 19 | { path: '/', component: Home }, 20 | { path: '/foo', component: Foo }, 21 | { path: '/bar', component: Bar } 22 | ] 23 | }) 24 | 25 | // 4. Create and mount root instance. 26 | // Make sure to inject the router. 27 | // Route components will be rendered inside . 28 | export default { 29 | router, 30 | template: ` 31 |
32 |

Basic

33 |
    34 |
  • /
  • 35 |
  • /foo
  • 36 |
  • /bar
  • 37 | 38 | /bar 39 | 40 |
41 | 42 |
43 | ` 44 | } 45 | -------------------------------------------------------------------------------- /examples/nested-router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Foo = { template: `

foo

` } 7 | const Bar = { template: `

bar

` } 8 | 9 | const childRouter = new VueRouter({ 10 | mode: 'abstract', 11 | routes: [ 12 | { path: '/foo', component: Foo }, 13 | { path: '/bar', component: Bar } 14 | ] 15 | }) 16 | 17 | const Nested = { 18 | router: childRouter, 19 | template: `
20 |

Child router path: {{ $route.fullPath }}

21 |
    22 |
  • /foo
  • 23 |
  • /bar
  • 24 |
25 | 26 |
` 27 | } 28 | 29 | const router = new VueRouter({ 30 | mode: 'history', 31 | base: __dirname, 32 | routes: [ 33 | { path: '/nested-router', component: Nested }, 34 | { path: '/foo', component: Foo }, 35 | { path: '/bar', component: Bar } 36 | ] 37 | }) 38 | 39 | export default { 40 | router, 41 | template: ` 42 |
43 |

Root router path: {{ $route.fullPath }}

44 |
    45 |
  • /nested-router
  • 46 |
  • /foo
  • 47 |
  • /bar
  • 48 |
49 | 50 |
51 | ` 52 | } 53 | -------------------------------------------------------------------------------- /examples/active-links/App.vue: -------------------------------------------------------------------------------- 1 | 38 | -------------------------------------------------------------------------------- /examples/data-fetching/Post.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 53 | 54 | 76 | -------------------------------------------------------------------------------- /examples/transitions/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Home = { 7 | template: ` 8 |
9 |

Home

10 |

hello

11 |
12 | ` 13 | } 14 | 15 | const Parent = { 16 | data () { 17 | return { 18 | transitionName: 'slide-left' 19 | } 20 | }, 21 | beforeRouteUpdate (to, from, next) { 22 | const toDepth = to.path.split('/').length 23 | const fromDepth = from.path.split('/').length 24 | this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left' 25 | next() 26 | }, 27 | template: ` 28 |
29 |

Parent

30 | 31 | 32 | 33 |
34 | ` 35 | } 36 | 37 | const Default = { template: '
default
' } 38 | const Foo = { template: '
foo
' } 39 | const Bar = { template: '
bar
' } 40 | 41 | const router = new VueRouter({ 42 | mode: 'history', 43 | base: __dirname, 44 | routes: [ 45 | { path: '/', component: Home }, 46 | { path: '/parent', component: Parent, 47 | children: [ 48 | { path: '', component: Default }, 49 | { path: 'foo', component: Foo }, 50 | { path: 'bar', component: Bar } 51 | ] 52 | } 53 | ] 54 | }) 55 | 56 | export default { 57 | router, 58 | template: ` 59 |
60 |

Transitions

61 |
    62 |
  • /
  • 63 |
  • /parent
  • 64 |
  • /parent/foo
  • 65 |
  • /parent/bar
  • 66 |
67 | 68 | 69 | 70 |
71 | ` 72 | } 73 | -------------------------------------------------------------------------------- /examples/route-matching/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | // The matching uses path-to-regexp, which is the matching engine used 7 | // by express as well, so the same matching rules apply. 8 | // For detailed rules, see https://github.com/pillarjs/path-to-regexp 9 | const router = new VueRouter({ 10 | mode: 'history', 11 | base: __dirname, 12 | routes: [ 13 | { path: '/' }, 14 | // params are denoted with a colon ":" 15 | { path: '/params/:foo/:bar' }, 16 | // a param can be made optional by adding "?" 17 | { path: '/optional-params/:foo?' }, 18 | // a param can be followed by a regex pattern in parens 19 | // this route will only be matched if :id is all numbers 20 | { path: '/params-with-regex/:id(\\d+)' }, 21 | // asterisk can match anything 22 | { path: '/asterisk/*' }, 23 | // make part of the path optional by wrapping with parens and add "?" 24 | { path: '/optional-group/(foo/)?bar' } 25 | ] 26 | }) 27 | 28 | export default { 29 | router, 30 | template: ` 31 |
32 |

Route Matching

33 |
    34 |
  • /
  • 35 |
  • /params/foo/bar
  • 36 |
  • /optional-params
  • 37 |
  • /optional-params/foo
  • 38 |
  • /params-with-regex/123
  • 39 |
  • /params-with-regex/abc
  • 40 |
  • /asterisk/foo
  • 41 |
  • /asterisk/foo/bar
  • 42 |
  • /optional-group/bar
  • 43 |
  • /optional-group/foo/bar
  • 44 |
45 |

Route context

46 |
{{ JSON.stringify($route, null, 2) }}
47 |
48 | ` 49 | } 50 | -------------------------------------------------------------------------------- /examples/scroll-behavior/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Home = { template: '
home
' } 7 | const Foo = { template: '
foo
' } 8 | const Bar = { 9 | template: ` 10 |
11 | bar 12 |
13 |

Anchor

14 |

Anchor2

15 |
16 | ` 17 | } 18 | 19 | // scrollBehavior: 20 | // - only available in html5 history mode 21 | // - defaults to no scroll behavior 22 | // - return false to prevent scroll 23 | const scrollBehavior = (to, from, savedPosition) => { 24 | if (savedPosition) { 25 | // savedPosition is only available for popstate navigations. 26 | return savedPosition 27 | } else { 28 | const position = {} 29 | // new navigation. 30 | // scroll to anchor by returning the selector 31 | if (to.hash) { 32 | position.selector = to.hash 33 | 34 | // specify offset of the element 35 | if (to.hash === '#anchor2') { 36 | position.offset = { y: 100 } 37 | } 38 | } 39 | // check if any matched route config has meta that requires scrolling to top 40 | if (to.matched.some(m => m.meta.scrollToTop)) { 41 | // cords will be used if no selector is provided, 42 | // or if the selector didn't match any element. 43 | position.x = 0 44 | position.y = 0 45 | } 46 | // if the returned position is falsy or an empty object, 47 | // will retain current scroll position. 48 | return position 49 | } 50 | } 51 | 52 | const router = new VueRouter({ 53 | mode: 'history', 54 | base: __dirname, 55 | scrollBehavior, 56 | routes: [ 57 | { path: '/', component: Home, meta: { scrollToTop: true }}, 58 | { path: '/foo', component: Foo }, 59 | { path: '/bar', component: Bar, meta: { scrollToTop: true }} 60 | ] 61 | }) 62 | 63 | export default { 64 | router, 65 | template: ` 66 |
67 |

Scroll Behavior

68 |
    69 |
  • /
  • 70 |
  • /foo
  • 71 |
  • /bar
  • 72 |
  • /bar#anchor
  • 73 |
  • /bar#anchor2
  • 74 |
75 | 76 |
77 | ` 78 | } 79 | -------------------------------------------------------------------------------- /examples/lazy-loading/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Home = { template: '
home
' } 7 | 8 | // In Webpack we can use special require syntax to signify a "split point" 9 | // Webpack will automatically split and lazy-load the split modules. 10 | // - https://webpack.js.org/guides/code-splitting-require/ 11 | 12 | // Combine that with Vue's async components, we can easily make our route 13 | // components lazy-loaded only when the given route is matched. 14 | 15 | // async components are defined as: 16 | // - resolve => resolve(Component) 17 | // or 18 | // - () => Promise 19 | 20 | // For single component, we can simply use dynamic import which returns 21 | // a Promise. 22 | const Foo = () => import('./Foo.vue') 23 | 24 | // The import() syntax is a replacement for the deprecated System.import() and 25 | // is specified at https://github.com/tc39/proposal-dynamic-import. Webpack 2 26 | // supports using it to indicate a code-splitting point. 27 | // Note: if using Babel you will need `babel-plugin-syntax-dynamic-import`. 28 | 29 | // If using Webpack 1, you will have to use AMD syntax or require.ensure: 30 | // const Foo = resolve => require(['./Foo.vue'], resolve) 31 | 32 | // If you want to group a number of components that belong to the same 33 | // nested route in the same async chunk, you can use a special comment 34 | // to indicate a chunk name for the imported module. (note this requires 35 | // webpack 2.4.0+) 36 | const Bar = () => import(/* webpackChunkName: "/bar" */ './Bar.vue') 37 | const Baz = () => import(/* webpackChunkName: "/bar" */ './Baz.vue') 38 | 39 | const router = new VueRouter({ 40 | mode: 'history', 41 | base: __dirname, 42 | routes: [ 43 | { path: '/', component: Home }, 44 | // Just use them normally in the route config 45 | { path: '/foo', component: Foo }, 46 | // Bar and Baz belong to the same root route 47 | // and grouped in the same async chunk. 48 | { path: '/bar', component: Bar, 49 | children: [ 50 | { path: 'baz', component: Baz } 51 | ] 52 | } 53 | ] 54 | }) 55 | 56 | export default { 57 | router, 58 | template: ` 59 |
60 |

Basic

61 |
    62 |
  • /
  • 63 |
  • /foo
  • 64 |
  • /bar
  • 65 |
  • /bar/baz
  • 66 |
67 | 68 |
69 | ` 70 | } 71 | -------------------------------------------------------------------------------- /examples/route-alias/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Root = { template: '
root
' } 7 | const Home = { template: '

Home

' } 8 | const Foo = { template: '
foo
' } 9 | const Bar = { template: '
bar
' } 10 | const Baz = { template: '
baz
' } 11 | const Default = { template: '
default
' } 12 | const Nested = { template: '' } 13 | const NestedFoo = { template: '
nested foo
' } 14 | 15 | const router = new VueRouter({ 16 | mode: 'history', 17 | base: __dirname, 18 | routes: [ 19 | { path: '/root', component: Root, alias: '/root-alias' }, 20 | { path: '/home', component: Home, 21 | children: [ 22 | // absolute alias 23 | { path: 'foo', component: Foo, alias: '/foo' }, 24 | // relative alias (alias to /home/bar-alias) 25 | { path: 'bar', component: Bar, alias: 'bar-alias' }, 26 | // multiple aliases 27 | { path: 'baz', component: Baz, alias: ['/baz', 'baz-alias'] }, 28 | // default child route with empty string as alias. 29 | { path: 'default', component: Default, alias: '' }, 30 | // nested alias 31 | { path: 'nested', component: Nested, alias: 'nested-alias', 32 | children: [ 33 | { path: 'foo', component: NestedFoo } 34 | ] 35 | } 36 | ] 37 | } 38 | ] 39 | }) 40 | 41 | export default { 42 | router, 43 | template: ` 44 |
45 |

Route Alias

46 |
    47 |
  • 48 | /root-alias (renders /root) 49 |
  • 50 | 51 |
  • 52 | /foo (renders /home/foo) 53 |
  • 54 | 55 |
  • 56 | /home/bar-alias (renders /home/bar) 57 |
  • 58 | 59 |
  • 60 | /baz (renders /home/baz) 61 |
  • 62 | 63 |
  • 64 | /home/baz-alias (renders /home/baz) 65 |
  • 66 | 67 |
  • 68 | /home (renders /home/default) 69 |
  • 70 | 71 |
  • 72 | /home/nested-alias/foo (renders /home/nested/foo) 73 |
  • 74 |
75 | 76 |
77 | ` 78 | } 79 | -------------------------------------------------------------------------------- /examples/index.js: -------------------------------------------------------------------------------- 1 | // NOTE: THIS IS AN AUTOGENERATED FILE. 2 | export default [ 3 | { 4 | name: "active-links", 5 | files: [ 6 | "About.vue", 7 | "App.vue", 8 | "Home.vue", 9 | "index.js", 10 | "User.vue", 11 | "Users.vue" 12 | ], 13 | bundle: () => import("./active-links") 14 | }, 15 | { 16 | name: "auth-flow", 17 | files: [ 18 | "auth.js", 19 | "components/About.vue", 20 | "components/App.vue", 21 | "components/Dashboard.vue", 22 | "components/Login.vue", 23 | "index.js" 24 | ], 25 | bundle: () => import("./auth-flow") 26 | }, 27 | { 28 | name: "basic", 29 | files: ["index.js"], 30 | bundle: () => import("./basic") 31 | }, 32 | { 33 | name: "data-fetching", 34 | files: ["api.js", "index.js", "Post.vue"], 35 | bundle: () => import("./data-fetching") 36 | }, 37 | { 38 | name: "lazy-loading", 39 | files: ["Bar.vue", "Baz.vue", "Foo.vue", "index.js"], 40 | bundle: () => import("./lazy-loading") 41 | }, 42 | { 43 | name: "named-routes", 44 | files: ["index.js"], 45 | bundle: () => import("./named-routes") 46 | }, 47 | { 48 | name: "named-views", 49 | files: ["index.js"], 50 | bundle: () => import("./named-views") 51 | }, 52 | { 53 | name: "navigation-guards", 54 | files: ["index.js"], 55 | bundle: () => import("./navigation-guards") 56 | }, 57 | { 58 | name: "nested-router", 59 | files: ["index.js"], 60 | bundle: () => import("./nested-router") 61 | }, 62 | { 63 | name: "nested-routes", 64 | files: ["index.js"], 65 | bundle: () => import("./nested-routes") 66 | }, 67 | { 68 | name: "redirect", 69 | files: ["index.js"], 70 | bundle: () => import("./redirect") 71 | }, 72 | { 73 | name: "route-alias", 74 | files: ["index.js"], 75 | bundle: () => import("./route-alias") 76 | }, 77 | { 78 | name: "route-matching", 79 | files: ["index.js"], 80 | bundle: () => import("./route-matching") 81 | }, 82 | { 83 | name: "route-props", 84 | files: ["Hello.vue", "index.js"], 85 | bundle: () => import("./route-props") 86 | }, 87 | { 88 | name: "scroll-behavior", 89 | files: ["index.js"], 90 | bundle: () => import("./scroll-behavior") 91 | }, 92 | { 93 | name: "sfc", 94 | files: [ 95 | "App.vue", 96 | "index.js", 97 | "pages/About.vue", 98 | "pages/Home.vue", 99 | "pages/Topics.vue", 100 | "pages/topics/Topic.vue" 101 | ], 102 | bundle: () => import("./sfc") 103 | }, 104 | { 105 | name: "simple", 106 | files: ["index.js"], 107 | bundle: () => import("./simple") 108 | }, 109 | { 110 | name: "transitions", 111 | files: ["index.js"], 112 | bundle: () => import("./transitions") 113 | } 114 | ] 115 | -------------------------------------------------------------------------------- /examples/simple/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const HomePage = { 7 | name: 'HomePage', 8 | 9 | render () { 10 | return (Home Page) 11 | } 12 | } 13 | 14 | const AboutPage = { 15 | name: 'AboutPage', 16 | 17 | render () { 18 | return (About Page) 19 | } 20 | } 21 | 22 | const TopicsPage = { 23 | name: 'TopicsPage', 24 | 25 | render () { 26 | return ( 27 |
28 | Topics Page 29 |
    30 |
  • 31 | 32 | Rendering with Vue 33 | 34 |
  • 35 |
  • 36 | 37 | Components 38 | 39 |
  • 40 |
  • 41 | 42 | Props vs State 43 | 44 |
  • 45 |
46 | 47 | 48 |
49 | ) 50 | } 51 | } 52 | 53 | const TopicPage = { 54 | name: 'TopicPage', 55 | 56 | props: { 57 | id: { 58 | type: String, 59 | required: true 60 | } 61 | }, 62 | 63 | render () { 64 | return ({this.id}) 65 | } 66 | } 67 | 68 | const router = new VueRouter({ 69 | routes: [ 70 | { path: '/', component: HomePage }, 71 | { path: '/about', component: AboutPage }, 72 | { path: '/topics', component: TopicsPage, children: [ 73 | { name: 'topic', path: ':id', component: TopicPage, props: true } 74 | ] } 75 | ] 76 | }) 77 | 78 | export default { 79 | name: 'App', 80 | 81 | router, 82 | 83 | render () { 84 | return ( 85 |
86 |

Simple

87 |
    88 |
  • 89 | Home 90 |
  • 91 |
  • 92 | About 93 |
  • 94 |
  • 95 | Topics 96 |
  • 97 |
98 | 99 |
100 | 101 | 102 |
103 | ) 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /examples/nested-routes/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | // A route component can also contain to render 7 | // nested children route components 8 | const Parent = { 9 | template: ` 10 |
11 |

Parent

12 | 13 |
14 | ` 15 | } 16 | 17 | const Default = { template: '
default
' } 18 | const Foo = { template: '
foo
' } 19 | const Bar = { template: '
bar
' } 20 | const Baz = { template: '
baz
' } 21 | 22 | const Qux = { 23 | template: ` 24 |
25 |

qux

26 | /quux 27 | 28 |
29 | ` 30 | } 31 | const Quy = { 32 | template: ` 33 |
34 |

quy

35 |
{{ JSON.stringify(Object.keys($route.params)) }}
36 |
37 | ` 38 | } 39 | const Quux = { template: '
quux
' } 40 | const Zap = { template: '

zap

{{ $route.params.zapId }}
' } 41 | 42 | const router = new VueRouter({ 43 | mode: 'history', 44 | base: __dirname, 45 | routes: [ 46 | { path: '/', redirect: '/parent' }, 47 | { path: '/parent', component: Parent, 48 | children: [ 49 | // an empty path will be treated as the default, e.g. 50 | // components rendered at /parent: Root -> Parent -> Default 51 | { path: '', component: Default }, 52 | 53 | // components rendered at /parent/foo: Root -> Parent -> Foo 54 | { path: 'foo', component: Foo }, 55 | 56 | // components rendered at /parent/bar: Root -> Parent -> Bar 57 | { path: 'bar', component: Bar }, 58 | 59 | // NOTE absolute path here! 60 | // this allows you to leverage the component nesting without being 61 | // limited to the nested URL. 62 | // components rendered at /baz: Root -> Parent -> Baz 63 | { path: '/baz', component: Baz }, 64 | 65 | { 66 | path: 'qux/:quxId', 67 | component: Qux, 68 | children: [{ path: 'quux', name: 'quux', component: Quux }] 69 | }, 70 | 71 | { path: 'quy/:quyId', component: Quy }, 72 | 73 | { name: 'zap', path: 'zap/:zapId?', component: Zap } 74 | ] 75 | } 76 | ] 77 | }) 78 | 79 | export default { 80 | router, 81 | template: ` 82 |
83 |

Nested Routes

84 |
    85 |
  • /parent
  • 86 |
  • /parent/foo
  • 87 |
  • /parent/bar
  • 88 |
  • /baz
  • 89 |
  • /parent/qux
  • 90 |
  • /parent/quy
  • 91 |
  • /parent/zap
  • 92 |
  • /parent/zap/1
  • 93 |
  • { params: { zapId: 2 }} (relative params)
  • 94 |
95 | 96 |
97 | ` 98 | } 99 | -------------------------------------------------------------------------------- /src/Example.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 109 | 110 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /src/Browser/Window.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 129 | 130 | 150 | 151 | 171 | -------------------------------------------------------------------------------- /src/Browser/AddressBar.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 69 | 70 | 133 | -------------------------------------------------------------------------------- /examples/redirect/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Home = { template: '' } 7 | const Default = { template: '
default
' } 8 | const Foo = { template: '
foo
' } 9 | const Bar = { template: '
bar
' } 10 | const Baz = { template: '
baz
' } 11 | const WithParams = { template: '
{{ $route.params.id }}
' } 12 | const Foobar = { template: '
foobar
' } 13 | const FooBar = { template: '
FooBar
' } 14 | 15 | const router = new VueRouter({ 16 | mode: 'history', 17 | base: __dirname, 18 | routes: [ 19 | { path: '/', component: Home, 20 | children: [ 21 | { path: '', component: Default }, 22 | { path: 'foo', component: Foo }, 23 | { path: 'bar', component: Bar }, 24 | { path: 'baz', name: 'baz', component: Baz }, 25 | { path: 'with-params/:id', component: WithParams }, 26 | // relative redirect to a sibling route 27 | { path: 'relative-redirect', redirect: 'foo' } 28 | ] 29 | }, 30 | // absolute redirect 31 | { path: '/absolute-redirect', redirect: '/bar' }, 32 | // dynamic redirect, note that the target route `to` is available for the redirect function 33 | { path: '/dynamic-redirect/:id?', 34 | redirect: to => { 35 | const { hash, params, query } = to 36 | if (query.to === 'foo') { 37 | return { path: '/foo', query: null } 38 | } 39 | if (hash === '#baz') { 40 | return { name: 'baz', hash: '' } 41 | } 42 | if (params.id) { 43 | return '/with-params/:id' 44 | } else { 45 | return '/bar' 46 | } 47 | } 48 | }, 49 | // named redirect 50 | { path: '/named-redirect', redirect: { name: 'baz' }}, 51 | 52 | // redirect with params 53 | { path: '/redirect-with-params/:id', redirect: '/with-params/:id' }, 54 | 55 | // redirect with caseSensitive 56 | { path: '/foobar', component: Foobar, caseSensitive: true }, 57 | 58 | // redirect with pathToRegexpOptions 59 | { path: '/FooBar', component: FooBar, pathToRegexpOptions: { sensitive: true }}, 60 | 61 | // catch all redirect 62 | { path: '*', redirect: '/' } 63 | ] 64 | }) 65 | 66 | export default { 67 | router, 68 | template: ` 69 |
70 |

Redirect

71 |
    72 |
  • 73 | /relative-redirect (redirects to /foo) 74 |
  • 75 | 76 |
  • 77 | /relative-redirect?foo=bar (redirects to /foo?foo=bar) 78 |
  • 79 | 80 |
  • 81 | /absolute-redirect (redirects to /bar) 82 |
  • 83 | 84 |
  • 85 | /dynamic-redirect (redirects to /bar) 86 |
  • 87 | 88 |
  • 89 | /dynamic-redirect/123 (redirects to /with-params/123) 90 |
  • 91 | 92 |
  • 93 | /dynamic-redirect?to=foo (redirects to /foo) 94 |
  • 95 | 96 |
  • 97 | /dynamic-redirect#baz (redirects to /baz) 98 |
  • 99 | 100 |
  • 101 | /named-redirect (redirects to /baz) 102 |
  • 103 | 104 |
  • 105 | /redirect-with-params/123 (redirects to /with-params/123) 106 |
  • 107 | 108 |
  • 109 | /foobar 110 |
  • 111 | 112 |
  • 113 | /FooBar 114 |
  • 115 | 116 |
  • 117 | /not-found (redirects to /) 118 |
  • 119 |
120 | 121 |
122 | ` 123 | } 124 | -------------------------------------------------------------------------------- /examples/navigation-guards/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const Home = { template: '
home
' } 7 | const Foo = { template: '
foo
' } 8 | const Bar = { template: '
bar
' } 9 | 10 | /** 11 | * Signatre of all route guards: 12 | * @param {Route} to 13 | * @param {Route} from 14 | * @param {Function} next 15 | * 16 | * See http://router.vuejs.org/en/advanced/navigation-guards.html 17 | * for more details. 18 | */ 19 | function guardRoute (to, from, next) { 20 | if (window.confirm(`Navigate to ${to.path}?`)) { 21 | next() 22 | } else if (window.confirm(`Redirect to /baz?`)) { 23 | next('/baz') 24 | } else { 25 | next(false) 26 | } 27 | } 28 | 29 | // Baz implements an in-component beforeRouteLeave hook 30 | const Baz = { 31 | data () { 32 | return { saved: false } 33 | }, 34 | template: ` 35 |
36 |

baz ({{ saved ? 'saved' : 'not saved' }})

37 | 38 |

39 | `, 40 | beforeRouteLeave (to, from, next) { 41 | if (this.saved || window.confirm('Not saved, are you sure you want to navigate away?')) { 42 | next() 43 | } else { 44 | next(false) 45 | } 46 | } 47 | } 48 | 49 | // Baz implements an in-component beforeRouteEnter hook 50 | const Qux = { 51 | data () { 52 | return { 53 | msg: null 54 | } 55 | }, 56 | template: `
{{ msg }}
`, 57 | beforeRouteEnter (to, from, next) { 58 | // Note that enter hooks do not have access to `this` 59 | // because it is called before the component is even created. 60 | // However, we can provide a callback to `next` which will 61 | // receive the vm instance when the route has been confirmed. 62 | // 63 | // simulate an async data fetch. 64 | // this pattern is useful when you want to stay at current route 65 | // and only switch after the data has been fetched. 66 | setTimeout(() => { 67 | next(vm => { 68 | vm.msg = 'Qux' 69 | }) 70 | }, 300) 71 | } 72 | } 73 | 74 | // Quux implements an in-component beforeRouteUpdate hook. 75 | // this hook is called when the component is reused, but the route is updated. 76 | // For example, when navigating from /quux/1 to /quux/2. 77 | const Quux = { 78 | data () { 79 | return { 80 | prevId: 0 81 | } 82 | }, 83 | template: `
id:{{ $route.params.id }} prevId:{{ prevId }}
`, 84 | beforeRouteUpdate (to, from, next) { 85 | this.prevId = from.params.id 86 | next() 87 | } 88 | } 89 | 90 | const router = new VueRouter({ 91 | mode: 'history', 92 | base: __dirname, 93 | routes: [ 94 | { path: '/', component: Home }, 95 | 96 | // inline guard 97 | { path: '/foo', component: Foo, beforeEnter: guardRoute }, 98 | 99 | // using meta properties on the route config 100 | // and check them in a global before hook 101 | { path: '/bar', component: Bar, meta: { needGuard: true }}, 102 | 103 | // Baz implements an in-component beforeRouteLeave hook 104 | { path: '/baz', component: Baz }, 105 | 106 | // Qux implements an in-component beforeRouteEnter hook 107 | { path: '/qux', component: Qux }, 108 | 109 | // in-component beforeRouteEnter hook for async components 110 | { path: '/qux-async', component: resolve => { 111 | setTimeout(() => { 112 | resolve(Qux) 113 | }, 0) 114 | } }, 115 | 116 | // in-component beforeRouteUpdate hook 117 | { path: '/quux/:id', component: Quux } 118 | ] 119 | }) 120 | 121 | router.beforeEach((to, from, next) => { 122 | if (to.matched.some(m => m.meta.needGuard)) { 123 | guardRoute(to, from, next) 124 | } else { 125 | next() 126 | } 127 | }) 128 | 129 | export default { 130 | router, 131 | template: ` 132 |
133 |

Navigation Guards

134 |
    135 |
  • /
  • 136 |
  • /foo
  • 137 |
  • /bar
  • 138 |
  • /baz
  • 139 |
  • /qux
  • 140 |
  • /qux-async
  • 141 |
  • /quux/1
  • 142 |
  • /quux/2
  • 143 |
144 | 145 |
146 | ` 147 | } 148 | -------------------------------------------------------------------------------- /shrinkwrap.yaml: -------------------------------------------------------------------------------- 1 | devDependencies: 2 | node-sass: 4.5.3 3 | sass-loader: 6.0.6 4 | packages: 5 | /abbrev/1.1.0: 6 | dev: true 7 | resolution: 8 | integrity: sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8= 9 | /ajv/4.11.8: 10 | dependencies: 11 | co: 4.6.0 12 | json-stable-stringify: 1.0.1 13 | dev: true 14 | resolution: 15 | integrity: sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= 16 | /amdefine/1.0.1: 17 | dev: true 18 | resolution: 19 | integrity: sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= 20 | /ansi-regex/2.1.1: 21 | dev: true 22 | resolution: 23 | integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 24 | /ansi-styles/2.2.1: 25 | dev: true 26 | resolution: 27 | integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 28 | /aproba/1.1.2: 29 | dev: true 30 | resolution: 31 | integrity: sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw== 32 | /are-we-there-yet/1.1.4: 33 | dependencies: 34 | delegates: 1.0.0 35 | readable-stream: 2.3.3 36 | dev: true 37 | resolution: 38 | integrity: sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0= 39 | /array-find-index/1.0.2: 40 | dev: true 41 | resolution: 42 | integrity: sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= 43 | /asn1/0.2.3: 44 | dev: true 45 | resolution: 46 | integrity: sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= 47 | /assert-plus/0.2.0: 48 | dev: true 49 | resolution: 50 | integrity: sha1-104bh+ev/A24qttwIfP+SBAasjQ= 51 | /assert-plus/1.0.0: 52 | dev: true 53 | resolution: 54 | integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 55 | /async-foreach/0.1.3: 56 | dev: true 57 | resolution: 58 | integrity: sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= 59 | /async/2.5.0: 60 | dependencies: 61 | lodash: 4.17.4 62 | dev: true 63 | resolution: 64 | integrity: sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw== 65 | /asynckit/0.4.0: 66 | dev: true 67 | resolution: 68 | integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= 69 | /aws-sign2/0.6.0: 70 | dev: true 71 | resolution: 72 | integrity: sha1-FDQt0428yU0OW4fXY81jYSwOeU8= 73 | /aws4/1.6.0: 74 | dev: true 75 | resolution: 76 | integrity: sha1-g+9cqGCysy5KDe7e6MdxudtXRx4= 77 | /balanced-match/1.0.0: 78 | dev: true 79 | resolution: 80 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 81 | /bcrypt-pbkdf/1.0.1: 82 | dependencies: 83 | tweetnacl: 0.14.5 84 | dev: true 85 | optional: true 86 | resolution: 87 | integrity: sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40= 88 | /big.js/3.2.0: 89 | dev: true 90 | resolution: 91 | integrity: sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== 92 | /block-stream/0.0.9: 93 | dependencies: 94 | inherits: 2.0.3 95 | dev: true 96 | resolution: 97 | integrity: sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= 98 | /boom/2.10.1: 99 | dependencies: 100 | hoek: 2.16.3 101 | dev: true 102 | resolution: 103 | integrity: sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8= 104 | /brace-expansion/1.1.8: 105 | dependencies: 106 | balanced-match: 1.0.0 107 | concat-map: 0.0.1 108 | dev: true 109 | resolution: 110 | integrity: sha1-wHshHHyVLsH479Uad+8NHTmQopI= 111 | /builtin-modules/1.1.1: 112 | dev: true 113 | resolution: 114 | integrity: sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 115 | /camelcase-keys/2.1.0: 116 | dependencies: 117 | camelcase: 2.1.1 118 | map-obj: 1.0.1 119 | dev: true 120 | resolution: 121 | integrity: sha1-MIvur/3ygRkFHvodkyITyRuPkuc= 122 | /camelcase/2.1.1: 123 | dev: true 124 | resolution: 125 | integrity: sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= 126 | /camelcase/3.0.0: 127 | dev: true 128 | resolution: 129 | integrity: sha1-MvxLn82vhF/N9+c7uXysImHwqwo= 130 | /caseless/0.12.0: 131 | dev: true 132 | resolution: 133 | integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 134 | /chalk/1.1.3: 135 | dependencies: 136 | ansi-styles: 2.2.1 137 | escape-string-regexp: 1.0.5 138 | has-ansi: 2.0.0 139 | strip-ansi: 3.0.1 140 | supports-color: 2.0.0 141 | dev: true 142 | resolution: 143 | integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 144 | /cliui/3.2.0: 145 | dependencies: 146 | string-width: 1.0.2 147 | strip-ansi: 3.0.1 148 | wrap-ansi: 2.1.0 149 | dev: true 150 | resolution: 151 | integrity: sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= 152 | /clone-deep/0.3.0: 153 | dependencies: 154 | for-own: 1.0.0 155 | is-plain-object: 2.0.4 156 | kind-of: 3.2.2 157 | shallow-clone: 0.1.2 158 | dev: true 159 | resolution: 160 | integrity: sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg= 161 | /co/4.6.0: 162 | dev: true 163 | resolution: 164 | integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 165 | /code-point-at/1.1.0: 166 | dev: true 167 | resolution: 168 | integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 169 | /combined-stream/1.0.5: 170 | dependencies: 171 | delayed-stream: 1.0.0 172 | dev: true 173 | resolution: 174 | integrity: sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk= 175 | /concat-map/0.0.1: 176 | dev: true 177 | resolution: 178 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 179 | /console-control-strings/1.1.0: 180 | dev: true 181 | resolution: 182 | integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 183 | /core-util-is/1.0.2: 184 | dev: true 185 | resolution: 186 | integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 187 | /cross-spawn/3.0.1: 188 | dependencies: 189 | lru-cache: 4.1.1 190 | which: 1.3.0 191 | dev: true 192 | resolution: 193 | integrity: sha1-ElYDfsufDF9549bvE14wdwGEuYI= 194 | /cryptiles/2.0.5: 195 | dependencies: 196 | boom: 2.10.1 197 | dev: true 198 | resolution: 199 | integrity: sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g= 200 | /currently-unhandled/0.4.1: 201 | dependencies: 202 | array-find-index: 1.0.2 203 | dev: true 204 | resolution: 205 | integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o= 206 | /dashdash/1.14.1: 207 | dependencies: 208 | assert-plus: 1.0.0 209 | dev: true 210 | resolution: 211 | integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 212 | /decamelize/1.2.0: 213 | dev: true 214 | resolution: 215 | integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 216 | /delayed-stream/1.0.0: 217 | dev: true 218 | resolution: 219 | integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 220 | /delegates/1.0.0: 221 | dev: true 222 | resolution: 223 | integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 224 | /ecc-jsbn/0.1.1: 225 | dependencies: 226 | jsbn: 0.1.1 227 | dev: true 228 | optional: true 229 | resolution: 230 | integrity: sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU= 231 | /emojis-list/2.1.0: 232 | dev: true 233 | resolution: 234 | integrity: sha1-TapNnbAPmBmIDHn6RXrlsJof04k= 235 | /error-ex/1.3.1: 236 | dependencies: 237 | is-arrayish: 0.2.1 238 | dev: true 239 | resolution: 240 | integrity: sha1-+FWobOYa3E6GIcPNoh56dhLDqNw= 241 | /escape-string-regexp/1.0.5: 242 | dev: true 243 | resolution: 244 | integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 245 | /extend/3.0.1: 246 | dev: true 247 | resolution: 248 | integrity: sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ= 249 | /extsprintf/1.3.0: 250 | dev: true 251 | resolution: 252 | integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 253 | /find-up/1.1.2: 254 | dependencies: 255 | path-exists: 2.1.0 256 | pinkie-promise: 2.0.1 257 | dev: true 258 | resolution: 259 | integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= 260 | /for-in/0.1.8: 261 | dev: true 262 | resolution: 263 | integrity: sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= 264 | /for-in/1.0.2: 265 | dev: true 266 | resolution: 267 | integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 268 | /for-own/1.0.0: 269 | dependencies: 270 | for-in: 1.0.2 271 | dev: true 272 | resolution: 273 | integrity: sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= 274 | /forever-agent/0.6.1: 275 | dev: true 276 | resolution: 277 | integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 278 | /form-data/2.1.4: 279 | dependencies: 280 | asynckit: 0.4.0 281 | combined-stream: 1.0.5 282 | mime-types: 2.1.17 283 | dev: true 284 | resolution: 285 | integrity: sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE= 286 | /fs.realpath/1.0.0: 287 | dev: true 288 | resolution: 289 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 290 | /fstream/1.0.11: 291 | dependencies: 292 | graceful-fs: 4.1.11 293 | inherits: 2.0.3 294 | mkdirp: 0.5.1 295 | rimraf: 2.6.2 296 | dev: true 297 | resolution: 298 | integrity: sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= 299 | /gauge/2.7.4: 300 | dependencies: 301 | aproba: 1.1.2 302 | console-control-strings: 1.1.0 303 | has-unicode: 2.0.1 304 | object-assign: 4.1.1 305 | signal-exit: 3.0.2 306 | string-width: 1.0.2 307 | strip-ansi: 3.0.1 308 | wide-align: 1.1.2 309 | dev: true 310 | resolution: 311 | integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 312 | /gaze/1.1.2: 313 | dependencies: 314 | globule: 1.2.0 315 | dev: true 316 | resolution: 317 | integrity: sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU= 318 | /get-caller-file/1.0.2: 319 | dev: true 320 | resolution: 321 | integrity: sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U= 322 | /get-stdin/4.0.1: 323 | dev: true 324 | resolution: 325 | integrity: sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= 326 | /getpass/0.1.7: 327 | dependencies: 328 | assert-plus: 1.0.0 329 | dev: true 330 | resolution: 331 | integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 332 | /glob/7.1.2: 333 | dependencies: 334 | fs.realpath: 1.0.0 335 | inflight: 1.0.6 336 | inherits: 2.0.3 337 | minimatch: 3.0.4 338 | once: 1.4.0 339 | path-is-absolute: 1.0.1 340 | dev: true 341 | resolution: 342 | integrity: sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== 343 | /globule/1.2.0: 344 | dependencies: 345 | glob: 7.1.2 346 | lodash: 4.17.4 347 | minimatch: 3.0.4 348 | dev: true 349 | resolution: 350 | integrity: sha1-HcScaCLdnoovoAuiopUAboZkvQk= 351 | /graceful-fs/4.1.11: 352 | dev: true 353 | resolution: 354 | integrity: sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= 355 | /har-schema/1.0.5: 356 | dev: true 357 | resolution: 358 | integrity: sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4= 359 | /har-validator/4.2.1: 360 | dependencies: 361 | ajv: 4.11.8 362 | har-schema: 1.0.5 363 | dev: true 364 | resolution: 365 | integrity: sha1-M0gdDxu/9gDdID11gSpqX7oALio= 366 | /has-ansi/2.0.0: 367 | dependencies: 368 | ansi-regex: 2.1.1 369 | dev: true 370 | resolution: 371 | integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 372 | /has-unicode/2.0.1: 373 | dev: true 374 | resolution: 375 | integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 376 | /hawk/3.1.3: 377 | dependencies: 378 | boom: 2.10.1 379 | cryptiles: 2.0.5 380 | hoek: 2.16.3 381 | sntp: 1.0.9 382 | dev: true 383 | resolution: 384 | integrity: sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ= 385 | /hoek/2.16.3: 386 | dev: true 387 | resolution: 388 | integrity: sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= 389 | /hosted-git-info/2.5.0: 390 | dev: true 391 | resolution: 392 | integrity: sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg== 393 | /http-signature/1.1.1: 394 | dependencies: 395 | assert-plus: 0.2.0 396 | jsprim: 1.4.1 397 | sshpk: 1.13.1 398 | dev: true 399 | resolution: 400 | integrity: sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8= 401 | /in-publish/2.0.0: 402 | dev: true 403 | resolution: 404 | integrity: sha1-4g/146KvwmkDILbcVSaCqcf631E= 405 | /indent-string/2.1.0: 406 | dependencies: 407 | repeating: 2.0.1 408 | dev: true 409 | resolution: 410 | integrity: sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= 411 | /inflight/1.0.6: 412 | dependencies: 413 | once: 1.4.0 414 | wrappy: 1.0.2 415 | dev: true 416 | resolution: 417 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 418 | /inherits/2.0.3: 419 | dev: true 420 | resolution: 421 | integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 422 | /invert-kv/1.0.0: 423 | dev: true 424 | resolution: 425 | integrity: sha1-EEqOSqym09jNFXqO+L+rLXo//bY= 426 | /is-arrayish/0.2.1: 427 | dev: true 428 | resolution: 429 | integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 430 | /is-buffer/1.1.5: 431 | dev: true 432 | resolution: 433 | integrity: sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw= 434 | /is-builtin-module/1.0.0: 435 | dependencies: 436 | builtin-modules: 1.1.1 437 | dev: true 438 | resolution: 439 | integrity: sha1-VAVy0096wxGfj3bDDLwbHgN6/74= 440 | /is-extendable/0.1.1: 441 | dev: true 442 | resolution: 443 | integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 444 | /is-finite/1.0.2: 445 | dependencies: 446 | number-is-nan: 1.0.1 447 | dev: true 448 | resolution: 449 | integrity: sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= 450 | /is-fullwidth-code-point/1.0.0: 451 | dependencies: 452 | number-is-nan: 1.0.1 453 | dev: true 454 | resolution: 455 | integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 456 | /is-plain-object/2.0.4: 457 | dependencies: 458 | isobject: 3.0.1 459 | dev: true 460 | resolution: 461 | integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 462 | /is-typedarray/1.0.0: 463 | dev: true 464 | resolution: 465 | integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 466 | /is-utf8/0.2.1: 467 | dev: true 468 | resolution: 469 | integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= 470 | /isarray/1.0.0: 471 | dev: true 472 | resolution: 473 | integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 474 | /isexe/2.0.0: 475 | dev: true 476 | resolution: 477 | integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 478 | /isobject/3.0.1: 479 | dev: true 480 | resolution: 481 | integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 482 | /isstream/0.1.2: 483 | dev: true 484 | resolution: 485 | integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 486 | /js-base64/2.3.2: 487 | dev: true 488 | resolution: 489 | integrity: sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw== 490 | /jsbn/0.1.1: 491 | dev: true 492 | optional: true 493 | resolution: 494 | integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 495 | /json-schema/0.2.3: 496 | dev: true 497 | resolution: 498 | integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 499 | /json-stable-stringify/1.0.1: 500 | dependencies: 501 | jsonify: 0.0.0 502 | dev: true 503 | resolution: 504 | integrity: sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= 505 | /json-stringify-safe/5.0.1: 506 | dev: true 507 | resolution: 508 | integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 509 | /json5/0.5.1: 510 | dev: true 511 | resolution: 512 | integrity: sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= 513 | /jsonify/0.0.0: 514 | dev: true 515 | resolution: 516 | integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= 517 | /jsprim/1.4.1: 518 | dependencies: 519 | assert-plus: 1.0.0 520 | extsprintf: 1.3.0 521 | json-schema: 0.2.3 522 | verror: 1.10.0 523 | dev: true 524 | resolution: 525 | integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 526 | /kind-of/2.0.1: 527 | dependencies: 528 | is-buffer: 1.1.5 529 | dev: true 530 | resolution: 531 | integrity: sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= 532 | /kind-of/3.2.2: 533 | dependencies: 534 | is-buffer: 1.1.5 535 | dev: true 536 | resolution: 537 | integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 538 | /lazy-cache/0.2.7: 539 | dev: true 540 | resolution: 541 | integrity: sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= 542 | /lcid/1.0.0: 543 | dependencies: 544 | invert-kv: 1.0.0 545 | dev: true 546 | resolution: 547 | integrity: sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= 548 | /load-json-file/1.1.0: 549 | dependencies: 550 | graceful-fs: 4.1.11 551 | parse-json: 2.2.0 552 | pify: 2.3.0 553 | pinkie-promise: 2.0.1 554 | strip-bom: 2.0.0 555 | dev: true 556 | resolution: 557 | integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= 558 | /loader-utils/1.1.0: 559 | dependencies: 560 | big.js: 3.2.0 561 | emojis-list: 2.1.0 562 | json5: 0.5.1 563 | dev: true 564 | resolution: 565 | integrity: sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= 566 | /lodash.assign/4.2.0: 567 | dev: true 568 | resolution: 569 | integrity: sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= 570 | /lodash.clonedeep/4.5.0: 571 | dev: true 572 | resolution: 573 | integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 574 | /lodash.mergewith/4.6.0: 575 | dev: true 576 | resolution: 577 | integrity: sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU= 578 | /lodash.tail/4.1.1: 579 | dev: true 580 | resolution: 581 | integrity: sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= 582 | /lodash/4.17.4: 583 | dev: true 584 | resolution: 585 | integrity: sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= 586 | /loud-rejection/1.6.0: 587 | dependencies: 588 | currently-unhandled: 0.4.1 589 | signal-exit: 3.0.2 590 | dev: true 591 | resolution: 592 | integrity: sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= 593 | /lru-cache/4.1.1: 594 | dependencies: 595 | pseudomap: 1.0.2 596 | yallist: 2.1.2 597 | dev: true 598 | resolution: 599 | integrity: sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew== 600 | /map-obj/1.0.1: 601 | dev: true 602 | resolution: 603 | integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 604 | /meow/3.7.0: 605 | dependencies: 606 | camelcase-keys: 2.1.0 607 | decamelize: 1.2.0 608 | loud-rejection: 1.6.0 609 | map-obj: 1.0.1 610 | minimist: 1.2.0 611 | normalize-package-data: 2.4.0 612 | object-assign: 4.1.1 613 | read-pkg-up: 1.0.1 614 | redent: 1.0.0 615 | trim-newlines: 1.0.0 616 | dev: true 617 | resolution: 618 | integrity: sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= 619 | /mime-db/1.30.0: 620 | dev: true 621 | resolution: 622 | integrity: sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE= 623 | /mime-types/2.1.17: 624 | dependencies: 625 | mime-db: 1.30.0 626 | dev: true 627 | resolution: 628 | integrity: sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo= 629 | /minimatch/3.0.4: 630 | dependencies: 631 | brace-expansion: 1.1.8 632 | dev: true 633 | resolution: 634 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 635 | /minimist/0.0.8: 636 | dev: true 637 | resolution: 638 | integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 639 | /minimist/1.2.0: 640 | dev: true 641 | resolution: 642 | integrity: sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 643 | /mixin-object/2.0.1: 644 | dependencies: 645 | for-in: 0.1.8 646 | is-extendable: 0.1.1 647 | dev: true 648 | resolution: 649 | integrity: sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= 650 | /mkdirp/0.5.1: 651 | dependencies: 652 | minimist: 0.0.8 653 | dev: true 654 | resolution: 655 | integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 656 | /nan/2.7.0: 657 | dev: true 658 | resolution: 659 | integrity: sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY= 660 | /node-gyp/3.6.2: 661 | dependencies: 662 | fstream: 1.0.11 663 | glob: 7.1.2 664 | graceful-fs: 4.1.11 665 | minimatch: 3.0.4 666 | mkdirp: 0.5.1 667 | nopt: 3.0.6 668 | npmlog: 4.1.2 669 | osenv: 0.1.4 670 | request: 2.81.0 671 | rimraf: 2.6.2 672 | semver: 5.3.0 673 | tar: 2.2.1 674 | which: 1.3.0 675 | dev: true 676 | resolution: 677 | integrity: sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA= 678 | /node-sass/4.5.3: 679 | dependencies: 680 | async-foreach: 0.1.3 681 | chalk: 1.1.3 682 | cross-spawn: 3.0.1 683 | gaze: 1.1.2 684 | get-stdin: 4.0.1 685 | glob: 7.1.2 686 | in-publish: 2.0.0 687 | lodash.assign: 4.2.0 688 | lodash.clonedeep: 4.5.0 689 | lodash.mergewith: 4.6.0 690 | meow: 3.7.0 691 | mkdirp: 0.5.1 692 | nan: 2.7.0 693 | node-gyp: 3.6.2 694 | npmlog: 4.1.2 695 | request: 2.81.0 696 | sass-graph: 2.2.4 697 | stdout-stream: 1.4.0 698 | dev: true 699 | resolution: 700 | integrity: sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg= 701 | /nopt/3.0.6: 702 | dependencies: 703 | abbrev: 1.1.0 704 | dev: true 705 | resolution: 706 | integrity: sha1-xkZdvwirzU2zWTF/eaxopkayj/k= 707 | /normalize-package-data/2.4.0: 708 | dependencies: 709 | hosted-git-info: 2.5.0 710 | is-builtin-module: 1.0.0 711 | semver: 5.4.1 712 | validate-npm-package-license: 3.0.1 713 | dev: true 714 | resolution: 715 | integrity: sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== 716 | /npmlog/4.1.2: 717 | dependencies: 718 | are-we-there-yet: 1.1.4 719 | console-control-strings: 1.1.0 720 | gauge: 2.7.4 721 | set-blocking: 2.0.0 722 | dev: true 723 | resolution: 724 | integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 725 | /number-is-nan/1.0.1: 726 | dev: true 727 | resolution: 728 | integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 729 | /oauth-sign/0.8.2: 730 | dev: true 731 | resolution: 732 | integrity: sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= 733 | /object-assign/4.1.1: 734 | dev: true 735 | resolution: 736 | integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 737 | /once/1.4.0: 738 | dependencies: 739 | wrappy: 1.0.2 740 | dev: true 741 | resolution: 742 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 743 | /os-homedir/1.0.2: 744 | dev: true 745 | resolution: 746 | integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 747 | /os-locale/1.4.0: 748 | dependencies: 749 | lcid: 1.0.0 750 | dev: true 751 | resolution: 752 | integrity: sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= 753 | /os-tmpdir/1.0.2: 754 | dev: true 755 | resolution: 756 | integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 757 | /osenv/0.1.4: 758 | dependencies: 759 | os-homedir: 1.0.2 760 | os-tmpdir: 1.0.2 761 | dev: true 762 | resolution: 763 | integrity: sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ= 764 | /parse-json/2.2.0: 765 | dependencies: 766 | error-ex: 1.3.1 767 | dev: true 768 | resolution: 769 | integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 770 | /path-exists/2.1.0: 771 | dependencies: 772 | pinkie-promise: 2.0.1 773 | dev: true 774 | resolution: 775 | integrity: sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= 776 | /path-is-absolute/1.0.1: 777 | dev: true 778 | resolution: 779 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 780 | /path-type/1.1.0: 781 | dependencies: 782 | graceful-fs: 4.1.11 783 | pify: 2.3.0 784 | pinkie-promise: 2.0.1 785 | dev: true 786 | resolution: 787 | integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= 788 | /performance-now/0.2.0: 789 | dev: true 790 | resolution: 791 | integrity: sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= 792 | /pify/2.3.0: 793 | dev: true 794 | resolution: 795 | integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 796 | /pify/3.0.0: 797 | dev: true 798 | resolution: 799 | integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 800 | /pinkie-promise/2.0.1: 801 | dependencies: 802 | pinkie: 2.0.4 803 | dev: true 804 | resolution: 805 | integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o= 806 | /pinkie/2.0.4: 807 | dev: true 808 | resolution: 809 | integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA= 810 | /process-nextick-args/1.0.7: 811 | dev: true 812 | resolution: 813 | integrity: sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= 814 | /pseudomap/1.0.2: 815 | dev: true 816 | resolution: 817 | integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 818 | /punycode/1.4.1: 819 | dev: true 820 | resolution: 821 | integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4= 822 | /qs/6.4.0: 823 | dev: true 824 | resolution: 825 | integrity: sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= 826 | /read-pkg-up/1.0.1: 827 | dependencies: 828 | find-up: 1.1.2 829 | read-pkg: 1.1.0 830 | dev: true 831 | resolution: 832 | integrity: sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= 833 | /read-pkg/1.1.0: 834 | dependencies: 835 | load-json-file: 1.1.0 836 | normalize-package-data: 2.4.0 837 | path-type: 1.1.0 838 | dev: true 839 | resolution: 840 | integrity: sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= 841 | /readable-stream/2.3.3: 842 | dependencies: 843 | core-util-is: 1.0.2 844 | inherits: 2.0.3 845 | isarray: 1.0.0 846 | process-nextick-args: 1.0.7 847 | safe-buffer: 5.1.1 848 | string_decoder: 1.0.3 849 | util-deprecate: 1.0.2 850 | dev: true 851 | resolution: 852 | integrity: sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ== 853 | /redent/1.0.0: 854 | dependencies: 855 | indent-string: 2.1.0 856 | strip-indent: 1.0.1 857 | dev: true 858 | resolution: 859 | integrity: sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= 860 | /repeating/2.0.1: 861 | dependencies: 862 | is-finite: 1.0.2 863 | dev: true 864 | resolution: 865 | integrity: sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= 866 | /request/2.81.0: 867 | dependencies: 868 | aws-sign2: 0.6.0 869 | aws4: 1.6.0 870 | caseless: 0.12.0 871 | combined-stream: 1.0.5 872 | extend: 3.0.1 873 | forever-agent: 0.6.1 874 | form-data: 2.1.4 875 | har-validator: 4.2.1 876 | hawk: 3.1.3 877 | http-signature: 1.1.1 878 | is-typedarray: 1.0.0 879 | isstream: 0.1.2 880 | json-stringify-safe: 5.0.1 881 | mime-types: 2.1.17 882 | oauth-sign: 0.8.2 883 | performance-now: 0.2.0 884 | qs: 6.4.0 885 | safe-buffer: 5.1.1 886 | stringstream: 0.0.5 887 | tough-cookie: 2.3.2 888 | tunnel-agent: 0.6.0 889 | uuid: 3.1.0 890 | dev: true 891 | resolution: 892 | integrity: sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA= 893 | /require-directory/2.1.1: 894 | dev: true 895 | resolution: 896 | integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 897 | /require-main-filename/1.0.1: 898 | dev: true 899 | resolution: 900 | integrity: sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 901 | /rimraf/2.6.2: 902 | dependencies: 903 | glob: 7.1.2 904 | dev: true 905 | resolution: 906 | integrity: sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== 907 | /safe-buffer/5.1.1: 908 | dev: true 909 | resolution: 910 | integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== 911 | /sass-graph/2.2.4: 912 | dependencies: 913 | glob: 7.1.2 914 | lodash: 4.17.4 915 | scss-tokenizer: 0.2.3 916 | yargs: 7.1.0 917 | dev: true 918 | resolution: 919 | integrity: sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= 920 | /sass-loader/6.0.6: 921 | dependencies: 922 | async: 2.5.0 923 | clone-deep: 0.3.0 924 | loader-utils: 1.1.0 925 | lodash.tail: 4.1.1 926 | pify: 3.0.0 927 | dev: true 928 | resolution: 929 | integrity: sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ== 930 | /scss-tokenizer/0.2.3: 931 | dependencies: 932 | js-base64: 2.3.2 933 | source-map: 0.4.4 934 | dev: true 935 | resolution: 936 | integrity: sha1-jrBtualyMzOCTT9VMGQRSYR85dE= 937 | /semver/5.3.0: 938 | dev: true 939 | resolution: 940 | integrity: sha1-myzl094C0XxgEq0yaqa00M9U+U8= 941 | /semver/5.4.1: 942 | dev: true 943 | resolution: 944 | integrity: sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== 945 | /set-blocking/2.0.0: 946 | dev: true 947 | resolution: 948 | integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 949 | /shallow-clone/0.1.2: 950 | dependencies: 951 | is-extendable: 0.1.1 952 | kind-of: 2.0.1 953 | lazy-cache: 0.2.7 954 | mixin-object: 2.0.1 955 | dev: true 956 | resolution: 957 | integrity: sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= 958 | /signal-exit/3.0.2: 959 | dev: true 960 | resolution: 961 | integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 962 | /sntp/1.0.9: 963 | dependencies: 964 | hoek: 2.16.3 965 | dev: true 966 | resolution: 967 | integrity: sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg= 968 | /source-map/0.4.4: 969 | dependencies: 970 | amdefine: 1.0.1 971 | dev: true 972 | resolution: 973 | integrity: sha1-66T12pwNyZneaAMti092FzZSA2s= 974 | /spdx-correct/1.0.2: 975 | dependencies: 976 | spdx-license-ids: 1.2.2 977 | dev: true 978 | resolution: 979 | integrity: sha1-SzBz2TP/UfORLwOsVRlJikFQ20A= 980 | /spdx-expression-parse/1.0.4: 981 | dev: true 982 | resolution: 983 | integrity: sha1-m98vIOH0DtRH++JzJmGR/O1RYmw= 984 | /spdx-license-ids/1.2.2: 985 | dev: true 986 | resolution: 987 | integrity: sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc= 988 | /sshpk/1.13.1: 989 | dependencies: 990 | asn1: 0.2.3 991 | assert-plus: 1.0.0 992 | dashdash: 1.14.1 993 | getpass: 0.1.7 994 | dev: true 995 | optionalDependencies: 996 | bcrypt-pbkdf: 1.0.1 997 | ecc-jsbn: 0.1.1 998 | jsbn: 0.1.1 999 | tweetnacl: 0.14.5 1000 | resolution: 1001 | integrity: sha1-US322mKHFEMW3EwY/hzx2UBzm+M= 1002 | /stdout-stream/1.4.0: 1003 | dependencies: 1004 | readable-stream: 2.3.3 1005 | dev: true 1006 | resolution: 1007 | integrity: sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s= 1008 | /string-width/1.0.2: 1009 | dependencies: 1010 | code-point-at: 1.1.0 1011 | is-fullwidth-code-point: 1.0.0 1012 | strip-ansi: 3.0.1 1013 | dev: true 1014 | resolution: 1015 | integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 1016 | /string_decoder/1.0.3: 1017 | dependencies: 1018 | safe-buffer: 5.1.1 1019 | dev: true 1020 | resolution: 1021 | integrity: sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ== 1022 | /stringstream/0.0.5: 1023 | dev: true 1024 | resolution: 1025 | integrity: sha1-TkhM1N5aC7vuGORjB3EKioFiGHg= 1026 | /strip-ansi/3.0.1: 1027 | dependencies: 1028 | ansi-regex: 2.1.1 1029 | dev: true 1030 | resolution: 1031 | integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1032 | /strip-bom/2.0.0: 1033 | dependencies: 1034 | is-utf8: 0.2.1 1035 | dev: true 1036 | resolution: 1037 | integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= 1038 | /strip-indent/1.0.1: 1039 | dependencies: 1040 | get-stdin: 4.0.1 1041 | dev: true 1042 | resolution: 1043 | integrity: sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= 1044 | /supports-color/2.0.0: 1045 | dev: true 1046 | resolution: 1047 | integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 1048 | /tar/2.2.1: 1049 | dependencies: 1050 | block-stream: 0.0.9 1051 | fstream: 1.0.11 1052 | inherits: 2.0.3 1053 | dev: true 1054 | resolution: 1055 | integrity: sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= 1056 | /tough-cookie/2.3.2: 1057 | dependencies: 1058 | punycode: 1.4.1 1059 | dev: true 1060 | resolution: 1061 | integrity: sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo= 1062 | /trim-newlines/1.0.0: 1063 | dev: true 1064 | resolution: 1065 | integrity: sha1-WIeWa7WCpFA6QetST301ARgVphM= 1066 | /tunnel-agent/0.6.0: 1067 | dependencies: 1068 | safe-buffer: 5.1.1 1069 | dev: true 1070 | resolution: 1071 | integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 1072 | /tweetnacl/0.14.5: 1073 | dev: true 1074 | optional: true 1075 | resolution: 1076 | integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 1077 | /util-deprecate/1.0.2: 1078 | dev: true 1079 | resolution: 1080 | integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1081 | /uuid/3.1.0: 1082 | dev: true 1083 | resolution: 1084 | integrity: sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g== 1085 | /validate-npm-package-license/3.0.1: 1086 | dependencies: 1087 | spdx-correct: 1.0.2 1088 | spdx-expression-parse: 1.0.4 1089 | dev: true 1090 | resolution: 1091 | integrity: sha1-KAS6vnEq0zeUWaz74kdGqywwP7w= 1092 | /verror/1.10.0: 1093 | dependencies: 1094 | assert-plus: 1.0.0 1095 | core-util-is: 1.0.2 1096 | extsprintf: 1.3.0 1097 | dev: true 1098 | resolution: 1099 | integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 1100 | /which-module/1.0.0: 1101 | dev: true 1102 | resolution: 1103 | integrity: sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= 1104 | /which/1.3.0: 1105 | dependencies: 1106 | isexe: 2.0.0 1107 | dev: true 1108 | resolution: 1109 | integrity: sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg== 1110 | /wide-align/1.1.2: 1111 | dependencies: 1112 | string-width: 1.0.2 1113 | dev: true 1114 | resolution: 1115 | integrity: sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w== 1116 | /wrap-ansi/2.1.0: 1117 | dependencies: 1118 | string-width: 1.0.2 1119 | strip-ansi: 3.0.1 1120 | dev: true 1121 | resolution: 1122 | integrity: sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 1123 | /wrappy/1.0.2: 1124 | dev: true 1125 | resolution: 1126 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1127 | /y18n/3.2.1: 1128 | dev: true 1129 | resolution: 1130 | integrity: sha1-bRX7qITAhnnA136I53WegR4H+kE= 1131 | /yallist/2.1.2: 1132 | dev: true 1133 | resolution: 1134 | integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 1135 | /yargs-parser/5.0.0: 1136 | dependencies: 1137 | camelcase: 3.0.0 1138 | dev: true 1139 | resolution: 1140 | integrity: sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= 1141 | /yargs/7.1.0: 1142 | dependencies: 1143 | camelcase: 3.0.0 1144 | cliui: 3.2.0 1145 | decamelize: 1.2.0 1146 | get-caller-file: 1.0.2 1147 | os-locale: 1.4.0 1148 | read-pkg-up: 1.0.1 1149 | require-directory: 2.1.1 1150 | require-main-filename: 1.0.1 1151 | set-blocking: 2.0.0 1152 | string-width: 1.0.2 1153 | which-module: 1.0.0 1154 | y18n: 3.2.1 1155 | yargs-parser: 5.0.0 1156 | dev: true 1157 | resolution: 1158 | integrity: sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= 1159 | registry: 'https://registry.npmjs.org/' 1160 | shrinkwrapVersion: 3 1161 | specifiers: 1162 | node-sass: ^4.5.3 1163 | sass-loader: ^6.0.6 1164 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | accepts@~1.3.3: 6 | version "1.3.3" 7 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" 8 | dependencies: 9 | mime-types "~2.1.11" 10 | negotiator "0.6.1" 11 | 12 | ansi-regex@^2.0.0: 13 | version "2.1.1" 14 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 15 | 16 | ansi-styles@^2.2.1: 17 | version "2.2.1" 18 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 19 | 20 | array-flatten@1.1.1: 21 | version "1.1.1" 22 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 23 | 24 | babel-code-frame@^6.22.0: 25 | version "6.22.0" 26 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 27 | dependencies: 28 | chalk "^1.1.0" 29 | esutils "^2.0.2" 30 | js-tokens "^3.0.0" 31 | 32 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 33 | version "6.24.1" 34 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" 35 | dependencies: 36 | babel-helper-explode-assignable-expression "^6.24.1" 37 | babel-runtime "^6.22.0" 38 | babel-types "^6.24.1" 39 | 40 | babel-helper-call-delegate@^6.24.1: 41 | version "6.24.1" 42 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 43 | dependencies: 44 | babel-helper-hoist-variables "^6.24.1" 45 | babel-runtime "^6.22.0" 46 | babel-traverse "^6.24.1" 47 | babel-types "^6.24.1" 48 | 49 | babel-helper-define-map@^6.24.1: 50 | version "6.24.1" 51 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" 52 | dependencies: 53 | babel-helper-function-name "^6.24.1" 54 | babel-runtime "^6.22.0" 55 | babel-types "^6.24.1" 56 | lodash "^4.2.0" 57 | 58 | babel-helper-explode-assignable-expression@^6.24.1: 59 | version "6.24.1" 60 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 61 | dependencies: 62 | babel-runtime "^6.22.0" 63 | babel-traverse "^6.24.1" 64 | babel-types "^6.24.1" 65 | 66 | babel-helper-function-name@^6.24.1: 67 | version "6.24.1" 68 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 69 | dependencies: 70 | babel-helper-get-function-arity "^6.24.1" 71 | babel-runtime "^6.22.0" 72 | babel-template "^6.24.1" 73 | babel-traverse "^6.24.1" 74 | babel-types "^6.24.1" 75 | 76 | babel-helper-get-function-arity@^6.24.1: 77 | version "6.24.1" 78 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 79 | dependencies: 80 | babel-runtime "^6.22.0" 81 | babel-types "^6.24.1" 82 | 83 | babel-helper-hoist-variables@^6.24.1: 84 | version "6.24.1" 85 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 86 | dependencies: 87 | babel-runtime "^6.22.0" 88 | babel-types "^6.24.1" 89 | 90 | babel-helper-optimise-call-expression@^6.24.1: 91 | version "6.24.1" 92 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 93 | dependencies: 94 | babel-runtime "^6.22.0" 95 | babel-types "^6.24.1" 96 | 97 | babel-helper-regex@^6.24.1: 98 | version "6.24.1" 99 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" 100 | dependencies: 101 | babel-runtime "^6.22.0" 102 | babel-types "^6.24.1" 103 | lodash "^4.2.0" 104 | 105 | babel-helper-remap-async-to-generator@^6.24.1: 106 | version "6.24.1" 107 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" 108 | dependencies: 109 | babel-helper-function-name "^6.24.1" 110 | babel-runtime "^6.22.0" 111 | babel-template "^6.24.1" 112 | babel-traverse "^6.24.1" 113 | babel-types "^6.24.1" 114 | 115 | babel-helper-replace-supers@^6.24.1: 116 | version "6.24.1" 117 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 118 | dependencies: 119 | babel-helper-optimise-call-expression "^6.24.1" 120 | babel-messages "^6.23.0" 121 | babel-runtime "^6.22.0" 122 | babel-template "^6.24.1" 123 | babel-traverse "^6.24.1" 124 | babel-types "^6.24.1" 125 | 126 | babel-helper-vue-jsx-merge-props@^2.0.2: 127 | version "2.0.2" 128 | resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.2.tgz#aceb1c373588279e2755ea1cfd35c22394fd33f8" 129 | 130 | babel-messages@^6.23.0: 131 | version "6.23.0" 132 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 133 | dependencies: 134 | babel-runtime "^6.22.0" 135 | 136 | babel-plugin-check-es2015-constants@^6.22.0: 137 | version "6.22.0" 138 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 139 | dependencies: 140 | babel-runtime "^6.22.0" 141 | 142 | babel-plugin-syntax-async-functions@^6.8.0: 143 | version "6.13.0" 144 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 145 | 146 | babel-plugin-syntax-dynamic-import@^6.18.0: 147 | version "6.18.0" 148 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" 149 | 150 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 151 | version "6.13.0" 152 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 153 | 154 | babel-plugin-syntax-flow@^6.18.0: 155 | version "6.18.0" 156 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" 157 | 158 | babel-plugin-syntax-jsx@^6.18.0: 159 | version "6.18.0" 160 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 161 | 162 | babel-plugin-syntax-object-rest-spread@^6.8.0: 163 | version "6.13.0" 164 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 165 | 166 | babel-plugin-syntax-trailing-function-commas@^6.22.0: 167 | version "6.22.0" 168 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 169 | 170 | babel-plugin-transform-async-to-generator@^6.22.0: 171 | version "6.24.1" 172 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" 173 | dependencies: 174 | babel-helper-remap-async-to-generator "^6.24.1" 175 | babel-plugin-syntax-async-functions "^6.8.0" 176 | babel-runtime "^6.22.0" 177 | 178 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 179 | version "6.22.0" 180 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 181 | dependencies: 182 | babel-runtime "^6.22.0" 183 | 184 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 185 | version "6.22.0" 186 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 187 | dependencies: 188 | babel-runtime "^6.22.0" 189 | 190 | babel-plugin-transform-es2015-block-scoping@^6.23.0: 191 | version "6.24.1" 192 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" 193 | dependencies: 194 | babel-runtime "^6.22.0" 195 | babel-template "^6.24.1" 196 | babel-traverse "^6.24.1" 197 | babel-types "^6.24.1" 198 | lodash "^4.2.0" 199 | 200 | babel-plugin-transform-es2015-classes@^6.23.0: 201 | version "6.24.1" 202 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 203 | dependencies: 204 | babel-helper-define-map "^6.24.1" 205 | babel-helper-function-name "^6.24.1" 206 | babel-helper-optimise-call-expression "^6.24.1" 207 | babel-helper-replace-supers "^6.24.1" 208 | babel-messages "^6.23.0" 209 | babel-runtime "^6.22.0" 210 | babel-template "^6.24.1" 211 | babel-traverse "^6.24.1" 212 | babel-types "^6.24.1" 213 | 214 | babel-plugin-transform-es2015-computed-properties@^6.22.0: 215 | version "6.24.1" 216 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 217 | dependencies: 218 | babel-runtime "^6.22.0" 219 | babel-template "^6.24.1" 220 | 221 | babel-plugin-transform-es2015-destructuring@^6.23.0: 222 | version "6.23.0" 223 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 224 | dependencies: 225 | babel-runtime "^6.22.0" 226 | 227 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0: 228 | version "6.24.1" 229 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 230 | dependencies: 231 | babel-runtime "^6.22.0" 232 | babel-types "^6.24.1" 233 | 234 | babel-plugin-transform-es2015-for-of@^6.23.0: 235 | version "6.23.0" 236 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 237 | dependencies: 238 | babel-runtime "^6.22.0" 239 | 240 | babel-plugin-transform-es2015-function-name@^6.22.0: 241 | version "6.24.1" 242 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 243 | dependencies: 244 | babel-helper-function-name "^6.24.1" 245 | babel-runtime "^6.22.0" 246 | babel-types "^6.24.1" 247 | 248 | babel-plugin-transform-es2015-literals@^6.22.0: 249 | version "6.22.0" 250 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 251 | dependencies: 252 | babel-runtime "^6.22.0" 253 | 254 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: 255 | version "6.24.1" 256 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 257 | dependencies: 258 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 259 | babel-runtime "^6.22.0" 260 | babel-template "^6.24.1" 261 | 262 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 263 | version "6.24.1" 264 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" 265 | dependencies: 266 | babel-plugin-transform-strict-mode "^6.24.1" 267 | babel-runtime "^6.22.0" 268 | babel-template "^6.24.1" 269 | babel-types "^6.24.1" 270 | 271 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0: 272 | version "6.24.1" 273 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 274 | dependencies: 275 | babel-helper-hoist-variables "^6.24.1" 276 | babel-runtime "^6.22.0" 277 | babel-template "^6.24.1" 278 | 279 | babel-plugin-transform-es2015-modules-umd@^6.23.0: 280 | version "6.24.1" 281 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 282 | dependencies: 283 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 284 | babel-runtime "^6.22.0" 285 | babel-template "^6.24.1" 286 | 287 | babel-plugin-transform-es2015-object-super@^6.22.0: 288 | version "6.24.1" 289 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 290 | dependencies: 291 | babel-helper-replace-supers "^6.24.1" 292 | babel-runtime "^6.22.0" 293 | 294 | babel-plugin-transform-es2015-parameters@^6.23.0: 295 | version "6.24.1" 296 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 297 | dependencies: 298 | babel-helper-call-delegate "^6.24.1" 299 | babel-helper-get-function-arity "^6.24.1" 300 | babel-runtime "^6.22.0" 301 | babel-template "^6.24.1" 302 | babel-traverse "^6.24.1" 303 | babel-types "^6.24.1" 304 | 305 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0: 306 | version "6.24.1" 307 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 308 | dependencies: 309 | babel-runtime "^6.22.0" 310 | babel-types "^6.24.1" 311 | 312 | babel-plugin-transform-es2015-spread@^6.22.0: 313 | version "6.22.0" 314 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 315 | dependencies: 316 | babel-runtime "^6.22.0" 317 | 318 | babel-plugin-transform-es2015-sticky-regex@^6.22.0: 319 | version "6.24.1" 320 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 321 | dependencies: 322 | babel-helper-regex "^6.24.1" 323 | babel-runtime "^6.22.0" 324 | babel-types "^6.24.1" 325 | 326 | babel-plugin-transform-es2015-template-literals@^6.22.0: 327 | version "6.22.0" 328 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 329 | dependencies: 330 | babel-runtime "^6.22.0" 331 | 332 | babel-plugin-transform-es2015-typeof-symbol@^6.23.0: 333 | version "6.23.0" 334 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 335 | dependencies: 336 | babel-runtime "^6.22.0" 337 | 338 | babel-plugin-transform-es2015-unicode-regex@^6.22.0: 339 | version "6.24.1" 340 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 341 | dependencies: 342 | babel-helper-regex "^6.24.1" 343 | babel-runtime "^6.22.0" 344 | regexpu-core "^2.0.0" 345 | 346 | babel-plugin-transform-exponentiation-operator@^6.22.0: 347 | version "6.24.1" 348 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 349 | dependencies: 350 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 351 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 352 | babel-runtime "^6.22.0" 353 | 354 | babel-plugin-transform-flow-strip-types@^6.22.0: 355 | version "6.22.0" 356 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" 357 | dependencies: 358 | babel-plugin-syntax-flow "^6.18.0" 359 | babel-runtime "^6.22.0" 360 | 361 | babel-plugin-transform-object-rest-spread@^6.23.0: 362 | version "6.23.0" 363 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" 364 | dependencies: 365 | babel-plugin-syntax-object-rest-spread "^6.8.0" 366 | babel-runtime "^6.22.0" 367 | 368 | babel-plugin-transform-regenerator@^6.22.0: 369 | version "6.24.1" 370 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" 371 | dependencies: 372 | regenerator-transform "0.9.11" 373 | 374 | babel-plugin-transform-runtime@^6.15.0: 375 | version "6.23.0" 376 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" 377 | dependencies: 378 | babel-runtime "^6.22.0" 379 | 380 | babel-plugin-transform-strict-mode@^6.24.1: 381 | version "6.24.1" 382 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 383 | dependencies: 384 | babel-runtime "^6.22.0" 385 | babel-types "^6.24.1" 386 | 387 | babel-plugin-transform-vue-jsx@^3.1.2: 388 | version "3.4.3" 389 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.4.3.tgz#de57d8dd7d619333c981867728f3e6fdf68982ff" 390 | dependencies: 391 | esutils "^2.0.2" 392 | 393 | babel-preset-env@^1.2.1: 394 | version "1.5.1" 395 | resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.5.1.tgz#d2eca6af179edf27cdc305a84820f601b456dd0b" 396 | dependencies: 397 | babel-plugin-check-es2015-constants "^6.22.0" 398 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 399 | babel-plugin-transform-async-to-generator "^6.22.0" 400 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 401 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 402 | babel-plugin-transform-es2015-block-scoping "^6.23.0" 403 | babel-plugin-transform-es2015-classes "^6.23.0" 404 | babel-plugin-transform-es2015-computed-properties "^6.22.0" 405 | babel-plugin-transform-es2015-destructuring "^6.23.0" 406 | babel-plugin-transform-es2015-duplicate-keys "^6.22.0" 407 | babel-plugin-transform-es2015-for-of "^6.23.0" 408 | babel-plugin-transform-es2015-function-name "^6.22.0" 409 | babel-plugin-transform-es2015-literals "^6.22.0" 410 | babel-plugin-transform-es2015-modules-amd "^6.22.0" 411 | babel-plugin-transform-es2015-modules-commonjs "^6.23.0" 412 | babel-plugin-transform-es2015-modules-systemjs "^6.23.0" 413 | babel-plugin-transform-es2015-modules-umd "^6.23.0" 414 | babel-plugin-transform-es2015-object-super "^6.22.0" 415 | babel-plugin-transform-es2015-parameters "^6.23.0" 416 | babel-plugin-transform-es2015-shorthand-properties "^6.22.0" 417 | babel-plugin-transform-es2015-spread "^6.22.0" 418 | babel-plugin-transform-es2015-sticky-regex "^6.22.0" 419 | babel-plugin-transform-es2015-template-literals "^6.22.0" 420 | babel-plugin-transform-es2015-typeof-symbol "^6.23.0" 421 | babel-plugin-transform-es2015-unicode-regex "^6.22.0" 422 | babel-plugin-transform-exponentiation-operator "^6.22.0" 423 | babel-plugin-transform-regenerator "^6.22.0" 424 | browserslist "^2.1.2" 425 | invariant "^2.2.2" 426 | semver "^5.3.0" 427 | 428 | babel-preset-vue-app@^1.2.0: 429 | version "1.2.0" 430 | resolved "https://registry.yarnpkg.com/babel-preset-vue-app/-/babel-preset-vue-app-1.2.0.tgz#5ddfb7920020123a2482b12c6b36bdef9e3fb0ad" 431 | dependencies: 432 | babel-plugin-syntax-dynamic-import "^6.18.0" 433 | babel-plugin-transform-object-rest-spread "^6.23.0" 434 | babel-plugin-transform-runtime "^6.15.0" 435 | babel-preset-env "^1.2.1" 436 | babel-preset-vue "^0.1.0" 437 | babel-runtime "^6.20.0" 438 | 439 | babel-preset-vue@^0.1.0: 440 | version "0.1.0" 441 | resolved "https://registry.yarnpkg.com/babel-preset-vue/-/babel-preset-vue-0.1.0.tgz#adb84ceab3873bd72606fdd3f7047640f032301f" 442 | dependencies: 443 | babel-helper-vue-jsx-merge-props "^2.0.2" 444 | babel-plugin-syntax-jsx "^6.18.0" 445 | babel-plugin-transform-vue-jsx "^3.1.2" 446 | 447 | babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0: 448 | version "6.23.0" 449 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 450 | dependencies: 451 | core-js "^2.4.0" 452 | regenerator-runtime "^0.10.0" 453 | 454 | babel-template@^6.24.1: 455 | version "6.24.1" 456 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" 457 | dependencies: 458 | babel-runtime "^6.22.0" 459 | babel-traverse "^6.24.1" 460 | babel-types "^6.24.1" 461 | babylon "^6.11.0" 462 | lodash "^4.2.0" 463 | 464 | babel-traverse@^6.24.1: 465 | version "6.24.1" 466 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" 467 | dependencies: 468 | babel-code-frame "^6.22.0" 469 | babel-messages "^6.23.0" 470 | babel-runtime "^6.22.0" 471 | babel-types "^6.24.1" 472 | babylon "^6.15.0" 473 | debug "^2.2.0" 474 | globals "^9.0.0" 475 | invariant "^2.2.0" 476 | lodash "^4.2.0" 477 | 478 | babel-types@^6.19.0, babel-types@^6.24.1: 479 | version "6.24.1" 480 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" 481 | dependencies: 482 | babel-runtime "^6.22.0" 483 | esutils "^2.0.2" 484 | lodash "^4.2.0" 485 | to-fast-properties "^1.0.1" 486 | 487 | babylon@^6.11.0, babylon@^6.15.0: 488 | version "6.17.1" 489 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f" 490 | 491 | balanced-match@^1.0.0: 492 | version "1.0.0" 493 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 494 | 495 | brace-expansion@^1.1.7: 496 | version "1.1.8" 497 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 498 | dependencies: 499 | balanced-match "^1.0.0" 500 | concat-map "0.0.1" 501 | 502 | browserslist@^2.1.2: 503 | version "2.1.4" 504 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.1.4.tgz#cc526af4a1312b7d2e05653e56d0c8ab70c0e053" 505 | dependencies: 506 | caniuse-lite "^1.0.30000670" 507 | electron-to-chromium "^1.3.11" 508 | 509 | bulma@^0.5.2: 510 | version "0.5.2" 511 | resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.5.2.tgz#b5c4695075700b9539619555840d8f4f9f84b3a5" 512 | 513 | caniuse-lite@^1.0.30000670: 514 | version "1.0.30000670" 515 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000670.tgz#c94f7dbf0b68eaadc46d3d203f46e82e7801135e" 516 | 517 | chalk@^1.1.0: 518 | version "1.1.3" 519 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 520 | dependencies: 521 | ansi-styles "^2.2.1" 522 | escape-string-regexp "^1.0.2" 523 | has-ansi "^2.0.0" 524 | strip-ansi "^3.0.0" 525 | supports-color "^2.0.0" 526 | 527 | clipboard@^1.5.5: 528 | version "1.7.1" 529 | resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz#360d6d6946e99a7a1fef395e42ba92b5e9b5a16b" 530 | dependencies: 531 | good-listener "^1.2.2" 532 | select "^1.1.2" 533 | tiny-emitter "^2.0.0" 534 | 535 | concat-map@0.0.1: 536 | version "0.0.1" 537 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 538 | 539 | content-disposition@0.5.2: 540 | version "0.5.2" 541 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 542 | 543 | content-type@~1.0.2: 544 | version "1.0.2" 545 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" 546 | 547 | cookie-signature@1.0.6: 548 | version "1.0.6" 549 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 550 | 551 | cookie@0.3.1: 552 | version "0.3.1" 553 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 554 | 555 | core-js@^2.4.0: 556 | version "2.4.1" 557 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 558 | 559 | debug@2.6.7, debug@^2.2.0: 560 | version "2.6.7" 561 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" 562 | dependencies: 563 | ms "2.0.0" 564 | 565 | delegate@^3.1.2: 566 | version "3.1.3" 567 | resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.1.3.tgz#9a8251a777d7025faa55737bc3b071742127a9fd" 568 | 569 | depd@1.1.0, depd@~1.1.0: 570 | version "1.1.0" 571 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" 572 | 573 | destroy@~1.0.4: 574 | version "1.0.4" 575 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 576 | 577 | ee-first@1.1.1: 578 | version "1.1.1" 579 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 580 | 581 | electron-to-chromium@^1.3.11: 582 | version "1.3.11" 583 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.11.tgz#744761df1d67b492b322ce9aa0aba5393260eb61" 584 | 585 | encodeurl@~1.0.1: 586 | version "1.0.1" 587 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" 588 | 589 | escape-html@~1.0.3: 590 | version "1.0.3" 591 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 592 | 593 | escape-string-regexp@^1.0.2: 594 | version "1.0.5" 595 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 596 | 597 | esutils@^2.0.2: 598 | version "2.0.2" 599 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 600 | 601 | etag@~1.8.0: 602 | version "1.8.0" 603 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" 604 | 605 | express@^4.15.3: 606 | version "4.15.3" 607 | resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662" 608 | dependencies: 609 | accepts "~1.3.3" 610 | array-flatten "1.1.1" 611 | content-disposition "0.5.2" 612 | content-type "~1.0.2" 613 | cookie "0.3.1" 614 | cookie-signature "1.0.6" 615 | debug "2.6.7" 616 | depd "~1.1.0" 617 | encodeurl "~1.0.1" 618 | escape-html "~1.0.3" 619 | etag "~1.8.0" 620 | finalhandler "~1.0.3" 621 | fresh "0.5.0" 622 | merge-descriptors "1.0.1" 623 | methods "~1.1.2" 624 | on-finished "~2.3.0" 625 | parseurl "~1.3.1" 626 | path-to-regexp "0.1.7" 627 | proxy-addr "~1.1.4" 628 | qs "6.4.0" 629 | range-parser "~1.2.0" 630 | send "0.15.3" 631 | serve-static "1.12.3" 632 | setprototypeof "1.0.3" 633 | statuses "~1.3.1" 634 | type-is "~1.6.15" 635 | utils-merge "1.0.0" 636 | vary "~1.1.1" 637 | 638 | finalhandler@~1.0.3: 639 | version "1.0.3" 640 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89" 641 | dependencies: 642 | debug "2.6.7" 643 | encodeurl "~1.0.1" 644 | escape-html "~1.0.3" 645 | on-finished "~2.3.0" 646 | parseurl "~1.3.1" 647 | statuses "~1.3.1" 648 | unpipe "~1.0.0" 649 | 650 | forwarded@~0.1.0: 651 | version "0.1.0" 652 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" 653 | 654 | fresh@0.5.0: 655 | version "0.5.0" 656 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" 657 | 658 | fs.realpath@^1.0.0: 659 | version "1.0.0" 660 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 661 | 662 | glob@^7.1.2: 663 | version "7.1.2" 664 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 665 | dependencies: 666 | fs.realpath "^1.0.0" 667 | inflight "^1.0.4" 668 | inherits "2" 669 | minimatch "^3.0.4" 670 | once "^1.3.0" 671 | path-is-absolute "^1.0.0" 672 | 673 | globals@^9.0.0: 674 | version "9.17.0" 675 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" 676 | 677 | good-listener@^1.2.2: 678 | version "1.2.2" 679 | resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" 680 | dependencies: 681 | delegate "^3.1.2" 682 | 683 | has-ansi@^2.0.0: 684 | version "2.0.0" 685 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 686 | dependencies: 687 | ansi-regex "^2.0.0" 688 | 689 | http-errors@~1.6.1: 690 | version "1.6.1" 691 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" 692 | dependencies: 693 | depd "1.1.0" 694 | inherits "2.0.3" 695 | setprototypeof "1.0.3" 696 | statuses ">= 1.3.1 < 2" 697 | 698 | inflight@^1.0.4: 699 | version "1.0.6" 700 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 701 | dependencies: 702 | once "^1.3.0" 703 | wrappy "1" 704 | 705 | inherits@2, inherits@2.0.3: 706 | version "2.0.3" 707 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 708 | 709 | invariant@^2.2.0, invariant@^2.2.2: 710 | version "2.2.2" 711 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 712 | dependencies: 713 | loose-envify "^1.0.0" 714 | 715 | ipaddr.js@1.3.0: 716 | version "1.3.0" 717 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" 718 | 719 | js-tokens@^3.0.0: 720 | version "3.0.1" 721 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 722 | 723 | jsesc@~0.5.0: 724 | version "0.5.0" 725 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 726 | 727 | lodash@^4.2.0: 728 | version "4.17.4" 729 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 730 | 731 | loose-envify@^1.0.0: 732 | version "1.3.1" 733 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 734 | dependencies: 735 | js-tokens "^3.0.0" 736 | 737 | media-typer@0.3.0: 738 | version "0.3.0" 739 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 740 | 741 | merge-descriptors@1.0.1: 742 | version "1.0.1" 743 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 744 | 745 | methods@~1.1.2: 746 | version "1.1.2" 747 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 748 | 749 | mime-db@~1.27.0: 750 | version "1.27.0" 751 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 752 | 753 | mime-types@~2.1.11, mime-types@~2.1.15: 754 | version "2.1.15" 755 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 756 | dependencies: 757 | mime-db "~1.27.0" 758 | 759 | mime@1.3.4: 760 | version "1.3.4" 761 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" 762 | 763 | minimatch@^3.0.4: 764 | version "3.0.4" 765 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 766 | dependencies: 767 | brace-expansion "^1.1.7" 768 | 769 | ms@2.0.0: 770 | version "2.0.0" 771 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 772 | 773 | negotiator@0.6.1: 774 | version "0.6.1" 775 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 776 | 777 | on-finished@~2.3.0: 778 | version "2.3.0" 779 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 780 | dependencies: 781 | ee-first "1.1.1" 782 | 783 | once@^1.3.0: 784 | version "1.4.0" 785 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 786 | dependencies: 787 | wrappy "1" 788 | 789 | parseurl@~1.3.1: 790 | version "1.3.1" 791 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" 792 | 793 | path-is-absolute@^1.0.0: 794 | version "1.0.1" 795 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 796 | 797 | path-to-regexp@0.1.7: 798 | version "0.1.7" 799 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 800 | 801 | prettier@^1.5.2: 802 | version "1.5.2" 803 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.2.tgz#7ea0751da27b93bfb6cecfcec509994f52d83bb3" 804 | 805 | prism-themes@^1.0.0: 806 | version "1.0.0" 807 | resolved "https://registry.yarnpkg.com/prism-themes/-/prism-themes-1.0.0.tgz#58089547ed39df273e5195e1628c69177341bf88" 808 | 809 | prismjs@^1.6.0: 810 | version "1.6.0" 811 | resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.6.0.tgz#118d95fb7a66dba2272e343b345f5236659db365" 812 | optionalDependencies: 813 | clipboard "^1.5.5" 814 | 815 | private@^0.1.6: 816 | version "0.1.7" 817 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" 818 | 819 | proxy-addr@~1.1.4: 820 | version "1.1.4" 821 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" 822 | dependencies: 823 | forwarded "~0.1.0" 824 | ipaddr.js "1.3.0" 825 | 826 | qs@6.4.0: 827 | version "6.4.0" 828 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 829 | 830 | range-parser@~1.2.0: 831 | version "1.2.0" 832 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 833 | 834 | regenerate@^1.2.1: 835 | version "1.3.2" 836 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" 837 | 838 | regenerator-runtime@^0.10.0: 839 | version "0.10.5" 840 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 841 | 842 | regenerator-transform@0.9.11: 843 | version "0.9.11" 844 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" 845 | dependencies: 846 | babel-runtime "^6.18.0" 847 | babel-types "^6.19.0" 848 | private "^0.1.6" 849 | 850 | regexpu-core@^2.0.0: 851 | version "2.0.0" 852 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 853 | dependencies: 854 | regenerate "^1.2.1" 855 | regjsgen "^0.2.0" 856 | regjsparser "^0.1.4" 857 | 858 | regjsgen@^0.2.0: 859 | version "0.2.0" 860 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 861 | 862 | regjsparser@^0.1.4: 863 | version "0.1.5" 864 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 865 | dependencies: 866 | jsesc "~0.5.0" 867 | 868 | select@^1.1.2: 869 | version "1.1.2" 870 | resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" 871 | 872 | semver@^5.3.0: 873 | version "5.3.0" 874 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 875 | 876 | send@0.15.3: 877 | version "0.15.3" 878 | resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309" 879 | dependencies: 880 | debug "2.6.7" 881 | depd "~1.1.0" 882 | destroy "~1.0.4" 883 | encodeurl "~1.0.1" 884 | escape-html "~1.0.3" 885 | etag "~1.8.0" 886 | fresh "0.5.0" 887 | http-errors "~1.6.1" 888 | mime "1.3.4" 889 | ms "2.0.0" 890 | on-finished "~2.3.0" 891 | range-parser "~1.2.0" 892 | statuses "~1.3.1" 893 | 894 | serve-static@1.12.3: 895 | version "1.12.3" 896 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2" 897 | dependencies: 898 | encodeurl "~1.0.1" 899 | escape-html "~1.0.3" 900 | parseurl "~1.3.1" 901 | send "0.15.3" 902 | 903 | setprototypeof@1.0.3: 904 | version "1.0.3" 905 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 906 | 907 | "statuses@>= 1.3.1 < 2", statuses@~1.3.1: 908 | version "1.3.1" 909 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 910 | 911 | strip-ansi@^3.0.0: 912 | version "3.0.1" 913 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 914 | dependencies: 915 | ansi-regex "^2.0.0" 916 | 917 | supports-color@^2.0.0: 918 | version "2.0.0" 919 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 920 | 921 | tiny-emitter@^2.0.0: 922 | version "2.0.1" 923 | resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.1.tgz#e65919d91e488e2a78f7ebe827a56c6b188d51af" 924 | 925 | to-fast-properties@^1.0.1: 926 | version "1.0.3" 927 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 928 | 929 | type-is@~1.6.15: 930 | version "1.6.15" 931 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 932 | dependencies: 933 | media-typer "0.3.0" 934 | mime-types "~2.1.15" 935 | 936 | unpipe@~1.0.0: 937 | version "1.0.0" 938 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 939 | 940 | utils-merge@1.0.0: 941 | version "1.0.0" 942 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" 943 | 944 | vary@~1.1.1: 945 | version "1.1.1" 946 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" 947 | 948 | vue-router@^2.7.0: 949 | version "2.7.0" 950 | resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.7.0.tgz#16d424493aa51c3c8cce8b7c7210ea4c3a89aff1" 951 | 952 | vue@^2.3.4: 953 | version "2.3.4" 954 | resolved "https://registry.yarnpkg.com/vue/-/vue-2.3.4.tgz#5ec3b87a191da8090bbef56b7cfabd4158038171" 955 | 956 | wrappy@1: 957 | version "1.0.2" 958 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 959 | --------------------------------------------------------------------------------