From e10fae3bf1b9467f030356fc609262c6f01e618e Mon Sep 17 00:00:00 2001 From: CzBiX Date: Fri, 2 Oct 2020 16:46:34 +0800 Subject: [PATCH] Add PWA --- package.json | 2 + public/favicon.ico | Bin 22382 -> 0 bytes public/{ => img/icons}/apple-touch-icon.png | Bin public/img/icons/favicon-16x16.png | Bin 0 -> 775 bytes public/img/icons/favicon-192x192.png | Bin 0 -> 11562 bytes public/img/icons/favicon-32x32.png | Bin 0 -> 1734 bytes public/index.html | 10 - public/manifest.json | 9 + src/components/MainToolbar.vue | 2 +- src/main.ts | 1 + src/registerServiceWorker.ts | 32 +++ vue.config.js | 18 ++ yarn.lock | 232 +++++++++++++++++++- 13 files changed, 293 insertions(+), 13 deletions(-) delete mode 100755 public/favicon.ico rename public/{ => img/icons}/apple-touch-icon.png (100%) create mode 100644 public/img/icons/favicon-16x16.png create mode 100644 public/img/icons/favicon-192x192.png create mode 100644 public/img/icons/favicon-32x32.png create mode 100644 public/manifest.json create mode 100644 src/registerServiceWorker.ts diff --git a/package.json b/package.json index 79fca14..42eba2e 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "debug": "^4.1.1", "lodash": "^4.17.15", "node-polyglot": "^2.4.0", + "register-service-worker": "^1.7.1", "roboto-fontface": "*", "vue": "^2.6.11", "vue-class-component": "^7.2.3", @@ -34,6 +35,7 @@ "@typescript-eslint/parser": "^2.33.0", "@vue/cli-plugin-babel": "~4.5.6", "@vue/cli-plugin-eslint": "~4.5.6", + "@vue/cli-plugin-pwa": "~4.5.0", "@vue/cli-plugin-router": "~4.5.6", "@vue/cli-plugin-typescript": "~4.5.6", "@vue/cli-plugin-unit-jest": "~4.5.6", diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100755 index 897ad7d9f995402bbd8cba85525fc5af0a5d38f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22382 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 E--8OfasU7T diff --git a/public/apple-touch-icon.png b/public/img/icons/apple-touch-icon.png similarity index 100% rename from public/apple-touch-icon.png rename to public/img/icons/apple-touch-icon.png diff --git a/public/img/icons/favicon-16x16.png b/public/img/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c879869d2e082cc6211a922bc06684430d61f46e GIT binary patch literal 775 zcmV+i1Ni)jP)btY%V^>F`08)#?Xc7}DRsNUXMQg8Q+>ozQlf>H`F3ZF{Q zr?XNqsEc}f)x_ZLjs|e!pLO+Tv9Y>Bvq)NrIuxxhgVTg}3o2~Ju;A78Q-bTkK>~-H ze~m-m3-#6I4JNT|2e##)`5n_s#qv>Jj@#mt)+EWBe|2lGe2g9t2EOr}3u~<{ z5V;TS?#8i)WjK7R1nXyYg`XR$(^81*)=Vj$vIB-;qjNw;NmU9d-G|*GSQeGP#lM~6bxV@cS@-^PWo^@Ax!W&O;p`59UxS}fLgHOeb zTFu1mx22dmEP{k?A)}x{L{MC<m$IQH40H*)_=L*ul@YyMXa06` zudS?0_AISTptw9HDnEZx4^e~cQi0=hW^LhhV2=JTF?5Z4ugATj6szpM0n2sr>P+D0%UWFlXN{IGogXAkALc2 zfA}%+%a6YnpFaQO0g3VPvVY;?U_PO#!a3Jeg7*rtdH{{-++;3v6>k6l002ovPDHLk FV1o2tbz=Yk literal 0 HcmV?d00001 diff --git a/public/img/icons/favicon-192x192.png b/public/img/icons/favicon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..44eb9d7dc8698bb1888af012890a1ac04f3addb1 GIT binary patch literal 11562 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 - - - - - - - - - - qBittorrent Web UI diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..45c7fc6 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,9 @@ +{ + "icons": [ + { + "src": "./img/icons/favicon-192x192.png", + "sizes": "192x192", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/src/components/MainToolbar.vue b/src/components/MainToolbar.vue index 8e22c0c..7b687ee 100644 --- a/src/components/MainToolbar.vue +++ b/src/components/MainToolbar.vue @@ -13,7 +13,7 @@ > qBittorrent Web UI diff --git a/src/main.ts b/src/main.ts index fd8ec9f..c96693c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,6 +15,7 @@ import App from './App.vue'; import 'roboto-fontface/css/roboto/roboto-fontface.css'; import '@mdi/font/css/materialdesignicons.css'; +import './registerServiceWorker'; Vue.config.productionTip = false; diff --git a/src/registerServiceWorker.ts b/src/registerServiceWorker.ts new file mode 100644 index 0000000..76cede0 --- /dev/null +++ b/src/registerServiceWorker.ts @@ -0,0 +1,32 @@ +/* eslint-disable no-console */ + +import { register } from 'register-service-worker' + +if (process.env.NODE_ENV === 'production') { + register(`${process.env.BASE_URL}service-worker.js`, { + ready () { + console.log( + 'App is being served from cache by a service worker.\n' + + 'For more details, visit https://goo.gl/AFskqB' + ) + }, + registered () { + console.log('Service worker has been registered.') + }, + cached () { + console.log('Content has been cached for offline use.') + }, + updatefound () { + console.log('New content is downloading.') + }, + updated () { + console.log('New content is available; please refresh.') + }, + offline () { + console.log('No internet connection found. App is running in offline mode.') + }, + error (error) { + console.error('Error during service worker registration:', error) + } + }) +} diff --git a/vue.config.js b/vue.config.js index d031d5f..b63caa3 100644 --- a/vue.config.js +++ b/vue.config.js @@ -2,6 +2,24 @@ module.exports = { outputDir: 'dist/public', publicPath: './', + pwa: { + // name: "qb-web", + themeColor: "#4d8ad5", + msTileColor: "#4d8ad5", + appleMobileWebAppCapable: 'yes', + + iconPaths: { + favicon32: 'img/icons/favicon-32x32.png', + favicon16: 'img/icons/favicon-16x16.png', + appleTouchIcon: 'img/icons/apple-touch-icon.png', + maskIcon: null, + msTileImage: null, + }, + workboxOptions: { + importWorkboxFrom: 'local', + } + }, + devServer: { port: 8000, proxy: { diff --git a/yarn.lock b/yarn.lock index ffb6064..f508569 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1053,7 +1053,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.11.0": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.3.4": version "7.11.2" resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.11.2.tgz?cache=0&sync_timestamp=1596637820375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha1-9UnBPHVMxAuHZEufqfCaapX+BzY= @@ -1161,7 +1161,7 @@ resolved "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" integrity sha1-/elgZMpEbeyMVajC8TCVewcMbgY= -"@hapi/joi@^15.0.1": +"@hapi/joi@^15.0.0", "@hapi/joi@^15.0.1": version "15.1.1" resolved "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1584171913948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" integrity sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc= @@ -1990,6 +1990,15 @@ webpack "^4.0.0" yorkie "^2.0.0" +"@vue/cli-plugin-pwa@~4.5.0": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-pwa/-/cli-plugin-pwa-4.5.6.tgz#ac1202f58bd96b6ecf05a18bc68ef792dcbd31ab" + integrity sha512-jMTBo9oR3mkwcqFbtgbKgfuYLZoivDoH5KEwqOkzqamuapOUazAbmlrad0XSF92MKcF8XxWrdZjsEsD/TshDPw== + dependencies: + "@vue/cli-shared-utils" "^4.5.6" + webpack "^4.0.0" + workbox-webpack-plugin "^4.3.1" + "@vue/cli-plugin-router@^4.5.6", "@vue/cli-plugin-router@~4.5.6": version "4.5.6" resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.6.tgz#96f43cdeea6931ae25adb065dd757d6ff4f81354" @@ -2722,6 +2731,13 @@ babel-core@^7.0.0-bridge.0: resolved "https://registry.npm.taobao.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha1-laSS3dkPm06aSh2hTrM1uHtjTs4= +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-jest@^24.9.0, babel-jest@^25.0.0, babel-jest@^25.5.0: version "25.5.0" resolved "https://registry.npm.taobao.org/babel-jest/download/babel-jest-25.5.0.tgz#a310e74f76585cf24d526ed477e56ee83bce86c4" @@ -2791,6 +2807,11 @@ babel-plugin-jest-hoist@^25.5.0: "@babel/types" "^7.3.3" "@types/babel__traverse" "^7.0.6" +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-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-es2015-modules-commonjs@^6.26.2: version "6.26.2" resolved "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" @@ -2801,6 +2822,14 @@ babel-plugin-transform-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-e babel-template "^6.26.0" babel-types "^6.26.0" +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-plugin-transform-strict-mode@^6.24.1: version "6.24.1" resolved "https://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" @@ -3664,6 +3693,11 @@ commander@~2.19.0: resolved "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So= +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.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -5337,6 +5371,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.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -7053,6 +7096,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +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: version "5.0.1" resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -7098,6 +7148,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -7291,6 +7346,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.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.defaultsdeep@^4.6.1: version "4.6.1" resolved "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" @@ -7316,6 +7376,21 @@ lodash.sortby@^4.7.0: resolved "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.template@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.transform@^4.6.0: version "4.6.0" resolved "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" @@ -8879,6 +8954,11 @@ prettier@^1.18.2: resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha1-99f1/4qc2HKnvkyhQglZVqYHl8s= +pretty-bytes@^5.1.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b" + integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA== + pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -9263,6 +9343,11 @@ regexpu-core@^4.7.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" +register-service-worker@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.1.tgz#6308347ac6c0af0f6c0b22ea5d59d25e836bc932" + integrity sha512-IdTfUZ4u8iJL8o1w8es8l6UMGPmkwHolUdT+UmM1UypC80IB4KbpuIlvwWVj8UDS7eJwkEYRcKRgfRX+oTmJsw== + regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" @@ -10269,6 +10354,14 @@ strip-bom@^4.0.0: resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg= +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.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -11389,6 +11482,141 @@ word-wrap@~1.2.3: resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= +workbox-background-sync@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" + integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== + dependencies: + workbox-core "^4.3.1" + +workbox-broadcast-update@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz#e2c0280b149e3a504983b757606ad041f332c35b" + integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== + dependencies: + workbox-core "^4.3.1" + +workbox-build@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz#414f70fb4d6de47f6538608b80ec52412d233e64" + integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== + dependencies: + "@babel/runtime" "^7.3.4" + "@hapi/joi" "^15.0.0" + common-tags "^1.8.0" + fs-extra "^4.0.2" + glob "^7.1.3" + lodash.template "^4.4.0" + pretty-bytes "^5.1.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + workbox-background-sync "^4.3.1" + workbox-broadcast-update "^4.3.1" + workbox-cacheable-response "^4.3.1" + workbox-core "^4.3.1" + workbox-expiration "^4.3.1" + workbox-google-analytics "^4.3.1" + workbox-navigation-preload "^4.3.1" + workbox-precaching "^4.3.1" + workbox-range-requests "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + workbox-streams "^4.3.1" + workbox-sw "^4.3.1" + workbox-window "^4.3.1" + +workbox-cacheable-response@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz#f53e079179c095a3f19e5313b284975c91428c91" + integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== + dependencies: + workbox-core "^4.3.1" + +workbox-core@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz#005d2c6a06a171437afd6ca2904a5727ecd73be6" + integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== + +workbox-expiration@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz#d790433562029e56837f341d7f553c4a78ebe921" + integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== + dependencies: + workbox-core "^4.3.1" + +workbox-google-analytics@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz#9eda0183b103890b5c256e6f4ea15a1f1548519a" + integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== + dependencies: + workbox-background-sync "^4.3.1" + workbox-core "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + +workbox-navigation-preload@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz#29c8e4db5843803b34cd96dc155f9ebd9afa453d" + integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== + dependencies: + workbox-core "^4.3.1" + +workbox-precaching@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz#9fc45ed122d94bbe1f0ea9584ff5940960771cba" + integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== + dependencies: + workbox-core "^4.3.1" + +workbox-range-requests@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz#f8a470188922145cbf0c09a9a2d5e35645244e74" + integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== + dependencies: + workbox-core "^4.3.1" + +workbox-routing@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz#a675841af623e0bb0c67ce4ed8e724ac0bed0cda" + integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== + dependencies: + workbox-core "^4.3.1" + +workbox-strategies@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz#d2be03c4ef214c115e1ab29c9c759c9fe3e9e646" + integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== + dependencies: + workbox-core "^4.3.1" + +workbox-streams@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz#0b57da70e982572de09c8742dd0cb40a6b7c2cc3" + integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== + dependencies: + workbox-core "^4.3.1" + +workbox-sw@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz#df69e395c479ef4d14499372bcd84c0f5e246164" + integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== + +workbox-webpack-plugin@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz#47ff5ea1cc074b6c40fb5a86108863a24120d4bd" + integrity sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ== + dependencies: + "@babel/runtime" "^7.0.0" + json-stable-stringify "^1.0.1" + workbox-build "^4.3.1" + +workbox-window@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz#ee6051bf10f06afa5483c9b8dfa0531994ede0f3" + integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== + dependencies: + workbox-core "^4.3.1" + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"