Browse Source

[ADD] more components

Gogs 7 years ago
parent
commit
fc66bcb25f

+ 4 - 1
package.json

@@ -3,7 +3,9 @@
 	"version": "1.0.0",
 	"version": "1.0.0",
 	"main": "index.js",
 	"main": "index.js",
 	"license": "MIT",
 	"license": "MIT",
+	"privtate": true,
 	"scripts": {
 	"scripts": {
+		"start": "./node_modules/.bin/webpack --watch --config webpack.config.js",
 		"build": "./node_modules/.bin/webpack --progress --config webpack.config.js"
 		"build": "./node_modules/.bin/webpack --progress --config webpack.config.js"
 	},
 	},
 	"devDependencies": {
 	"devDependencies": {
@@ -19,7 +21,8 @@
 		"url-loader": "^0.5.9",
 		"url-loader": "^0.5.9",
 		"vue-loader": "^12.2.2",
 		"vue-loader": "^12.2.2",
 		"vue-template-compiler": "^2.4.1",
 		"vue-template-compiler": "^2.4.1",
-		"webpack": "^3.3.0"
+		"webpack": "^3.3.0",
+		"webpack-livereload-plugin": "^0.11.0"
 	},
 	},
 	"dependencies": {
 	"dependencies": {
 		"vue": "^2.4.1",
 		"vue": "^2.4.1",

+ 16 - 5
src/App.vue

@@ -1,17 +1,28 @@
 <template lang="pug">
 <template lang="pug">
     .pos
     .pos
-        h2 Hello from Eiru Pos
+        <product-searcher />
+        <products-grid /> 
+        <cart />
 </template>
 </template>
 
 
 <script>
 <script>
+    import ProductSearcher from './components/ProductSearcher'
+    import ProductsGrid from './components/ProductsGrid'
+    import Cart from './components/Cart'
+
     export default {
     export default {
-    
+        components: {
+            'product-searcher': ProductSearcher,
+            'products-grid': ProductsGrid,
+            'cart': Cart
+        }
     }
     }
 </script>
 </script>
 
 
 <style lang="sass">
 <style lang="sass">
     .pos
     .pos
-        background: 
-        }}}
-
+        width: 100%
+        heigth: 100%
+        display: flex
+        background: #fff
 </style>
 </style>

+ 15 - 0
src/components/Cart.vue

@@ -0,0 +1,15 @@
+<template lang="pug">
+    .cart
+        h2 Cart Place
+</template>
+
+<script>
+    export default {
+    
+    }
+</script>
+
+<style lang="sass">
+
+</style>
+

+ 14 - 0
src/components/ProductSearcher.vue

@@ -0,0 +1,14 @@
+<template lang="pug">
+    .pos-searcher
+        input(type="text" placeholder="Buscar un producto")
+</template>
+
+<script>
+    export default {
+
+    }
+</script>
+
+<style lang="sass">
+  
+</style>

+ 14 - 0
src/components/ProductsGrid.vue

@@ -0,0 +1,14 @@
+<template lang="pug">
+    .products-grid
+        h2 Products Grid
+</template>
+
+<script>
+    export default {
+    
+    }
+</script>
+
+<style lang="sass">
+
+</style>

+ 3 - 2
src/index.js

@@ -1,6 +1,6 @@
-
 import Vue from 'vue'
 import Vue from 'vue'
 import App from './App'
 import App from './App'
+import store from './store'
 
 
 Vue.config.productionTip = false
 Vue.config.productionTip = false
 Vue.config.silent = true
 Vue.config.silent = true
