fix: 修复网址正则 #30 & feat: Add ESLint

This commit is contained in:
imsyy 2023-12-05 11:26:47 +08:00
parent e717984be6
commit 9f9854ceb6
23 changed files with 716 additions and 169 deletions

22
.eslintrc.json Normal file
View File

@ -0,0 +1,22 @@
{
"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"
},
"ignorePatterns": ["node_modules/", "public/", "dist/"],
"globals": {
"$message": true,
"$dialog": true,
"$loadingBar": true,
"$notification": true
}
}

17
.hintrc Normal file
View File

@ -0,0 +1,17 @@
{
"extends": [
"development"
],
"hints": {
"compat-api/html": "off",
"no-protocol-relative-urls": "off",
"compat-api/css": [
"default",
{
"ignore": [
"backdrop-filter"
]
}
]
}
}

8
.prettierrc.json Normal file
View File

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

View File

@ -6,7 +6,9 @@
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
"build": "vite build", "build": "vite build",
"preview": "vite preview" "preview": "vite preview",
"format": "prettier --write src/",
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix"
}, },
"dependencies": { "dependencies": {
"axios": "^1.4.0", "axios": "^1.4.0",
@ -19,7 +21,10 @@
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue": "^4.2.3",
"eslint": "^8.55.0",
"eslint-plugin-vue": "^9.19.2",
"naive-ui": "^2.34.4", "naive-ui": "^2.34.4",
"prettier": "^3.1.0",
"terser": "^5.19.2", "terser": "^5.19.2",
"vite": "^4.4.5", "vite": "^4.4.5",
"vite-plugin-compression": "^0.5.1", "vite-plugin-compression": "^0.5.1",

View File

@ -31,9 +31,18 @@ devDependencies:
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: ^4.2.3 specifier: ^4.2.3
version: 4.2.3(vite@4.4.6)(vue@3.3.4) version: 4.2.3(vite@4.4.6)(vue@3.3.4)
eslint:
specifier: ^8.55.0
version: 8.55.0
eslint-plugin-vue:
specifier: ^9.19.2
version: 9.19.2(eslint@8.55.0)
naive-ui: naive-ui:
specifier: ^2.34.4 specifier: ^2.34.4
version: 2.34.4(vue@3.3.4) version: 2.34.4(vue@3.3.4)
prettier:
specifier: ^3.1.0
version: 3.1.0
terser: terser:
specifier: ^5.19.2 specifier: ^5.19.2
version: 5.19.2 version: 5.19.2
@ -49,6 +58,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'}
@ -375,6 +389,7 @@ packages:
/@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9):
resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
engines: {node: '>=4'} engines: {node: '>=4'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
dependencies: dependencies:
@ -1452,6 +1467,63 @@ packages:
dev: true dev: true
optional: true optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.55.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.55.0
eslint-visitor-keys: 3.4.3
dev: true
/@eslint-community/regexpp@4.10.0:
resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
/@eslint/eslintrc@2.1.4:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
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.23.0
ignore: 5.3.0
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.55.0:
resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@humanwhocodes/config-array@0.11.13:
resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 2.0.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@2.0.1:
resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
dev: true
/@jridgewell/gen-mapping@0.3.3: /@jridgewell/gen-mapping@0.3.3:
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
@ -1612,6 +1684,10 @@ packages:
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
dev: true dev: true
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
/@vitejs/plugin-vue@4.2.3(vite@4.4.6)(vue@3.3.4): /@vitejs/plugin-vue@4.2.3(vite@4.4.6)(vue@3.3.4):
resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@ -1700,12 +1776,29 @@ packages:
/@vue/shared@3.3.4: /@vue/shared@3.3.4:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
/acorn-jsx@5.3.2(acorn@8.10.0):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
acorn: 8.10.0
dev: true
/acorn@8.10.0: /acorn@8.10.0:
resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
dev: true dev: true
/ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
dev: true
/ajv@8.12.0: /ajv@8.12.0:
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
dependencies: dependencies:
@ -1715,6 +1808,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'}
@ -1736,6 +1834,10 @@ packages:
normalize-path: 3.0.0 normalize-path: 3.0.0
picomatch: 2.3.1 picomatch: 2.3.1
/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:
@ -1831,6 +1933,10 @@ packages:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'} engines: {node: '>=8'}
/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:
@ -1877,6 +1983,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.30001518: /caniuse-lite@1.0.30001518:
resolution: {integrity: sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA==} resolution: {integrity: sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA==}
dev: true dev: true
@ -1963,6 +2074,15 @@ packages:
browserslist: 4.21.10 browserslist: 4.21.10
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'}
@ -1975,6 +2095,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
@ -2009,6 +2135,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'}
@ -2027,6 +2157,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'}
@ -2142,6 +2279,117 @@ 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
/eslint-plugin-vue@9.19.2(eslint@8.55.0):
resolution: {integrity: sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==}
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.55.0)
eslint: 8.55.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.2(eslint@8.55.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
dev: true
/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.55.0:
resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.55.0
'@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
'@ungap/structured-clone': 1.2.0
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.23.0
graphemer: 1.4.0
ignore: 5.3.0
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.10.0
acorn-jsx: 5.3.2(acorn@8.10.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:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
dependencies:
estraverse: 5.3.0
dev: true
/estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
dev: true
/estree-walker@1.0.1: /estree-walker@1.0.1:
resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
dev: true dev: true
@ -2177,6 +2425,10 @@ packages:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
dev: true dev: true
/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:
@ -2187,6 +2439,13 @@ packages:
resolution: {integrity: sha512-hxCYGvmANEmpkHpeWY8Kawfa5Z1t2csTpIClIDG/0S92eALWHRU1RnGaj86Tf5Cc0QF+afSa4SQ4pFB2rFM5QA==} resolution: {integrity: sha512-hxCYGvmANEmpkHpeWY8Kawfa5Z1t2csTpIClIDG/0S92eALWHRU1RnGaj86Tf5Cc0QF+afSa4SQ4pFB2rFM5QA==}
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.2.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:
@ -2199,6 +2458,27 @@ packages:
dependencies: dependencies:
to-regex-range: 5.0.1 to-regex-range: 5.0.1
/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.2.0:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
flatted: 3.2.9
keyv: 4.5.4
rimraf: 3.0.2
dev: true
/flatted@3.2.9:
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
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'}
@ -2304,6 +2584,13 @@ packages:
dependencies: dependencies:
is-glob: 4.0.3 is-glob: 4.0.3
/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@7.2.3: /glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies: dependencies:
@ -2320,6 +2607,13 @@ packages:
engines: {node: '>=4'} engines: {node: '>=4'}
dev: true dev: true
/globals@13.23.0:
resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==}
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'}
@ -2337,6 +2631,10 @@ packages:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true dev: true
/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
@ -2390,9 +2688,27 @@ packages:
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
dev: true dev: true
/ignore@5.3.0:
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
engines: {node: '>= 4'}
dev: true
/immutable@4.3.1: /immutable@4.3.1:
resolution: {integrity: sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==} resolution: {integrity: sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==}
/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:
@ -2494,6 +2810,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'}
@ -2549,6 +2870,10 @@ packages:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
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'}
@ -2573,6 +2898,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
@ -2584,6 +2916,14 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
dev: true
/json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: true
/json-schema-traverse@1.0.0: /json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
dev: true dev: true
@ -2592,6 +2932,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'}
@ -2611,11 +2955,32 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
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
/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: true dev: true
@ -2624,6 +2989,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
@ -2638,6 +3007,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
/lunar-calendar@0.1.4: /lunar-calendar@0.1.4:
resolution: {integrity: sha512-5r87vbg5yg56z/jkf3A+Ur+ZggUTiJw1VATT9P7RELQgWcTNhfJ+OLkNYroSna6r65bMqyaAgapo9vRN40L75A==} resolution: {integrity: sha512-5r87vbg5yg56z/jkf3A+Ur+ZggUTiJw1VATT9P7RELQgWcTNhfJ+OLkNYroSna6r65bMqyaAgapo9vRN40L75A==}
dev: false dev: false
@ -2731,6 +3107,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
/node-releases@2.0.13: /node-releases@2.0.13:
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
dev: true dev: true
@ -2739,6 +3119,12 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
/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
@ -2764,11 +3150,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
@ -2805,6 +3234,14 @@ packages:
vue-demi: 0.14.5(vue@3.3.4) vue-demi: 0.14.5(vue@3.3.4)
dev: false dev: false
/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.27: /postcss@8.4.27:
resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
@ -2813,6 +3250,17 @@ packages:
picocolors: 1.0.0 picocolors: 1.0.0
source-map-js: 1.0.2 source-map-js: 1.0.2
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
dev: true
/prettier@3.1.0:
resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
engines: {node: '>=14'}
hasBin: true
dev: true
/pretty-bytes@5.6.0: /pretty-bytes@5.6.0:
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -2902,6 +3350,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
@ -2916,6 +3369,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
@ -2991,12 +3451,32 @@ 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:
randombytes: 2.1.0 randombytes: 2.1.0
dev: true dev: true
/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:
@ -3080,11 +3560,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
/supports-color@5.5.0: /supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -3130,6 +3622,10 @@ packages:
source-map-support: 0.5.21 source-map-support: 0.5.21
dev: true dev: true
/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'}
@ -3150,11 +3646,23 @@ packages:
resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==}
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-buffer@1.0.0: /typed-array-buffer@1.0.0:
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -3259,6 +3767,10 @@ packages:
punycode: 2.3.0 punycode: 2.3.0
dev: true dev: true
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/vdirs@0.1.8(vue@3.3.4): /vdirs@0.1.8(vue@3.3.4):
resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
peerDependencies: peerDependencies:
@ -3360,6 +3872,24 @@ packages:
vue: 3.3.4 vue: 3.3.4
dev: false dev: false
/vue-eslint-parser@9.3.2(eslint@8.55.0):
resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.55.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@3.3.4: /vue@3.3.4:
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
dependencies: dependencies:
@ -3417,6 +3947,14 @@ packages:
has-tostringtag: 1.0.0 has-tostringtag: 1.0.0
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@7.0.0: /workbox-background-sync@7.0.0:
resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==}
dependencies: dependencies:
@ -3567,6 +4105,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

