diff --git a/package.json b/package.json index 715a6fc2..3c720f8e 100644 --- a/package.json +++ b/package.json @@ -45,24 +45,21 @@ "@tauri-apps/plugin-shell": "2.2.2", "@tauri-apps/plugin-updater": "2.8.1", "@tauri-apps/plugin-window-state": "^2.2.3", - "@types/d3-shape": "^3.1.7", "@types/json-schema": "^7.0.15", + "json-schema": "^0.4.0", "ahooks": "^3.8.5", "axios": "^1.10.0", "chart.js": "^4.5.0", "cli-color": "^2.0.4", - "d3-shape": "^3.2.0", "dayjs": "1.11.13", "foxact": "^0.2.49", "glob": "^11.0.3", "i18next": "^25.2.1", - "js-base64": "^3.7.7", "js-yaml": "^4.1.0", "lodash-es": "^4.17.21", "monaco-editor": "^0.52.2", "monaco-yaml": "^5.4.0", "nanoid": "^5.1.5", - "peggy": "^5.0.4", "react": "19.1.0", "react-chartjs-2": "^5.3.0", "react-dom": "19.1.0", @@ -82,7 +79,6 @@ "devDependencies": { "@actions/github": "^6.0.1", "@tauri-apps/cli": "2.5.0", - "@types/js-cookie": "^3.0.6", "@types/js-yaml": "^4.0.9", "@types/lodash-es": "^4.17.12", "@types/react": "19.1.8", @@ -93,11 +89,9 @@ "commander": "^14.0.0", "cross-env": "^7.0.3", "https-proxy-agent": "^7.0.6", - "husky": "^9.1.7", "meta-json-schema": "^1.19.10", "node-fetch": "^3.3.2", "prettier": "^3.5.3", - "pretty-quick": "^4.2.2", "sass": "^1.89.2", "terser": "^5.43.1", "typescript": "^5.8.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 026505cb..568e04c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,9 +68,6 @@ importers: '@tauri-apps/plugin-window-state': specifier: ^2.2.3 version: 2.2.3 - '@types/d3-shape': - specifier: ^3.1.7 - version: 3.1.7 '@types/json-schema': specifier: ^7.0.15 version: 7.0.15 @@ -86,9 +83,6 @@ importers: cli-color: specifier: ^2.0.4 version: 2.0.4 - d3-shape: - specifier: ^3.2.0 - version: 3.2.0 dayjs: specifier: 1.11.13 version: 1.11.13 @@ -101,12 +95,12 @@ importers: i18next: specifier: ^25.2.1 version: 25.2.1(typescript@5.8.3) - js-base64: - specifier: ^3.7.7 - version: 3.7.7 js-yaml: specifier: ^4.1.0 version: 4.1.0 + json-schema: + specifier: ^0.4.0 + version: 0.4.0 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -119,9 +113,6 @@ importers: nanoid: specifier: ^5.1.5 version: 5.1.5 - peggy: - specifier: ^5.0.4 - version: 5.0.4 react: specifier: 19.1.0 version: 19.1.0 @@ -174,9 +165,6 @@ importers: '@tauri-apps/cli': specifier: 2.5.0 version: 2.5.0 - '@types/js-cookie': - specifier: ^3.0.6 - version: 3.0.6 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -207,9 +195,6 @@ importers: https-proxy-agent: specifier: ^7.0.6 version: 7.0.6 - husky: - specifier: ^9.1.7 - version: 9.1.7 meta-json-schema: specifier: ^1.19.10 version: 1.19.10 @@ -219,9 +204,6 @@ importers: prettier: specifier: ^3.5.3 version: 3.5.3 - pretty-quick: - specifier: ^4.2.2 - version: 4.2.2(prettier@3.5.3) sass: specifier: ^1.89.2 version: 1.89.2 @@ -1288,14 +1270,6 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} - '@peggyjs/from-mem@2.0.1': - resolution: {integrity: sha512-5dAPJsLrb3KQahPb8kUqg9nGS2dKlMC4vCB3dMWoZIRqmPrNbBt6P6jidczFBoz+2EbFXBxXi0o9BUpEPHoD+g==} - engines: {node: '>=20'} - - '@pkgr/core@0.2.7': - resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} @@ -1592,12 +1566,6 @@ packages: '@types/babel__traverse@7.20.7': resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} - - '@types/d3-shape@3.1.7': - resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -1610,9 +1578,6 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/js-cookie@3.0.6': - resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==} - '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -1875,14 +1840,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - - d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - d@1.0.2: resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} @@ -2132,11 +2089,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true - i18next@25.2.1: resolution: {integrity: sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==} peerDependencies: @@ -2145,10 +2097,6 @@ packages: typescript: optional: true - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - immutable@5.1.2: resolution: {integrity: sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==} @@ -2211,9 +2159,6 @@ packages: resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} - js-base64@3.7.7: - resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} - js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -2238,6 +2183,9 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -2435,10 +2383,6 @@ packages: peerDependencies: monaco-editor: '>=0.36' - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2512,11 +2456,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - peggy@5.0.4: - resolution: {integrity: sha512-NMRm2w2irCFbiOaejvcDEyn+DMUaGd8s4RT1ztj9Kr/kR367pziIvmjqJ0OFqcAg+LqT5tPGsW96MNT5gUNdUw==} - engines: {node: '>=20'} - hasBin: true - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2537,13 +2476,6 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-quick@4.2.2: - resolution: {integrity: sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - prettier: ^3.0.0 - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -2717,11 +2649,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} @@ -2746,10 +2673,6 @@ packages: sockette@2.0.6: resolution: {integrity: sha512-W6iG8RGV6Zife3Cj+FhuyHV447E6fqFM2hKmnaQrTvg3OydINV3Msj3WPFbX76blUlUxvQSMMMdrJxce8NqI5Q==} - source-map-generator@2.0.1: - resolution: {integrity: sha512-AtEu86XavXC2HD/bQVQoDbovnTRZE/0QMAAHn6RxALAoLOM3a47IG06TpsJK23BnCmjbTYNLwx2vUhgzRYgGMA==} - engines: {node: '>=20'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2824,9 +2747,6 @@ packages: resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} engines: {node: '>=0.12'} - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.13: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} @@ -4193,12 +4113,6 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true - '@peggyjs/from-mem@2.0.1': - dependencies: - semver: 7.7.2 - - '@pkgr/core@0.2.7': {} - '@popperjs/core@2.11.8': {} '@rolldown/pluginutils@1.0.0-beta.11': {} @@ -4447,12 +4361,6 @@ snapshots: dependencies: '@babel/types': 7.27.6 - '@types/d3-path@3.1.1': {} - - '@types/d3-shape@3.1.7': - dependencies: - '@types/d3-path': 3.1.1 - '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -4467,8 +4375,6 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/js-cookie@3.0.6': {} - '@types/js-yaml@4.0.9': {} '@types/json-schema@7.0.15': {} @@ -4728,12 +4634,6 @@ snapshots: csstype@3.1.3: {} - d3-path@3.1.0: {} - - d3-shape@3.2.0: - dependencies: - d3-path: 3.1.0 - d@1.0.2: dependencies: es5-ext: 0.10.64 @@ -5020,16 +4920,12 @@ snapshots: transitivePeerDependencies: - supports-color - husky@9.1.7: {} - i18next@25.2.1(typescript@5.8.3): dependencies: '@babel/runtime': 7.27.6 optionalDependencies: typescript: 5.8.3 - ignore@7.0.5: {} - immutable@5.1.2: {} import-fresh@3.3.1: @@ -5081,8 +4977,6 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 - js-base64@3.7.7: {} - js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -5097,6 +4991,8 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-schema@0.4.0: {} + json5@2.2.3: {} jsonc-parser@3.3.1: {} @@ -5429,8 +5325,6 @@ snapshots: vscode-uri: 3.1.0 yaml: 2.7.1 - mri@1.2.0: {} - ms@2.1.3: {} nanoid@3.3.11: {} @@ -5499,12 +5393,6 @@ snapshots: path-type@4.0.0: {} - peggy@5.0.4: - dependencies: - '@peggyjs/from-mem': 2.0.1 - commander: 14.0.0 - source-map-generator: 2.0.1 - picocolors@1.1.1: {} picomatch@2.3.1: @@ -5520,17 +5408,6 @@ snapshots: prettier@3.5.3: {} - pretty-quick@4.2.2(prettier@3.5.3): - dependencies: - '@pkgr/core': 0.2.7 - ignore: 7.0.5 - mri: 1.2.0 - picocolors: 1.1.1 - picomatch: 4.0.2 - prettier: 3.5.3 - tinyexec: 0.3.2 - tslib: 2.8.1 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -5726,8 +5603,6 @@ snapshots: semver@6.3.1: {} - semver@7.7.2: {} - server-only@0.0.1: {} set-cookie-parser@2.7.1: {} @@ -5747,8 +5622,6 @@ snapshots: sockette@2.0.6: {} - source-map-generator@2.0.1: {} - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -5830,8 +5703,6 @@ snapshots: es5-ext: 0.10.64 next-tick: 1.1.0 - tinyexec@0.3.2: {} - tinyglobby@0.2.13: dependencies: fdir: 6.4.4(picomatch@4.0.2) diff --git a/src/components/home/clash-mode-card.tsx b/src/components/home/clash-mode-card.tsx index ceda0aec..8e9572a2 100644 --- a/src/components/home/clash-mode-card.tsx +++ b/src/components/home/clash-mode-card.tsx @@ -1,5 +1,5 @@ import { useTranslation } from "react-i18next"; -import { Box, Typography, Paper, Stack, Fade } from "@mui/material"; +import { Box, Typography, Paper, Stack } from "@mui/material"; import { useLockFn } from "ahooks"; import { closeAllConnections } from "@/services/api"; import { patchClashMode } from "@/services/cmds"; diff --git a/src/components/home/enhanced-traffic-stats.tsx b/src/components/home/enhanced-traffic-stats.tsx index 29999f31..763c3fd4 100644 --- a/src/components/home/enhanced-traffic-stats.tsx +++ b/src/components/home/enhanced-traffic-stats.tsx @@ -26,7 +26,7 @@ import { useClashInfo } from "@/hooks/use-clash"; import { useVerge } from "@/hooks/use-verge"; import { createAuthSockette } from "@/utils/websocket"; import parseTraffic from "@/utils/parse-traffic"; -import { getConnections, isDebugEnabled, gc } from "@/services/api"; +import { isDebugEnabled, gc } from "@/services/api"; import { ReactNode } from "react"; import { useAppData } from "@/providers/app-data-provider"; diff --git a/src/components/home/ip-info-card.tsx b/src/components/home/ip-info-card.tsx index f831ffe8..4c523137 100644 --- a/src/components/home/ip-info-card.tsx +++ b/src/components/home/ip-info-card.tsx @@ -1,12 +1,5 @@ import { useTranslation } from "react-i18next"; -import { - Box, - Typography, - Button, - Skeleton, - IconButton, - useTheme, -} from "@mui/material"; +import { Box, Typography, Button, Skeleton, IconButton } from "@mui/material"; import { LocationOnOutlined, RefreshOutlined, diff --git a/src/components/layout/layout-traffic.tsx b/src/components/layout/layout-traffic.tsx index 8d896422..54308d86 100644 --- a/src/components/layout/layout-traffic.tsx +++ b/src/components/layout/layout-traffic.tsx @@ -11,7 +11,7 @@ import { TrafficGraph, type TrafficRef } from "./traffic-graph"; import { useVisibility } from "@/hooks/use-visibility"; import parseTraffic from "@/utils/parse-traffic"; import useSWRSubscription from "swr/subscription"; -import { createSockette, createAuthSockette } from "@/utils/websocket"; +import { createAuthSockette } from "@/utils/websocket"; import { useTranslation } from "react-i18next"; import { isDebugEnabled, gc } from "@/services/api"; diff --git a/src/components/profile/proxies-editor-viewer.tsx b/src/components/profile/proxies-editor-viewer.tsx index 34835fb7..624d83f9 100644 --- a/src/components/profile/proxies-editor-viewer.tsx +++ b/src/components/profile/proxies-editor-viewer.tsx @@ -1,4 +1,4 @@ -import { ReactNode, useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useLockFn } from "ahooks"; import yaml from "js-yaml"; import { useTranslation } from "react-i18next"; diff --git a/src/components/profile/rules-editor-viewer.tsx b/src/components/profile/rules-editor-viewer.tsx index 854062d3..85000813 100644 --- a/src/components/profile/rules-editor-viewer.tsx +++ b/src/components/profile/rules-editor-viewer.tsx @@ -1,4 +1,4 @@ -import { ReactNode, useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useLockFn } from "ahooks"; import yaml from "js-yaml"; import { useTranslation } from "react-i18next"; diff --git a/src/components/proxy/use-render-list.ts b/src/components/proxy/use-render-list.ts index 4bb9aadd..90bcc457 100644 --- a/src/components/proxy/use-render-list.ts +++ b/src/components/proxy/use-render-list.ts @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useCallback } from "react"; +import { useEffect, useMemo } from "react"; import { useVerge } from "@/hooks/use-verge"; import { filterSort } from "./use-filter-sort"; import { useWindowWidth } from "./use-window-width"; diff --git a/src/components/setting/mods/controller-viewer.tsx b/src/components/setting/mods/controller-viewer.tsx index 5734d2b7..7c0b6481 100644 --- a/src/components/setting/mods/controller-viewer.tsx +++ b/src/components/setting/mods/controller-viewer.tsx @@ -15,7 +15,7 @@ import { Tooltip, } from "@mui/material"; import { useLockFn } from "ahooks"; -import { forwardRef, useEffect, useImperativeHandle, useState } from "react"; +import { forwardRef, useImperativeHandle, useState } from "react"; import { useTranslation } from "react-i18next"; export const ControllerViewer = forwardRef((props, ref) => { diff --git a/src/components/setting/setting-system.tsx b/src/components/setting/setting-system.tsx index f892bc8e..87079784 100644 --- a/src/components/setting/setting-system.tsx +++ b/src/components/setting/setting-system.tsx @@ -1,5 +1,5 @@ import useSWR, { mutate } from "swr"; -import { useRef, useEffect, useState } from "react"; +import { useRef } from "react"; import { useTranslation } from "react-i18next"; import { SettingsRounded, @@ -19,7 +19,6 @@ import { TooltipIcon } from "@/components/base/base-tooltip-icon"; import { getSystemProxy, getAutotemProxy, - installService, uninstallService, restartCore, stopCore, diff --git a/src/components/shared/ProxyControlSwitches.tsx b/src/components/shared/ProxyControlSwitches.tsx index 18a2b137..dcf4a651 100644 --- a/src/components/shared/ProxyControlSwitches.tsx +++ b/src/components/shared/ProxyControlSwitches.tsx @@ -24,11 +24,7 @@ import { getSystemProxy, getAutotemProxy, getRunningMode, - installService, - restartCore, - isServiceAvailable, } from "@/services/cmds"; -import { useLockFn } from "ahooks"; import { closeAllConnections } from "@/services/api"; import { showNotice } from "@/services/noticeService"; import { useServiceInstaller } from "@/hooks/useServiceInstaller"; diff --git a/src/hooks/use-log-data.ts b/src/hooks/use-log-data.ts index 8ceebb3c..cecf7168 100644 --- a/src/hooks/use-log-data.ts +++ b/src/hooks/use-log-data.ts @@ -1,10 +1,4 @@ -import { useEffect } from "react"; -import { useEnableLog } from "../services/states"; -import { createSockette, createAuthSockette } from "../utils/websocket"; -import { useClashInfo } from "./use-clash"; -import dayjs from "dayjs"; import { create } from "zustand"; -import { useVisibility } from "./use-visibility"; import { useGlobalLogData, clearGlobalLogs, diff --git a/src/pages/_layout.tsx b/src/pages/_layout.tsx index 2d763f5a..50657fc2 100644 --- a/src/pages/_layout.tsx +++ b/src/pages/_layout.tsx @@ -21,7 +21,6 @@ import { useCustomTheme } from "@/components/layout/use-custom-theme"; import getSystem from "@/utils/get-system"; import "dayjs/locale/ru"; import "dayjs/locale/zh-cn"; -import { getPortableFlag } from "@/services/cmds"; import React from "react"; import { useListen } from "@/hooks/use-listen"; import { listen } from "@tauri-apps/api/event"; diff --git a/src/pages/connections.tsx b/src/pages/connections.tsx index b0da5d12..4c8b6d4c 100644 --- a/src/pages/connections.tsx +++ b/src/pages/connections.tsx @@ -19,10 +19,7 @@ import { ConnectionDetailRef, } from "@/components/connection/connection-detail"; import parseTraffic from "@/utils/parse-traffic"; -import { - BaseSearchBox, - type SearchState, -} from "@/components/base/base-search-box"; +import { BaseSearchBox } from "@/components/base/base-search-box"; import { BaseStyledSelect } from "@/components/base/base-styled-select"; import { useTheme } from "@mui/material/styles"; import { useVisibility } from "@/hooks/use-visibility"; diff --git a/src/pages/home.tsx b/src/pages/home.tsx index 7e910f12..1d9fbaa8 100644 --- a/src/pages/home.tsx +++ b/src/pages/home.tsx @@ -37,11 +37,7 @@ import { BasePage } from "@/components/base"; import { ClashInfoCard } from "@/components/home/clash-info-card"; import { SystemInfoCard } from "@/components/home/system-info-card"; import { useLockFn } from "ahooks"; -import { - entry_lightweight_mode, - openWebUrl, - patchVergeConfig, -} from "@/services/cmds"; +import { entry_lightweight_mode, openWebUrl } from "@/services/cmds"; import { TestCard } from "@/components/home/test-card"; import { IpInfoCard } from "@/components/home/ip-info-card"; diff --git a/src/pages/profiles.tsx b/src/pages/profiles.tsx index 7d75e401..b9d74ac1 100644 --- a/src/pages/profiles.tsx +++ b/src/pages/profiles.tsx @@ -45,7 +45,7 @@ import { ProfileMore } from "@/components/profile/profile-more"; import { ProfileItem } from "@/components/profile/profile-item"; import { useProfiles } from "@/hooks/use-profiles"; import { ConfigViewer } from "@/components/setting/mods/config-viewer"; -import { add, throttle } from "lodash-es"; +import { throttle } from "lodash-es"; import { BaseStyledTextField } from "@/components/base/base-styled-text-field"; import { readTextFile } from "@tauri-apps/plugin-fs"; import { readText } from "@tauri-apps/plugin-clipboard-manager"; diff --git a/src/providers/app-data-provider.tsx b/src/providers/app-data-provider.tsx index 0fee8a81..337c74de 100644 --- a/src/providers/app-data-provider.tsx +++ b/src/providers/app-data-provider.tsx @@ -1,12 +1,6 @@ -import React, { - createContext, - useContext, - useEffect, - useMemo, - useState, -} from "react"; +import React, { createContext, useContext, useEffect, useMemo } from "react"; import { useVerge } from "@/hooks/use-verge"; -import useSWR, { mutate } from "swr"; +import useSWR from "swr"; import useSWRSubscription from "swr/subscription"; import { getProxies, diff --git a/src/services/api.ts b/src/services/api.ts index cebaec84..f108ebb3 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -1,7 +1,6 @@ import axios, { AxiosInstance } from "axios"; import { getClashInfo } from "./cmds"; import { invoke } from "@tauri-apps/api/core"; -import { useLockFn } from "ahooks"; let instancePromise: Promise = null!; diff --git a/src/services/global-log-service.ts b/src/services/global-log-service.ts index b8d8731c..8e948325 100644 --- a/src/services/global-log-service.ts +++ b/src/services/global-log-service.ts @@ -1,8 +1,7 @@ // 全局日志服务,使应用在任何页面都能收集日志 import { create } from "zustand"; -import { createSockette, createAuthSockette } from "@/utils/websocket"; +import { createAuthSockette } from "@/utils/websocket"; import dayjs from "dayjs"; -import { useState, useEffect } from "react"; // 最大日志数量 const MAX_LOG_NUM = 1000; diff --git a/src/utils/uri-parser.ts b/src/utils/uri-parser.ts index eb8b6304..7aba40a5 100644 --- a/src/utils/uri-parser.ts +++ b/src/utils/uri-parser.ts @@ -730,7 +730,7 @@ function URI_Trojan(line: string): IProxyTrojanConfig { function URI_Hysteria2(line: string): IProxyHysteria2Config { line = line.split(/(hysteria2|hy2):\/\//)[2]; - // eslint-disable-next-line no-unused-vars + let [__, password, server, ___, port, ____, addons = "", name] = /^(.*?)@(.*?)(:(\d+))?\/?(\?(.*?))?(?:#(.*?))?$/.exec(line) || []; let portNum = parseInt(`${port}`, 10);