@@ -10,10 +10,11 @@ openerp.eiru_pos = (instance, local) => {
     local.PosWidget = instance.Widget.extend({
     local.PosWidget = instance.Widget.extend({
         start() {
         start() {
             this.vm = new Vue({
             this.vm = new Vue({
+                store,
                 el: this.el,
                 el: this.el,
                 template: '<App />',
                 template: '<App />',
                 components: { 
                 components: { 
-                    App 
+                    App
                 }
                 }
             });
             });
         },
         },

+ 0 - 0
src/components/ProductGrid.vue → src/store/actions.js


+ 16 - 0
src/store/index.js

@@ -0,0 +1,16 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+import products from './modules/products'
+import cart from './modules/cart'
+
+Vue.use(Vuex)
+
+const Store = new Vuex.Store({
+    modules: {
+        products,
+        cart
+    }
+})
+
+export default Store

+ 25 - 0
src/store/modules/cart.js

@@ -0,0 +1,25 @@
+const state = {
+    cart: [],
+    selectedCart: []
+}
+
+const getters = {
+    isEmpty (state) {
+        return state.cart.legth !== 0
+    }
+}
+
+const mutations = {
+
+}
+
+const actions = {
+
+}
+
+export default {
+    state,
+    getters,
+    mutations,
+    actions
+}

+ 44 - 0
src/store/modules/products.js

@@ -0,0 +1,44 @@
+const state = {
+    products: [],
+    selectedProducts: []
+}
+
+const getters = {
+    getProducts (state) {
+        return state.products
+    },
+    hasSelectedProducts (state) {
+        return state.selectedProducts.length !== 0
+    }
+}
+
+const mutations = {
+    fetchProducts (state) {
+
+    },
+    selectProducts (state, payload) {
+        state.selectedProducts = []
+
+        payload.products.forEach(item => {
+            state.products.push(item)
+        });
+    }
+}
+
+const actions = {
+    fetchProducts ({ commit }) {
+
+    },
+    selectProducts({ commit }, payload) {
+        commit('selectProducts', payload)
+    }
+}
+
+export default {
+    state,
+    getters,
+    mutations,
+    actions
+}
+
+console.log(openerp)

+ 0 - 0
src/store/mutations.js


+ 1 - 0
templates.xml

@@ -2,6 +2,7 @@
     <data>
     <data>
         <template id="eiru_pos.assets" name="Eiru Pos Assets" inherit_id="eiru_assets.assets">
         <template id="eiru_pos.assets" name="Eiru Pos Assets" inherit_id="eiru_assets.assets">
             <xpath expr="." position="inside">
             <xpath expr="." position="inside">
+                <script src="http://localhost:35729/livereload.js"></script>
                 <script type="text/javascript" src="/eiru_pos/static/src/main.js"></script>
                 <script type="text/javascript" src="/eiru_pos/static/src/main.js"></script>
             </xpath>
             </xpath>
         </template>
         </template>

+ 11 - 6
webpack.config.js

@@ -1,18 +1,22 @@
-var path = require('path');
+var Path = require('path');
+var LiveReloadPlugin = require('webpack-livereload-plugin')
 
 
 module.exports = {
 module.exports = {
-    entry: path.resolve('src/index.js'),
+    entry: Path.resolve('src/index.js'),
     output: {
     output: {
-        path: path.resolve('static/src'),
+        path: Path.resolve('static/src'),
         filename: 'main.js'
         filename: 'main.js'
     },
     },
     resolve: {
     resolve: {
         extensions: ['.js', '.vue', '.json'],
         extensions: ['.js', '.vue', '.json'],
         alias: {
         alias: {
             'vue$': 'vue/dist/vue.esm.js',
             'vue$': 'vue/dist/vue.esm.js',
-            '@': path.resolve('proj')
+            '@': Path.resolve('src')
         }
         }
     },
     },
+    plugins: [
+        new LiveReloadPlugin()
+    ],
     module: {
     module: {
         rules: [
         rules: [
             {
             {
@@ -22,14 +26,15 @@ module.exports = {
             {
             {
                 test: /\.js$/,
                 test: /\.js$/,
                 exclude: /node_modules/,
                 exclude: /node_modules/,
-                loader: 'babel-loader'
+                loader: 'babel-loader',
+                include: Path.resolve('src')
             },
             },
             {
             {
                 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
                 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
                 loader: 'url-loader',
                 loader: 'url-loader',
                 options: {
                 options: {
                     limit: 10000,
                     limit: 10000,
-                    name: path.posix.join('static', 'img/[name].[hash:7].[ext]')
+                    name: Path.posix.join('static', 'img/[name].[hash:7].[ext]')
                 }
                 }
             }
             }
         ]
         ]

+ 139 - 1
yarn.lock

@@ -789,6 +789,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
   version "4.11.7"
   version "4.11.7"
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.7.tgz#ddb048e50d9482790094c13eb3fcfc833ce7ab46"
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.7.tgz#ddb048e50d9482790094c13eb3fcfc833ce7ab46"
 
 
+body-parser@~1.14.0:
+  version "1.14.2"
+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz#1015cb1fe2c443858259581db53332f8d0cf50f9"
+  dependencies:
+    bytes "2.2.0"
+    content-type "~1.0.1"
+    debug "~2.2.0"
+    depd "~1.1.0"
+    http-errors "~1.3.1"
+    iconv-lite "0.4.13"
+    on-finished "~2.3.0"
+    qs "5.2.0"
+    raw-body "~2.1.5"
+    type-is "~1.6.10"
+
 boom@2.x.x:
 boom@2.x.x:
   version "2.10.1"
   version "2.10.1"
   resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
   resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
@@ -899,6 +914,14 @@ builtin-status-codes@^3.0.0:
   version "3.0.0"
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
   resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
 
 
+bytes@2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz#fd35464a403f6f9117c2de3609ecff9cae000588"
+
+bytes@2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339"
+
 camelcase-keys@^2.0.0:
 camelcase-keys@^2.0.0:
   version "2.1.0"
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
   resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
@@ -1142,6 +1165,10 @@ constants-browserify@^1.0.0:
   version "1.0.0"
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
   resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
 
 
+content-type@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
+
 convert-source-map@^1.1.0:
 convert-source-map@^1.1.0:
   version "1.5.0"
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
@@ -1332,6 +1359,12 @@ debug@^2.1.1, debug@^2.2.0:
   dependencies:
   dependencies:
     ms "2.0.0"
     ms "2.0.0"
 
 
+debug@~2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
+  dependencies:
+    ms "0.7.1"
+
 decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
 decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
   version "1.2.0"
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1352,6 +1385,10 @@ delegates@^1.0.0:
   version "1.0.0"
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
   resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
 
 
+depd@~1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
+
 des.js@^1.0.0:
 des.js@^1.0.0:
   version "1.0.0"
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
   resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
@@ -1396,6 +1433,10 @@ editorconfig@^0.13.2:
     lru-cache "^3.2.0"
     lru-cache "^3.2.0"
     sigmund "^1.0.1"
     sigmund "^1.0.1"
 
 
+ee-first@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+
 electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.14:
 electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.14:
   version "1.3.15"
   version "1.3.15"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz#08397934891cbcfaebbd18b82a95b5a481138369"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz#08397934891cbcfaebbd18b82a95b5a481138369"
@@ -1576,6 +1617,12 @@ fastparse@^1.1.1:
   version "1.1.1"
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
   resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
 
 
+faye-websocket@~0.10.0:
+  version "0.10.0"
+  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+  dependencies:
+    websocket-driver ">=0.5.1"
+
 file-loader@^0.11.2:
 file-loader@^0.11.2:
   version "0.11.2"
   version "0.11.2"
   resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34"
   resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34"
@@ -1854,6 +1901,13 @@ html-comment-regex@^1.1.0:
   version "1.1.1"
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
   resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
 
 
+http-errors@~1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942"
+  dependencies:
+    inherits "~2.0.1"
+    statuses "1"
+
 http-signature@~1.1.0:
 http-signature@~1.1.0:
   version "1.1.1"
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
   resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
@@ -1866,6 +1920,10 @@ https-browserify@0.0.1:
   version "0.0.1"
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
 
 
+iconv-lite@0.4.13:
+  version "0.4.13"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
+
 icss-replace-symbols@^1.1.0:
 icss-replace-symbols@^1.1.0:
   version "1.1.0"
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
   resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
@@ -2210,6 +2268,10 @@ lcid@^1.0.0:
   dependencies:
   dependencies:
     invert-kv "^1.0.0"
     invert-kv "^1.0.0"
 
 
+livereload-js@^2.2.0:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.2.2.tgz#6c87257e648ab475bc24ea257457edcc1f8d0bc2"
+
 load-json-file@^1.0.0:
 load-json-file@^1.0.0:
   version "1.1.0"
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -2319,6 +2381,10 @@ math-expression-evaluator@^1.2.14:
   version "1.2.17"
   version "1.2.17"
   resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
   resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
 
 
+media-typer@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+
 memory-fs@^0.4.0, memory-fs@~0.4.1:
 memory-fs@^0.4.0, memory-fs@~0.4.1:
   version "0.4.1"
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
   resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -2370,7 +2436,7 @@ mime-db@~1.27.0:
   version "1.27.0"
   version "1.27.0"
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
 
 
-mime-types@^2.1.12, mime-types@~2.1.7:
+mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.7:
   version "2.1.15"
   version "2.1.15"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
   dependencies:
   dependencies:
@@ -2415,6 +2481,10 @@ mixin-object@^2.0.1:
   dependencies:
   dependencies:
     minimist "0.0.8"
     minimist "0.0.8"
 
 
+ms@0.7.1:
+  version "0.7.1"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
+
 ms@2.0.0:
 ms@2.0.0:
   version "2.0.0"
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -2579,6 +2649,12 @@ object.omit@^2.0.0:
     for-own "^0.1.4"
     for-own "^0.1.4"
     is-extendable "^0.1.1"
     is-extendable "^0.1.1"
 
 
+on-finished@~2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  dependencies:
+    ee-first "1.1.1"
+
 once@^1.3.0, once@^1.3.3:
 once@^1.3.0, once@^1.3.3:
   version "1.4.0"
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -2649,6 +2725,10 @@ parse-json@^2.2.0:
   dependencies:
   dependencies:
     error-ex "^1.2.0"
     error-ex "^1.2.0"
 
 
+parseurl@~1.3.0:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
+
 path-browserify@0.0.0:
 path-browserify@0.0.0:
   version "0.0.0"
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
   resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
@@ -3139,6 +3219,14 @@ q@^1.1.2:
   version "1.5.0"
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
 
 
+qs@5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be"
+
+qs@~5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-5.1.0.tgz#4d932e5c7ea411cca76a312d39a606200fd50cd9"
+
 qs@~6.4.0:
 qs@~6.4.0:
   version "6.4.0"
   version "6.4.0"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
@@ -3171,6 +3259,14 @@ randombytes@^2.0.0, randombytes@^2.0.1:
   dependencies:
   dependencies:
     safe-buffer "^5.1.0"
     safe-buffer "^5.1.0"
 
 
+raw-body@~2.1.5:
+  version "2.1.7"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774"
+  dependencies:
+    bytes "2.4.0"
+    iconv-lite "0.4.13"
+    unpipe "1.0.0"
+
 rc@^1.1.7:
 rc@^1.1.7:
   version "1.2.1"
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
@@ -3513,6 +3609,10 @@ sshpk@^1.7.0:
     jsbn "~0.1.0"
     jsbn "~0.1.0"
     tweetnacl "~0.14.0"
     tweetnacl "~0.14.0"
 
 
+statuses@1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+
 stdout-stream@^1.4.0:
 stdout-stream@^1.4.0:
   version "1.4.0"
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
   resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
@@ -3643,6 +3743,17 @@ timers-browserify@^2.0.2:
   dependencies:
   dependencies:
     setimmediate "^1.0.4"
     setimmediate "^1.0.4"
 
 
+tiny-lr@^0.2.0:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.2.1.tgz#b3fdba802e5d56a33c2f6f10794b32e477ac729d"
+  dependencies:
+    body-parser "~1.14.0"
+    debug "~2.2.0"
+    faye-websocket "~0.10.0"
+    livereload-js "^2.2.0"
+    parseurl "~1.3.0"
+    qs "~5.1.0"
+
 to-arraybuffer@^1.0.0:
 to-arraybuffer@^1.0.0:
   version "1.0.1"
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
@@ -3683,6 +3794,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   version "0.14.5"
   version "0.14.5"
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
 
 
+type-is@~1.6.10:
+  version "1.6.15"
+  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
+  dependencies:
+    media-typer "0.3.0"
+    mime-types "~2.1.15"
+
 uglify-js@^2.6.1, uglify-js@^2.8.29:
 uglify-js@^2.6.1, uglify-js@^2.8.29:
   version "2.8.29"
   version "2.8.29"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
@@ -3722,6 +3840,10 @@ uniqs@^2.0.0:
   version "2.0.0"
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
   resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
 
 
+unpipe@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+
 url-loader@^0.5.9:
 url-loader@^0.5.9:
   version "0.5.9"
   version "0.5.9"
   resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295"
   resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295"
@@ -3833,6 +3955,12 @@ watchpack@^1.4.0:
     chokidar "^1.7.0"
     chokidar "^1.7.0"
     graceful-fs "^4.1.2"
     graceful-fs "^4.1.2"
 
 
+webpack-livereload-plugin@^0.11.0:
+  version "0.11.0"
+  resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-0.11.0.tgz#7b90bb258286e6638b95394520b9da901611f571"
+  dependencies:
+    tiny-lr "^0.2.0"
+
 webpack-sources@^1.0.1:
 webpack-sources@^1.0.1:
   version "1.0.1"
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf"
   resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf"
@@ -3867,6 +3995,16 @@ webpack@^3.3.0:
     webpack-sources "^1.0.1"
     webpack-sources "^1.0.1"
     yargs "^6.0.0"
     yargs "^6.0.0"
 
 
+websocket-driver@>=0.5.1:
+  version "0.6.5"
+  resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36"
+  dependencies:
+    websocket-extensions ">=0.1.1"
+
+websocket-extensions@>=0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7"
+
 whet.extend@~0.9.9:
 whet.extend@~0.9.9:
   version "0.9.9"
   version "0.9.9"
   resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
   resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"