add middleware, webdav client, pinia
This commit is contained in:
		
							parent
							
								
									ba2ab64021
								
							
						
					
					
						commit
						e447cb5164
					
				| @ -16,6 +16,8 @@ module.exports = { | ||||
|   rules: { | ||||
|     "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", | ||||
|     "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", | ||||
|     "@typescript-eslint/ban-ts-ignore": "off", | ||||
|     "@typescript-eslint/ban-ts-comment": "off", | ||||
| }, | ||||
|   overrides: [ | ||||
|     { | ||||
|  | ||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -2,6 +2,7 @@ | ||||
| node_modules | ||||
| /dist | ||||
| 
 | ||||
| package-lock.json | ||||
| 
 | ||||
| # local env files | ||||
| .env.local | ||||
|  | ||||
							
								
								
									
										401
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										401
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -9,10 +9,11 @@ | ||||
|       "version": "0.1.0", | ||||
|       "dependencies": { | ||||
|         "core-js": "^3.6.5", | ||||
|         "pinia": "^2.0.13", | ||||
|         "register-service-worker": "^1.7.1", | ||||
|         "vue": "^3.0.0", | ||||
|         "vue-router": "^4.0.0-0", | ||||
|         "vuex": "^4.0.0-0" | ||||
|         "webdav": "^4.9.0" | ||||
|       }, | ||||
|       "devDependencies": { | ||||
|         "@types/jest": "^24.0.19", | ||||
| @ -36,7 +37,7 @@ | ||||
|         "prettier": "^2.2.1", | ||||
|         "sass": "^1.26.5", | ||||
|         "sass-loader": "^8.0.2", | ||||
|         "typescript": "~4.1.5", | ||||
|         "typescript": "^4.6.3", | ||||
|         "vue-jest": "^5.0.0-0" | ||||
|       } | ||||
|     }, | ||||
| @ -4349,6 +4350,14 @@ | ||||
|       "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/axios": { | ||||
|       "version": "0.26.1", | ||||
|       "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", | ||||
|       "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", | ||||
|       "dependencies": { | ||||
|         "follow-redirects": "^1.14.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/babel-code-frame": { | ||||
|       "version": "6.26.0", | ||||
|       "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", | ||||
| @ -4731,8 +4740,7 @@ | ||||
|     "node_modules/balanced-match": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", | ||||
|       "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" | ||||
|     }, | ||||
|     "node_modules/base": { | ||||
|       "version": "0.11.2", | ||||
| @ -4752,6 +4760,11 @@ | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/base-64": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", | ||||
|       "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" | ||||
|     }, | ||||
|     "node_modules/base/node_modules/define-property": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | ||||
| @ -5454,6 +5467,14 @@ | ||||
|       "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/charenc": { | ||||
|       "version": "0.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", | ||||
|       "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", | ||||
|       "engines": { | ||||
|         "node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/check-types": { | ||||
|       "version": "8.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", | ||||
| @ -6466,6 +6487,14 @@ | ||||
|         "semver": "bin/semver" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/crypt": { | ||||
|       "version": "0.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", | ||||
|       "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", | ||||
|       "engines": { | ||||
|         "node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/crypto-browserify": { | ||||
|       "version": "3.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", | ||||
| @ -8665,6 +8694,21 @@ | ||||
|       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/fast-xml-parser": { | ||||
|       "version": "3.21.1", | ||||
|       "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", | ||||
|       "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", | ||||
|       "dependencies": { | ||||
|         "strnum": "^1.0.4" | ||||
|       }, | ||||
|       "bin": { | ||||
|         "xml2js": "cli.js" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "paypal", | ||||
|         "url": "https://paypal.me/naturalintelligence" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/fastq": { | ||||
|       "version": "1.13.0", | ||||
|       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", | ||||
| @ -8927,7 +8971,6 @@ | ||||
|       "version": "1.14.9", | ||||
|       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", | ||||
|       "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", | ||||
|       "dev": true, | ||||
|       "funding": [ | ||||
|         { | ||||
|           "type": "individual", | ||||
| @ -9806,7 +9849,6 @@ | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", | ||||
|       "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", | ||||
|       "dev": true, | ||||
|       "bin": { | ||||
|         "he": "bin/he" | ||||
|       } | ||||
| @ -9852,6 +9894,11 @@ | ||||
|       "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/hot-patcher": { | ||||
|       "version": "0.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/hot-patcher/-/hot-patcher-0.5.0.tgz", | ||||
|       "integrity": "sha512-2Uu2W0s8+dnqXzdlg0MRsRzPoDCs1wVjOGSyMRRaMzLDX4bgHw6xDYKccsWafXPPxQpkQfEjgW6+17pwcg60bw==" | ||||
|     }, | ||||
|     "node_modules/hpack.js": { | ||||
|       "version": "2.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", | ||||
| @ -10537,8 +10584,7 @@ | ||||
|     "node_modules/is-buffer": { | ||||
|       "version": "1.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", | ||||
|       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" | ||||
|     }, | ||||
|     "node_modules/is-callable": { | ||||
|       "version": "1.2.4", | ||||
| @ -12379,6 +12425,11 @@ | ||||
|       "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/layerr": { | ||||
|       "version": "0.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/layerr/-/layerr-0.1.2.tgz", | ||||
|       "integrity": "sha512-ob5kTd9H3S4GOG2nVXyQhOu9O8nBgP555XxWPkJI0tR0JeRilfyTp8WtPdIJHLXBmHMSdEq5+KMxiYABeScsIQ==" | ||||
|     }, | ||||
|     "node_modules/left-pad": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", | ||||
| @ -12725,6 +12776,16 @@ | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/md5": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", | ||||
|       "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", | ||||
|       "dependencies": { | ||||
|         "charenc": "0.0.2", | ||||
|         "crypt": "0.0.2", | ||||
|         "is-buffer": "~1.1.6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/md5.js": { | ||||
|       "version": "1.3.5", | ||||
|       "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", | ||||
| @ -13267,6 +13328,11 @@ | ||||
|       "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/nested-property": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/nested-property/-/nested-property-4.0.0.tgz", | ||||
|       "integrity": "sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA==" | ||||
|     }, | ||||
|     "node_modules/nice-try": { | ||||
|       "version": "1.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", | ||||
| @ -14185,6 +14251,11 @@ | ||||
|       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/path-posix": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", | ||||
|       "integrity": "sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8=" | ||||
|     }, | ||||
|     "node_modules/path-to-regexp": { | ||||
|       "version": "0.1.7", | ||||
|       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||||
| @ -14261,6 +14332,56 @@ | ||||
|         "node": ">=6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/pinia": { | ||||
|       "version": "2.0.13", | ||||
|       "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.13.tgz", | ||||
|       "integrity": "sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==", | ||||
|       "dependencies": { | ||||
|         "@vue/devtools-api": "^6.1.4", | ||||
|         "vue-demi": "*" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/posva" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@vue/composition-api": "^1.4.0", | ||||
|         "typescript": ">=4.4.4", | ||||
|         "vue": "^2.6.14 || ^3.2.0" | ||||
|       }, | ||||
|       "peerDependenciesMeta": { | ||||
|         "@vue/composition-api": { | ||||
|           "optional": true | ||||
|         }, | ||||
|         "typescript": { | ||||
|           "optional": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/pinia/node_modules/vue-demi": { | ||||
|       "version": "0.12.5", | ||||
|       "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz", | ||||
|       "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==", | ||||
|       "hasInstallScript": true, | ||||
|       "bin": { | ||||
|         "vue-demi-fix": "bin/vue-demi-fix.js", | ||||
|         "vue-demi-switch": "bin/vue-demi-switch.js" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=12" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/antfu" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@vue/composition-api": "^1.0.0-rc.1", | ||||
|         "vue": "^3.0.0-0 || ^2.6.0" | ||||
|       }, | ||||
|       "peerDependenciesMeta": { | ||||
|         "@vue/composition-api": { | ||||
|           "optional": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/pinkie": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", | ||||
| @ -15394,8 +15515,7 @@ | ||||
|     "node_modules/querystringify": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", | ||||
|       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" | ||||
|     }, | ||||
|     "node_modules/queue-microtask": { | ||||
|       "version": "1.2.3", | ||||
| @ -15848,8 +15968,7 @@ | ||||
|     "node_modules/requires-port": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", | ||||
|       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", | ||||
|       "dev": true | ||||
|       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" | ||||
|     }, | ||||
|     "node_modules/resolve": { | ||||
|       "version": "1.22.0", | ||||
| @ -17399,6 +17518,11 @@ | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/strnum": { | ||||
|       "version": "1.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", | ||||
|       "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" | ||||
|     }, | ||||
|     "node_modules/stylehacks": { | ||||
|       "version": "4.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", | ||||
| @ -18262,10 +18386,10 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/typescript": { | ||||
|       "version": "4.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.6.tgz", | ||||
|       "integrity": "sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow==", | ||||
|       "dev": true, | ||||
|       "version": "4.6.3", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", | ||||
|       "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", | ||||
|       "devOptional": true, | ||||
|       "bin": { | ||||
|         "tsc": "bin/tsc", | ||||
|         "tsserver": "bin/tsserver" | ||||
| @ -18528,6 +18652,11 @@ | ||||
|         "querystring": "0.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/url-join": { | ||||
|       "version": "4.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", | ||||
|       "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" | ||||
|     }, | ||||
|     "node_modules/url-loader": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", | ||||
| @ -18581,7 +18710,6 @@ | ||||
|       "version": "1.5.10", | ||||
|       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", | ||||
|       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "querystringify": "^2.1.1", | ||||
|         "requires-port": "^1.0.0" | ||||
| @ -19033,17 +19161,6 @@ | ||||
|       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/vuex": { | ||||
|       "version": "4.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", | ||||
|       "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", | ||||
|       "dependencies": { | ||||
|         "@vue/devtools-api": "^6.0.0-beta.11" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "vue": "^3.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/w3c-hr-time": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", | ||||
| @ -19295,6 +19412,47 @@ | ||||
|         "defaults": "^1.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webdav": { | ||||
|       "version": "4.9.0", | ||||
|       "resolved": "https://registry.npmjs.org/webdav/-/webdav-4.9.0.tgz", | ||||
|       "integrity": "sha512-pMuRtZcjBk3i6q1iY5wBHdablKftoBfhrQEWWEejSh2LXgd0J6VE5V0c1tUlMrFHaVDx8iCoB9kupNzy8SMC4A==", | ||||
|       "dependencies": { | ||||
|         "axios": "^0.26.1", | ||||
|         "base-64": "^1.0.0", | ||||
|         "fast-xml-parser": "^3.19.0", | ||||
|         "he": "^1.2.0", | ||||
|         "hot-patcher": "^0.5.0", | ||||
|         "layerr": "^0.1.2", | ||||
|         "md5": "^2.3.0", | ||||
|         "minimatch": "^5.0.1", | ||||
|         "nested-property": "^4.0.0", | ||||
|         "path-posix": "^1.0.0", | ||||
|         "url-join": "^4.0.1", | ||||
|         "url-parse": "^1.5.10" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webdav/node_modules/brace-expansion": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", | ||||
|       "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", | ||||
|       "dependencies": { | ||||
|         "balanced-match": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webdav/node_modules/minimatch": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", | ||||
|       "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", | ||||
|       "dependencies": { | ||||
|         "brace-expansion": "^2.0.1" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webidl-conversions": { | ||||
|       "version": "4.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", | ||||
| @ -23087,7 +23245,8 @@ | ||||
|       "version": "4.5.17", | ||||
|       "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.17.tgz", | ||||
|       "integrity": "sha512-ck/ju2T2dmPKLWK/5QctNJs9SCb+eSZbbmr8neFkMc7GlbXw6qLWw5v3Vpd4KevdQA8QuQOA1pjUmzpCiU/mYQ==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "@vue/cli-service": { | ||||
|       "version": "4.5.17", | ||||
| @ -23322,7 +23481,8 @@ | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", | ||||
|       "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "@vue/reactivity": { | ||||
|       "version": "3.2.33", | ||||
| @ -23381,7 +23541,8 @@ | ||||
|       "version": "2.0.0-rc.21", | ||||
|       "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.21.tgz", | ||||
|       "integrity": "sha512-wIJR4e/jISBKVKfiod3DV32BlDsoD744WVCuCaGtaSKvhvTL9gI5vl2AYSy00V51YaM8dCOFi3zcpCON8G1WqA==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "@vue/web-component-wrapper": { | ||||
|       "version": "1.3.0", | ||||
| @ -23632,7 +23793,8 @@ | ||||
|       "version": "5.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", | ||||
|       "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "acorn-walk": { | ||||
|       "version": "7.2.0", | ||||
| @ -23662,13 +23824,15 @@ | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", | ||||
|       "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "ajv-keywords": { | ||||
|       "version": "3.5.2", | ||||
|       "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", | ||||
|       "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "alphanum-sort": { | ||||
|       "version": "1.0.2", | ||||
| @ -23941,6 +24105,14 @@ | ||||
|       "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "axios": { | ||||
|       "version": "0.26.1", | ||||
|       "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", | ||||
|       "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", | ||||
|       "requires": { | ||||
|         "follow-redirects": "^1.14.8" | ||||
|       } | ||||
|     }, | ||||
|     "babel-code-frame": { | ||||
|       "version": "6.26.0", | ||||
|       "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", | ||||
| @ -24004,7 +24176,8 @@ | ||||
|       "version": "7.0.0-bridge.0", | ||||
|       "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", | ||||
|       "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "babel-extract-comments": { | ||||
|       "version": "1.0.0", | ||||
| @ -24265,8 +24438,7 @@ | ||||
|     "balanced-match": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", | ||||
|       "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" | ||||
|     }, | ||||
|     "base": { | ||||
|       "version": "0.11.2", | ||||
| @ -24294,6 +24466,11 @@ | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "base-64": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", | ||||
|       "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" | ||||
|     }, | ||||
|     "base64-js": { | ||||
|       "version": "1.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", | ||||
| @ -24866,6 +25043,11 @@ | ||||
|       "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "charenc": { | ||||
|       "version": "0.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", | ||||
|       "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" | ||||
|     }, | ||||
|     "check-types": { | ||||
|       "version": "8.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", | ||||
| @ -25677,6 +25859,11 @@ | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "crypt": { | ||||
|       "version": "0.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", | ||||
|       "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" | ||||
|     }, | ||||
|     "crypto-browserify": { | ||||
|       "version": "3.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", | ||||
| @ -27404,6 +27591,14 @@ | ||||
|       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fast-xml-parser": { | ||||
|       "version": "3.21.1", | ||||
|       "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", | ||||
|       "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", | ||||
|       "requires": { | ||||
|         "strnum": "^1.0.4" | ||||
|       } | ||||
|     }, | ||||
|     "fastq": { | ||||
|       "version": "1.13.0", | ||||
|       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", | ||||
| @ -27619,8 +27814,7 @@ | ||||
|     "follow-redirects": { | ||||
|       "version": "1.14.9", | ||||
|       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", | ||||
|       "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" | ||||
|     }, | ||||
|     "for-in": { | ||||
|       "version": "1.0.2", | ||||
| @ -28279,8 +28473,7 @@ | ||||
|     "he": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", | ||||
|       "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" | ||||
|     }, | ||||
|     "hex-color-regex": { | ||||
|       "version": "1.1.0", | ||||
| @ -28317,6 +28510,11 @@ | ||||
|       "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "hot-patcher": { | ||||
|       "version": "0.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/hot-patcher/-/hot-patcher-0.5.0.tgz", | ||||
|       "integrity": "sha512-2Uu2W0s8+dnqXzdlg0MRsRzPoDCs1wVjOGSyMRRaMzLDX4bgHw6xDYKccsWafXPPxQpkQfEjgW6+17pwcg60bw==" | ||||
|     }, | ||||
|     "hpack.js": { | ||||
|       "version": "2.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", | ||||
| @ -28851,8 +29049,7 @@ | ||||
|     "is-buffer": { | ||||
|       "version": "1.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", | ||||
|       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" | ||||
|     }, | ||||
|     "is-callable": { | ||||
|       "version": "1.2.4", | ||||
| @ -29583,7 +29780,8 @@ | ||||
|           "version": "7.5.7", | ||||
|           "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", | ||||
|           "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", | ||||
|           "dev": true | ||||
|           "dev": true, | ||||
|           "requires": {} | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
| @ -29733,7 +29931,8 @@ | ||||
|       "version": "1.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", | ||||
|       "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", | ||||
|       "dev": true | ||||
|       "dev": true, | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "jest-regex-util": { | ||||
|       "version": "24.9.0", | ||||
| @ -30314,6 +30513,11 @@ | ||||
|         "launch-editor": "^2.3.0" | ||||
|       } | ||||
|     }, | ||||
|     "layerr": { | ||||
|       "version": "0.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/layerr/-/layerr-0.1.2.tgz", | ||||
|       "integrity": "sha512-ob5kTd9H3S4GOG2nVXyQhOu9O8nBgP555XxWPkJI0tR0JeRilfyTp8WtPdIJHLXBmHMSdEq5+KMxiYABeScsIQ==" | ||||
|     }, | ||||
|     "left-pad": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", | ||||
| @ -30605,6 +30809,16 @@ | ||||
|         "object-visit": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "md5": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", | ||||
|       "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", | ||||
|       "requires": { | ||||
|         "charenc": "0.0.2", | ||||
|         "crypt": "0.0.2", | ||||
|         "is-buffer": "~1.1.6" | ||||
|       } | ||||
|     }, | ||||
|     "md5.js": { | ||||
|       "version": "1.3.5", | ||||
|       "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", | ||||
| @ -31059,6 +31273,11 @@ | ||||
|       "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "nested-property": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/nested-property/-/nested-property-4.0.0.tgz", | ||||
|       "integrity": "sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA==" | ||||
|     }, | ||||
|     "nice-try": { | ||||
|       "version": "1.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", | ||||
| @ -31793,6 +32012,11 @@ | ||||
|       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "path-posix": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", | ||||
|       "integrity": "sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8=" | ||||
|     }, | ||||
|     "path-to-regexp": { | ||||
|       "version": "0.1.7", | ||||
|       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||||
| @ -31853,6 +32077,23 @@ | ||||
|       "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "pinia": { | ||||
|       "version": "2.0.13", | ||||
|       "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.13.tgz", | ||||
|       "integrity": "sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==", | ||||
|       "requires": { | ||||
|         "@vue/devtools-api": "^6.1.4", | ||||
|         "vue-demi": "*" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "vue-demi": { | ||||
|           "version": "0.12.5", | ||||
|           "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz", | ||||
|           "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==", | ||||
|           "requires": {} | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "pinkie": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", | ||||
| @ -32809,8 +33050,7 @@ | ||||
|     "querystringify": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", | ||||
|       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" | ||||
|     }, | ||||
|     "queue-microtask": { | ||||
|       "version": "1.2.3", | ||||
| @ -33165,8 +33405,7 @@ | ||||
|     "requires-port": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", | ||||
|       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", | ||||
|       "dev": true | ||||
|       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" | ||||
|     }, | ||||
|     "resolve": { | ||||
|       "version": "1.22.0", | ||||
| @ -34430,6 +34669,11 @@ | ||||
|       "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "strnum": { | ||||
|       "version": "1.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", | ||||
|       "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" | ||||
|     }, | ||||
|     "stylehacks": { | ||||
|       "version": "4.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", | ||||
| @ -35125,10 +35369,10 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "typescript": { | ||||
|       "version": "4.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.6.tgz", | ||||
|       "integrity": "sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow==", | ||||
|       "dev": true | ||||
|       "version": "4.6.3", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", | ||||
|       "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", | ||||
|       "devOptional": true | ||||
|     }, | ||||
|     "uglify-js": { | ||||
|       "version": "3.4.10", | ||||
| @ -35347,6 +35591,11 @@ | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "url-join": { | ||||
|       "version": "4.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", | ||||
|       "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" | ||||
|     }, | ||||
|     "url-loader": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", | ||||
| @ -35384,7 +35633,6 @@ | ||||
|       "version": "1.5.10", | ||||
|       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", | ||||
|       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "querystringify": "^2.1.1", | ||||
|         "requires-port": "^1.0.0" | ||||
| @ -35735,14 +35983,6 @@ | ||||
|       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "vuex": { | ||||
|       "version": "4.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", | ||||
|       "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", | ||||
|       "requires": { | ||||
|         "@vue/devtools-api": "^6.0.0-beta.11" | ||||
|       } | ||||
|     }, | ||||
|     "w3c-hr-time": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", | ||||
| @ -35958,6 +36198,43 @@ | ||||
|         "defaults": "^1.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "webdav": { | ||||
|       "version": "4.9.0", | ||||
|       "resolved": "https://registry.npmjs.org/webdav/-/webdav-4.9.0.tgz", | ||||
|       "integrity": "sha512-pMuRtZcjBk3i6q1iY5wBHdablKftoBfhrQEWWEejSh2LXgd0J6VE5V0c1tUlMrFHaVDx8iCoB9kupNzy8SMC4A==", | ||||
|       "requires": { | ||||
|         "axios": "^0.26.1", | ||||
|         "base-64": "^1.0.0", | ||||
|         "fast-xml-parser": "^3.19.0", | ||||
|         "he": "^1.2.0", | ||||
|         "hot-patcher": "^0.5.0", | ||||
|         "layerr": "^0.1.2", | ||||
|         "md5": "^2.3.0", | ||||
|         "minimatch": "^5.0.1", | ||||
|         "nested-property": "^4.0.0", | ||||
|         "path-posix": "^1.0.0", | ||||
|         "url-join": "^4.0.1", | ||||
|         "url-parse": "^1.5.10" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "brace-expansion": { | ||||
|           "version": "2.0.1", | ||||
|           "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", | ||||
|           "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", | ||||
|           "requires": { | ||||
|             "balanced-match": "^1.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "minimatch": { | ||||
|           "version": "5.0.1", | ||||
|           "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", | ||||
|           "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", | ||||
|           "requires": { | ||||
|             "brace-expansion": "^2.0.1" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "webidl-conversions": { | ||||
|       "version": "4.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", | ||||
|  | ||||
| @ -13,7 +13,8 @@ | ||||
|     "register-service-worker": "^1.7.1", | ||||
|     "vue": "^3.0.0", | ||||
|     "vue-router": "^4.0.0-0", | ||||
|     "vuex": "^4.0.0-0" | ||||
|     "pinia": "^2.0.13", | ||||
|     "webdav": "^4.9.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/jest": "^24.0.19", | ||||
| @ -37,7 +38,7 @@ | ||||
|     "prettier": "^2.2.1", | ||||
|     "sass": "^1.26.5", | ||||
|     "sass-loader": "^8.0.2", | ||||
|     "typescript": "~4.1.5", | ||||
|     "typescript": "^4.6.3", | ||||
|     "vue-jest": "^5.0.0-0" | ||||
|   } | ||||
| } | ||||
|  | ||||
							
								
								
									
										6
									
								
								prettier.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								prettier.config.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| module.exports = { | ||||
|   trailingComma: "es5", | ||||
|   tabWidth: 2, | ||||
|   semi: true, | ||||
|   singleQuote: true, | ||||
| }; | ||||
							
								
								
									
										13
									
								
								src/components/Footer.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/components/Footer.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| <template> | ||||
| 
 | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   name: "Footer" | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| </style> | ||||
							
								
								
									
										13
									
								
								src/components/Header.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/components/Header.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| <template> | ||||
| 
 | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   name: "Header" | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| </style> | ||||
							
								
								
									
										30
									
								
								src/lib/runMiddleware.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/lib/runMiddleware.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| import { Context } from '@/middleware/Context'; | ||||
| 
 | ||||
| type RunMiddleware = (context: Context) => void; | ||||
| function nextFactory( | ||||
|   context: Context, | ||||
|   middlewares: Array<RunMiddleware>, | ||||
|   index: number | ||||
| ) { | ||||
|   const subsequentMiddleware = middlewares[index]; | ||||
|   if (!subsequentMiddleware) return context.next; | ||||
| 
 | ||||
|   return (...args: any[]) => { | ||||
|     // @ts-ignore
 | ||||
|     context.next(...args); | ||||
|     subsequentMiddleware({ | ||||
|       ...context, | ||||
|       next: nextFactory(context, middlewares, index++), | ||||
|     }); | ||||
|   }; | ||||
| } | ||||
| export function runMiddleware(context: Context) { | ||||
|   const { to } = context; | ||||
|   const middlewares = [ | ||||
|     ...((Array.isArray(to.meta.middleware) | ||||
|       ? to.meta.middleware | ||||
|       : [to.meta.middleware]) as Array<RunMiddleware>), | ||||
|   ]; | ||||
| 
 | ||||
|   middlewares[0]({ ...context, next: nextFactory(context, middlewares, 1) }); | ||||
| } | ||||
							
								
								
									
										12
									
								
								src/middleware/Context.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/middleware/Context.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| import { | ||||
|   NavigationGuardNext, | ||||
|   RouteLocationNormalized, | ||||
|   Router, | ||||
| } from 'vue-router'; | ||||
| 
 | ||||
| export type Context = { | ||||
|   from: RouteLocationNormalized; | ||||
|   to: RouteLocationNormalized; | ||||
|   next: NavigationGuardNext; | ||||
|   router: Router; | ||||
| }; | ||||
							
								
								
									
										8
									
								
								src/middleware/auth.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/middleware/auth.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| import { useWebdavStorage } from '@/store/webdav'; | ||||
| import { Context } from '@/middleware/Context'; | ||||
| 
 | ||||
| export default function auth({ next, router }: Context) { | ||||
|   console.log('auth'); | ||||
|   if (!useWebdavStorage().currentClient) return router.push({ name: 'Login' }); | ||||
|   return next(); | ||||
| } | ||||
							
								
								
									
										6
									
								
								src/middleware/log.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/middleware/log.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| import { Context } from '@/middleware/Context'; | ||||
| 
 | ||||
| export default function log({ next, to, from }: Context) { | ||||
|   console.log(from, to); | ||||
|   return next(); | ||||
| } | ||||
| @ -1,20 +1,30 @@ | ||||
| import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router"; | ||||
| import Home from "../views/Home.vue"; | ||||
| import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'; | ||||
| import Home from '../views/Home.vue'; | ||||
| import auth from '@/middleware/auth'; | ||||
| import log from '@/middleware/log'; | ||||
| import { runMiddleware } from '@/lib/runMiddleware'; | ||||
| 
 | ||||
| const routes: Array<RouteRecordRaw> = [ | ||||
|   { | ||||
|     path: "/", | ||||
|     name: "Home", | ||||
|     path: '/', | ||||
|     name: 'Home', | ||||
|     component: Home, | ||||
|   }, | ||||
|   { | ||||
|     path: "/about", | ||||
|     name: "About", | ||||
|     // route level code-splitting
 | ||||
|     // this generates a separate chunk (about.[hash].js) for this route
 | ||||
|     // which is lazy-loaded when the route is visited.
 | ||||
|     component: () => | ||||
|       import(/* webpackChunkName: "about" */ "../views/About.vue"), | ||||
|     path: '/files', | ||||
|     name: 'Files', | ||||
|     component: () => import('../views/Files.vue'), | ||||
|     meta: { | ||||
|       middleware: [auth], | ||||
|     }, | ||||
|   }, | ||||
|   { | ||||
|     path: '/login', | ||||
|     name: 'Login', | ||||
|     component: () => import('../views/Login.vue'), | ||||
|     meta: { | ||||
|       middleware: [log], | ||||
|     }, | ||||
|   }, | ||||
| ]; | ||||
| 
 | ||||
| @ -23,4 +33,9 @@ const router = createRouter({ | ||||
|   routes, | ||||
| }); | ||||
| 
 | ||||
| router.beforeEach(async (to, from, next) => { | ||||
|   if (to.meta.middleware) runMiddleware({ from, to, next, router }); | ||||
|   else next(); | ||||
| }); | ||||
| 
 | ||||
| export default router; | ||||
|  | ||||
							
								
								
									
										13
									
								
								src/store/auth.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/store/auth.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| import {defineStore} from "pinia"; | ||||
| 
 | ||||
| export const useAuthStorage = defineStore('auth', { | ||||
|   state: () => ({ | ||||
|     user: '', | ||||
|     password: '' | ||||
|   }), | ||||
|   actions: { | ||||
|     login(){ | ||||
| 
 | ||||
|     } | ||||
|   } | ||||
| }); | ||||
| @ -1,8 +1,3 @@ | ||||
| import { createStore } from "vuex"; | ||||
| import { createPinia } from 'pinia'; | ||||
| 
 | ||||
| export default createStore({ | ||||
|   state: {}, | ||||
|   mutations: {}, | ||||
|   actions: {}, | ||||
|   modules: {}, | ||||
| }); | ||||
| export default createPinia(); | ||||
|  | ||||
							
								
								
									
										27
									
								
								src/store/webdav.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/store/webdav.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| import { defineStore } from 'pinia'; | ||||
| import { createClient, AuthType, WebDAVClient } from 'webdav/web'; | ||||
| 
 | ||||
| type Auth = { | ||||
|   user: string; | ||||
|   pass: string; | ||||
| }; | ||||
| 
 | ||||
| export const useWebdavStorage = defineStore('auth', { | ||||
|   state: () => ({ | ||||
|     clientList: [] as Array<WebDAVClient>, | ||||
|     currentClient: null as null | WebDAVClient, | ||||
|   }), | ||||
|   actions: { | ||||
|     login({ user, pass }: Auth) { | ||||
|       console.log(user, pass); | ||||
|       const client = createClient(process.env.VUE_APP_ROOT_WEBDAV as string, { | ||||
|         authType: AuthType.Digest, | ||||
|         username: user as string, | ||||
|         password: pass as string, | ||||
|       }) as WebDAVClient; | ||||
|       this.clientList.push(client); | ||||
|       this.currentClient = client; | ||||
|       return client; | ||||
|     }, | ||||
|   }, | ||||
| }); | ||||
							
								
								
									
										11
									
								
								src/views/Files.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/views/Files.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| <template> | ||||
|   <h1>Files</h1> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   name: 'Files', | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style scoped></style> | ||||
| @ -6,11 +6,11 @@ | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent } from "vue"; | ||||
| import HelloWorld from "@/components/HelloWorld.vue"; // @ is an alias to /src | ||||
| import { defineComponent } from 'vue'; | ||||
| import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: "Home", | ||||
|   name: 'Home', | ||||
|   components: { | ||||
|     HelloWorld, | ||||
|   }, | ||||
|  | ||||
							
								
								
									
										11
									
								
								src/views/Login.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/views/Login.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| <template> | ||||
|   <h1>Login</h1> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   name: 'Login', | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style scoped></style> | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user