feat(dependencies): add ESLint #190

This commit is contained in:
imsyy 2023-08-26 16:03:07 +08:00
parent 75c75fff0f
commit 802cca0f44
30 changed files with 792 additions and 244 deletions

2
.env
View File

@ -3,7 +3,7 @@ VITE_SITE_NAME = "無名の主页" # 名称
VITE_SITE_ANTHOR = "無名" # 作者 VITE_SITE_ANTHOR = "無名" # 作者
VITE_SITE_KEYWORDS = "無名,个人主页" # 关键词 VITE_SITE_KEYWORDS = "無名,个人主页" # 关键词
VITE_SITE_DES = "一个默默无闻的主页" # 站点简介 VITE_SITE_DES = "一个默默无闻的主页" # 站点简介
VITE_SITE_URL = "imsyy.top" # 作者地址 VITE_SITE_URL = "imsyy.top" # 站点地址
VITE_SITE_LOGO = "/images/icon/favicon.ico" # 站点主图标 VITE_SITE_LOGO = "/images/icon/favicon.ico" # 站点主图标
VITE_SITE_MAIN_LOGO = "/images/icon/logo.png" # 主页图标 VITE_SITE_MAIN_LOGO = "/images/icon/logo.png" # 主页图标
VITE_SITE_APPLE_LOGO = "/images/logo/apple-touch-icon.png" # Apple 端图标 VITE_SITE_APPLE_LOGO = "/images/logo/apple-touch-icon.png" # Apple 端图标

35
.eslintrc.json Normal file
View File

@ -0,0 +1,35 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": ["eslint:recommended", "plugin:vue/vue3-essential"],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["vue"],
"rules": {
"vue/multi-word-component-names": "off"
},
"globals": {
"defineProps": true,
"defineEmits": true,
"withDefaults": true,
"h": true,
"vue": true,
"ref": true,
"reactive": true,
"computed": true,
"watch": true,
"provide": true,
"inject": true,
"defineComponent": true,
"onBeforeMount": true,
"onMounted": true,
"onBeforeUnmount": true,
"nextTick": true,
"ElMessage": true,
"$openList": true
}
}

View File

@ -1,6 +1,6 @@
{ {
"$schema": "https://json.schemastore.org/prettierrc", "$schema": "https://json.schemastore.org/prettierrc",
"singleQuote": true, "singleQuote": false,
"trailingComma": "all", "trailingComma": "all",
"tabWidth": 2, "tabWidth": 2,
"semi": true, "semi": true,

View File

@ -4,7 +4,7 @@
"github": "https://github.com/imsyy/home", "github": "https://github.com/imsyy/home",
"home": "https://imsyy.top", "home": "https://imsyy.top",
"private": true, "private": true,
"version": "4.1.0", "version": "4.1.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
@ -28,13 +28,15 @@
"@vicons/fa": "^0.12.0", "@vicons/fa": "^0.12.0",
"@vicons/utils": "^0.1.4", "@vicons/utils": "^0.1.4",
"@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue": "^4.2.3",
"eslint": "^8.48.0",
"eslint-plugin-vue": "^9.17.0",
"prettier": "^3.0.2",
"sass": "^1.55.0", "sass": "^1.55.0",
"terser": "^5.16.1", "terser": "^5.16.1",
"unplugin-auto-import": "^0.11.2", "unplugin-auto-import": "^0.11.2",
"unplugin-vue-components": "^0.22.8", "unplugin-vue-components": "^0.22.8",
"vite": "^4.4.5", "vite": "^4.4.5",
"vite-plugin-compression": "^0.5.1", "vite-plugin-compression": "^0.5.1",
"vite-plugin-pwa": "^0.14.1", "vite-plugin-pwa": "^0.14.1"
"prettier": "^3.0.2"
} }
} }

View File

