diff --git a/.gitignore b/.gitignore index 99a7d21e0e51fa3c94e966dda19bcb97f09b8ea9..2360dc18fcad40d9eb29a59df074eee0a90e107d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,27 @@ -# IDEA/Webstorm project files -.idea -*.iml - ebin/ -tmp/ -node_modules/ -/config/ -bundle/ -build/ + +*/tmp */npm-debug.log */webpack-assets.json +*/build/ +*/public/bundle */.editorconfig */.gitignore */stats.json +!*/webpack.config.sample.js # Logs logs -*.log* +*.log + +# IDEA/Webstorm project files +.idea +*.iml # Mac files .DS_Store .editorconfig +Будет удалено public/ +/node_modules/ +/webpackConfigs/ diff --git a/config/webpack.dev.config.babel.js b/config/webpack.dev.config.babel.js deleted file mode 100644 index decc88664bddd29c82f0170ad983a0e386685d61..0000000000000000000000000000000000000000 --- a/config/webpack.dev.config.babel.js +++ /dev/null @@ -1,113 +0,0 @@ -import webpack from 'webpack'; -import HtmlWebpackPlugin from 'html-webpack-plugin'; -import ConcatPlugin from 'webpack-concat-plugin'; -import HtmlHardiskPlugin from 'html-webpack-harddisk-plugin'; -import autoprefixer from 'autoprefixer'; -import path from 'path'; - -const bypass = (req) => '/' + `${generatedEntry}`; -const outputFolderName = 'bundle'; -const generatedEntry = 'index.html'; -const localPort = 8080; -const backendOptions = { port: 8000, url: 'http://127.0.0.1' }; - -export default { - resolve: { - extensions: ['*', '.js', '.jsx', '.json'], - modules: ['node_modules', 'src'], - alias: { - Core: path.resolve(__dirname, 'src/core/'), - Pages: path.resolve(__dirname, 'src/pages/'), - Home: path.resolve(__dirname, 'src/pages/home/index'), - Dashboard: path.resolve(__dirname, 'src/pages/dashboard/index') - } - }, - devtool: 'inline-source-map', //eval-source-map - entry: [ - 'babel-polyfill', - 'react-hot-loader/patch', - "webpack/hot/only-dev-server", - 'webpack-dev-server/client?http://localhost:' + `${localPort}`, - path.resolve(__dirname, 'src/index.js') - ], - target: 'web', - output: { - path: path.resolve(__dirname, outputFolderName), - publicPath: '/', - filename: `[hash].[name].${outputFolderName}.js`, - chunkFilename: `[name].[id].${outputFolderName}.js` - }, - plugins: [ - new webpack.HotModuleReplacementPlugin(), - - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) - } - }), - new webpack.NoEmitOnErrorsPlugin(), - new webpack.optimize.CommonsChunkPlugin({ - filename: '[name].js', - names: ['vendor'], - minChunks: Infinity - }), - new HtmlWebpackPlugin({ - template: 'src/template.ejs', - filename: generatedEntry, - inject: true, - alwaysWriteToDisk: true - }), - new HtmlHardiskPlugin(), - new webpack.LoaderOptionsPlugin({ - minimize: false, - debug: true, - noInfo: false, // set to false to see a list of every file being bundled. - options: { - sassLoader: { - includePaths: [path.resolve(__dirname, 'src', 'scss')] - }, - context: '/', - postcss: () => [autoprefixer] - } - }) - //new ConcatPlugin({ - // uglify: false, - // useHash: false, - // name: 'utils', - // fileName: '[name].bundle.js', - // filesToConcat: [ - // 'src/app/root/index/assets/vendor/n2o/utf8.js', - // 'src/app/root/index/assets/vendor/n2o/bert.js', - // 'src/app/root/index/assets/vendor/n2o/bullet.js', - // 'src/app/root/index/assets/vendor/n2o/n2o.js', - // 'src/app/root/index/assets/vendor/n2o/ftp.js', - // 'src/app/root/index/assets/vendor/n2o/nitrogen.js', - // 'src/app/root/index/assets/vendor/utils/spa_mq.js', - // 'src/app/root/index/assets/vendor/utils/global.js', - // 'src/app/root/index/assets/vendor/utils/handlers.js', - // 'src/app/root/index/assets/vendor/utils/json-bert.js' - // ] - //}) - ], - devServer: { - proxy: [{ - path: '/', - target: `${backendOptions.url}` + ':' + `${backendOptions.port}`, - bypass - }], - contentBase: path.resolve(__dirname, outputFolderName), - historyApiFallback: true - }, - module: { - rules: [ - {test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel-loader']}, - {test: /\.eot(\?v=\d+.\d+.\d+)?$/, loader: 'file-loader'}, - {test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'}, - {test: /\.[ot]tf(\?v=\d+.\d+.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream'}, - {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=image/svg+xml'}, - {test: /\.(jpe?g|png|gif)$/i, loader: 'file-loader?name=[name].[ext]'}, - {test: /\.ico$/, loader: 'file-loader?name=[name].[ext]'}, - {test: /(\.css|\.scss|\.sass)$/, loaders: ['style-loader', 'css-loader?sourceMap', 'postcss-loader']} - ] - } -}; diff --git a/config/webpack.prod.config.babel.js b/config/webpack.prod.config.babel.js deleted file mode 100644 index ed0896419259a4a0b60a2e5fc66bebd8672d32f5..0000000000000000000000000000000000000000 --- a/config/webpack.prod.config.babel.js +++ /dev/null @@ -1,72 +0,0 @@ -import webpack from 'webpack'; -import HtmlWebpackPlugin from 'html-webpack-plugin'; -import ConcatPlugin from 'webpack-concat-plugin'; -import HtmlHardiskPlugin from 'html-webpack-harddisk-plugin'; -import autoprefixer from 'autoprefixer'; -import path from 'path'; - -const generatedEntry = 'index.html'; - -export default { - resolve: { - extensions: ['*', '.js', '.jsx', '.json'], - alias: { - Core: path.resolve(__dirname, 'src/core/'), - Pages: path.resolve(__dirname, 'src/pages/'), - Root: path.resolve(__dirname, 'src/pages/root/'), - Home: path.resolve(__dirname, 'src/pages/home/'), - Dashboard: path.resolve(__dirname, 'src/pages/dashboard') - } - }, - entry: [ - path.resolve(__dirname, 'src/index.js') - ], - target: 'web', - output: { - path: path.resolve(__dirname, 'build'), - publicPath: '/', - filename: '[hash].build.js' - }, - plugins: [ - new webpack.HotModuleReplacementPlugin(), - - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) - } - }), - - new webpack.NoEmitOnErrorsPlugin(), - new HtmlWebpackPlugin({ - template: 'src/template.ejs', - filename: generatedEntry, - inject: true, - alwaysWriteToDisk: true - }), - new HtmlHardiskPlugin(), - new webpack.LoaderOptionsPlugin({ - minimize: false, - debug: true, - noInfo: false, // set to false to see a list of every file being bundled. - options: { - sassLoader: { - includePaths: [path.resolve(__dirname, 'src', 'scss')] - }, - context: '/', - postcss: () => [autoprefixer] - } - }) - ], - module: { - rules: [ - {test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel-loader']}, - {test: /\.eot(\?v=\d+.\d+.\d+)?$/, loader: 'file-loader'}, - {test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'}, - {test: /\.[ot]tf(\?v=\d+.\d+.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream'}, - {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=image/svg+xml'}, - {test: /\.(jpe?g|png|gif)$/i, loader: 'file-loader?name=[name].[ext]'}, - {test: /\.ico$/, loader: 'file-loader?name=[name].[ext]'}, - {test: /(\.css|\.scss|\.sass)$/, loaders: ['style-loader', 'css-loader', 'postcss-loader']} - ] - } -}; diff --git a/package-lock.json b/package-lock.json index 062df826ae4d7dde75df1763c95073a49041ebcb..ed3e4547ade835edd76d00cd822d737841900ff7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -846,6 +846,12 @@ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", "dev": true }, + "babel-plugin-syntax-do-expressions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", + "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", + "dev": true + }, "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", @@ -870,6 +876,12 @@ "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", "dev": true }, + "babel-plugin-syntax-function-bind": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", + "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", + "dev": true + }, "babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", @@ -946,6 +958,16 @@ "babel-types": "6.26.0" } }, + "babel-plugin-transform-do-expressions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", + "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", + "dev": true, + "requires": { + "babel-plugin-syntax-do-expressions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -1211,6 +1233,16 @@ "babel-runtime": "6.26.0" } }, + "babel-plugin-transform-function-bind": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", + "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", + "dev": true, + "requires": { + "babel-plugin-syntax-function-bind": "6.13.0", + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", @@ -1361,6 +1393,38 @@ "semver": "5.4.1" } }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, "babel-preset-flow": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", @@ -1405,6 +1469,17 @@ "redbox-react": "1.5.0" } }, + "babel-preset-stage-0": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", + "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", + "dev": true, + "requires": { + "babel-plugin-transform-do-expressions": "6.22.0", + "babel-plugin-transform-function-bind": "6.22.0", + "babel-preset-stage-1": "6.24.1" + } + }, "babel-preset-stage-1": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", @@ -1720,28 +1795,6 @@ } } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.1", - "multicast-dns-service-types": "1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", - "dev": true - } - } - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -1977,12 +2030,6 @@ } } }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -2182,6 +2229,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", + "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -3093,6 +3141,15 @@ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.38" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -3265,31 +3322,6 @@ "randombytes": "2.0.5" } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", - "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, "doctrine": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", @@ -3716,11 +3748,81 @@ "is-symbol": "1.0.1" } }, + "es5-ext": { + "version": "0.10.38", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", + "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3733,6 +3835,18 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, "eslint": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.2.0.tgz", @@ -4101,12 +4215,28 @@ } } }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38" + } + }, "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", @@ -4162,6 +4292,34 @@ "merge": "1.2.0" } }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, "exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", @@ -4572,103 +4730,1013 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", - "integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "is-callable": "1.1.3" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.0", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true, - "requires": { - "globule": "1.2.0" - } - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "1.0.2" - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "dev": true, + "optional": true, "requires": { - "assert-plus": "1.0.0" + "nan": "2.7.0", + "node-pre-gyp": "0.6.39" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, "dev": true - } - } + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", + "integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "is-callable": "1.1.3" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.0", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "requires": { + "globule": "1.2.0" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } }, "glob": { "version": "7.1.2", @@ -5037,19 +6105,6 @@ "xtend": "4.0.1" } }, - "history": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", - "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", - "dev": true, - "requires": { - "invariant": "2.2.2", - "loose-envify": "1.3.1", - "resolve-pathname": "2.2.0", - "value-equal": "0.4.0", - "warning": "3.0.0" - } - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -5335,16 +6390,6 @@ "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", "dev": true }, - "import-local": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", - "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -5447,15 +6492,6 @@ } } }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true, - "requires": { - "meow": "3.7.0" - } - }, "interpret": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", @@ -5476,12 +6512,6 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, "ipaddr.js": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", @@ -5804,12 +6834,6 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=" }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -7105,12 +8129,6 @@ "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=", "dev": true }, - "killable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -7431,12 +8449,6 @@ "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", "dev": true }, - "loglevel": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz", - "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=", - "dev": true - }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -7564,6 +8576,14 @@ } } }, + "material-ui-icons": { + "version": "1.0.0-beta.17", + "resolved": "https://registry.npmjs.org/material-ui-icons/-/material-ui-icons-1.0.0-beta.17.tgz", + "integrity": "sha1-XxmvVKLZnu7zR6VUFKaFPhyFDcM=", + "requires": { + "recompose": "0.26.0" + } + }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", @@ -7609,6 +8629,15 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -7832,22 +8861,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "multicast-dns": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.1.tgz", - "integrity": "sha512-uV3/ckdsffHx9IrGQrx613mturMdMqQ06WTq+C09NsStJ9iNG6RcUWgPKs1Rfjy+idZT6tfQoXEusGNnEZhT3w==", - "dev": true, - "requires": { - "dns-packet": "1.2.2", - "thunky": "0.1.0" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -7905,12 +8918,6 @@ "is-stream": "1.1.0" } }, - "node-forge": { - "version": "0.6.33", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", - "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", - "dev": true - }, "node-gyp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", @@ -8375,6 +9382,15 @@ } } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -8696,6 +9712,12 @@ "object-assign": "4.1.0" } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, "p-limit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", @@ -8811,6 +9833,22 @@ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "requires": { + "process": "0.11.10", + "util": "0.10.3" + }, + "dependencies": { + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + } + } + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", @@ -8839,12 +9877,24 @@ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -11442,36 +12492,6 @@ } } }, - "react-hot-loader": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.1.3.tgz", - "integrity": "sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ==", - "dev": true, - "requires": { - "global": "4.3.2", - "react-deep-force-update": "2.1.1", - "react-proxy": "3.0.0-alpha.1", - "redbox-react": "1.5.0", - "source-map": "0.6.1" - }, - "dependencies": { - "react-deep-force-update": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz", - "integrity": "sha1-jqQmPNZFWgULN0RbPwj9g52G6Qk=", - "dev": true - }, - "react-proxy": { - "version": "3.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz", - "integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=", - "dev": true, - "requires": { - "lodash": "4.17.4" - } - } - } - }, "react-input-autosize": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.0.1.tgz", @@ -12257,35 +13277,12 @@ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, - "resolve-pathname": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", - "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==", - "dev": true - }, "resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", @@ -12540,15 +13537,6 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, - "selfsigned": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", - "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", - "dev": true, - "requires": { - "node-forge": "0.6.33" - } - }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", @@ -12973,31 +13961,6 @@ } } }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.2.0" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - } - } - }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -13014,9 +13977,9 @@ "dev": true }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { @@ -13292,6 +14255,12 @@ "is-utf8": "0.2.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", @@ -13574,12 +14543,6 @@ "xtend": "4.0.1" } }, - "thunky": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", - "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", - "dev": true - }, "timers-browserify": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", @@ -13770,6 +14733,65 @@ "dev": true, "optional": true }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.1" + }, + "dependencies": { + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, "ultron": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", @@ -13905,7 +14927,6 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, "requires": { "inherits": "2.0.1" }, @@ -13913,8 +14934,7 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" } } }, @@ -13987,12 +15007,6 @@ "spdx-expression-parse": "1.0.4" } }, - "value-equal": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", - "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==", - "dev": true - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -14094,155 +15108,175 @@ "dev": true }, "webpack": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz", - "integrity": "sha1-LgRX8KuxrF3zqxBsacZy8jZ4Xwc=", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", + "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", "dev": true, "requires": { "acorn": "5.1.2", "acorn-dynamic-import": "2.0.2", - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "async": "2.5.0", + "ajv": "5.2.3", + "ajv-keywords": "2.1.0", + "async": "2.6.0", "enhanced-resolve": "3.4.1", + "escope": "3.6.0", "interpret": "1.0.4", "json-loader": "0.5.4", "json5": "0.5.1", "loader-runner": "2.3.0", - "loader-utils": "0.2.17", + "loader-utils": "1.1.0", "memory-fs": "0.4.1", "mkdirp": "0.5.1", "node-libs-browser": "2.0.0", "source-map": "0.5.7", - "supports-color": "3.2.3", + "supports-color": "4.4.0", "tapable": "0.2.8", - "uglify-js": "2.8.29", + "uglifyjs-webpack-plugin": "0.4.6", "watchpack": "1.4.0", - "webpack-sources": "0.2.3", - "yargs": "6.4.0" + "webpack-sources": "1.0.1", + "yargs": "8.0.2" }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "lodash": "4.17.4" } }, - "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "lodash": "4.17.4" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" } }, - "cliui": { + "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.0" + "pify": "2.3.0" } }, - "source-list-map": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "has-flag": "1.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, - "webpack-sources": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "source-list-map": "1.1.2", - "source-map": "0.5.7" + "ansi-regex": "3.0.0" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -14552,69 +15586,30 @@ } }, "webpack-dev-server": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz", - "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz", + "integrity": "sha1-MThM6BE2vhCAtLTN4OubkOVO5s8=", "dev": true, "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", "chokidar": "1.7.0", "compression": "1.7.1", "connect-history-api-fallback": "1.3.0", - "debug": "3.1.0", - "del": "3.0.0", "express": "4.16.2", "html-entities": "1.2.1", "http-proxy-middleware": "0.17.4", - "import-local": "0.1.1", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.0", - "opn": "5.1.0", + "opn": "4.0.2", "portfinder": "1.0.13", - "selfsigned": "1.10.1", "serve-index": "1.8.0", "sockjs": "0.3.18", - "sockjs-client": "1.1.4", + "sockjs-client": "1.1.2", "spdy": "3.4.7", "strip-ansi": "3.0.1", - "supports-color": "4.4.0", + "supports-color": "3.2.3", "webpack-dev-middleware": "1.11.0", - "yargs": "6.6.0" + "yargs": "6.4.0" }, "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.1" - } - }, "express": { "version": "4.16.2", "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", @@ -14651,17 +15646,15 @@ "type-is": "1.6.15", "utils-merge": "1.0.1", "vary": "1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + } + }, + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" } }, "finalhandler": { @@ -14677,17 +15670,6 @@ "parseurl": "1.3.2", "statuses": "1.3.1", "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } } }, "fresh": { @@ -14696,26 +15678,11 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "http-errors": { "version": "1.6.2", @@ -14743,27 +15710,6 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, - "opn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", - "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", @@ -14789,17 +15735,6 @@ "on-finished": "2.3.0", "range-parser": "1.2.0", "statuses": "1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } } }, "serve-static": { @@ -14820,32 +15755,34 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, + "sockjs-client": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.2.tgz", + "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", + "dev": true, + "requires": { + "debug": "2.6.9", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.2.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" - } } } }, diff --git a/package.json b/package.json index cef0af14ae64950c4f259f3dc8965896f4294e21..2b811dbad0d2bfb3d31a99cdeefbe2917fdd74ee 100644 --- a/package.json +++ b/package.json @@ -6,19 +6,15 @@ "npm": ">=5" }, "scripts": { - "analyze-bundle": "babel-node ./tools/analyzeBundle.js", - "build": "NODE_ENV=production webpack --config ./webpack.prod.config.babel.js -p --progress", - "clean:prod": "npm run remove:prod && mkdir build", - "clean:dev": "npm run remove && mkdir bundle", - "prebuild:prod": "npm run clean:prod", - "prebuild:dev": "npm run clean:dev", - "remove:prod": "rimraf ./build", - "remove:dev": "rimraf ./bundle", - "start": "NODE_ENV=development webpack-dev-server --config ./webpack.dev.config.babel.js --inline", + "build": "npm run clean && webpack --config webpackConfigs/webpack.production.config.js", + "clean": "rimraf src/build/*", + "client": "NODE_ENV=development babel-node webpackConfigs/webPackServerApp.js", + "dev": "npm run client && concurrently --kill-others" }, "author": "", "license": "MIT", "dependencies": { + "history": "^3.2.1", "localforage": "^1.5.6", "lodash": "^4.17.4", "material-ui": "^1.0.0-beta.29", @@ -26,6 +22,7 @@ "mqtt": "^2.15.1", "mqtt-localforage-store": "^1.0.5", "object-assign": "4.1.0", + "path": "^0.12.7", "raven-js": "^3.22.1", "react": "15.5.4", "react-custom-scrollbars": "^4.2.1", @@ -34,6 +31,7 @@ "react-materialize": "^0.18.4", "react-redux": "^5.0.5", "react-redux-loading-bar": "^3.0.0", + "react-responsive-modal": "^2.0.0", "react-router": "^3.2.0", "react-router-navigation-prompt": "^1.5.5", "react-sanfona": "^0.4.0", @@ -47,17 +45,18 @@ "devDependencies": { "autoprefixer": "7.1.2", "babel-cli": "6.24.1", - "babel-core": "6.25.0", + "babel-core": "^6.25.0", "babel-eslint": "7.2.3", "babel-jest": "20.0.3", - "babel-loader": "7.1.1", + "babel-loader": "^7.1.1", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-react-constant-elements": "6.23.0", "babel-plugin-transform-react-remove-prop-types": "0.4.6", - "babel-polyfill": "6.23.0", + "babel-polyfill": "^6.23.0", "babel-preset-env": "1.6.0", "babel-preset-react": "6.24.1", "babel-preset-react-hmre": "^1.1.1", + "babel-preset-stage-0": "^6.24.1", "babel-preset-stage-1": "6.24.1", "babel-register": "^6.26.0", "browser-sync": "2.18.12", @@ -72,7 +71,6 @@ "eslint-watch": "3.1.2", "extract-text-webpack-plugin": "3.0.0-rc.2", "file-loader": "0.11.2", - "history": "^4.6.0", "html-webpack-harddisk-plugin": "^0.1.0", "html-webpack-plugin": "2.29.0", "http-proxy-middleware": "^0.17.4", @@ -129,8 +127,7 @@ "env": { "development": { "presets": [ - "env", - "react-hmre" + "env" ], "plugins": [ "transform-class-properties" diff --git a/src/componets/ChatListItem/ChatListItem.js b/src/componets/ChatListItem/ChatListItem.js new file mode 100644 index 0000000000000000000000000000000000000000..dabbea0f7863e18fccb636b2c3dd5614a3886239 --- /dev/null +++ b/src/componets/ChatListItem/ChatListItem.js @@ -0,0 +1,81 @@ +import React,{ Component} from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from 'material-ui/styles'; +import List, { ListItem, ListItemText } from 'material-ui/List'; +import Avatar from 'material-ui/Avatar'; +import ImageIcon from 'material-ui-icons/Image'; +import WorkIcon from 'material-ui-icons/Work'; +import BeachAccessIcon from 'material-ui-icons/BeachAccess'; +import {ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography} from "material-ui"; +import ListItemSecondaryAction from "material-ui/es/List/ListItemSecondaryAction"; +import Button from "material-ui/es/Button/Button"; + +const styles = theme => ({ + root: { + width: '100%', + backgroundColor: theme.palette.background.paper, + }, + panelContent:{ + margin: 0, + display: 'flow-root' + }, + panelRoot:{ + padding: 0 + }, + panelDetails:{ + background: '#1b1c20', + + }, + button: { + padding: 0, + marginRight:5, + minHeight: 25, + borderRadius: '4px', + fontSize: 10, + background: '#d8d8d8' + }, +}); + +//TODO: Move Button as component +class ChatListItem extends Component { + constructor(props) { + super(props); + } + state = { + open: false, + }; + + render(){ + const { classes, data } = this.props; + const { open, handleOpenChat } = this.props; + return ( +
+ {this.setState({open: !this.state.open})}}> + + + + + + + + + + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa, earum! + + +
+ ); + } + +} + +ChatListItem.propTypes = { + classes: PropTypes.object.isRequired, + data: PropTypes.object.isRequired, + handleOpenChat: PropTypes.func +}; + +export default withStyles(styles)(ChatListItem); \ No newline at end of file diff --git a/src/componets/PaperWithDrop/PaperWithDrop.js b/src/componets/PaperWithDrop/PaperWithDrop.js new file mode 100644 index 0000000000000000000000000000000000000000..dc409f2ff43eb98c01080ddd5e6d0c0c99d7b1c5 --- /dev/null +++ b/src/componets/PaperWithDrop/PaperWithDrop.js @@ -0,0 +1,53 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from 'material-ui/styles'; +import { Paper } from 'material-ui'; +import Button from 'material-ui/Button'; +import ExpandMore from 'material-ui-icons/ExpandMore'; + +const styles = { + item: { + borderRadius: '8px', + }, + button: { + padding: 0, + minHeight: 25, + borderRadius: '0 0 8px 8px', + background: '#34373c' + }, + itemLabel: { + margin: '0 0 5px', + fontSize: 14, + lineHeight: 1.2, + color: '#777777' + } +}; + +class PaperWithDrop extends React.Component { + state = {}; + + render() { + const { classes, data } = this.props; + + return ( +
+

Lorem ipsum...

+ + { + data + } + + +
+ ); + } +} + +PaperWithDrop.propTypes = { + classes: PropTypes.object.isRequired, + data: PropTypes.array.isRequired +}; + +export default withStyles(styles)(PaperWithDrop); \ No newline at end of file diff --git a/src/componets/index.js b/src/componets/index.js index cb6dad6a1a2d1795dd5008abb4dece9b7c66f41b..61066a0212572d75fd6e93269c7a206e388dbd02 100644 --- a/src/componets/index.js +++ b/src/componets/index.js @@ -1,9 +1,9 @@ -import MenuAppBar from '../containers/MenuAppBar/MenuAppBar'; import LogoIcon from './SvgIcons/LogoIcon/LogoIcon'; -import LeftMenu from '../containers/ActionMenu/ActionMenu'; +import ChatListItem from './ChatListItem/ChatListItem'; +import PaperWithDrop from './PaperWithDrop/PaperWithDrop'; export { - MenuAppBar, LogoIcon, - LeftMenu + ChatListItem, + PaperWithDrop }; \ No newline at end of file diff --git a/src/containers/ActionMenu/ActionMenu.js b/src/containers/ActionMenu/ActionMenu.js index fd0535ed9cca561efd391a68879cb5db07a24ca8..e357762d1e98adb4b03d1ebe53981c9b329702c6 100644 --- a/src/containers/ActionMenu/ActionMenu.js +++ b/src/containers/ActionMenu/ActionMenu.js @@ -10,22 +10,52 @@ import FolderIcon from 'material-ui-icons/Folder'; import Divider from 'material-ui/Divider'; import {Link} from 'react-router'; import Grid from 'material-ui/Grid'; -import {CallsIcon, ChatIcon, GroupsIcon, ContactsIcon, OptionsIcon} from '../../componets/SvgIcons/index' +import {CallsIcon, ChatIcon, GroupsIcon, ContactsIcon, OptionsIcon} from '../../componets/SvgIcons/index'; +import { LogoIcon } from '../../componets/index'; const styles = theme => ({ root: { - flexGrow: 1, - maxWidth: 120, + position: 'fixed', + top: 0, + left: 0, + zIndex: 11, + width: 80, + margin: 0, + height: '100vh', + background: '#27292e', + boxShadow: '0 0 16px 0 #000' + }, + logo: { + height: 64, + background: 'linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.55) 100%)' + }, + logoDevider: { + backgroundColor: '#be0211' }, demo: { - backgroundColor: theme.palette.background.paper, + // backgroundColor: theme.palette.background.paper }, menu: { - height:'100%', + height: '100%', }, title: { margin: `${theme.spacing.unit * 4}px 0 ${theme.spacing.unit * 2}px`, }, + item: { + flexWrap: 'wrap' + }, + itemLink: { + display: 'block', + marginRight: 0, + width: '100%', + height: 'auto', + textAlign: 'center' + }, + name: { + padding: 0, + fontSize: 12, + textAlign: 'center' + } }); @@ -41,57 +71,50 @@ class LeftMenu extends React.Component { return (
-
- - - - - - - - - - - - - - - - - - - - - - +
+ + + +
+ +
+ + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + + + + + + + - -
+ + + + + + +
+
); } diff --git a/src/containers/ActivityList/ActivityList.js b/src/containers/ActivityList/ActivityList.js index aa84fbb018e61231aa0229982356c21fdfaed3c1..3cee1cee790ce117f8e6375d6177ee8a5e9890a2 100644 --- a/src/containers/ActivityList/ActivityList.js +++ b/src/containers/ActivityList/ActivityList.js @@ -4,21 +4,25 @@ import { withStyles } from 'material-ui/styles'; import Drawer from 'material-ui/Drawer'; import Button from 'material-ui/Button'; import List from 'material-ui/List'; - +import { ChatListItem } from '../../componets'; const styles = { list: { - width: 250, + width: '100%', }, listFull: { width: 'auto', }, + paper:{ + top:'auto', + position:'unset' + } }; class ActivityList extends React.Component { state = { top: false, - left: false, + left: true, bottom: false, right: false, }; @@ -32,20 +36,34 @@ class ActivityList extends React.Component { render() { const { classes } = this.props; + const mockUsers = [{name:'John Smith'},{name:'John Smith2'},{name:'John Smith3'},{name:'John Smith4'},{name:'John Smith5'}]; + const sideList = (
- Contacts + + {mockUsers.map((item,index)=>( + + ))} +
); return (
- - +
{ + console.log('Clicked'); + }} onKeyDown={this.toggleDrawer('left', false)} > {sideList} diff --git a/src/containers/ChatModal/ChatModal.js b/src/containers/ChatModal/ChatModal.js new file mode 100644 index 0000000000000000000000000000000000000000..8fa651e4686ba1bfd0d5916d15eea9687ec90b6d --- /dev/null +++ b/src/containers/ChatModal/ChatModal.js @@ -0,0 +1,22 @@ +import React from 'react'; +import Modal from 'react-responsive-modal'; +import { withStyles } from 'material-ui/styles' + + +export class ChatModal extends React.Component { + state = { + open: false, + }; + + + render() { + const { open, onCloseChat } = this.props; + return ( +
+ {onCloseChat()}} little> +

Simple centered modal

+
+
+ ); + } +} \ No newline at end of file diff --git a/src/containers/MenuAppBar/MenuAppBar.js b/src/containers/MenuAppBar/MenuAppBar.js index 08e4460cf8408bdd32dbf7799ea7e27816f7363a..aff4b5b6a7dadc37e0aaf727551908e538b8c948 100644 --- a/src/containers/MenuAppBar/MenuAppBar.js +++ b/src/containers/MenuAppBar/MenuAppBar.js @@ -8,15 +8,29 @@ import { Grid,Avatar, Input,InputAdornment } from 'material-ui'; import { withStyles } from 'material-ui/styles'; import avatar from '../../../assets/img/Richard_Smith.png'; import Icon from 'material-ui/Icon'; -import { LogoIcon } from '../../componets/index'; +import { Link } from 'react-router'; const styles = { root: { - width: '100%', + position: 'fixed', + top: 0, + left: 0, + zIndex: 10, + paddingLeft: 80, + width: '100%' + }, + appBar: { + background: '#24262b', + boxShadow: 'box-shadow: 0 2px 13px 0 #000' }, - title:{ textAlign:'center' + }, + toolBar: { + justifyContent: 'space-between' + }, + settings: { + display: 'flex' } }; @@ -29,16 +43,16 @@ class MenuAppBar extends React.Component { render() { const { classes } = this.props; - return ( + console.log('console',this.props.classes); + return (
- - - -
- DashBoard -
- - + + +
DashBoard
+
+ + +
diff --git a/src/containers/index.js b/src/containers/index.js index c51634bacb37534a370d3f6f7f841d60e318af87..35e1577720230591decadd2a5a078d8b941904d4 100644 --- a/src/containers/index.js +++ b/src/containers/index.js @@ -1,9 +1,10 @@ import ActionMenu from './ActionMenu/ActionMenu'; import MenuAppBar from './MenuAppBar/MenuAppBar'; import ActivityList from './ActivityList/ActivityList'; - +import ChatModal from './ChatModal/ChatModal' export { ActionMenu, MenuAppBar, - ActivityList + ActivityList, + ChatModal } \ No newline at end of file diff --git a/src/core/loggers/SentryError.logger b/src/core/loggers/SentryError.logger new file mode 100644 index 0000000000000000000000000000000000000000..6e39bd9dec48afaaab6f154f21218524e76103b1 --- /dev/null +++ b/src/core/loggers/SentryError.logger @@ -0,0 +1,10 @@ +import Raven from 'raven-js'; + +export default ( + Raven + .config( + 'https://1febbedf16804e8eb4586fa445f8567c@sentry.io/253546', + { autoBreadcrumbs: false } + ) + .install() +); \ No newline at end of file diff --git a/src/core/store/Configure.prod.store.js b/src/core/store/Configure.prod.store.js deleted file mode 100644 index 2ce2fed133c0a9381b35d29dd6dbf956cd2d1a96..0000000000000000000000000000000000000000 --- a/src/core/store/Configure.prod.store.js +++ /dev/null @@ -1,36 +0,0 @@ -import { applyMiddleware, createStore, compose } from 'redux'; -import { createEpicMiddleware } from 'redux-observable'; -import trottle from 'lodash/throttle' -import * as StateManager from '../state/initital-state.manager'; - -function configureStore(rootReducer) { - let delayTime = 1000; - const epicMiddleware = createEpicMiddleware(epic); - - const initialState = Object.assign( - {}, - {options: StateManager.loadShim()}, - StateManager.loadState() - ); - - const middlewares = [ - reduxImmutableStateInvariant(), - epicMiddleware, - logger - ]; - - - const store = createStore(rootReducer, {}, compose( - applyMiddleware(...middlewares) - ) - ); - - store.subscribe(trottle(() => { - console.log(store.getState()); - StateManager.saveState(store.getState()); - }, delayTime)); - - return store; -} - -module.exports = configureStore; diff --git a/src/core/store/index.js b/src/core/store/index.js index 78bc3083ffcf2492029cc79fd5cbaebcc65a9eb6..99700df55dda5ecb388dc1fc790ab0f2b9f07386 100644 --- a/src/core/store/index.js +++ b/src/core/store/index.js @@ -2,9 +2,11 @@ import { setupClientEntry, setupDevEntry } from './Browser.store'; import { incomeDB, outcomeDB } from './ConfigureBrowser.store'; import MqttLocaforageStore from './MqttLocaforage.store'; +console.log(process.env.NODE_ENV); + const configureStore = process.env.NODE_ENV === "development" ? require('./Configure.dev.store') - : require('./Configure.prod.store'); + : ''; const browserStorage = localStorage !== 'undefined' ? localStorage : outcomeDB; diff --git a/src/template.ejs b/src/index.html old mode 100755 new mode 100644 similarity index 92% rename from src/template.ejs rename to src/index.html index 38b18b1a4645e9867f79b5896507d457f3dc5f7e..0f152d13d6d4836e5957c7d66920b965b38073f5 --- a/src/template.ejs +++ b/src/index.html @@ -1,6 +1,8 @@ - + + +
diff --git a/src/index.js b/src/index.js index 2e2a80f5b04b100f7267a57103e8ead98b4711a6..0c537a1c023874c424bcaf82aefda4ad4ec0f7d4 100644 --- a/src/index.js +++ b/src/index.js @@ -1,19 +1,19 @@ +import "regenerator-runtime/runtime"; import Raven from './core/loggers/SentryError.logger'; import React from 'react'; import { render } from 'react-dom'; -import { AppContainer } from 'react-hot-loader'; -import Reboot from 'material-ui/Reboot'; + import Root from './root'; -import { devStore as configureStore } from './core/store'; + +import { configureStore } from './core/store' +import Reboot from 'material-ui/Reboot'; require('./favicon.ico'); render(
- - - +
, document.getElementById('app') diff --git a/src/modules/Chats/Chats.js b/src/modules/Chats/Chats.js index 1adc3fdb52abf13ffedd4ae671542be65f928e8c..7c0176e910ab2c0777485c8fa78de27cb17c87f2 100644 --- a/src/modules/Chats/Chats.js +++ b/src/modules/Chats/Chats.js @@ -1,9 +1,12 @@ import React, { PureComponent } from 'react'; - +import { ActivityList } from './../../containers'; export default class Chats extends PureComponent { render() { return ( -
+
+ + hdfghdfghd +
); } } diff --git a/src/modules/Dashboard/Dashboard.js b/src/modules/Dashboard/Dashboard.js index 260c29421f0f6f506ee32207d17fd8edf6ec2f76..d1222062883da029c655154607962807823b15b7 100644 --- a/src/modules/Dashboard/Dashboard.js +++ b/src/modules/Dashboard/Dashboard.js @@ -1,10 +1,55 @@ -import React, { PureComponent } from 'react'; +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { PaperWithDrop } from '../../componets'; +import {ChatListItem} from '../../componets'; +import { withStyles } from 'material-ui/styles' +import { List, Grid } from 'material-ui' ; +import {ChatModal} from "../../containers/ChatModal/ChatModal"; + +const styles = { + item: { + marginRight: 8, + width: 'calc(33.33% - 16px)' + } +} +export class Dashboard extends Component { + constructor(props) { + super(props); + + this.state ={ + openChat: false + } + } + + static propTypes = { + classes: PropTypes.object.isRequired + }; -export default class Dashboard extends PureComponent { render() { + const mockUsers = [{name:'John Smith'},{name:'John Smith2'},{name:'John Smith3'},{name:'John Smith4'},{name:'John Smith5'}] + let sideList = []; + + mockUsers.map((item,index)=>( + sideList.push( + + {this.setState({openChat: !this.state.openChat})}}/> + + + )) + ); + + const { classes } = this.props; + const { openChat } = this.state; return ( -
+ + + + + this.setState({openChat: false})} /> + + ); } } +export default withStyles(styles)(Dashboard); \ No newline at end of file diff --git a/src/modules/Home/Home.js b/src/modules/Home/Home.js index a4e6ae36d7de1474f9bbd7729864b437d373e161..5b5c98d1037a7eaafe558124f8aec5ea8b212927 100644 --- a/src/modules/Home/Home.js +++ b/src/modules/Home/Home.js @@ -3,7 +3,7 @@ import React, { PureComponent } from 'react'; export default class Home extends PureComponent { render() { return ( -
+
HomePage
); } } diff --git a/src/pages/App/App.js b/src/pages/App/App.js index 67200d885169ea0712e8d9cf74e2f4c171f9c10f..7bd594e7c20dd9fae6b0144a534133f572fe6aae 100644 --- a/src/pages/App/App.js +++ b/src/pages/App/App.js @@ -19,7 +19,13 @@ export default class App extends Component { render() { const theme = createMuiTheme({ palette: { - type:'dark' + type:'dark', + primary: { + main: '#1b1c20' + }, + background:{ + paper: '#24262b' + } }, }); console.log(theme); diff --git a/src/pages/NinjaApp/NinjaApp.js b/src/pages/NinjaApp/NinjaApp.js index a28eb4ce210f034e7593def6e2efcd1911d4ed90..7a3fafa259fca50896929936a51f1307ed2690ed 100644 --- a/src/pages/NinjaApp/NinjaApp.js +++ b/src/pages/NinjaApp/NinjaApp.js @@ -1,16 +1,27 @@ -import React, { Component, PropTypes } from 'react'; - +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import { connect, dispatch } from 'react-redux'; import { MenuAppBar,ActionMenu } from '../../containers'; import {Grid} from 'material-ui'; +import {withStyles} from 'material-ui/styles'; + +const styles = theme => ({ + wrapper: { + padding: '73px 0 0 107px', + minHeight: '100vh', + background: theme.palette.primary.main + }, + +}) -export default class Dashboard extends Component { +export class Dashboard extends Component { constructor(props) { super(props); } static propTypes = { + classes: PropTypes.object.isRequired }; componentWillMount(){ @@ -23,19 +34,20 @@ export default class Dashboard extends Component { render() { console.log(this.props) + const { classes } = this.props; return ( -
- +
+ -
+ { this.renderChildren(this.props.children, {}) } -
+
) } } - +export default withStyles(styles)(Dashboard) diff --git a/src/root.js b/src/root.js index 0118dee1a265cb5086d555935e838ac196e78084..85662069442e5dc710d5762f3546cd2219366545 100644 --- a/src/root.js +++ b/src/root.js @@ -9,7 +9,7 @@ import { connecting } from './core/resource/Init.resource' class Root extends Component { componentDidMount() { let t = new Date(); - this.props.store.dispatch(connecting(t)) + // this.props.store.dispatch(connecting(t)) } render() { const { store } = this.props; diff --git a/src/vendors.js b/src/vendors.js new file mode 100644 index 0000000000000000000000000000000000000000..938e7f84a597231f2dfb15c4ae278250466a5553 --- /dev/null +++ b/src/vendors.js @@ -0,0 +1,9 @@ +module.exports = [ + 'immutable', + 'react', + 'react-dom', + 'react-redux', + 'react-router', + 'react-select', + 'redux', +]; \ No newline at end of file diff --git a/webpackConfigs/webPackServerApp.js b/webpackConfigs/webPackServerApp.js new file mode 100644 index 0000000000000000000000000000000000000000..3da2d9661379bc8f5b958caf09a00bb4f382bfa3 --- /dev/null +++ b/webpackConfigs/webPackServerApp.js @@ -0,0 +1,17 @@ +// TODO: KL: Create webpack server on port 8083 and connect to GraphQL on port 8081 +import WebpackDevServer from "webpack-dev-server"; +import WebpackCompiler from "./webpack-compiler"; + +let client = new WebpackDevServer(WebpackCompiler, { + contentBase: "build/", + historyApiFallback: true, + hotOnly: true, + inline: true, + stats: { + colors: true + } +}) + +client.listen(3080, () => console.log( + "App listen on 3080" +)); \ No newline at end of file diff --git a/webpackConfigs/webpack-compiler.js b/webpackConfigs/webpack-compiler.js new file mode 100644 index 0000000000000000000000000000000000000000..1011b688ad596af86506de14f54246ef549f82d8 --- /dev/null +++ b/webpackConfigs/webpack-compiler.js @@ -0,0 +1,100 @@ +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const webpack = require('webpack'); +const path = require('path'); +const vendors = require('../src/vendors'); + +var ROOT_PATH = path.resolve(__dirname); +var APP_PATH = path.resolve(ROOT_PATH,'../src'); +var BUILD_PATH = path.resolve(ROOT_PATH, '../build'); + +export default webpack({ + entry: { + vendor: [...vendors], + app: `${APP_PATH}/index.js` + }, + output: { + path: BUILD_PATH, + publicPath: '/', + filename: 'bundle.[name].[chunkhash].js' + }, + module: { + rules: [ + { test: /\.js$/, + exclude: /(node_modules)/, + use: [{ + loader: 'babel-loader' + }, + ], + }, + { test: /\.scss$/, + use: [ 'style-loader', 'css-loader', 'sass-loader?outputStyle=expanded&sourceMap' ], + }, + { test: /\.css$/, + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader' + }, + ], + }, + { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ] + }, + { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ], + }, + { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/octet-stream' + }, + ], + }, + { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'file-loader' + }, + ], + }, + { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=image/svg+xml' + }, + ], + }, + { test: /\.(jpe?g|png|gif|svg|ico)$/, + use: [{ + loader: 'file-loader?name=static/image/[name].[ext]' + }, + ], + } + ] + }, + plugins: [ + new HtmlWebpackPlugin({ + template: `${APP_PATH}/index.html` + }), + new webpack.optimize.CommonsChunkPlugin({ + names: ['vendor', 'manifest'], + minChunks: Infinity, + }), + new webpack.NamedModulesPlugin(), + new webpack.DefinePlugin({ + 'process.env': { + 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) + } + }), + ], + resolve: { + extensions: ['.js', '.json'], + modules: [ + path.resolve('node_modules'), + ] + }, + devtool: 'eval-source-map' +}); \ No newline at end of file diff --git a/webpackConfigs/webpack.production.config.js b/webpackConfigs/webpack.production.config.js new file mode 100644 index 0000000000000000000000000000000000000000..653d277893aad7e76c32a8c9abb4c14d5be11747 --- /dev/null +++ b/webpackConfigs/webpack.production.config.js @@ -0,0 +1,101 @@ +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const webpack = require('webpack'); +const path = require('path'); +const vendors = require('../src/vendors'); + +var ROOT_PATH = path.resolve(__dirname); +var APP_PATH = path.resolve(ROOT_PATH,'../src'); +var BUILD_PATH = path.resolve(ROOT_PATH, '../src/build'); +console.log(APP_PATH); +module.exports = { + entry: { + vendor: [...vendors], + app: `${APP_PATH}/index.js` + }, + output: { + path: BUILD_PATH, + publicPath: './', + filename: 'bundle.[name].[chunkhash].js' + }, + module: { + rules: [ + { test: /\.js$/, + exclude: /(node_modules)/, + use: [{ + loader: 'babel-loader', + }, + ], + }, + { test: /\.scss$/, + use: [ 'style-loader', 'css-loader', 'sass-loader?outputStyle=expanded&sourceMap' ], + }, + { test: /\.css$/, + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader' + }, + ], + }, + { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ] + }, + { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/font-woff' + }, + ], + }, + { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=application/octet-stream' + }, + ], + }, + { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'file-loader' + }, + ], + }, + { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, + use: [{ + loader: 'url-loader?limit=10000&mimetype=image/svg+xml' + }, + ], + }, + { test: /\.(jpe?g|png|gif|svg|ico)$/, + use: [{ + loader: 'file-loader?name=static/image/[name].[ext]' + }, + ], + } + ] + }, + plugins: [ + new HtmlWebpackPlugin({ + template: `${APP_PATH}/index.html` + }), + new webpack.optimize.CommonsChunkPlugin({ + names: ['vendor', 'manifest'], + minChunks: Infinity, + }), + new webpack.NamedModulesPlugin(), + new webpack.DefinePlugin({ + __CLIENT__: true, + __SERVER__: false, + __DEVELOPMENT__: false, + __DEVTOOLS__: false // <-------- DISABLE redux-devtools here (btw, it causes initial double render!) + }), + ], + resolve: { + extensions: ['.js', '.json'], + modules: [ + path.resolve('node_modules'), + ] + }, + devtool: 'nosources-source-map' +};