From 22b485acd9a2accaec601ae6233a9b70ffd6eaf7 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Tue, 16 Apr 2019 22:44:57 +0200 Subject: [PATCH] Added serviceworker and web-manifest (#154) * Added serviceworker and manifest.json * added deps in package.json * fixed image link * actually fixed images i think * added assets to individual module folders * added caching * Serviceworker now properly loads * Changed single to double quotes * Update lock * moved the service worker back into prod only * removed sw from general * changed background color of splash screen * added logo to server * centralized logo into single assets folder --- package.json | 2 + packages/web/assets/logo.png | Bin 0 -> 28534 bytes packages/web/package.json | 8 +- packages/web/src/index.html | 11 +- scripts/webpack.client.config.js | 144 +++++--- yarn.lock | 588 +++++++++++++++++++++++++++++-- 6 files changed, 676 insertions(+), 77 deletions(-) create mode 100644 packages/web/assets/logo.png diff --git a/package.json b/package.json index 6449ed67..8ef3c956 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,8 @@ "webpack-dev-middleware": "^3.5.0", "webpack-dev-server": "^3.1.14", "webpack-hot-middleware": "^2.24.3", + "webpack-pwa-manifest": "^4.0.0", + "workbox-webpack-plugin": "^4.1.0", "write-file-webpack-plugin": "^4.5.0" }, "resolutions": { diff --git a/packages/web/assets/logo.png b/packages/web/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f9acf03f1a32fad72bab919b4fa56e92c5855b GIT binary patch literal 28534 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 literal 0 HcmV?d00001 diff --git a/packages/web/package.json b/packages/web/package.json index f7142354..e823d817 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { - "name": "@coder/web", - "scripts": { - "build": "../../node_modules/.bin/cross-env UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.config.js" - } + "name": "@coder/web", + "scripts": { + "build": "../../node_modules/.bin/cross-env UV_THREADPOOL_SIZE=100 node --max-old-space-size=32384 ../../node_modules/webpack/bin/webpack.js --config ./webpack.config.js" + } } diff --git a/packages/web/src/index.html b/packages/web/src/index.html index b5b59e11..37a8f81a 100644 --- a/packages/web/src/index.html +++ b/packages/web/src/index.html @@ -23,8 +23,15 @@ return; } document.body.style.background = bg; - })(); + })(); + + // Check that service workers are registered + if ("serviceWorker" in navigator) { + // Use the window load event to keep the page load performant + window.addEventListener("load", () => { + navigator.serviceWorker.register("/service-worker.js"); + }); + } - \ No newline at end of file diff --git a/scripts/webpack.client.config.js b/scripts/webpack.client.config.js index cc143ee2..a8e80c0f 100644 --- a/scripts/webpack.client.config.js +++ b/scripts/webpack.client.config.js @@ -4,58 +4,104 @@ const merge = require("webpack-merge"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const PreloadWebpackPlugin = require("preload-webpack-plugin"); const HtmlWebpackPlugin = require("html-webpack-plugin"); +const WebpackPwaManifest = require("webpack-pwa-manifest"); +const { GenerateSW } = require("workbox-webpack-plugin"); + // const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer"); const root = path.join(__dirname, ".."); const prod = process.env.NODE_ENV === "production" || process.env.CI === "true"; module.exports = (options = {}) => merge( - require("./webpack.general.config")(options), { - devtool: prod ? "none" : "cheap-module-eval-source-map", - mode: prod ? "production" : "development", - entry: prod ? options.entry : [ - "webpack-hot-middleware/client?reload=true&quiet=true", - options.entry, - ], - module: { - rules: [{ - test: /\.s?css$/, - // This is required otherwise it'll fail to resolve CSS in common. - include: root, - use: [{ - loader: MiniCssExtractPlugin.loader, - }, { - loader: "css-loader", - }, { - loader: "sass-loader", - }], - }, { - test: /\.(png|ttf|woff|eot|woff2)$/, - use: [{ - loader: "file-loader", - options: { - name: "[path][name].[ext]", - }, - }], - }, { - test: /\.svg$/, - loader: 'url-loader' - }], - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: "[name].css", - chunkFilename: "[id].css", - }), - new HtmlWebpackPlugin({ - template: options.template, - }), - new PreloadWebpackPlugin({ - rel: "preload", - as: "script", - }), - ].concat(prod ? [] : [ - new webpack.HotModuleReplacementPlugin(), - ]), - target: "web", -}); + require("./webpack.general.config")(options), { + devtool: prod ? "none" : "cheap-module-eval-source-map", + mode: prod ? "production" : "development", + entry: prod ? options.entry : [ + "webpack-hot-middleware/client?reload=true&quiet=true", + options.entry, + ], + module: { + rules: [{ + test: /\.s?css$/, + // This is required otherwise it'll fail to resolve CSS in common. + include: root, + use: [{ + loader: MiniCssExtractPlugin.loader, + }, { + loader: "css-loader", + }, { + loader: "sass-loader", + }], + }, { + test: /\.(png|ttf|woff|eot|woff2)$/, + use: [{ + loader: "file-loader", + options: { + name: "[path][name].[ext]", + }, + }], + }, { + test: /\.svg$/, + loader: 'url-loader' + }], + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: "[name].css", + chunkFilename: "[id].css" + }), + new HtmlWebpackPlugin({ + template: options.template + }), + new PreloadWebpackPlugin({ + rel: "preload", + as: "script" + }), + new WebpackPwaManifest({ + name: "Coder", + short_name: "Coder", + description: "Run VS Code on a remote server", + background_color: "#e5e5e5", + icons: [ + { + src: path.join(root, "packages/web/assets/logo.png"), + sizes: [96, 128, 192, 256, 384] + } + ] + }) + ].concat(prod ? [ + new GenerateSW({ + runtimeCaching: [ + { + urlPattern: new RegExp(".*"), + handler: "StaleWhileRevalidate", + options: { + cacheName: "code-server", + expiration: { + maxAgeSeconds: 86400 + }, + cacheableResponse: { + statuses: [0, 200] + } + } + } + // Network first caching is also possible. + /*{ + urlPattern: "", + handler: "NetworkFirst", + options: { + networkTimeoutSeconds: 4, + cacheName: "code-server", + expiration: { + maxAgeSeconds: 86400, + }, + cacheableResponse: { + statuses: [0, 200], + }, + }, + }*/ + ] + }) + ] : [new webpack.HotModuleReplacementPlugin()]), + target: "web" + }); diff --git a/yarn.lock b/yarn.lock index 4e60c403..3db1a2ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,20 @@ # yarn lockfile v1 +"@babel/runtime@^7.0.0": + version "7.3.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.4.tgz#73d12ba819e365fcf7fd152aed56d6df97d21c83" + integrity sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g== + dependencies: + regenerator-runtime "^0.12.0" + +"@babel/runtime@^7.3.4": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.3.tgz#79888e452034223ad9609187a0ad1fe0d2ad4bdc" + integrity sha512-9lsJwJLxDh/T3Q3SZszfWOTkk3pHbkmH+3KY+zwIDmsNlxsumuhS2TH3NIpktU4kNvfzy+k3eLT7aTJSPTo0OA== + dependencies: + regenerator-runtime "^0.13.2" + "@types/fs-extra@^5.0.4": version "5.0.5" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.5.tgz#080d90a792f3fa2c5559eb44bd8ef840aae9104b" @@ -458,6 +472,39 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -513,6 +560,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bignumber.js@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8" + integrity sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg= + binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" @@ -535,6 +587,11 @@ bluebird@^3.5.1, bluebird@^3.5.3: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== +bmp-js@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a" + integrity sha1-ZBE+nHzxICs3btYHvzBibr5XsYo= + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -661,6 +718,11 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -934,16 +996,16 @@ commander@2.17.x, commander@~2.17.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.12.1, commander@^2.18.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@^2.19.0: +commander@^2.12.1, commander@^2.18.0, commander@^2.19.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1048,6 +1110,11 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +core-js@^2.4.0: + version "2.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== + core-js@^2.5.7: version "2.6.2" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.2.tgz#267988d7268323b349e20b4588211655f0e83944" @@ -1133,6 +1200,11 @@ crypto-browserify@^3.11.0, crypto-browserify@^3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + css-loader@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.0.tgz#42952ac22bca5d076978638e9813abce49b8f0cc" @@ -1403,6 +1475,11 @@ dom-serializer@0: domelementtype "~1.1.1" entities "~1.1.1" +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -1531,7 +1608,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.4.3, es-abstract@^1.5.1: +es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -1552,6 +1629,11 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-promise@^3.0.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM= + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1648,6 +1730,11 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exif-parser@^0.1.9: + version "0.1.12" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -1790,6 +1877,11 @@ file-loader@^3.0.1: loader-utils "^1.0.2" schema-utils "^1.0.0" +file-type@^3.1.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + filesize@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" @@ -1867,6 +1959,13 @@ follow-redirects@^1.0.0: dependencies: debug "=3.1.0" +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -1935,6 +2034,15 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -2015,6 +2123,11 @@ get-caller-file@^1.0.1, get-caller-file@^1.0.2: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -2089,6 +2202,14 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -2240,6 +2361,11 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoek@6.x.x: + version "6.1.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" + integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== + homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" @@ -2493,6 +2619,11 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -2551,7 +2682,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.4: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -2629,6 +2760,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -2650,6 +2786,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -2683,6 +2824,11 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -2725,6 +2871,13 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isemail@3.x.x: + version "3.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" + integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg== + dependencies: + punycode "2.x.x" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -2747,6 +2900,42 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +jimp@^0.2.28: + version "0.2.28" + resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2" + integrity sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI= + dependencies: + bignumber.js "^2.1.0" + bmp-js "0.0.3" + es6-promise "^3.0.2" + exif-parser "^0.1.9" + file-type "^3.1.0" + jpeg-js "^0.2.0" + load-bmfont "^1.2.3" + mime "^1.3.4" + mkdirp "0.5.1" + pixelmatch "^4.0.0" + pngjs "^3.0.0" + read-chunk "^1.0.1" + request "^2.65.0" + stream-to-buffer "^0.1.0" + tinycolor2 "^1.1.2" + url-regex "^3.0.0" + +joi@^14.3.1: + version "14.3.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c" + integrity sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ== + dependencies: + hoek "6.x.x" + isemail "3.x.x" + topo "3.x.x" + +jpeg-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482" + integrity sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII= + js-base64@^2.1.8: version "2.5.0" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.0.tgz#42255ba183ab67ce59a0dee640afdc00ab5ae93e" @@ -2790,6 +2979,13 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + json-stringify-safe@5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2882,6 +3078,20 @@ lightercollective@^0.1.0: resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.1.0.tgz#70df102c530dcb8d0ccabfe6175a8d00d5f61300" integrity sha512-J9tg5uraYoQKaWbmrzDDexbG6hHnMcWS1qLYgJSWE+mpA3U5OCSeMUhb+K55otgZJ34oFdR0ECvdIb3xuO5JOQ== +load-bmfont@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" + integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -2944,6 +3154,11 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -2969,6 +3184,21 @@ lodash.tail@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= +lodash.template@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A= + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY= + dependencies: + lodash._reinterpolate "~3.0.0" + lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.5, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -3149,6 +3379,11 @@ mime@1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mime@^1.3.4, mime@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mime@^2.0.3, mime@^2.3.1: version "2.4.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" @@ -3159,6 +3394,13 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + mini-css-extract-plugin@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" @@ -3242,7 +3484,7 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -3753,6 +3995,32 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-headers@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34" + integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg== + dependencies: + for-each "^0.3.3" + string.prototype.trim "^1.1.2" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -3867,6 +4135,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + pidtree@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" @@ -3894,6 +4167,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pixelmatch@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -3901,6 +4181,11 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +pngjs@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz#85173703bde3edac8998757b96e5821d0966a21b" + integrity sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q== + portfinder@^1.0.9: version "1.0.20" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" @@ -3969,6 +4254,11 @@ preload-webpack-plugin@^3.0.0-beta.2: core-js "^2.5.7" url-parse "^1.4.3" +pretty-bytes@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.1.0.tgz#6237ecfbdc6525beaef4de722cc60a58ae0e6c6d" + integrity sha512-wa5+qGVg9Yt7PB6rYm3kXlKzgzgivYTLRandezh43jjRqgyDyP+9YxfJpJiLs9yKD1WeU8/OvtToWpW7255FtA== + pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -3987,6 +4277,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -4057,16 +4352,16 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= +punycode@2.x.x, punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - qs@6.5.2, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -4127,6 +4422,11 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-chunk@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194" + integrity sha1-X2jKswfmY/GZk1J9m1icrORmEZQ= + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -4207,6 +4507,21 @@ regenerate@^1.2.1: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== + +regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -4274,7 +4589,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.87.0, request@^2.88.0: +request@^2.65.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -4413,7 +4728,7 @@ sass-loader@^7.1.0: pify "^3.0.0" semver "^5.5.0" -sax@^1.2.4: +sax@>=0.6.0, sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -4849,6 +5164,18 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= +stream-to-buffer@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9" + integrity sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk= + dependencies: + stream-to "~0.2.0" + +stream-to@~0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d" + integrity sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0= + string-replace-loader@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-replace-loader/-/string-replace-loader-2.1.1.tgz#b72e7b57b6ef04efe615aff0ad989b5c14ca63d1" @@ -4883,6 +5210,15 @@ string.prototype.padend@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" +string.prototype.trim@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" @@ -4902,6 +5238,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4928,6 +5273,14 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -5065,6 +5418,11 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tinycolor2@^1.1.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -5095,6 +5453,13 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +topo@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" + integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ== + dependencies: + hoek "6.x.x" + toposort@^1.0.0: version "1.0.7" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" @@ -5338,6 +5703,13 @@ url-parse@^1.4.3: querystringify "^2.0.0" requires-port "^1.0.0" +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ= + dependencies: + ip-regex "^1.0.1" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -5599,6 +5971,15 @@ webpack-merge@^4.2.1: dependencies: lodash "^4.17.5" +webpack-pwa-manifest@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/webpack-pwa-manifest/-/webpack-pwa-manifest-4.0.0.tgz#a7c12debe497f61f5948ddb079bb8a955152abd9" + integrity sha512-655TpvoOLGHI2hgx7AmmdgHLc+xDtAi6J5fz7bTnuhxWtEVH/NI2qGlDY40HErlblOV74VtVz5S/C0u7ZpPlvQ== + dependencies: + css-color-names "0.0.4" + jimp "^0.2.28" + mime "^1.6.0" + webpack-sources@^1.1.0, webpack-sources@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" @@ -5674,6 +6055,141 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +workbox-background-sync@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.1.1.tgz#0d4439d9e364854f4030ad8f44c8b34b0bbce2e7" + integrity sha512-z8iKAx7f3cfQpGaRrrl2CpP4dGe+vHk05vJbzscwA7e1K8vyNl6zALBtIyyAvEZzMsofsiGEZqt2g/8CfyfQ5g== + dependencies: + workbox-core "^4.1.1" + +workbox-broadcast-update@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.1.1.tgz#93a2b455673f6b73027890cb362f66156a3701f1" + integrity sha512-gq83a8F6ESQobfltaxzoUTz0mEpTOsXHmy9Po9kKMT1UjXTWh/4NDF3HwQYaxJckOER9NITB3BuoXlXr3tI8aA== + dependencies: + workbox-core "^4.1.1" + +workbox-build@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.1.1.tgz#d75d9f4ff70ba5c960be4043bfc4c25c62f22a45" + integrity sha512-+QRtNFKDq7RlIpigsh26joUNoEN+c3pQ+yT8Rs29RtpM50S1nKggFUQY0HoRvN7tzvuzIgxCrx3osxOQ8hmj7Q== + dependencies: + "@babel/runtime" "^7.3.4" + common-tags "^1.8.0" + fs-extra "^4.0.2" + glob "^7.1.3" + joi "^14.3.1" + lodash.template "^4.4.0" + pretty-bytes "^5.1.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + workbox-background-sync "^4.1.1" + workbox-broadcast-update "^4.1.1" + workbox-cacheable-response "^4.1.1" + workbox-core "^4.1.1" + workbox-expiration "^4.1.1" + workbox-google-analytics "^4.1.1" + workbox-navigation-preload "^4.1.1" + workbox-precaching "^4.1.1" + workbox-range-requests "^4.1.1" + workbox-routing "^4.1.1" + workbox-strategies "^4.1.1" + workbox-streams "^4.1.1" + workbox-sw "^4.1.1" + workbox-window "^4.1.1" + +workbox-cacheable-response@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.1.1.tgz#f01032f0a08f2eedb9c420f1267b4738c6dfd58e" + integrity sha512-uc1zkeidJgAMXHvUbspKJt3NzXHAcb5D+7sX6HrCZIMneS4ZxMvdB86giIR3bveV4PaOssqIYVrWUJvIehK/NA== + dependencies: + workbox-core "^4.1.1" + +workbox-core@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.1.1.tgz#eaad7132762727373377ca1c8a2130cfa641cc90" + integrity sha512-RbzMWnDW7UvfstwOs8ERDFTH6zr7akm4wIbIednFs1TnAvZbN3gpIBoEv53kaMr0uMYDSXI2KxaLmmz9WX1PXA== + +workbox-expiration@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.1.1.tgz#d676fc24dd99576d4f62372d342ed7cea6bd968a" + integrity sha512-N/fbypqCbFrrKDhVnTyGXhkFTgjA8aRUydkxCpgJM1ajf7udQYD4XWTQxXosPJC2UVsa2/kPCBYFQOQ1Fu/2TA== + dependencies: + workbox-core "^4.1.1" + +workbox-google-analytics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.1.1.tgz#e3901d9edc00ce269db1a86aef8d2e12b3fca222" + integrity sha512-ByZYHv61u4dFQXQAXZZ1bNgcJ45yA85C8OAlSDGwqOuv72dZoybG3EMtJo/0ChO6irxWI1pictF2pTW7JxcCkQ== + dependencies: + workbox-background-sync "^4.1.1" + workbox-core "^4.1.1" + workbox-routing "^4.1.1" + workbox-strategies "^4.1.1" + +workbox-navigation-preload@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.1.1.tgz#0990ffe94b2110141d48f2b516084c363f538d4e" + integrity sha512-U+QEpcOgakBFZ6Aiv438DTvkZQX518qxfu280kEPZnFU88wIFBAK9V4MmJcoX60fk1INTD//YnfSxI0cLy1N+g== + dependencies: + workbox-core "^4.1.1" + +workbox-precaching@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.1.1.tgz#05ddbe82d06f5c07b3cf077389d451ec4df5d157" + integrity sha512-GuoBH85MzVpzmF8c5Sql1i9HYdOqcpRDdNPLrIkWEfuvURO5M/jT+cGcyfFq35Xo7xRb4kE79H4hnF3EnCkFRw== + dependencies: + workbox-core "^4.1.1" + +workbox-range-requests@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.1.1.tgz#01f81716f86b04e398bfd11df2a34cd73d52e4bc" + integrity sha512-i9i7tRTcXveCJdi4lK7XstgHweTwkqEGR7GPauYIDGAZplWrxDOAOUDSvkH8ibOxEgO6f0VFhyYY6fPB6u+oSA== + dependencies: + workbox-core "^4.1.1" + +workbox-routing@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.1.1.tgz#c31d663c6c4c0e9a6f03b5a6fdfe79fb6ee7f29d" + integrity sha512-slOb+2Nfn8V3fG/TtN0c0k4OOyuwLSnZUv+zyZeJafSU3MrQPC58bPeG7HOZZDwoQAsBG9VSukjRDFR0F1lXKg== + dependencies: + workbox-core "^4.1.1" + +workbox-strategies@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.1.1.tgz#5289b977dbc56ef97f17a3a99722f174b8cf6933" + integrity sha512-ejmRqmjwn9DYsl1QVZkRb1V/iaBzhsh3YwJelfXQk68JpB36WjwY9csFQ2gSvlLCCg3d4MVFFxKfmHVyVnhwAA== + dependencies: + workbox-core "^4.1.1" + +workbox-streams@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.1.1.tgz#f49418d7a2388c89838c4022229ba6ee23af60fd" + integrity sha512-6TKC4rrvnjbLpWtgHIYWjWS28h0SqSWogkJIKC1f/6MjJCmi2qM7PYJwXR0/t8lJVZj61ujVSulZ92XQmy3GhQ== + dependencies: + workbox-core "^4.1.1" + +workbox-sw@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.1.1.tgz#037031ec107c9befe568064679d16fc03748ff02" + integrity sha512-3nQFWFyG1W21x7TUVBsobrLoFDEy7ck/3nx2W1I3c+DhLCIu7B+IAnQVdefK+oRju5fIDWwOQ63fok8Uz7E/Gw== + +workbox-webpack-plugin@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.1.1.tgz#4e3f40fb5d0bb6aed21e617e47032bafe8cbedb2" + integrity sha512-Fygc8qrh/IOeJeZ4NETs9arYtJEwcO0Yy7JRkX5DSOHCSkWHxOX1ryazAcK0ACyMJOQuU9zJVmx+mnn0zqYKtA== + dependencies: + "@babel/runtime" "^7.0.0" + json-stable-stringify "^1.0.1" + workbox-build "^4.1.1" + +workbox-window@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.1.1.tgz#0c449b87406baa4dc9f7c82d015ac63a031b3ed7" + integrity sha512-KadE/DdNY1f6Va3MMOSigheLSgNxWHV/K/iDHnLMpo2EBGVpfwRCOuEwJNHlWA3G5WdpZlyTmtShf/5Mbb6dNg== + dependencies: + workbox-core "^4.1.1" + worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" @@ -5695,9 +6211,9 @@ wrappy@1: integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" - integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== + version "2.4.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" + integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -5717,12 +6233,40 @@ write-file-webpack-plugin@^4.5.0: write-file-atomic "^2.3.0" ws@^6.0.0: - version "6.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8" - integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" +xhr@^2.0.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.5: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"