@ -46,6 +46,12 @@ devDependencies:
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: ^4.2.3 specifier: ^4.2.3
version: 4.2.3(vite@4.4.9)(vue@3.3.4) version: 4.2.3(vite@4.4.9)(vue@3.3.4)
eslint:
specifier: ^8.48.0
version: 8.48.0
eslint-plugin-vue:
specifier: ^9.17.0
version: 9.17.0(eslint@8.48.0)
prettier: prettier:
specifier: ^3.0.2 specifier: ^3.0.2
version: 3.0.2 version: 3.0.2
@ -73,6 +79,11 @@ devDependencies:
packages: packages:
/@aashutoshrathi/word-wrap@1.2.6:
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
engines: {node: '>=0.10.0'}
dev: true
/@ampproject/remapping@2.2.1: /@ampproject/remapping@2.2.1:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
@ -1514,6 +1525,43 @@ packages:
dev: true dev: true
optional: true optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.48.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.48.0
eslint-visitor-keys: 3.4.3
dev: true
/@eslint-community/regexpp@4.8.0:
resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
/@eslint/eslintrc@2.1.2:
resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.1
globals: 13.21.0
ignore: 5.2.4
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
dev: true
/@eslint/js@8.48.0:
resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@floating-ui/core@1.3.1: /@floating-ui/core@1.3.1:
resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==}
dev: false dev: false
@ -1524,6 +1572,26 @@ packages:
'@floating-ui/core': 1.3.1 '@floating-ui/core': 1.3.1
dev: false dev: false
/@humanwhocodes/config-array@0.11.10:
resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 1.2.1
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
dev: true
/@humanwhocodes/module-importer@1.0.1:
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
dev: true
/@humanwhocodes/object-schema@1.2.1:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true
/@icon-park/vue-next@1.4.2(vue@3.3.4): /@icon-park/vue-next@1.4.2(vue@3.3.4):
resolution: {integrity: sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==} resolution: {integrity: sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==}
engines: {node: '>= 8.0.0', npm: '>= 5.0.0'} engines: {node: '>= 8.0.0', npm: '>= 5.0.0'}
@ -2002,6 +2070,14 @@ packages:
acorn: 8.9.0 acorn: 8.9.0
dev: false dev: false
/acorn-jsx@5.3.2(acorn@8.9.0):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
acorn: 8.9.0
dev: true
/acorn@8.9.0: /acorn@8.9.0:
resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==} resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
@ -2022,7 +2098,6 @@ packages:
fast-json-stable-stringify: 2.1.0 fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1 json-schema-traverse: 0.4.1
uri-js: 4.4.1 uri-js: 4.4.1
dev: false
/ajv@8.12.0: /ajv@8.12.0:
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
@ -2033,6 +2108,11 @@ packages:
uri-js: 4.4.1 uri-js: 4.4.1
dev: true dev: true
/ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
dev: true
/ansi-styles@3.2.1: /ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -2062,6 +2142,10 @@ packages:
smoothscroll: 0.4.0 smoothscroll: 0.4.0
dev: false dev: false
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
/array-buffer-byte-length@1.0.0: /array-buffer-byte-length@1.0.0:
resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
dependencies: dependencies:
@ -2154,6 +2238,10 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true dev: true
/boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: true
/brace-expansion@1.1.11: /brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies: dependencies:
@ -2199,6 +2287,11 @@ packages:
get-intrinsic: 1.2.1 get-intrinsic: 1.2.1
dev: true dev: true
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
dev: true
/caniuse-lite@1.0.30001507: /caniuse-lite@1.0.30001507:
resolution: {integrity: sha512-SFpUDoSLCaE5XYL2jfqe9ova/pbQHEmbheDf5r4diNwbAgR3qxM9NQtfsiSscjqoya5K7kFcHPUQ+VsUkIJR4A==} resolution: {integrity: sha512-SFpUDoSLCaE5XYL2jfqe9ova/pbQHEmbheDf5r4diNwbAgR3qxM9NQtfsiSscjqoya5K7kFcHPUQ+VsUkIJR4A==}
@ -2286,6 +2379,15 @@ packages:
browserslist: 4.21.9 browserslist: 4.21.9
dev: true dev: true
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
dev: true
/crypto-random-string@2.0.0: /crypto-random-string@2.0.0:
resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -2299,6 +2401,12 @@ packages:
csstype: 3.0.11 csstype: 3.0.11
dev: true dev: true
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/csstype@3.0.11: /csstype@3.0.11:
resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==}
dev: true dev: true
@ -2322,6 +2430,10 @@ packages:
ms: 2.1.2 ms: 2.1.2
dev: true dev: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
/deepmerge@4.3.1: /deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -2340,6 +2452,13 @@ packages:
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
dev: false dev: false
/doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
dependencies:
esutils: 2.0.3
dev: true
/ejs@3.1.9: /ejs@3.1.9:
resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -2494,11 +2613,34 @@ packages:
engines: {node: '>=0.8.0'} engines: {node: '>=0.8.0'}
dev: true dev: true
/escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
dev: true
/escape-string-regexp@5.0.0: /escape-string-regexp@5.0.0:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'} engines: {node: '>=12'}
dev: true dev: true
/eslint-plugin-vue@9.17.0(eslint@8.48.0):
resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0)
eslint: 8.48.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.13
semver: 7.5.4
vue-eslint-parser: 9.3.1(eslint@8.48.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-scope@5.1.1: /eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
@ -2507,12 +2649,86 @@ packages:
estraverse: 4.3.0 estraverse: 4.3.0
dev: false dev: false
/eslint-scope@7.2.2:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
dev: true
/eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.48.0:
resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0)
'@eslint-community/regexpp': 4.8.0
'@eslint/eslintrc': 2.1.2
'@eslint/js': 8.48.0
'@humanwhocodes/config-array': 0.11.10
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
globals: 13.21.0
graphemer: 1.4.0
ignore: 5.2.4
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.3
strip-ansi: 6.0.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
dev: true
/espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.9.0
acorn-jsx: 5.3.2(acorn@8.9.0)
eslint-visitor-keys: 3.4.3
dev: true
/esquery@1.5.0:
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
dev: true
/esrecurse@4.3.0: /esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'} engines: {node: '>=4.0'}
dependencies: dependencies:
estraverse: 5.3.0 estraverse: 5.3.0
dev: false
/estraverse@4.3.0: /estraverse@4.3.0:
resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
@ -2522,7 +2738,6 @@ packages:
/estraverse@5.3.0: /estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'} engines: {node: '>=4.0'}
dev: false
/estree-walker@1.0.1: /estree-walker@1.0.1:
resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
@ -2558,6 +2773,10 @@ packages:
/fast-json-stable-stringify@2.1.0: /fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
/fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
dev: true
/fastq@1.15.0: /fastq@1.15.0:
resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies: dependencies:
@ -2568,6 +2787,13 @@ packages:
resolution: {integrity: sha512-C13k1o7R9JTN1wmhKkrW5bU/00LwixXnkufQUR6Rbf4KCS0i8mycQaovt4WVbHnA2NKgi7Ryp9Whpy/CGcij6Q==} resolution: {integrity: sha512-C13k1o7R9JTN1wmhKkrW5bU/00LwixXnkufQUR6Rbf4KCS0i8mycQaovt4WVbHnA2NKgi7Ryp9Whpy/CGcij6Q==}
dev: false dev: false
/file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
flat-cache: 3.1.0
dev: true
/filelist@1.0.4: /filelist@1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
dependencies: dependencies:
@ -2581,6 +2807,27 @@ packages:
to-regex-range: 5.0.1 to-regex-range: 5.0.1
dev: true dev: true
/find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0
dev: true
/flat-cache@3.1.0:
resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==}
engines: {node: '>=12.0.0'}
dependencies:
flatted: 3.2.7
keyv: 4.5.3
rimraf: 3.0.2
dev: true
/flatted@3.2.7:
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
dev: true
/follow-redirects@1.15.2: /follow-redirects@1.15.2:
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
engines: {node: '>=4.0'} engines: {node: '>=4.0'}
@ -2688,6 +2935,13 @@ packages:
is-glob: 4.0.3 is-glob: 4.0.3
dev: true dev: true
/glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
dependencies:
is-glob: 4.0.3
dev: true
/glob-to-regexp@0.4.1: /glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
dev: false dev: false
@ -2708,6 +2962,13 @@ packages:
engines: {node: '>=4'} engines: {node: '>=4'}
dev: true dev: true
/globals@13.21.0:
resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
dev: true
/globalthis@1.0.3: /globalthis@1.0.3:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -2724,6 +2985,10 @@ packages:
/graceful-fs@4.2.11: /graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
/has-bigints@1.0.2: /has-bigints@1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
dev: true dev: true
@ -2775,10 +3040,28 @@ packages:
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
dev: true dev: true
/ignore@5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
dev: true
/immutable@4.3.0: /immutable@4.3.0:
resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==}
dev: true dev: true
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
dev: true
/imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
dev: true
/inflight@1.0.6: /inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
dependencies: dependencies:
@ -2884,6 +3167,11 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
dev: true
/is-regex@1.1.4: /is-regex@1.1.4:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -2939,6 +3227,10 @@ packages:
call-bind: 1.0.2 call-bind: 1.0.2
dev: true dev: true
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
/jake@10.8.7: /jake@10.8.7:
resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -2972,6 +3264,13 @@ packages:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
dependencies:
argparse: 2.0.1
dev: true
/jsesc@0.5.0: /jsesc@0.5.0:
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
hasBin: true hasBin: true
@ -2983,13 +3282,16 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
dev: true
/json-parse-even-better-errors@2.3.1: /json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
dev: false dev: false
/json-schema-traverse@0.4.1: /json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: false
/json-schema-traverse@1.0.0: /json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@ -2999,6 +3301,10 @@ packages:
resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
dev: true dev: true
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
/json5@2.2.3: /json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -3021,11 +3327,25 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/keyv@4.5.3:
resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
dependencies:
json-buffer: 3.0.1
dev: true
/leven@3.1.0: /leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'} engines: {node: '>=6'}
dev: true dev: true
/levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
dev: true
/loader-runner@4.3.0: /loader-runner@4.3.0:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'} engines: {node: '>=6.11.5'}
@ -3045,6 +3365,13 @@ packages:
engines: {node: '>=14'} engines: {node: '>=14'}
dev: true dev: true
/locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
dependencies:
p-locate: 5.0.0
dev: true
/lodash-es@4.17.21: /lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
dev: false dev: false
@ -3065,6 +3392,10 @@ packages:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
dev: true dev: true
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
/lodash.sortby@4.7.0: /lodash.sortby@4.7.0:
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
dev: true dev: true
@ -3078,6 +3409,13 @@ packages:
yallist: 3.1.1 yallist: 3.1.1
dev: true dev: true
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: true
/magic-string@0.25.9: /magic-string@0.25.9:
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
dependencies: dependencies:
@ -3176,6 +3514,10 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
/neo-async@2.6.2: /neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
dev: false dev: false
@ -3192,6 +3534,12 @@ packages:
resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
dev: false dev: false
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
dev: true
/object-inspect@1.12.3: /object-inspect@1.12.3:
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
dev: true dev: true
@ -3217,11 +3565,54 @@ packages:
wrappy: 1.0.2 wrappy: 1.0.2
dev: true dev: true
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
dependencies:
'@aashutoshrathi/word-wrap': 1.2.6
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
dev: true
/p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
dependencies:
yocto-queue: 0.1.0
dev: true
/p-locate@5.0.0:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
dependencies:
p-limit: 3.1.0
dev: true
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
dependencies:
callsites: 3.1.0
dev: true
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
dev: true
/path-is-absolute@1.0.1: /path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
dev: true
/path-parse@1.0.7: /path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true dev: true
@ -3275,6 +3666,14 @@ packages:
pathe: 1.1.1 pathe: 1.1.1
dev: true dev: true
/postcss-selector-parser@6.0.13:
resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss@8.4.24: /postcss@8.4.24:
resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
@ -3292,6 +3691,11 @@ packages:
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true dev: true
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
dev: true
/prettier@3.0.2: /prettier@3.0.2:
resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
@ -3390,6 +3794,11 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
dev: true
/resolve@1.22.2: /resolve@1.22.2:
resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
hasBin: true hasBin: true
@ -3404,6 +3813,13 @@ packages:
engines: {iojs: '>=1.0.0', node: '>=0.10.0'} engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true dev: true
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
glob: 7.2.3
dev: true
/rollup-plugin-terser@7.0.2(rollup@2.79.1): /rollup-plugin-terser@7.0.2(rollup@2.79.1):
resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
@ -3486,6 +3902,14 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/serialize-javascript@4.0.0: /serialize-javascript@4.0.0:
resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
dependencies: dependencies:
@ -3498,6 +3922,18 @@ packages:
randombytes: 2.1.0 randombytes: 2.1.0
dev: false dev: false
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
dependencies:
shebang-regex: 3.0.0
dev: true
/shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
dev: true
/side-channel@1.0.4: /side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies: dependencies:
@ -3587,11 +4023,23 @@ packages:
is-regexp: 1.0.0 is-regexp: 1.0.0
dev: true dev: true
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
dependencies:
ansi-regex: 5.0.1
dev: true
/strip-comments@2.0.1: /strip-comments@2.0.1:
resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
engines: {node: '>=10'} engines: {node: '>=10'}
dev: true dev: true
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
dev: true
/strip-literal@0.4.2: /strip-literal@0.4.2:
resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==}
dependencies: dependencies:
@ -3695,6 +4143,10 @@ packages:
commander: 2.20.3 commander: 2.20.3
source-map-support: 0.5.21 source-map-support: 0.5.21
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
/to-fast-properties@2.0.0: /to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -3712,11 +4164,23 @@ packages:
punycode: 2.3.0 punycode: 2.3.0
dev: true dev: true
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.2.1
dev: true
/type-fest@0.16.0: /type-fest@0.16.0:
resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
engines: {node: '>=10'} engines: {node: '>=10'}
dev: true dev: true
/type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
dev: true
/typed-array-length@1.0.4: /typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies: dependencies:
@ -3859,6 +4323,10 @@ packages:
dependencies: dependencies:
punycode: 2.3.0 punycode: 2.3.0
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/vite-plugin-compression@0.5.1(vite@4.4.9): /vite-plugin-compression@0.5.1(vite@4.4.9):
resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
peerDependencies: peerDependencies:
@ -3943,6 +4411,24 @@ packages:
vue: 3.3.4 vue: 3.3.4
dev: false dev: false
/vue-eslint-parser@9.3.1(eslint@8.48.0):
resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.48.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.5.0
lodash: 4.17.21
semver: 7.5.4
transitivePeerDependencies:
- supports-color
dev: true
/vue-loader@16.8.3(vue@3.3.4)(webpack@5.88.0): /vue-loader@16.8.3(vue@3.3.4)(webpack@5.88.0):
resolution: {integrity: sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==} resolution: {integrity: sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==}
peerDependencies: peerDependencies:
@ -4073,6 +4559,14 @@ packages:
is-typed-array: 1.1.10 is-typed-array: 1.1.10
dev: true dev: true
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
dependencies:
isexe: 2.0.0
dev: true
/workbox-background-sync@6.6.0: /workbox-background-sync@6.6.0:
resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==}
dependencies: dependencies:
@ -4224,6 +4718,20 @@ packages:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true dev: true
/xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
dev: true
/yallist@3.1.1: /yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
dev: true dev: true
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true