@ -22,9 +22,7 @@
<Transition name="fade"> <Transition name="fade">
<div <div
class="all-controls" class="all-controls"
v-show=" v-show="status.siteStatus !== 'focus' && status.siteStatus !== 'normal'"
status.siteStatus !== 'focus' && status.siteStatus !== 'normal'
"
> >
<div <div
class="change-status" class="change-status"
@ -41,17 +39,11 @@
<div <div
class="change-status" class="change-status"
:title="status.siteStatus !== 'set' ? '设置' : '首页'" :title="status.siteStatus !== 'set' ? '设置' : '首页'"
@click.stop=" @click.stop="status.setSiteStatus(status.siteStatus !== 'set' ? 'set' : 'normal')"
status.setSiteStatus(
status.siteStatus !== 'set' ? 'set' : 'normal'
)
"
> >
<Transition name="fade" mode="out-in"> <Transition name="fade" mode="out-in">
<SvgIcon <SvgIcon
:iconName="`icon-${ :iconName="`icon-${status.siteStatus !== 'set' ? 'setting' : 'home'}`"
status.siteStatus !== 'set' ? 'setting' : 'home'
}`"
:key="status.siteStatus !== 'set' ? 'setting' : 'home'" :key="status.siteStatus !== 'set' ? 'setting' : 'home'"
/> />
</Transition> </Transition>
@ -124,7 +116,7 @@ const changeThemeType = (val) => {
// //
watch( watch(
() => set.themeType, () => set.themeType,
(val) => changeThemeType(val) (val) => changeThemeType(val),
); );
onMounted(() => { onMounted(() => {
@ -192,7 +184,10 @@ onMounted(() => {
border-radius: 8px; border-radius: 8px;
color: var(--main-text-color); color: var(--main-text-color);
z-index: 1; z-index: 1;
transition: opacity 0.3s, background-color 0.3s, transform 0.3s; transition:
opacity 0.3s,
background-color 0.3s,
transform 0.3s;
&:hover { &:hover {
backdrop-filter: blur(20px); backdrop-filter: blur(20px);
background-color: var(--main-background-light-color); background-color: var(--main-background-light-color);

View File

@ -25,7 +25,7 @@ export const getSearchSuggestions = async (keyWord) => {
{ {
// 回调参数 // 回调参数
jsonpCallback: "cb", jsonpCallback: "cb",
} },
); );
const data = await response.json(); const data = await response.json();
return data.s; return data.s;

View File

@ -1,5 +1,5 @@
<template> <template>
<n-tabs class="all-box" size="large" justify-content="space-evenly" animated > <n-tabs class="all-box" size="large" justify-content="space-evenly" animated>
<n-tab-pane class="no-padding" name="link" tab="捷径"> <n-tab-pane class="no-padding" name="link" tab="捷径">
<ShortCut /> <ShortCut />
</n-tab-pane> </n-tab-pane>

View File

@ -34,7 +34,11 @@ const status = statusStore();
backdrop-filter: blur(20px); backdrop-filter: blur(20px);
color: var(--main-text-color); color: var(--main-text-color);
border-radius: 8px; border-radius: 8px;
transition: opacity 0.3s, transform 0.3s, margin-top 0.3s, height 0.3s; transition:
opacity 0.3s,
transform 0.3s,
margin-top 0.3s,
height 0.3s;
z-index: 2; z-index: 2;
.all-set { .all-set {
overflow: hidden; overflow: hidden;

View File

@ -9,11 +9,7 @@
<span class="title">主题类别</span> <span class="title">主题类别</span>
<span class="tip">切换全站主题类别</span> <span class="tip">切换全站主题类别</span>
</div> </div>
<n-select <n-select class="set" v-model:value="themeType" :options="themeTypeOptions" />
class="set"
v-model:value="themeType"
:options="themeTypeOptions"
/>
</n-card> </n-card>
<n-card <n-card
class="set-item cover" class="set-item cover"
@ -25,9 +21,7 @@
<div class="desc"> <div class="desc">
<div class="name"> <div class="name">
<span class="title">壁纸偏好</span> <span class="title">壁纸偏好</span>
<span class="tip"> <span class="tip"> 除默认以外的其他选项可能会导致页面载入缓慢 </span>
除默认以外的其他选项可能会导致页面载入缓慢
</span>
</div> </div>
<n-space> <n-space>
<Transition name="fade" mode="out-in"> <Transition name="fade" mode="out-in">
@ -96,11 +90,7 @@
<span class="title">跳转方式</span> <span class="title">跳转方式</span>
<span class="tip">全站链接跳转方式</span> <span class="tip">全站链接跳转方式</span>
</div> </div>
<n-select <n-select class="set" v-model:value="urlJumpType" :options="urlJumpTypeOptions" />
class="set"
v-model:value="urlJumpType"
:options="urlJumpTypeOptions"
/>
</n-card> </n-card>
</n-scrollbar> </n-scrollbar>
</n-tab-pane> </n-tab-pane>
@ -141,11 +131,7 @@
<span class="title">时钟样式</span> <span class="title">时钟样式</span>
<span class="tip">选择一种时钟样式</span> <span class="tip">选择一种时钟样式</span>
</div> </div>
<n-select <n-select class="set" v-model:value="timeStyle" :options="timeStyleOptions" />
class="set"
v-model:value="timeStyle"
:options="timeStyleOptions"
/>
</n-card> </n-card>
<n-card v-if="timeStyle === 'one'" class="set-item"> <n-card v-if="timeStyle === 'one'" class="set-item">
<div class="name"> <div class="name">
@ -228,20 +214,13 @@
accept=".json" accept=".json"
@change="recoverSite" @change="recoverSite"
/> />
<n-button strong secondary @click="recoverRef?.click()"> <n-button strong secondary @click="recoverRef?.click()"> 恢复 </n-button>
恢复
</n-button>
</n-card> </n-card>
</n-scrollbar> </n-scrollbar>
</n-tab-pane> </n-tab-pane>
</n-tabs> </n-tabs>
<!-- 自定义壁纸 --> <!-- 自定义壁纸 -->
<n-modal <n-modal preset="card" title="自定义壁纸" v-model:show="customCoverModal" :bordered="false">
preset="card"
title="自定义壁纸"
v-model:show="customCoverModal"
:bordered="false"
>
<n-form> <n-form>
<n-form-item label="自定义壁纸链接"> <n-form-item label="自定义壁纸链接">
<n-input <n-input
@ -254,9 +233,7 @@
</n-form> </n-form>
<template #footer> <template #footer>
<n-space justify="end"> <n-space justify="end">
<n-button strong secondary @click="customCoverModal = false"> <n-button strong secondary @click="customCoverModal = false"> 取消 </n-button>
取消
</n-button>
<n-button strong secondary @click="setCustomCover"> 确认 </n-button> <n-button strong secondary @click="setCustomCover"> 确认 </n-button>
</n-space> </n-space>
</template> </template>
@ -322,7 +299,7 @@ const backgroundTypeArr = [
// //
const themeTypeOptions = [ const themeTypeOptions = [
{ {
label: "浅色模式", label: "浅色模式",
value: "light", value: "light",
}, },
@ -486,7 +463,9 @@ onMounted(() => {
justify-content: center; justify-content: center;
border-radius: 8px; border-radius: 8px;
background-color: var(--main-background-light-color); background-color: var(--main-background-light-color);
transition: background-color 0.3s, box-shadow 0.3s; transition:
background-color 0.3s,
box-shadow 0.3s;
&.check { &.check {
background-color: var(--main-background-hover-color); background-color: var(--main-background-hover-color);
&::before { &::before {

View File

@ -77,11 +77,7 @@
/> />
</n-form-item> </n-form-item>
<n-form-item label="站点链接" path="url"> <n-form-item label="站点链接" path="url">
<n-input <n-input clearable v-model:value="addShortcutValue.url" placeholder="请输入站点链接" />
clearable
v-model:value="addShortcutValue.url"
placeholder="请输入站点链接"
/>
</n-form-item> </n-form-item>
</n-form> </n-form>
<template #footer> <template #footer>
@ -232,8 +228,7 @@ const addOrEditShortcuts = () => {
// //
const isDuplicate = shortcutData.value?.some( const isDuplicate = shortcutData.value?.some(
(item) => (item) =>
item.name === addShortcutValue.value.name || item.name === addShortcutValue.value.name || item.url === addShortcutValue.value.url,
item.url === addShortcutValue.value.url
); );
if (isDuplicate) { if (isDuplicate) {
$message.error("新增名称或链接与已有捷径重复"); $message.error("新增名称或链接与已有捷径重复");
@ -249,9 +244,7 @@ const addOrEditShortcuts = () => {
return true; return true;
} else { } else {
// //
const index = shortcutData.value.findIndex( const index = shortcutData.value.findIndex((item) => item.id === addShortcutValue.value.id);
(item) => item.id === addShortcutValue.value.id
);
if (index === -1) { if (index === -1) {
$message.error("捷径中不存在该项,请重试"); $message.error("捷径中不存在该项,请重试");
return false; return false;
@ -269,9 +262,7 @@ const addOrEditShortcuts = () => {
const delShortcuts = () => { const delShortcuts = () => {
const deleteId = addShortcutValue.value.id; const deleteId = addShortcutValue.value.id;
if (typeof deleteId === "number") { if (typeof deleteId === "number") {
const indexToRemove = shortcutData.value.findIndex( const indexToRemove = shortcutData.value.findIndex((item) => item.id === deleteId);
(item) => item.id === deleteId
);
if (indexToRemove !== -1) { if (indexToRemove !== -1) {
shortcutData.value.splice(indexToRemove, 1); shortcutData.value.splice(indexToRemove, 1);
// id // id
@ -355,7 +346,9 @@ const shortCutJump = (url) => {
background-color: var(--main-background-light-color); background-color: var(--main-background-light-color);
border-radius: 8px; border-radius: 8px;
font-size: 16px; font-size: 16px;
transition: background-color 0.3s, box-shadow 0.3s; transition:
background-color 0.3s,
box-shadow 0.3s;
.i-icon { .i-icon {
width: 1rem; width: 1rem;
margin-right: 6px; margin-right: 6px;

View File

@ -37,10 +37,11 @@ const setBgUrl = () => {
case 0: case 0:
bgUrl.value = `/background/bg${bgRandom}.jpg`; bgUrl.value = `/background/bg${bgRandom}.jpg`;
break; break;
case 1: case 1: {
const isMobile = window.innerWidth < 768; const isMobile = window.innerWidth < 768;
bgUrl.value = `https://api.dujin.org/bing/${isMobile ? "m" : "1920"}.php`; bgUrl.value = `https://api.dujin.org/bing/${isMobile ? "m" : "1920"}.php`;
break; break;
}
case 2: case 2:
bgUrl.value = "https://api.aixiaowai.cn/gqapi/gqapi.php"; bgUrl.value = "https://api.aixiaowai.cn/gqapi/gqapi.php";
break; break;
@ -58,9 +59,12 @@ const setBgUrl = () => {
// //
const imgLoadComplete = () => { const imgLoadComplete = () => {
imgTimeout.value = setTimeout(() => { imgTimeout.value = setTimeout(
status.setImgLoadStatus(true); () => {
}, Math.floor(Math.random() * (600 - 300 + 1)) + 300); status.setImgLoadStatus(true);
},
Math.floor(Math.random() * (600 - 300 + 1)) + 300,
);
}; };
// //
@ -108,7 +112,9 @@ onBeforeUnmount(() => {
backface-visibility: hidden; backface-visibility: hidden;
transform: scale(1.2); transform: scale(1.2);
filter: blur(var(--blur)); filter: blur(var(--blur));
transition: filter 0.3s, transform 0.3s; transition:
filter 0.3s,
transform 0.3s;
animation: fade-blur-in 1s cubic-bezier(0.25, 0.46, 0.45, 0.94); animation: fade-blur-in 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
} }
.gray { .gray {
@ -117,10 +123,7 @@ onBeforeUnmount(() => {
top: 0; top: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-image: radial-gradient( background-image: radial-gradient(rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0.5) 100%),
rgba(0, 0, 0, 0) 0,
rgba(0, 0, 0, 0.5) 100%
),
radial-gradient(rgba(0, 0, 0, 0) 33%, rgba(0, 0, 0, 0.3) 166%); radial-gradient(rgba(0, 0, 0, 0) 33%, rgba(0, 0, 0, 0.3) 166%);
} }
} }

