diff --git a/.babelrc b/.babelrc index bdb6f4690..f9f5b62a7 100644 --- a/.babelrc +++ b/.babelrc @@ -1,9 +1,10 @@ { "presets": ["@babel/react", "@babel/flow"], "plugins": [ - ["@babel/plugin-proposal-decorators", { "decoratorsBeforeExport": true }], - "@babel/plugin-transform-flow-strip-types", - "@babel/plugin-proposal-class-properties", - "babel-plugin-add-module-exports" + "react-hot-loader/babel", + ["@babel/plugin-proposal-decorators", { "decoratorsBeforeExport": true }], + "@babel/plugin-transform-flow-strip-types", + "@babel/plugin-proposal-class-properties", + "babel-plugin-add-module-exports" ] } diff --git a/electron-builder.json b/electron-builder.json index c6cff35e8..1a5995996 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -4,6 +4,23 @@ "directories": { "output": "dist/electron" }, + "files": [ + { + "from": "dist/electron", + "to": "./", + "filter": ["!dist/!electron/**/*"] + }, + { + "from": "dist/electron/static", + "to": "./", + "filter": ["!dist/!electron/static/**/*"] + }, + { + "from": "dist/electron/ui", + "to": "./", + "filter": ["!dist/!electron/ui/**/*"] + } + ], "publish": [ { "provider": "s3", @@ -50,8 +67,7 @@ "executableName": "LBRY", "category": "AudioVideo;Video", "desktop": { - "MimeType": "x-scheme-handler/lbry", - "Exec": "/opt/LBRY/lbry %U" + "MimeType": "x-scheme-handler/lbry" } }, "deb": { diff --git a/package.json b/package.json index bccd3b226..04ac8a7c5 100644 --- a/package.json +++ b/package.json @@ -18,21 +18,25 @@ "name": "LBRY Inc.", "email": "hello@lbry.io" }, - "main": "./dist/main/main.js", + "main": "./dist/electron/main.js", "scripts": { "compile:electron": "webpack --progress --config webpack.electron.config.js", "compile:web": "webpack --progress --config webpack.web.config.js", "compile": "yarn compile:electron && yarn compile:web", "build": "yarn compile && electron-builder build", "build:dir": "yarn build -- --dir -c.compression=store -c.mac.identity=null", - "dev:electron": "yarn compile:electron && electron ./dist/electron/main/bundle.js", + "dev:electron": "webpack-dev-server --hot --progress --config webpack.electron.config.js", + "dev:web": "webpack-dev-server --hot --progress --config webpack.web.config.js", "dev:internal-apis": "LBRY_API_URL='http://localhost:8080' yarn dev:electron", "lint": "eslint 'src/**/*.{js,jsx}' --fix && flow", "format": "prettier 'src/**/*.{js,jsx,scss,json}' --write", "flow-defs": "flow-typed install", "precommit": "lint-staged", "preinstall": "yarn cache clean lbry-redux && yarn cache clean lbryinc", - "postinstall": "electron-builder install-app-deps && node build/downloadDaemon.js" + "postinstall": "electron-builder install-app-deps && node build/downloadDaemon.js", + "run:electron": "electron ./dist/electron/main.js", + "pack": "electron-builder --dir", + "dist": "electron-builder" }, "dependencies": { "@babel/polyfill": "^7.2.5", @@ -73,7 +77,7 @@ "react-paginate": "^5.2.1", "react-pose": "^4.0.5", "react-redux": "^5.0.3", - "react-simplemde-editor": "^3.6.16", + "react-simplemde-editor": "^4.0.0", "react-toggle": "^4.0.2", "redux": "^3.6.0", "redux-persist": "^4.8.0", @@ -86,7 +90,6 @@ "render-media": "^3.1.0", "reselect": "^3.0.0", "semver": "^5.3.0", - "source-map-support": "^0.5.10", "stream-to-blob-url": "^2.1.1", "three": "^0.93.0", "three-full": "^11.3.2", @@ -138,10 +141,12 @@ "node-sass": "^4.11.0", "preprocess-loader": "^0.3.0", "prettier": "^1.11.1", + "react-hot-loader": "^4.7.2", "sass-loader": "^7.1.0", "style-loader": "^0.23.1", "webpack": "^4.28.4", "webpack-build-notifier": "^0.1.23", + "webpack-dev-middleware": "^3.6.0", "webpack-dev-server": "^3.1.14", "webpack-merge": "^4.2.1", "webpack-node-externals": "^1.7.2", diff --git a/src/platforms/electron/createWindow.js b/src/platforms/electron/createWindow.js index 5612ecf21..0025fb40e 100644 --- a/src/platforms/electron/createWindow.js +++ b/src/platforms/electron/createWindow.js @@ -36,7 +36,7 @@ export default appState => { }; const rendererURL = isDev // ? `http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT}` - ? `file://${path.resolve(__dirname, '../index.html')}` + ? `http://localhost:8080/index.dev.html` : `file://${__dirname}/index.html`; let window = new BrowserWindow(windowConfiguration); diff --git a/src/ui/component/app/index.js b/src/ui/component/app/index.js index 657e6e9a6..9a1a19f24 100644 --- a/src/ui/component/app/index.js +++ b/src/ui/component/app/index.js @@ -1,3 +1,4 @@ +import { hot } from 'react-hot-loader/root'; import { connect } from 'react-redux'; import { selectPageTitle, @@ -29,7 +30,9 @@ const perform = dispatch => ({ toggleEnhancedLayout: () => dispatch(doToggleEnhancedLayout()), }); -export default connect( - select, - perform -)(App); +export default hot( + connect( + select, + perform + )(App) +); diff --git a/src/ui/component/common/form-components/form-field.jsx b/src/ui/component/common/form-components/form-field.jsx index fe88998f3..0ca644a77 100644 --- a/src/ui/component/common/form-components/form-field.jsx +++ b/src/ui/component/common/form-components/form-field.jsx @@ -3,7 +3,7 @@ import * as React from 'react'; import ReactDOMServer from 'react-dom/server'; import MarkdownPreview from 'component/common/markdown-preview'; import SimpleMDE from 'react-simplemde-editor'; -import 'simplemde/dist/simplemde.min.css'; // eslint-disable-line import/no-extraneous-dependencies +import 'easymde/dist/easymde.min.css'; // eslint-disable-line import/no-extraneous-dependencies import Toggle from 'react-toggle'; import { openEditorMenu, stopContextMenu } from 'util/context-menu'; diff --git a/src/ui/component/walletAddress/view.jsx b/src/ui/component/walletAddress/view.jsx index 8fbbde816..5fcf0731c 100644 --- a/src/ui/component/walletAddress/view.jsx +++ b/src/ui/component/walletAddress/view.jsx @@ -24,7 +24,7 @@ class WalletAddress extends React.PureComponent { showQR: false, }; - this.toggleQR = this.toggleQR.bind(this); + (this: any).toggleQR = this.toggleQR.bind(this); } componentWillMount() { @@ -36,8 +36,6 @@ class WalletAddress extends React.PureComponent { } } - toggleQR: Function; - toggleQR() { this.setState({ showQR: !this.state.showQR, diff --git a/src/ui/i18n/index.js b/src/ui/i18n/index.js index 216641d3b..9414d2261 100644 --- a/src/ui/i18n/index.js +++ b/src/ui/i18n/index.js @@ -11,6 +11,8 @@ const i18n = y18n({ const i18n = { setLocale: () => {}, getLocale: () => {}, + __: x => x, + __n: x => x, }; // @endif diff --git a/src/ui/index.js b/src/ui/index.js index 9b9fc94bf..12eaf8b59 100644 --- a/src/ui/index.js +++ b/src/ui/index.js @@ -61,7 +61,7 @@ ipcRenderer.on('navigate-forward', () => { // @endif // @if TARGET='web' -Lbry.setDaemonConnectionString('/api/proxy'); +Lbry.setDaemonConnectionString('https://beta.lbry.tv/api/proxy'); // @endif // We need to override Lbryio for getting/setting the authToken diff --git a/static/index.dev.html b/static/index.dev.html new file mode 100644 index 000000000..6fd2defc2 --- /dev/null +++ b/static/index.dev.html @@ -0,0 +1,11 @@ + + + + + + + +
+ + + diff --git a/static/index.html b/static/index.html index 2d50b115e..e5150b832 100644 --- a/static/index.html +++ b/static/index.html @@ -2,14 +2,10 @@ - -
- + diff --git a/webpack.base.config.js b/webpack.base.config.js index 52f80bfc7..4dadb31ce 100644 --- a/webpack.base.config.js +++ b/webpack.base.config.js @@ -67,7 +67,6 @@ const baseConfig = { __static: `"${path.join(__dirname, 'static').replace(/\\/g, '\\\\')}"`, }), ], - externals: [nodeExternals()], }; module.exports = baseConfig; diff --git a/webpack.electron.config.js b/webpack.electron.config.js index 9493b382a..1ae4fd73d 100644 --- a/webpack.electron.config.js +++ b/webpack.electron.config.js @@ -6,14 +6,13 @@ const CopyWebpackPlugin = require('copy-webpack-plugin'); const STATIC_ROOT = path.resolve(__dirname, 'static/'); const DIST_ROOT = path.resolve(__dirname, 'dist/'); -const electronConfig = { - target: 'electron-renderer', +const mainConfig = { + target: 'electron-main', entry: { main: './src/platforms/electron/index.js', - ui: './src/ui/index.js', }, output: { - filename: '[name]/bundle.js', + filename: '[name].js', path: __dirname + '/dist/electron', }, module: { @@ -41,7 +40,7 @@ const electronConfig = { resolve: { alias: { // 'src/electron': path.resolve(__dirname, 'src/platforms/electron'); - } + }, }, plugins: [ new CopyWebpackPlugin([ @@ -56,6 +55,64 @@ const electronConfig = { }, ]), ], + devServer: { + contentBase: path.join(__dirname, 'dist/electron'), + }, }; -module.exports = merge(baseConfig, electronConfig); +const renderConfig = { + target: 'electron-renderer', + entry: { + ui: './src/ui/index.js', + }, + output: { + filename: '[name].js', + path: __dirname + '/dist/electron', + }, + module: { + rules: [ + { + test: /\.node$/, + use: 'node-loader', + }, + { + test: /\.jsx?$/, + use: [ + { + loader: 'preprocess-loader', + options: { + TARGET: 'app', + ppOptions: { + type: 'js', + }, + }, + }, + ], + }, + ], + }, + resolve: { + alias: { + // 'src/electron': path.resolve(__dirname, 'src/platforms/electron'); + }, + }, + plugins: [ + new CopyWebpackPlugin([ + { + from: `${STATIC_ROOT}/`, + to: `${DIST_ROOT}/electron/static/`, + ignore: ['font/**/*', 'index.html', 'index.dev.html'], + }, + { + from: `${STATIC_ROOT}/index.html`, + to: `${DIST_ROOT}/electron/index.html`, + }, + { + from: `${STATIC_ROOT}/index.dev.html`, + to: `${DIST_ROOT}/electron/index.dev.html`, + }, + ]), + ], +}; + +module.exports = [merge(baseConfig, mainConfig), merge(baseConfig, renderConfig)]; diff --git a/webpack.web.config.js b/webpack.web.config.js index 8e291930a..1823241cf 100644 --- a/webpack.web.config.js +++ b/webpack.web.config.js @@ -12,7 +12,7 @@ const webConfig = { ui: './src/ui/index.js', }, output: { - filename: 'bundle.js', + filename: '[name].js', path: __dirname + '/dist/web', }, module: { diff --git a/yarn.lock b/yarn.lock index 48f4c696f..456fd3c35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -854,11 +854,6 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18" integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA== -"@types/simplemde@^1.11.7": - version "1.11.7" - resolved "https://registry.yarnpkg.com/@types/simplemde/-/simplemde-1.11.7.tgz#c8bd9f54ff46db7f311a989004eb5815acedf429" - integrity sha512-b3yirBar1gqb9clgJJKpx+Or3txkOOkm5sffhRKaBUfh7+1D2Aimx2RKXGS1LK9S5KyNmug3lwpGJtaID9cOnA== - "@types/three@^0.93.1": version "0.93.22" resolved "https://registry.yarnpkg.com/@types/three/-/three-0.93.22.tgz#3601929f36d4b3a5b7d3dd9851fec53feda8228c" @@ -2443,14 +2438,14 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codemirror-spell-checker@*: +codemirror-spell-checker@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz#1c660f9089483ccb5113b9ba9ca19c3f4993371e" integrity sha1-HGYPkIlIPMtRE7m6nKGcP0mTNx4= dependencies: typo-js "*" -codemirror@*, codemirror@^5.39.2: +codemirror@^5.39.2, codemirror@^5.41.0: version "5.44.0" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.44.0.tgz#80dc2a231eeb7aab25ec2405cdca37e693ccf9cc" integrity sha512-3l42syTNakCdCQuYeZJXTyxina6Y9i4V0ighSJXNCQtRbaCN76smKKLu1ZHPHQon3rnzC7l4i/0r4gp809K1wg== @@ -3535,6 +3530,15 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +easymde@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/easymde/-/easymde-2.5.1.tgz#00144baf96d52debb2043cb0da8c1b7a3d1ad86f" + integrity sha512-8ESZCuareVshPdYcjoY5VnyUHMM/skTQDfmGzl23D+hcgww64DBIVQZWuu9htMGoZZGDVvCU/pYSqa3nZB7bmA== + dependencies: + codemirror "^5.41.0" + codemirror-spell-checker "1.1.2" + marked "^0.5.1" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4451,16 +4455,16 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + fast-levenshtein@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz#0178dcdee023b92905193af0959e8a7639cfdcb9" integrity sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk= -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - fastparse@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" @@ -5346,7 +5350,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== @@ -7004,10 +7008,10 @@ markdown-table@^1.1.0: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786" integrity sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw== -marked@*: - version "0.6.1" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.1.tgz#a63addde477bca9613028de4b2bc3629e53a0562" - integrity sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA== +marked@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.5.2.tgz#3efdb27b1fd0ecec4f5aba362bddcd18120e5ba9" + integrity sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA== math-expression-evaluator@^1.2.14: version "1.2.17" @@ -9172,12 +9176,27 @@ react-feather@^1.0.8: resolved "https://registry.yarnpkg.com/react-feather/-/react-feather-1.1.6.tgz#2a547e3d5cd5e383d3da0128d593cbdb3c1b32f7" integrity sha512-iCofWhTjX+vQwvDmg7o6vg0XrUg1c41yBDZG+l83nz1FiCsleJoUgd3O+kHpOeWMXuPrRIFfCixvcqyOLGOgIg== +react-hot-loader@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.7.2.tgz#54cd99441c2d594bdc58c90673690c245dcfcaff" + integrity sha512-kkvGHmvLrbg6RH7svQ28T1swM2JFsHYBRT92xz4k4ubSyPcE2i8YVPQmoKWsDk/zNNpC710M9Md10oZzugecOw== + dependencies: + fast-levenshtein "^2.0.6" + global "^4.3.0" + hoist-non-react-statics "^3.3.0" + loader-utils "^1.1.0" + lodash "^4.17.11" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + shallowequal "^1.0.2" + source-map "^0.7.3" + react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.8.3" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.3.tgz#4ad8b029c2a718fc0cfc746c8d4e1b7221e5387d" integrity sha512-Y4rC1ZJmsxxkkPuMLwvKvlL1Zfpbcu+Bf4ZigkHup3v9EfdYhAlWAaVyA19olXq2o2mGn0w+dFKvk3pVVlYcIA== -react-lifecycles-compat@^3.0.0: +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== @@ -9222,14 +9241,13 @@ react-redux@^5.0.3: react-is "^16.6.0" react-lifecycles-compat "^3.0.0" -react-simplemde-editor@^3.6.16: - version "3.6.22" - resolved "https://registry.yarnpkg.com/react-simplemde-editor/-/react-simplemde-editor-3.6.22.tgz#2c122dffbebc304c13aee804d16e3b4533e00345" - integrity sha512-5tyi1fly8h7ISQHIzvApQq3ZB4ManPPnH8t5Dr9l9/uGfO8dqofqfuHPih8EmnCkhBWxUfXufnEWi9Eo7Y2reg== +react-simplemde-editor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/react-simplemde-editor/-/react-simplemde-editor-4.0.0.tgz#99cb2c8d8da7e6780ac2dd98883a092e3eb0d3b6" + integrity sha512-Z9+8vTFYif9IgDWujNmoLSJTBfLD7JJGAPlLqPsHFr9LTi0irU8dTvEymrKvEEvE2jyd3d4/EBKP548itw/z9A== dependencies: "@types/codemirror" "^0.0.65" - "@types/simplemde" "^1.11.7" - simplemde "^1.11.2" + easymde "^2.5.1" react-templates@0.3.2: version "0.3.2" @@ -10139,6 +10157,11 @@ shallow-clone@^1.0.0: kind-of "^5.0.0" mixin-object "^2.0.1" +shallowequal@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -10180,15 +10203,6 @@ simple-get@^2.7.0: once "^1.3.1" simple-concat "^1.0.0" -simplemde@^1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/simplemde/-/simplemde-1.11.2.tgz#a23a35d978d2c40ef07dec008c92f070d8e080e3" - integrity sha1-ojo12XjSxA7wfewAjJLwcNjggOM= - dependencies: - codemirror "*" - codemirror-spell-checker "*" - marked "*" - single-line-log@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" @@ -10328,6 +10342,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + space-separated-tokens@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz#e95ab9d19ae841e200808cd96bc7bd0adbbb3412" @@ -11718,7 +11737,7 @@ webpack-dev-middleware@^1.10.2: range-parser "^1.0.3" time-stamp "^2.0.0" -webpack-dev-middleware@^3.5.1: +webpack-dev-middleware@^3.5.1, webpack-dev-middleware@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.0.tgz#71f1b04e52ff8d442757af2be3a658237d53a3e5" integrity sha512-oeXA3m+5gbYbDBGo4SvKpAHJJEGMoekUbHgo1RK7CP1sz7/WOSeu/dWJtSTk+rzDCLkPwQhGocgIq6lQqOyOwg==