View File

@ -28,19 +28,19 @@
</Transition> </Transition>
</template> </template>
<script setup> <script setup>
import { helloInit, checkDays } from '@/utils/getTime.js'; import { helloInit, checkDays } from "@/utils/getTime.js";
import { HamburgerButton, CloseSmall } from '@icon-park/vue-next'; import { HamburgerButton, CloseSmall } from "@icon-park/vue-next";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import { Icon } from '@vicons/utils'; import { Icon } from "@vicons/utils";
import Loading from '@/components/Loading.vue'; import Loading from "@/components/Loading.vue";
import MainLeft from '@/views/Main/Left.vue'; import MainLeft from "@/views/Main/Left.vue";
import MainRight from '@/views/Main/Right.vue'; import MainRight from "@/views/Main/Right.vue";
import Background from '@/components/Background.vue'; import Background from "@/components/Background.vue";
import Footer from '@/components/Footer.vue'; import Footer from "@/components/Footer.vue";
import Box from '@/views/Box/index.vue'; import Box from "@/views/Box/index.vue";
import MoreSet from '@/views/MoreSet/index.vue'; import MoreSet from "@/views/MoreSet/index.vue";
import cursorInit from '@/utils/cursor.js'; import cursorInit from "@/utils/cursor.js";
import config from '@/../package.json'; import config from "@/../package.json";
const store = mainStore(); const store = mainStore();
@ -76,7 +76,7 @@ onMounted(() => {
// //
document.oncontextmenu = () => { document.oncontextmenu = () => {
ElMessage({ ElMessage({
message: '为了浏览体验,本站禁用右键', message: "为了浏览体验,本站禁用右键",
grouping: true, grouping: true,
duration: 2000, duration: 2000,
}); });
@ -84,11 +84,11 @@ onMounted(() => {
}; };
// //
window.addEventListener('mousedown', (event) => { window.addEventListener("mousedown", (event) => {
if (event.button == 1) { if (event.button == 1) {
store.backgroundShow = !store.backgroundShow; store.backgroundShow = !store.backgroundShow;
ElMessage({ ElMessage({
message: `${store.backgroundShow ? '开启' : '退出'}壁纸展示状态`, message: `${store.backgroundShow ? "开启" : "退出"}壁纸展示状态`,
grouping: true, grouping: true,
}); });
} }
@ -96,13 +96,13 @@ onMounted(() => {
// //
getWidth(); getWidth();
window.addEventListener('resize', getWidth); window.addEventListener("resize", getWidth);
// //
const styleTitle1 = 'font-size: 20px;font-weight: 600;color: rgb(244,167,89);'; const styleTitle1 = "font-size: 20px;font-weight: 600;color: rgb(244,167,89);";
const styleTitle2 = 'font-size:12px;color: rgb(244,167,89);'; const styleTitle2 = "font-size:12px;color: rgb(244,167,89);";
const styleContent = 'color: rgb(30,152,255);'; const styleContent = "color: rgb(30,152,255);";
const title1 = '無名の主页'; const title1 = "無名の主页";
const title2 = ` const title2 = `
_____ __ __ _______ ____ __ _____ __ __ _______ ____ __
|_ _| \\/ |/ ____\\ \\ / /\\ \\ / / |_ _| \\/ |/ ____\\ \\ / /\\ \\ / /
@ -115,7 +115,7 @@ onMounted(() => {
}); });
onBeforeUnmount(() => { onBeforeUnmount(() => {
window.removeEventListener('resize', getWidth); window.removeEventListener("resize", getWidth);
}); });
</script> </script>

View File

@ -1,5 +1,5 @@
// import axios from "axios"; // import axios from "axios";
import fetchJsonp from 'fetch-jsonp'; import fetchJsonp from "fetch-jsonp";
/** /**
* 音乐播放器 * 音乐播放器
@ -12,13 +12,13 @@ export const getPlayerList = async (server, type, id) => {
); );
const data = await res.json(); const data = await res.json();
if (data[0].url.startsWith('@')) { if (data[0].url.startsWith("@")) {
const [handle, jsonpCallback, jsonpCallbackFunction, url] = data[0].url.split('@').slice(1); const [handle, jsonpCallback, jsonpCallbackFunction, url] = data[0].url.split("@").slice(1);
const jsonpData = await fetchJsonp(url).then((res) => res.json()); const jsonpData = await fetchJsonp(url).then((res) => res.json());
const domain = ( const domain = (
jsonpData.req_0.data.sip.find((i) => !i.startsWith('http://ws')) || jsonpData.req_0.data.sip.find((i) => !i.startsWith("http://ws")) ||
jsonpData.req_0.data.sip[0] jsonpData.req_0.data.sip[0]
).replace('http://', 'https://'); ).replace("http://", "https://");
return data.map((v, i) => ({ return data.map((v, i) => ({
title: v.name || v.title, title: v.name || v.title,
@ -44,7 +44,7 @@ export const getPlayerList = async (server, type, id) => {
// 获取一言数据 // 获取一言数据
export const getHitokoto = async () => { export const getHitokoto = async () => {
const res = await fetch('https://v1.hitokoto.cn'); const res = await fetch("https://v1.hitokoto.cn");
return await res.json(); return await res.json();
}; };
@ -69,6 +69,6 @@ export const getWeather = async (key, city) => {
// 获取教书先生天气 API // 获取教书先生天气 API
// https://api.oioweb.cn/doc/weather/GetWeather // https://api.oioweb.cn/doc/weather/GetWeather
export const getOtherWeather = async () => { export const getOtherWeather = async () => {
const res = await fetch('https://api.oioweb.cn/api/weather/GetWeather'); const res = await fetch("https://api.oioweb.cn/api/weather/GetWeather");
return await res.json(); return await res.json();
}; };

View File

@ -24,13 +24,13 @@
</template> </template>
<script setup> <script setup>
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import { Error } from '@icon-park/vue-next'; import { Error } from "@icon-park/vue-next";
const store = mainStore(); const store = mainStore();
const bgUrl = ref(null); const bgUrl = ref(null);
const imgTimeout = ref(null); const imgTimeout = ref(null);
const emit = defineEmits(['loadComplete']); const emit = defineEmits(["loadComplete"]);
// //
// Math.random() // Math.random()
@ -41,11 +41,11 @@ const changeBg = (type) => {
if (type == 0) { if (type == 0) {
bgUrl.value = `/images/background${bgRandom}.jpg`; bgUrl.value = `/images/background${bgRandom}.jpg`;
} else if (type == 1) { } else if (type == 1) {
bgUrl.value = 'https://api.dujin.org/bing/1920.php'; bgUrl.value = "https://api.dujin.org/bing/1920.php";
} else if (type == 2) { } else if (type == 2) {
bgUrl.value = 'https://api.btstu.cn/sjbz/api.php?lx=fengjing&format=images'; bgUrl.value = "https://api.btstu.cn/sjbz/api.php?lx=fengjing&format=images";
} else if (type == 3) { } else if (type == 3) {
bgUrl.value = 'https://api.btstu.cn/sjbz/api.php?lx=dongman&format=images'; bgUrl.value = "https://api.btstu.cn/sjbz/api.php?lx=dongman&format=images";
} }
}; };
@ -61,19 +61,19 @@ const imgLoadComplete = () => {
// //
const imgAnimationEnd = () => { const imgAnimationEnd = () => {
console.log('壁纸加载且动画完成'); console.log("壁纸加载且动画完成");
// //
emit('loadComplete'); emit("loadComplete");
}; };
// //
const imgLoadError = () => { const imgLoadError = () => {
console.error('壁纸加载失败:', bgUrl.value); console.error("壁纸加载失败:", bgUrl.value);
ElMessage({ ElMessage({
message: '壁纸加载失败,已临时切换回默认', message: "壁纸加载失败,已临时切换回默认",
icon: h(Error, { icon: h(Error, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
bgUrl.value = `/images/background${bgRandom}.jpg`; bgUrl.value = `/images/background${bgRandom}.jpg`;

View File

@ -38,9 +38,9 @@
</template> </template>
<script setup> <script setup>
import { MusicOne } from '@icon-park/vue-next'; import { MusicOne } from "@icon-park/vue-next";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import config from '@/../package.json'; import config from "@/../package.json";
const store = mainStore(); const store = mainStore();
const fullYear = new Date().getFullYear(); const fullYear = new Date().getFullYear();

View File

@ -26,10 +26,10 @@
</template> </template>
<script setup> <script setup>
import { MusicMenu, Error } from '@icon-park/vue-next'; import { MusicMenu, Error } from "@icon-park/vue-next";
import { getHitokoto } from '@/api'; import { getHitokoto } from "@/api";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import debounce from '@/utils/debounce.js'; import debounce from "@/utils/debounce.js";
const store = mainStore(); const store = mainStore();
@ -38,8 +38,8 @@ const openMusicShow = ref(false);
// //
const hitokotoData = reactive({ const hitokotoData = reactive({
text: '这里应该显示一句话', text: "这里应该显示一句话",
from: '無名', from: "無名",
}); });
// //
@ -51,10 +51,10 @@ const getHitokotoData = () => {
}) })
.catch(() => { .catch(() => {
ElMessage({ ElMessage({
message: '一言获取失败', message: "一言获取失败",
icon: h(Error, { icon: h(Error, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
}); });
@ -62,8 +62,8 @@ const getHitokotoData = () => {
// //
const updateHitokoto = () => { const updateHitokoto = () => {
hitokotoData.text = '新的一言正在赶来的路上'; hitokotoData.text = "新的一言正在赶来的路上";
hitokotoData.from = '来源加载中'; hitokotoData.from = "来源加载中";
// //
debounce(() => { debounce(() => {
getHitokotoData(); getHitokotoData();

View File

@ -41,15 +41,15 @@
</template> </template>
<script setup> <script setup>
import { Icon } from '@vicons/utils'; import { Icon } from "@vicons/utils";
// https://www.xicons.org // https://www.xicons.org
import { Link, Blog, CompactDisc, Cloud, Compass, Book, Fire, LaptopCode } from '@vicons/fa'; // 使 import { Link, Blog, CompactDisc, Cloud, Compass, Book, Fire, LaptopCode } from "@vicons/fa"; // 使
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import { Swiper, SwiperSlide } from 'swiper/vue'; import { Swiper, SwiperSlide } from "swiper/vue";
import { Pagination, Mousewheel } from 'swiper'; import { Pagination, Mousewheel } from "swiper";
import siteLinks from '@/assets/siteLinks.json'; import siteLinks from "@/assets/siteLinks.json";
import 'swiper/scss'; import "swiper/scss";
import 'swiper/scss/pagination'; import "swiper/scss/pagination";
const store = mainStore(); const store = mainStore();
@ -76,10 +76,10 @@ const siteIcon = {
// //
const jumpLink = (data) => { const jumpLink = (data) => {
if (data.name === '音乐' && store.musicClick) { if (data.name === "音乐" && store.musicClick) {
if (typeof $openList === 'function') $openList(); if (typeof $openList === "function") $openList();
} else { } else {
window.open(data.link, '_blank'); window.open(data.link, "_blank");
} }
}; };

View File

@ -15,7 +15,7 @@
</template> </template>
<script setup> <script setup>
import { mainStore } from '@/store'; import { mainStore } from "@/store";
const store = mainStore(); const store = mainStore();
@ -52,7 +52,7 @@ const siteName = import.meta.env.VITE_SITE_NAME;
z-index: 2; z-index: 2;
&:before { &:before {
content: ''; content: "";
position: absolute; position: absolute;
top: 5px; top: 5px;
left: 5px; left: 5px;
@ -65,7 +65,7 @@ const siteName = import.meta.env.VITE_SITE_NAME;
} }
&:after { &:after {
content: ''; content: "";
position: absolute; position: absolute;
top: 15px; top: 15px;
left: 15px; left: 15px;

View File

@ -28,16 +28,16 @@
</template> </template>
<script setup> <script setup>
import { Icon } from '@vicons/utils'; import { Icon } from "@vicons/utils";
import { QuoteLeft, QuoteRight } from '@vicons/fa'; import { QuoteLeft, QuoteRight } from "@vicons/fa";
import { Error } from '@icon-park/vue-next'; import { Error } from "@icon-park/vue-next";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
const store = mainStore(); const store = mainStore();
// logo // logo
const siteLogo = import.meta.env.VITE_SITE_MAIN_LOGO; const siteLogo = import.meta.env.VITE_SITE_MAIN_LOGO;
// //
const siteUrl = import.meta.env.VITE_SITE_URL.split('.'); const siteUrl = import.meta.env.VITE_SITE_URL.split(".");
// //
const descriptionText = reactive({ const descriptionText = reactive({
@ -51,11 +51,11 @@ const changeBox = () => {
store.boxOpenState = !store.boxOpenState; store.boxOpenState = !store.boxOpenState;
} else { } else {
ElMessage({ ElMessage({
message: '当前页面宽度不足以开启盒子', message: "当前页面宽度不足以开启盒子",
grouping: true, grouping: true,
icon: h(Error, { icon: h(Error, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
} }
@ -92,7 +92,7 @@ watch(
height: 142px; height: 142px;
margin-left: 12px; margin-left: 12px;
transform: translateY(-8px); transform: translateY(-8px);
font-family: 'Pacifico-Regular'; font-family: "Pacifico-Regular";
.bg { .bg {
font-size: 5rem; font-size: 5rem;
@ -136,7 +136,7 @@ watch(
p { p {
&:nth-of-type(1) { &:nth-of-type(1) {
font-family: 'Pacifico-Regular'; font-family: "Pacifico-Regular";
} }
} }
} }

View File

@ -22,8 +22,8 @@
<div class="name" v-show="!volumeShow"> <div class="name" v-show="!volumeShow">
<span>{{ <span>{{
store.getPlayerData.name store.getPlayerData.name
? store.getPlayerData.name + ' - ' + store.getPlayerData.artist ? store.getPlayerData.name + " - " + store.getPlayerData.artist
: '未播放音乐' : "未播放音乐"
}}</span> }}</span>
</div> </div>
<div class="volume" v-show="volumeShow"> <div class="volume" v-show="volumeShow">
@ -77,9 +77,9 @@ import {
VolumeMute, VolumeMute,
VolumeSmall, VolumeSmall,
VolumeNotice, VolumeNotice,
} from '@icon-park/vue-next'; } from "@icon-park/vue-next";
import Player from '@/components/Player.vue'; import Player from "@/components/Player.vue";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
const store = mainStore(); const store = mainStore();
// //
@ -112,8 +112,8 @@ const changeMusicIndex = (type) => {
onMounted(() => { onMounted(() => {
// //
window.addEventListener('keydown', (e) => { window.addEventListener("keydown", (e) => {
if (e.code == 'Space') { if (e.code == "Space") {
changePlayState(); changePlayState();
} }
}); });

View File

@ -20,10 +20,10 @@
</template> </template>
<script setup> <script setup>
import { MusicOne, PlayWrong } from '@icon-park/vue-next'; import { MusicOne, PlayWrong } from "@icon-park/vue-next";
import { getPlayerList } from '@/api'; import { getPlayerList } from "@/api";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import aplayer from 'vue3-aplayer'; import aplayer from "vue3-aplayer";
const store = mainStore(); const store = mainStore();
@ -47,12 +47,12 @@ const props = defineProps({
// //
theme: { theme: {
type: String, type: String,
default: '#efefef', default: "#efefef",
}, },
// //
repeat: { repeat: {
type: String, type: String,
default: 'list', //'list' | 'music' | 'none' default: "list", //'list' | 'music' | 'none'
}, },
// //
shuffle: { shuffle: {
@ -70,17 +70,17 @@ const props = defineProps({
// ( netease-, tencent-qq ) // ( netease-, tencent-qq )
songServer: { songServer: {
type: String, type: String,
default: 'netease', //'netease' | 'tencent' default: "netease", //'netease' | 'tencent'
}, },
// ( song-, playlist-, album-, search-, artist- ) // ( song-, playlist-, album-, search-, artist- )
songType: { songType: {
type: String, type: String,
default: 'playlist', default: "playlist",
}, },
// id // id
songId: { songId: {
type: String, type: String,
default: '7452421335', default: "7452421335",
}, },
// //
listFolded: { listFolded: {
@ -90,7 +90,7 @@ const props = defineProps({
// //
listMaxHeight: { listMaxHeight: {
type: String, type: String,
default: '420px', default: "420px",
}, },
}); });
@ -116,7 +116,7 @@ onMounted(() => {
}); });
}); });
console.log( console.log(
'音乐加载完成', "音乐加载完成",
playList.value, playList.value,
playIndex.value, playIndex.value,
playListCount.value, playListCount.value,
@ -127,11 +127,11 @@ onMounted(() => {
console.error(err); console.error(err);
store.musicIsOk = false; store.musicIsOk = false;
ElMessage({ ElMessage({
message: '播放器加载失败', message: "播放器加载失败",
grouping: true, grouping: true,
icon: h(PlayWrong, { icon: h(PlayWrong, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
} }
@ -140,17 +140,17 @@ onMounted(() => {
// //
const onPlay = () => { const onPlay = () => {
console.log('播放'); console.log("播放");
// //
store.setPlayerState(player.value.audio.paused); store.setPlayerState(player.value.audio.paused);
// //
store.setPlayerData(player.value.currentMusic.title, player.value.currentMusic.artist); store.setPlayerData(player.value.currentMusic.title, player.value.currentMusic.artist);
ElMessage({ ElMessage({
message: store.getPlayerData.name + ' - ' + store.getPlayerData.artist, message: store.getPlayerData.name + " - " + store.getPlayerData.artist,
grouping: true, grouping: true,
icon: h(MusicOne, { icon: h(MusicOne, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
}; };
@ -164,10 +164,10 @@ const onPause = () => {
const onTimeUp = () => { const onTimeUp = () => {
let playerRef = player.value.$.vnode.el; let playerRef = player.value.$.vnode.el;
if (playerRef) { if (playerRef) {
const currentLrcElement = playerRef.querySelector('.aplayer-lrc-current'); const currentLrcElement = playerRef.querySelector(".aplayer-lrc-current");
const previousLrcElement = currentLrcElement?.previousElementSibling; const previousLrcElement = currentLrcElement?.previousElementSibling;
const lrcContent = const lrcContent =
currentLrcElement?.innerHTML || previousLrcElement?.innerHTML || '这句没有歌词'; currentLrcElement?.innerHTML || previousLrcElement?.innerHTML || "这句没有歌词";
store.setPlayerLrc(lrcContent); store.setPlayerLrc(lrcContent);
} }
}; };
@ -211,7 +211,7 @@ defineExpose({ playToggle, changeVolume, changeSong });
width: 80%; width: 80%;
background: transparent; background: transparent;
border-radius: 6px; border-radius: 6px;
font-family: 'HarmonyOS_Regular', sans-serif !important; font-family: "HarmonyOS_Regular", sans-serif !important;
:deep(.aplayer-body) { :deep(.aplayer-body) {
.aplayer-pic { .aplayer-pic {
display: none; display: none;

View File

@ -60,23 +60,23 @@
</template> </template>
<script setup> <script setup>
import { CheckSmall, CloseSmall, SuccessPicture } from '@icon-park/vue-next'; import { CheckSmall, CloseSmall, SuccessPicture } from "@icon-park/vue-next";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import { storeToRefs } from 'pinia'; import { storeToRefs } from "pinia";
const store = mainStore(); const store = mainStore();
const { coverType, siteStartShow, musicClick, playerLrcShow, footerBlur } = storeToRefs(store); const { coverType, siteStartShow, musicClick, playerLrcShow, footerBlur } = storeToRefs(store);
// //
const activeName = ref('1'); const activeName = ref("1");
// //
const radioChange = () => { const radioChange = () => {
ElMessage({ ElMessage({
message: '壁纸设置成功,刷新后生效', message: "壁纸设置成功,刷新后生效",
icon: h(SuccessPicture, { icon: h(SuccessPicture, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
}; };

View File

@ -18,10 +18,10 @@
</template> </template>
<script setup> <script setup>
import socialLinks from '@/assets/socialLinks.json'; import socialLinks from "@/assets/socialLinks.json";
// //
const socialTip = ref('通过这里联系我吧'); const socialTip = ref("通过这里联系我吧");
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -26,9 +26,9 @@
</template> </template>
<script setup> <script setup>
import { HourglassFull } from '@icon-park/vue-next'; import { HourglassFull } from "@icon-park/vue-next";
import { getTimeCapsule, siteDateStatistics } from '@/utils/getTime.js'; import { getTimeCapsule, siteDateStatistics } from "@/utils/getTime.js";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
const store = mainStore(); const store = mainStore();
// //

View File

@ -5,9 +5,9 @@
<span>{{ weatherData.weather.temperature }}</span> <span>{{ weatherData.weather.temperature }}</span>
<span class="sm-hidden"> <span class="sm-hidden">
&nbsp;{{ &nbsp;{{
weatherData.weather.winddirection?.endsWith('风') weatherData.weather.winddirection?.endsWith("风")
? weatherData.weather.winddirection ? weatherData.weather.winddirection
: weatherData.weather.winddirection + '风' : weatherData.weather.winddirection + "风"
}}&nbsp; }}&nbsp;
</span> </span>
<span class="sm-hidden">{{ weatherData.weather.windpower }}&nbsp;</span> <span class="sm-hidden">{{ weatherData.weather.windpower }}&nbsp;</span>
@ -18,8 +18,8 @@
</template> </template>
<script setup> <script setup>
import { getAdcode, getWeather, getOtherWeather } from '@/api'; import { getAdcode, getWeather, getOtherWeather } from "@/api";
import { Error } from '@icon-park/vue-next'; import { Error } from "@icon-park/vue-next";
// Key // Key
const mainKey = import.meta.env.VITE_WEATHER_KEY; const mainKey = import.meta.env.VITE_WEATHER_KEY;
@ -58,8 +58,8 @@ const getWeatherData = () => {
}; };
}) })
.catch((err) => { .catch((err) => {
console.error('天气信息获取失败:' + err); console.error("天气信息获取失败:" + err);
onError('天气信息获取失败'); onError("天气信息获取失败");
}); });
} else { } else {
getAdcode(mainKey) getAdcode(mainKey)
@ -79,13 +79,13 @@ const getWeatherData = () => {
}; };
}) })
.catch((err) => { .catch((err) => {
console.error('天气信息获取失败:' + err); console.error("天气信息获取失败:" + err);
onError('天气信息获取失败'); onError("天气信息获取失败");
}); });
}) })
.catch((err) => { .catch((err) => {
console.error('地理位置获取失败:' + err); console.error("地理位置获取失败:" + err);
onError('地理位置获取失败'); onError("地理位置获取失败");
}); });
} }
}; };
@ -95,8 +95,8 @@ const onError = (message) => {
ElMessage({ ElMessage({
message, message,
icon: h(Error, { icon: h(Error, {
theme: 'filled', theme: "filled",
fill: '#efefef', fill: "#efefef",
}), }),
}); });
console.error(message); console.error(message);

View File

@ -1,20 +1,20 @@
import { createApp } from 'vue'; import { createApp } from "vue";
import '@/style/style.scss'; import "@/style/style.scss";
import App from '@/App.vue'; import App from "@/App.vue";
// 引入 pinia // 引入 pinia
import { createPinia } from 'pinia'; import { createPinia } from "pinia";
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'; import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
const app = createApp(App); const app = createApp(App);
const pinia = createPinia(); const pinia = createPinia();
pinia.use(piniaPluginPersistedstate); pinia.use(piniaPluginPersistedstate);
app.use(pinia); app.use(pinia);
app.mount('#app'); app.mount("#app");
// PWA // PWA
navigator.serviceWorker.addEventListener('controllerchange', () => { navigator.serviceWorker.addEventListener("controllerchange", () => {
// 弹出更新提醒 // 弹出更新提醒
console.log('站点已更新,刷新后生效'); console.log("站点已更新,刷新后生效");
ElMessage('站点已更新,刷新后生效'); ElMessage("站点已更新,刷新后生效");
}); });

View File

@ -1,11 +1,11 @@
import { defineStore } from 'pinia'; import { defineStore } from "pinia";
export const mainStore = defineStore('main', { export const mainStore = defineStore("main", {
state: () => { state: () => {
return { return {
imgLoadStatus: false, // 壁纸加载状态 imgLoadStatus: false, // 壁纸加载状态
innerWidth: null, // 当前窗口宽度 innerWidth: null, // 当前窗口宽度
coverType: '0', // 壁纸种类 coverType: "0", // 壁纸种类
siteStartShow: false, // 建站日期显示 siteStartShow: false, // 建站日期显示
musicClick: false, // 音乐链接是否跳转 musicClick: false, // 音乐链接是否跳转
musicIsOk: false, // 音乐是否加载完成 musicIsOk: false, // 音乐是否加载完成
@ -19,7 +19,7 @@ export const mainStore = defineStore('main', {
playerState: false, // 当前播放状态 playerState: false, // 当前播放状态
playerTitle: null, // 当前播放歌曲名 playerTitle: null, // 当前播放歌曲名
playerArtist: null, // 当前播放歌手名 playerArtist: null, // 当前播放歌手名
playerLrc: '歌词加载中', // 当前播放歌词 playerLrc: "歌词加载中", // 当前播放歌词
playerLrcShow: true, // 是否显示底栏歌词 playerLrcShow: true, // 是否显示底栏歌词
footerBlur: true, // 底栏模糊 footerBlur: true, // 底栏模糊
}; };
@ -73,15 +73,15 @@ export const mainStore = defineStore('main', {
}, },
}, },
persist: { persist: {
key: 'data', key: "data",
storage: window.localStorage, storage: window.localStorage,
paths: [ paths: [
'coverType', "coverType",
'musicVolume', "musicVolume",
'siteStartShow', "siteStartShow",
'musicClick', "musicClick",
'playerLrcShow', "playerLrcShow",
'footerBlur', "footerBlur",
], ],
}, },
}); });

View File

@ -17,7 +17,7 @@ body {
padding: 0; padding: 0;
background-color: #333; background-color: #333;
overflow: hidden; overflow: hidden;
font-family: 'HarmonyOS_Regular', sans-serif; font-family: "HarmonyOS_Regular", sans-serif;
} }
*, *,
@ -37,13 +37,13 @@ p {
// 字体文件 // 字体文件
@font-face { @font-face {
font-family: 'Pacifico-Regular'; font-family: "Pacifico-Regular";
src: url('/font/Pacifico-Regular.ttf') format('truetype'); src: url("/font/Pacifico-Regular.ttf") format("truetype");
} }
@font-face { @font-face {
font-family: 'UnidreamLED'; font-family: "UnidreamLED";
src: url('/font/UnidreamLED.ttf') format('truetype'); src: url("/font/UnidreamLED.ttf") format("truetype");
} }
// 基础样式 // 基础样式
@ -106,7 +106,7 @@ p {
background-color: #efefef; background-color: #efefef;
border-radius: 6px; border-radius: 6px;
text-align: center; text-align: center;
font-family: 'UnidreamLED'; font-family: "UnidreamLED";
span { span {
color: #564d59; color: #564d59;
font-size: 0.9rem; font-size: 0.9rem;

View File

@ -1,12 +1,19 @@
var CURSOR; let mainCursor;
Math.lerp = (a, b, n) => (1 - n) * a + n * b; Math.lerp = (a, b, n) => (1 - n) * a + n * b;
const getStyle = (el, attr) => { const getStyle = (el, attr) => {
try { try {
return window.getComputedStyle ? window.getComputedStyle(el)[attr] : el.currentStyle[attr]; return window.getComputedStyle ? window.getComputedStyle(el)[attr] : el.currentStyle[attr];
} catch (e) {} } catch (e) {
return ''; console.error(e);
}
return false;
};
const cursorInit = () => {
mainCursor = new Cursor();
return mainCursor;
}; };
class Cursor { class Cursor {
@ -22,30 +29,30 @@ class Cursor {
} }
move(left, top) { move(left, top) {
this.cursor.style['left'] = `${left}px`; this.cursor.style["left"] = `${left}px`;
this.cursor.style['top'] = `${top}px`; this.cursor.style["top"] = `${top}px`;
} }
create() { create() {
if (!this.cursor) { if (!this.cursor) {
this.cursor = document.createElement('div'); this.cursor = document.createElement("div");
this.cursor.id = 'cursor'; this.cursor.id = "cursor";
this.cursor.classList.add('xs-hidden'); this.cursor.classList.add("xs-hidden");
this.cursor.classList.add('hidden'); this.cursor.classList.add("hidden");
document.body.append(this.cursor); document.body.append(this.cursor);
} }
var el = document.getElementsByTagName('*'); var el = document.getElementsByTagName("*");
for (let i = 0; i < el.length; i++) for (let i = 0; i < el.length; i++)
if (getStyle(el[i], 'cursor') == 'pointer') this.pt.push(el[i].outerHTML); if (getStyle(el[i], "cursor") == "pointer") this.pt.push(el[i].outerHTML);
document.body.appendChild((this.scr = document.createElement('style'))); document.body.appendChild((this.scr = document.createElement("style")));
this.scr.innerHTML = `* {cursor: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='10px' height='10px'><circle cx='4' cy='4' r='4' fill='white' /></svg>") 4 4, auto !important}`; this.scr.innerHTML = `* {cursor: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='10px' height='10px'><circle cx='4' cy='4' r='4' fill='white' /></svg>") 4 4, auto !important}`;
} }
refresh() { refresh() {
this.scr.remove(); this.scr.remove();
this.cursor.classList.remove('active'); this.cursor.classList.remove("active");
this.pos = { this.pos = {
curr: null, curr: null,
prev: null, prev: null,
@ -64,12 +71,12 @@ class Cursor {
x: e.clientX - 8, x: e.clientX - 8,
y: e.clientY - 8, y: e.clientY - 8,
}; };
this.cursor.classList.remove('hidden'); this.cursor.classList.remove("hidden");
}; };
document.onmouseenter = (e) => this.cursor.classList.remove('hidden'); document.onmouseenter = () => this.cursor.classList.remove("hidden");
document.onmouseleave = (e) => this.cursor.classList.add('hidden'); document.onmouseleave = () => this.cursor.classList.add("hidden");
document.onmousedown = (e) => this.cursor.classList.add('active'); document.onmousedown = () => this.cursor.classList.add("active");
document.onmouseup = (e) => this.cursor.classList.remove('active'); document.onmouseup = () => this.cursor.classList.remove("active");
} }
render() { render() {
@ -84,8 +91,4 @@ class Cursor {
} }
} }
const cursorInit = () => {
CURSOR = new Cursor();
};
export default cursorInit; export default cursorInit;

View File

@ -12,10 +12,10 @@ function debounce(func, wait = 300, immediate = false) {
timeout = setTimeout(function () { timeout = setTimeout(function () {
timeout = null; timeout = null;
}, wait); }, wait);
if (callNow) typeof func === 'function' && func(); if (callNow) typeof func === "function" && func();
} else { } else {
timeout = setTimeout(function () { timeout = setTimeout(function () {
typeof func === 'function' && func(); typeof func === "function" && func();
}, wait); }, wait);
} }
} }

View File

@ -1,16 +1,16 @@
import { h } from 'vue'; import { h } from "vue";
import { SpaCandle } from '@icon-park/vue-next'; import { SpaCandle } from "@icon-park/vue-next";
// 时钟 // 时钟
export const getCurrentTime = () => { export const getCurrentTime = () => {
let time = new Date(); let time = new Date();
let year = time.getFullYear(); let year = time.getFullYear();
let month = time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1; let month = time.getMonth() + 1 < 10 ? "0" + (time.getMonth() + 1) : time.getMonth() + 1;
let day = time.getDate() < 10 ? '0' + time.getDate() : time.getDate(); let day = time.getDate() < 10 ? "0" + time.getDate() : time.getDate();
let hour = time.getHours() < 10 ? '0' + time.getHours() : time.getHours(); let hour = time.getHours() < 10 ? "0" + time.getHours() : time.getHours();
let minute = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes(); let minute = time.getMinutes() < 10 ? "0" + time.getMinutes() : time.getMinutes();
let second = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds(); let second = time.getSeconds() < 10 ? "0" + time.getSeconds() : time.getSeconds();
let weekday = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; let weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
let currentTime = { let currentTime = {
year, year,
month, month,
@ -74,21 +74,21 @@ export const helloInit = () => {
const hour = new Date().getHours(); const hour = new Date().getHours();
let hello = null; let hello = null;
if (hour < 6) { if (hour < 6) {
hello = '凌晨好'; hello = "凌晨好";
} else if (hour < 9) { } else if (hour < 9) {
hello = '早上好'; hello = "早上好";
} else if (hour < 12) { } else if (hour < 12) {
hello = '上午好'; hello = "上午好";
} else if (hour < 14) { } else if (hour < 14) {
hello = '中午好'; hello = "中午好";
} else if (hour < 17) { } else if (hour < 17) {
hello = '下午好'; hello = "下午好";
} else if (hour < 19) { } else if (hour < 19) {
hello = '傍晚好'; hello = "傍晚好";
} else if (hour < 22) { } else if (hour < 22) {
hello = '晚上好'; hello = "晚上好";
} else { } else {
hello = '夜深了'; hello = "夜深了";
} }
ElMessage({ ElMessage({
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
@ -98,26 +98,26 @@ export const helloInit = () => {
// 默哀模式 // 默哀模式
const anniversaries = { const anniversaries = {
4.4: '清明节', 4.4: "清明节",
5.12: '汶川大地震纪念日', 5.12: "汶川大地震纪念日",
7.7: '中国人民抗日战争纪念日', 7.7: "中国人民抗日战争纪念日",
9.18: '九·一八事变纪念日', 9.18: "九·一八事变纪念日",
12.13: '南京大屠杀死难者国家公祭日', 12.13: "南京大屠杀死难者国家公祭日",
}; };
export const checkDays = () => { export const checkDays = () => {
const myDate = new Date(); const myDate = new Date();
const mon = myDate.getMonth() + 1; const mon = myDate.getMonth() + 1;
const date = myDate.getDate(); const date = myDate.getDate();
const key = `${mon}.${date}`; const key = `${mon}.${date}`;
if (anniversaries.hasOwnProperty(key)) { if (Object.prototype.hasOwnProperty.call(anniversaries, key)) {
console.log(`今天是${anniversaries[key]}`); console.log(`今天是${anniversaries[key]}`);
const gray = document.createElement('style'); const gray = document.createElement("style");
gray.innerHTML = 'html{filter: grayscale(100%)}'; gray.innerHTML = "html{filter: grayscale(100%)}";
document.head.appendChild(gray); document.head.appendChild(gray);
ElMessage({ ElMessage({
message: `今天是${anniversaries[key]}`, message: `今天是${anniversaries[key]}`,
duration: 14000, duration: 14000,
icon: h(SpaCandle, { theme: 'filled', fill: '#efefef' }), icon: h(SpaCandle, { theme: "filled", fill: "#efefef" }),
}); });
} }
}; };

View File

@ -27,9 +27,9 @@
</template> </template>
<script setup> <script setup>
import { CloseOne, SettingTwo } from '@icon-park/vue-next'; import { CloseOne, SettingTwo } from "@icon-park/vue-next";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import TimeCapsule from '@/components/TimeCapsule.vue'; import TimeCapsule from "@/components/TimeCapsule.vue";
const store = mainStore(); const store = mainStore();
const closeShow = ref(false); const closeShow = ref(false);

View File

@ -29,11 +29,11 @@
</template> </template>
<script setup> <script setup>
import { getCurrentTime } from '@/utils/getTime'; import { getCurrentTime } from "@/utils/getTime";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import Music from '@/components/Music.vue'; import Music from "@/components/Music.vue";
import Hitokoto from '@/components/Hitokoto.vue'; import Hitokoto from "@/components/Hitokoto.vue";
import Weather from '@/components/Weather.vue'; import Weather from "@/components/Weather.vue";
const store = mainStore(); const store = mainStore();
@ -122,7 +122,7 @@ onBeforeUnmount(() => {
margin-top: 10px; margin-top: 10px;
font-size: 3.25rem; font-size: 3.25rem;
letter-spacing: 2px; letter-spacing: 2px;
font-family: 'UnidreamLED'; font-family: "UnidreamLED";
} }
} }
.weather { .weather {

View File

@ -6,9 +6,9 @@
</template> </template>
<script setup> <script setup>
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import Message from '@/components/Message.vue'; import Message from "@/components/Message.vue";
import SocialLinks from '@/components/SocialLinks.vue'; import SocialLinks from "@/components/SocialLinks.vue";
const store = mainStore(); const store = mainStore();
</script> </script>

View File

@ -13,13 +13,13 @@
</template> </template>
<script setup> <script setup>
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import Func from '@/views/Func/index.vue'; import Func from "@/views/Func/index.vue";
import Link from '@/components/Links.vue'; import Link from "@/components/Links.vue";
const store = mainStore(); const store = mainStore();
// //
const siteUrl = import.meta.env.VITE_SITE_URL.split('.'); const siteUrl = import.meta.env.VITE_SITE_URL.split(".");
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -29,7 +29,7 @@ const siteUrl = import.meta.env.VITE_SITE_URL.split('.');
margin-left: 0.75rem; margin-left: 0.75rem;
.logo { .logo {
width: 100%; width: 100%;
font-family: 'Pacifico-Regular'; font-family: "Pacifico-Regular";
font-size: 1.75rem; font-size: 1.75rem;
position: fixed; position: fixed;
top: 6%; top: 6%;

View File

@ -52,26 +52,26 @@
</template> </template>
<script setup> <script setup>
import { CloseOne, SettingTwo, GithubOne, AddOne, Bug } from '@icon-park/vue-next'; import { CloseOne, SettingTwo, GithubOne, AddOne, Bug } from "@icon-park/vue-next";
import { mainStore } from '@/store'; import { mainStore } from "@/store";
import Set from '@/components/Set.vue'; import Set from "@/components/Set.vue";
import config from '@/../package.json'; import config from "@/../package.json";
const store = mainStore(); const store = mainStore();
const closeShow = ref(false); const closeShow = ref(false);
// //
const siteUrl = import.meta.env.VITE_SITE_URL.split('.'); const siteUrl = import.meta.env.VITE_SITE_URL.split(".");
// //
const upData = reactive({ const upData = reactive({
new: [ new: [
'采用 Vue 进行重构', "采用 Vue 进行重构",
'音乐歌单支持快速自定义', "音乐歌单支持快速自定义",
'壁纸支持个性化设置', "壁纸支持个性化设置",
'音乐播放器支持音量控制', "音乐播放器支持音量控制",
], ],
fix: ['修复天气 API', '时光胶囊显示错误', '移动端动画及细节', '图标更换为 IconPark'], fix: ["修复天气 API", "时光胶囊显示错误", "移动端动画及细节", "图标更换为 IconPark"],
}); });
// //
@ -123,7 +123,7 @@ const jumpTo = (url) => {
.logo { .logo {
transform: translateY(-8%); transform: translateY(-8%);
font-family: 'Pacifico-Regular'; font-family: "Pacifico-Regular";
// line-height: 5rem; // line-height: 5rem;
width: 100%; width: 100%;
height: 260px; height: 260px;
@ -145,7 +145,7 @@ const jumpTo = (url) => {
.num { .num {
font-size: 2rem; font-size: 2rem;
font-family: 'Pacifico-Regular'; font-family: "Pacifico-Regular";
} }
.github { .github {