View File

@ -3,10 +3,7 @@
<div class="copyright"> <div class="copyright">
<span class="site-name">{{ siteName }}</span> <span class="site-name">{{ siteName }}</span>
<span class="year">{{ fullYear }}</span> <span class="year">{{ fullYear }}</span>
<span <span class="anthor" @click="jumpTo(copyrightLink ?? 'https://github.com/imsyy/Snavigation')">
class="anthor"
@click="jumpTo(copyrightLink ?? 'https://github.com/imsyy/Snavigation')"
>
{{ siteAnthor }} {{ siteAnthor }}
</span> </span>
<span v-if="icp" class="icp" @click="jumpTo('https://beian.miit.gov.cn')"> <span v-if="icp" class="icp" @click="jumpTo('https://beian.miit.gov.cn')">
@ -28,11 +25,7 @@
</div> </div>
<div class="desc"> <div class="desc">
<n-space class="link" justify="center"> <n-space class="link" justify="center">
<n-button <n-button strong secondary @click="jumpTo('https://github.com/imsyy/Snavigation')">
strong
secondary
@click="jumpTo('https://github.com/imsyy/Snavigation')"
>
Github Github
</n-button> </n-button>
</n-space> </n-space>

View File

@ -20,7 +20,7 @@
</template> </template>
<script setup> <script setup>
import { defineComponent } from "vue"; import { defineComponent, h } from "vue";
import { import {
zhCN, zhCN,
dateZhCN, dateZhCN,
@ -60,6 +60,8 @@ const NaiveProviderContent = defineComponent({
setup() { setup() {
setupNaiveTools(); setupNaiveTools();
}, },
render() {}, render() {
return h("div", { className: "main-tools" });
},
}); });
</script> </script>

