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 897ad7d..0000000
Binary files a/public/favicon.ico and /dev/null differ
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 0000000..c879869
Binary files /dev/null and b/public/img/icons/favicon-16x16.png differ
diff --git a/public/img/icons/favicon-192x192.png b/public/img/icons/favicon-192x192.png
new file mode 100644
index 0000000..44eb9d7
Binary files /dev/null and b/public/img/icons/favicon-192x192.png differ
diff --git a/public/img/icons/favicon-32x32.png b/public/img/icons/favicon-32x32.png
new file mode 100644
index 0000000..e3e2c32
Binary files /dev/null and b/public/img/icons/favicon-32x32.png differ
diff --git a/public/index.html b/public/index.html
index f698629..cd0c1f2 100644
--- a/public/index.html
+++ b/public/index.html
@@ -6,17 +6,7 @@
-
-
-
-
-
-
-
-
-
-
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"