View File

@ -2,13 +2,7 @@
<Transition name="fadeDown" mode="out-in"> <Transition name="fadeDown" mode="out-in">
<div v-if="status.engineChangeStatus" class="engine-choose"> <div v-if="status.engineChangeStatus" class="engine-choose">
<n-scrollbar style="max-height: 44.5vh"> <n-scrollbar style="max-height: 44.5vh">
<n-grid <n-grid class="all-engine" responsive="screen" cols="2 s:3 m:4 l:4" :x-gap="10" :y-gap="10">
class="all-engine"
responsive="screen"
cols="2 s:3 m:4 l:4"
:x-gap="10"
:y-gap="10"
>
<n-grid-item <n-grid-item
v-for="(item, key) in defaultEngine" v-for="(item, key) in defaultEngine"
:key="key" :key="key"
@ -54,12 +48,8 @@
</n-form> </n-form>
<template #footer> <template #footer>
<n-space justify="end"> <n-space justify="end">
<n-button strong secondary @click="customEngineModal = false"> <n-button strong secondary @click="customEngineModal = false"> 取消 </n-button>
取消 <n-button strong secondary @click="setCustomEngine"> 确认 </n-button>
</n-button>
<n-button strong secondary @click="setCustomEngine">
确认
</n-button>
</n-space> </n-space>
</template> </template>
</n-modal> </n-modal>
@ -98,9 +88,7 @@ const customEngineRules = {
validator(rule, value) { validator(rule, value) {
if (!value) { if (!value) {
return new Error("请输入自定义搜索引擎地址"); return new Error("请输入自定义搜索引擎地址");
} else if ( } else if (!/^https:\/\/[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,}(\/\S*)?$/.test(value)) {
!/^https:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(\/\S*)?$/.test(value)
) {
return new Error("请检查是否为网址且是否为 https:// 开头"); return new Error("请检查是否为网址且是否为 https:// 开头");
} }
return true; return true;
@ -171,7 +159,9 @@ const setCustomEngine = () => {
border-radius: 10px; border-radius: 10px;
box-sizing: border-box; box-sizing: border-box;
background-color: var(--main-background-light-color); background-color: var(--main-background-light-color);
transition: background-color 0.3s, box-shadow 0.3s; transition:
background-color 0.3s,
box-shadow 0.3s;
.i-icon { .i-icon {
margin-right: 12px; margin-right: 12px;
} }

View File

@ -25,9 +25,7 @@
<Transition name="fade" mode="out-in"> <Transition name="fade" mode="out-in">
<SvgIcon <SvgIcon
:iconName="`icon-${ :iconName="`icon-${
set.searchEngine !== 'custom' set.searchEngine !== 'custom' ? defaultEngine[set.searchEngine]?.icon : 'custom'
? defaultEngine[set.searchEngine]?.icon
: 'custom'
}`" }`"
:key="set.searchEngine" :key="set.searchEngine"
/> />
@ -54,11 +52,7 @@
<!-- 搜索引擎切换 --> <!-- 搜索引擎切换 -->
<SearchEngine /> <SearchEngine />
<!-- 搜索建议 --> <!-- 搜索建议 -->
<Suggestions <Suggestions ref="suggestionsRef" :keyWord="status.searchInputValue" @toSearch="toSearch" />
ref="suggestionsRef"
:keyWord="status.searchInputValue"
@toSearch="toSearch"
/>
</div> </div>
</template> </template>
@ -120,26 +114,26 @@ const toSearch = (val, type = 1) => {
} }
break; break;
// //
case 2: case 2: {
const hasTranslation = defaultEngine[set.searchEngine]?.translation; const hasTranslation = defaultEngine[set.searchEngine]?.translation;
jumpLink( jumpLink(
hasTranslation hasTranslation
? hasTranslation + searchFormat ? hasTranslation + searchFormat
: `https://fanyi.baidu.com/#en/zh/${searchFormat}` : `https://fanyi.baidu.com/#en/zh/${searchFormat}`,
); );
break; break;
}
// //
case 3: case 3:
jumpLink(`mailto:${searchFormat}`); jumpLink(`mailto:${searchFormat}`);
break; break;
// 访 // 访
case 4: case 4: {
const urlRegex = /^(https?:\/\/)/i; const urlRegex = /^(https?:\/\/)/i;
const url = urlRegex.test(searchFormat) const url = urlRegex.test(searchFormat) ? searchFormat : `//${searchFormat}`;
? searchFormat
: `//${searchFormat}`;
jumpLink(url); jumpLink(url);
break; break;
}
default: default:
break; break;
} }
@ -208,7 +202,10 @@ const changeEngine = () => {
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
opacity: 1; opacity: 1;
animation: fade-up-in 0.7s cubic-bezier(0.37, 0.99, 0.36, 1); animation: fade-up-in 0.7s cubic-bezier(0.37, 0.99, 0.36, 1);
transition: transform 0.3s, background-color 0.3s, opacity 0.5s; transition:
transform 0.3s,
background-color 0.3s,
opacity 0.5s;
z-index: 1; z-index: 1;
.input { .input {
display: flex; display: flex;
@ -240,7 +237,9 @@ const changeEngine = () => {
width: 64px; width: 64px;
font-size: 20px; font-size: 20px;
border-radius: 30px; border-radius: 30px;
transition: background-color 0.3s, opacity 0.3s; transition:
background-color 0.3s,
opacity 0.3s;
&:hover { &:hover {
background-color: var(--main-background-color); background-color: var(--main-background-color);
} }

View File

@ -18,11 +18,7 @@
@after-enter="changeSuggestionsHeights" @after-enter="changeSuggestionsHeights"
@after-leave="changeSuggestionsHeights" @after-leave="changeSuggestionsHeights"
> >
<div <div v-if="searchKeyword !== null" class="special-result" ref="specialallResultsRef">
v-if="searchKeyword !== null"
class="special-result"
ref="specialallResultsRef"
>
<!-- 快捷翻译 --> <!-- 快捷翻译 -->
<div <div
v-if="searchKeywordType === 'text'" v-if="searchKeywordType === 'text'"
@ -36,19 +32,11 @@
<div <div
v-if="searchKeywordType !== 'text'" v-if="searchKeywordType !== 'text'"
class="s-result" class="s-result"
@click.stop=" @click.stop="toSearch(searchKeyword, searchKeywordType === 'email' ? 3 : 4)"
toSearch(searchKeyword, searchKeywordType === 'email' ? 3 : 4)
"
> >
<SvgIcon <SvgIcon :iconName="`icon-${searchKeywordType === 'email' ? 'email' : 'link'}`" />
:iconName="`icon-${
searchKeywordType === 'email' ? 'email' : 'link'
}`"
/>
<span class="text"> <span class="text">
{{ {{ searchKeywordType === "email" ? "发送邮件至" : "直接访问" }}{{ searchKeyword }}
searchKeywordType === "email" ? "发送邮件至" : "直接访问"
}}{{ searchKeyword }}
</span> </span>
</div> </div>
</div> </div>
@ -157,29 +145,22 @@ const keyboardEvents = (keyCode, event) => {
// //
event.preventDefault(); event.preventDefault();
if (mainInput && allResultsRef.value && searchSuggestionsData.value[0]) { if (mainInput && allResultsRef.value && searchSuggestionsData.value[0]) {
const suggestionItems = const suggestionItems = allResultsRef.value.querySelectorAll(".s-result");
allResultsRef.value.querySelectorAll(".s-result");
if (suggestionItems.length > 0) { if (suggestionItems.length > 0) {
// //
const focusedItem = document.querySelector(".s-result.focus"); const focusedItem = document.querySelector(".s-result.focus");
// //
const currentIndex = Array.from(suggestionItems).indexOf(focusedItem); const currentIndex = Array.from(suggestionItems).indexOf(focusedItem);
// //
suggestionItems.forEach((item) => suggestionItems.forEach((item) => item.classList.toggle("focus", false));
item.classList.toggle("focus", false)
);
// //
let nextIndex = keyCode === 38 ? currentIndex - 1 : currentIndex + 1; let nextIndex = keyCode === 38 ? currentIndex - 1 : currentIndex + 1;
// //
nextIndex = Math.max( nextIndex = Math.max(0, Math.min(nextIndex, suggestionItems.length - 1));
0,
Math.min(nextIndex, suggestionItems.length - 1)
);
// //
if (nextIndex !== -1) { if (nextIndex !== -1) {
suggestionItems[nextIndex].classList.toggle("focus", true); suggestionItems[nextIndex].classList.toggle("focus", true);
mainInput.value = mainInput.value = suggestionItems[nextIndex].querySelector(".text").textContent;
suggestionItems[nextIndex].querySelector(".text").textContent;
} }
} }
} }
@ -199,8 +180,7 @@ const changeSuggestionsHeights = () => {
try { try {
const allResultsHeight = allResultsRef.value?.offsetHeight; const allResultsHeight = allResultsRef.value?.offsetHeight;
const specialallResultsHeight = specialallResultsRef.value?.offsetHeight; const specialallResultsHeight = specialallResultsRef.value?.offsetHeight;
suggestionsHeights.value = suggestionsHeights.value = (specialallResultsHeight || 0) + (allResultsHeight || 0);
(specialallResultsHeight || 0) + (allResultsHeight || 0);
} catch (error) { } catch (error) {
console.error("计算高度时出现错误:" + error); console.error("计算高度时出现错误:" + error);
} }
@ -223,7 +203,7 @@ watch(
// //
keywordsSearch(val); keywordsSearch(val);
} }
} },
); );
// //
@ -242,7 +222,10 @@ defineExpose({ keyboardEvents });
background-color: var(--main-background-light-color); background-color: var(--main-background-light-color);
backdrop-filter: blur(30px) saturate(1.25); backdrop-filter: blur(30px) saturate(1.25);
border-radius: 16px; border-radius: 16px;
transition: height 0.2s ease, opacity 0.3s ease, transform 0.3s ease; transition:
height 0.2s ease,
opacity 0.3s ease,
transform 0.3s ease;
z-index: 1; z-index: 1;
.all-result, .all-result,
@ -255,7 +238,9 @@ defineExpose({ keyboardEvents });
align-items: center; align-items: center;
padding: 6px 12px; padding: 6px 12px;
font-size: 14px; font-size: 14px;
transition: background-color 0.3s, padding-left 0.3s; transition:
background-color 0.3s,
padding-left 0.3s;
.i-icon { .i-icon {
opacity: 0.8; opacity: 0.8;
margin-right: 8px; margin-right: 8px;

View File

@ -4,9 +4,7 @@
:class="[ :class="[
'weather-time', 'weather-time',
status.siteStatus, status.siteStatus,
status.mainBoxBig && status.mainBoxBig && status.siteStatus !== 'normal' && status.siteStatus !== 'focus'
status.siteStatus !== 'normal' &&
status.siteStatus !== 'focus'
? 'hidden' ? 'hidden'
: null, : null,
set.showLunar ? 'lunar' : null, set.showLunar ? 'lunar' : null,
@ -18,9 +16,7 @@
class="time" class="time"
@click.stop=" @click.stop="
status.setSiteStatus( status.setSiteStatus(
status.siteStatus !== 'normal' && status.siteStatus !== 'focus' status.siteStatus !== 'normal' && status.siteStatus !== 'focus' ? 'normal' : 'box',
? 'normal'
: 'box'
) )
" "
> >
@ -50,9 +46,7 @@
<span class="status">{{ weatherData.condition ?? "N/A" }}</span> <span class="status">{{ weatherData.condition ?? "N/A" }}</span>
<span class="temperature">{{ weatherData.temp ?? "N/A" }} </span> <span class="temperature">{{ weatherData.temp ?? "N/A" }} </span>
<span class="wind">{{ weatherData.windDir ?? "N/A" }}</span> <span class="wind">{{ weatherData.windDir ?? "N/A" }}</span>
<span v-if="weatherData.windLevel" class="wind-level"> <span v-if="weatherData.windLevel" class="wind-level"> {{ weatherData.windLevel }} </span>
{{ weatherData.windLevel }}
</span>
</div> </div>
</div> </div>
</template> </template>
@ -101,10 +95,7 @@ const getWeatherData = () => {
lastFetchTime: currentTime, lastFetchTime: currentTime,
}; };
// localStorage // localStorage
localStorage.setItem( localStorage.setItem("lastWeatherData", JSON.stringify(lastWeatherData));
"lastWeatherData",
JSON.stringify(lastWeatherData)
);
}) })
.catch((error) => { .catch((error) => {
console.error("天气获取失败:" + error); console.error("天气获取失败:" + error);
@ -124,7 +115,7 @@ watch(
() => [set.showZeroTime, set.use12HourFormat], () => [set.showZeroTime, set.use12HourFormat],
() => { () => {
updateTimeData(); updateTimeData();
} },
); );
onMounted(() => { onMounted(() => {
@ -150,7 +141,10 @@ onBeforeUnmount(() => {
transform: translateY(-140px); transform: translateY(-140px);
color: var(--main-text-color); color: var(--main-text-color);
animation: fade-time-in 0.6s cubic-bezier(0.21, 0.78, 0.36, 1); animation: fade-time-in 0.6s cubic-bezier(0.21, 0.78, 0.36, 1);
transition: transform 0.3s, opacity 0.5s, margin-bottom 0.3s; transition:
transform 0.3s,
opacity 0.5s,
margin-bottom 0.3s;
z-index: 1; z-index: 1;
.time { .time {
cursor: pointer; cursor: pointer;

View File

@ -168,7 +168,9 @@ body {
.fadeDown-enter-active, .fadeDown-enter-active,
.fadeDown-leave-active { .fadeDown-leave-active {
transition: opacity 0.3s ease, transform 0.3s ease; transition:
opacity 0.3s ease,
transform 0.3s ease;
} }
.fadeDown-enter-active { .fadeDown-enter-active {
@ -183,7 +185,9 @@ body {
.show-enter-active, .show-enter-active,
.show-leave-active { .show-leave-active {
transition: opacity 0.25s ease, transform 0.25s ease-in-out; transition:
opacity 0.25s ease,
transform 0.25s ease-in-out;
} }
.show-enter-from, .show-enter-from,

View File

@ -10,7 +10,8 @@ const identifyInput = (input) => {
* @type {RegExp} * @type {RegExp}
*/ */
const urlRegex = const urlRegex =
/^(?:(?:(?:https?|ftp):\/\/)?(?:www\.)?)?([a-zA-Z0-9.-]+(?:\.[a-zA-Z]{2,})+)(?:\/[^\s]*)?(?:\?[^#\s]*)?(?:#[^\s]*)?$/; /^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/;
const ipv4Regex = const ipv4Regex =
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

View File

@ -13,7 +13,7 @@ axios.interceptors.request.use(
(error) => { (error) => {
console.error("请求失败,请稍后重试"); console.error("请求失败,请稍后重试");
return Promise.reject(error); return Promise.reject(error);
} },
); );
// 响应拦截 // 响应拦截
@ -29,7 +29,7 @@ axios.interceptors.response.use(
console.error("请求失败,请稍后重试:" + error); console.error("请求失败,请稍后重试:" + error);
} }
return Promise.reject(error); return Promise.reject(error);
} },
); );
export default axios; export default axios;

View File

@ -30,7 +30,7 @@ export const getCurrentTime = (ShowZero = true, Use12Hour = false) => {
const lunar = LunarCalendar.solarToLunar( const lunar = LunarCalendar.solarToLunar(
time.getFullYear(), time.getFullYear(),
time.getMonth() + 1, time.getMonth() + 1,
time.getDate() time.getDate(),
); );
// 返回时间 // 返回时间
const currentTime = { const currentTime = {

View File

@ -59,6 +59,7 @@ export default defineConfig({
resolve: { resolve: {
// 配置路径别名 // 配置路径别名
alias: { alias: {
// eslint-disable-next-line no-undef
"@": path.resolve(__dirname, "./src"), "@": path.resolve(__dirname, "./src"),
}, },
}, },