diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 4af2fc8..7b37b7b 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -16,12 +16,12 @@ "lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix" }, "dependencies": { - "@element-plus/icons-vue": "^1.0.0", + "@element-plus/icons-vue": "^2.3.2", "@vueuse/core": "^9.1.1", "axios": "^1.20.0", "copy-to-clipboard": "^3.3.3", "echarts": "^5.5.1", - "element-plus": "^2.3.1", + "element-plus": "^2.14.5", "nprogress": "^0.2.0", "path-browserify": "^1.0.1", "pinia": "^2.0.33", @@ -48,7 +48,7 @@ "postcss-html": "^1.5.0", "postcss-scss": "^4.0.6", "prettier": "^2.8.7", - "sass": "^1.58.3", + "sass": "^1.103.1", "stylelint": "^15.5.0", "stylelint-config-html": "^1.1.0", "stylelint-config-recess-order": "^4.0.0", diff --git a/apps/frontend/pnpm-lock.yaml b/apps/frontend/pnpm-lock.yaml index e76e5c7..57b50cc 100644 --- a/apps/frontend/pnpm-lock.yaml +++ b/apps/frontend/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: .: dependencies: '@element-plus/icons-vue': - specifier: ^1.0.0 - version: 1.0.0(vue@3.5.42(typescript@5.9.3)) + specifier: ^2.3.2 + version: 2.3.2(vue@3.5.42(typescript@5.9.3)) '@vueuse/core': specifier: ^9.1.1 version: 9.1.1(vue@3.5.42(typescript@5.9.3)) @@ -28,8 +28,8 @@ importers: specifier: ^5.5.1 version: 5.6.0 element-plus: - specifier: ^2.3.1 - version: 2.3.1(vue@3.5.42(typescript@5.9.3)) + specifier: ^2.14.5 + version: 2.14.5(vue@3.5.42(typescript@5.9.3)) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -75,7 +75,7 @@ importers: version: 5.51.0(eslint@8.34.0)(typescript@5.9.3) '@vitejs/plugin-vue': specifier: ^4.0.0 - version: 4.0.0(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3))(vue@3.5.42(typescript@5.9.3)) + version: 4.0.0(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1))(vue@3.5.42(typescript@5.9.3)) autoprefixer: specifier: ^10.4.13 version: 10.4.13(postcss@8.5.26) @@ -104,8 +104,8 @@ importers: specifier: ^2.8.7 version: 2.8.7 sass: - specifier: ^1.58.3 - version: 1.58.3 + specifier: ^1.103.1 + version: 1.103.1 stylelint: specifier: ^15.5.0 version: 15.5.0(typescript@5.9.3) @@ -132,7 +132,7 @@ importers: version: 5.9.3 unocss: specifier: ^0.50.1 - version: 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)) + version: 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)) unplugin-auto-import: specifier: ^0.13.0 version: 0.13.0(@vueuse/core@9.1.1(vue@3.5.42(typescript@5.9.3)))(rollup@3.29.3) @@ -144,10 +144,10 @@ importers: version: 0.23.0(@babel/parser@7.29.8)(rollup@3.29.3)(vue@3.5.42(typescript@5.9.3)) vite: specifier: ^4.3.1 - version: 4.3.1(@types/node@20.7.0)(sass@1.58.3) + version: 4.3.1(@types/node@20.7.0)(sass@1.103.1) vite-plugin-svg-icons: specifier: ^2.0.1 - version: 2.0.1(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)) + version: 2.0.1(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)) vue-tsc: specifier: ^3.3.11 version: 3.3.11(typescript@5.9.3) @@ -299,17 +299,12 @@ packages: peerDependencies: postcss-selector-parser: ^6.0.10 - '@ctrl/tinycolor@3.6.1': - resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} - engines: {node: '>=10'} + '@ctrl/tinycolor@4.2.0': + resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==} + engines: {node: '>=14'} - '@element-plus/icons-vue@1.0.0': - resolution: {integrity: sha512-v8W6uiOfwq9GRWBLc0fvp0WwExU09BLdYfldRBxWUCJHeJ9WHeFrtt6BdixGVl9SCZ2V5soB8gi4tr365a9p/Q==} - peerDependencies: - vue: ^3.2.0 - - '@element-plus/icons-vue@2.1.0': - resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==} + '@element-plus/icons-vue@2.3.2': + resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==} peerDependencies: vue: ^3.2.0 @@ -449,14 +444,14 @@ packages: resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@floating-ui/core@1.5.0': - resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} + '@floating-ui/core@1.8.0': + resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==} - '@floating-ui/dom@1.5.3': - resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==} + '@floating-ui/dom@1.8.0': + resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==} - '@floating-ui/utils@0.1.4': - resolution: {integrity: sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==} + '@floating-ui/utils@0.2.12': + resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} '@humanwhocodes/config-array@0.11.11': resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} @@ -544,6 +539,82 @@ packages: '@nuxt/ui-templates@1.3.1': resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} + '@parcel/watcher-android-arm64@2.6.0': + resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.6.0': + resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.6.0': + resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.6.0': + resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.6.0': + resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.6.0': + resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.6.0': + resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.6.0': + resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.6.0': + resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.6.0': + resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.6.0': + resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-x64@2.6.0': + resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.6.0': + resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==} + engines: {node: '>= 10.0.0'} + '@polka/url@1.0.0-next.23': resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} @@ -569,11 +640,11 @@ packages: '@types/json-schema@7.0.13': resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} - '@types/lodash-es@4.17.9': - resolution: {integrity: sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==} + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - '@types/lodash@4.14.199': - resolution: {integrity: sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==} + '@types/lodash@4.17.25': + resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==} '@types/minimist@1.2.2': resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} @@ -599,6 +670,9 @@ packages: '@types/web-bluetooth@0.0.15': resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@typescript-eslint/eslint-plugin@5.51.0': resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -771,12 +845,25 @@ packages: '@vue/shared@3.5.42': resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==} + '@vueuse/core@14.4.0': + resolution: {integrity: sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==} + peerDependencies: + vue: ^3.5.0 + '@vueuse/core@9.1.1': resolution: {integrity: sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==} + '@vueuse/metadata@14.4.0': + resolution: {integrity: sha512-swx/255R6JyHZFJhx845iz5CRWDZdCfvkZOpACWc5+c5WHcG24mv8gUT1WIdFQaHt6dq79rvILd9QnCWiyVm9g==} + '@vueuse/metadata@9.1.1': resolution: {integrity: sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog==} + '@vueuse/shared@14.4.0': + resolution: {integrity: sha512-JRgY90Sz8DDtPMsaDflvPMp9xYk69JZAmbuDvAquUVXKr2gEjqtzGNTTthLfckH0BzBqvnu31gb4a8TGLRe79g==} + peerDependencies: + vue: ^3.5.0 + '@vueuse/shared@9.1.1': resolution: {integrity: sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==} @@ -971,6 +1058,10 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -1088,8 +1179,8 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dayjs@1.11.23: + resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -1145,6 +1236,10 @@ packages: destr@2.0.1: resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1205,10 +1300,10 @@ packages: electron-to-chromium@1.4.529: resolution: {integrity: sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==} - element-plus@2.3.1: - resolution: {integrity: sha512-IBS7ic1mRyDXpOreRkredV4ByZSuax5HPb0zNOHm4qwKC4wm927yQv+Is0JbzxPzCW5zWaV4PLy9/Gl3E3v59w==} + element-plus@2.14.5: + resolution: {integrity: sha512-bghYy/S+qg87enHPXELirhEdDqsVAUGcGpbGIeG8dz0kwpIkGz7gYsifulBshXX74iRtHib85XWQj0uSH2A1Yg==} peerDependencies: - vue: ^3.2.0 + vue: ^3.3.7 emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1267,9 +1362,6 @@ packages: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1660,8 +1752,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + immutable@5.1.9: + resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -2084,6 +2176,9 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-fetch-native@1.4.0: resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} @@ -2382,6 +2477,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@5.1.1: + resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} + engines: {node: '>= 20.19.0'} + redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -2452,9 +2551,9 @@ packages: safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - sass@1.58.3: - resolution: {integrity: sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==} - engines: {node: '>=12.0.0'} + sass@1.103.1: + resolution: {integrity: sha512-9icZURbP51S6S0QGoyaeqk9uB06GNWxsFYWfH5RgpFgqK5FA8tJcM3AdVxrZEVJ7dz+L87nG95gBKf4VuaMHGw==} + engines: {node: '>=20.19.0'} hasBin: true scule@1.0.0: @@ -2960,6 +3059,9 @@ packages: vscode-uri@3.2.0: resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==} + vue-component-type-helpers@3.3.11: + resolution: {integrity: sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==} + vue-demi@0.13.11: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} @@ -3244,13 +3346,9 @@ snapshots: dependencies: postcss-selector-parser: 6.0.13 - '@ctrl/tinycolor@3.6.1': {} + '@ctrl/tinycolor@4.2.0': {} - '@element-plus/icons-vue@1.0.0(vue@3.5.42(typescript@5.9.3))': - dependencies: - vue: 3.5.42(typescript@5.9.3) - - '@element-plus/icons-vue@2.1.0(vue@3.5.42(typescript@5.9.3))': + '@element-plus/icons-vue@2.3.2(vue@3.5.42(typescript@5.9.3))': dependencies: vue: 3.5.42(typescript@5.9.3) @@ -3334,16 +3432,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@floating-ui/core@1.5.0': + '@floating-ui/core@1.8.0': dependencies: - '@floating-ui/utils': 0.1.4 + '@floating-ui/utils': 0.2.12 - '@floating-ui/dom@1.5.3': + '@floating-ui/dom@1.8.0': dependencies: - '@floating-ui/core': 1.5.0 - '@floating-ui/utils': 0.1.4 + '@floating-ui/core': 1.8.0 + '@floating-ui/utils': 0.2.12 - '@floating-ui/utils@0.1.4': {} + '@floating-ui/utils@0.2.12': {} '@humanwhocodes/config-array@0.11.11': dependencies: @@ -3471,6 +3569,63 @@ snapshots: '@nuxt/ui-templates@1.3.1': {} + '@parcel/watcher-android-arm64@2.6.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.6.0': + optional: true + + '@parcel/watcher-darwin-x64@2.6.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.6.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.6.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.6.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.6.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.6.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.6.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.6.0': + optional: true + + '@parcel/watcher-win32-arm64@2.6.0': + optional: true + + '@parcel/watcher-win32-x64@2.6.0': + optional: true + + '@parcel/watcher@2.6.0': + dependencies: + detect-libc: 2.1.2 + is-glob: 4.0.3 + node-addon-api: 7.1.1 + picomatch: 4.0.7 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.6.0 + '@parcel/watcher-darwin-arm64': 2.6.0 + '@parcel/watcher-darwin-x64': 2.6.0 + '@parcel/watcher-freebsd-x64': 2.6.0 + '@parcel/watcher-linux-arm-glibc': 2.6.0 + '@parcel/watcher-linux-arm-musl': 2.6.0 + '@parcel/watcher-linux-arm64-glibc': 2.6.0 + '@parcel/watcher-linux-arm64-musl': 2.6.0 + '@parcel/watcher-linux-x64-glibc': 2.6.0 + '@parcel/watcher-linux-x64-musl': 2.6.0 + '@parcel/watcher-win32-arm64': 2.6.0 + '@parcel/watcher-win32-x64': 2.6.0 + optional: true + '@polka/url@1.0.0-next.23': {} '@rollup/pluginutils@5.0.4(rollup@3.29.3)': @@ -3489,11 +3644,11 @@ snapshots: '@types/json-schema@7.0.13': {} - '@types/lodash-es@4.17.9': + '@types/lodash-es@4.17.12': dependencies: - '@types/lodash': 4.14.199 + '@types/lodash': 4.17.25 - '@types/lodash@4.14.199': {} + '@types/lodash@4.17.25': {} '@types/minimist@1.2.2': {} @@ -3513,6 +3668,8 @@ snapshots: '@types/web-bluetooth@0.0.15': {} + '@types/web-bluetooth@0.0.21': {} + '@typescript-eslint/eslint-plugin@5.51.0(@typescript-eslint/parser@5.51.0(eslint@8.34.0)(typescript@5.9.3))(eslint@8.34.0)(typescript@5.9.3)': dependencies: '@typescript-eslint/parser': 5.51.0(eslint@8.34.0)(typescript@5.9.3) @@ -3597,11 +3754,11 @@ snapshots: '@typescript-eslint/types': 5.51.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3))': + '@unocss/astro@0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1))': dependencies: '@unocss/core': 0.50.1 '@unocss/reset': 0.50.1 - '@unocss/vite': 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)) + '@unocss/vite': 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)) transitivePeerDependencies: - rollup - vite @@ -3697,7 +3854,7 @@ snapshots: dependencies: '@unocss/core': 0.50.1 - '@unocss/vite@0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3))': + '@unocss/vite@0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1))': dependencies: '@ampproject/remapping': 2.2.1 '@rollup/pluginutils': 5.0.4(rollup@3.29.3) @@ -3709,13 +3866,13 @@ snapshots: chokidar: 3.5.3 fast-glob: 3.3.1 magic-string: 0.30.3 - vite: 4.3.1(@types/node@20.7.0)(sass@1.58.3) + vite: 4.3.1(@types/node@20.7.0)(sass@1.103.1) transitivePeerDependencies: - rollup - '@vitejs/plugin-vue@4.0.0(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3))(vue@3.5.42(typescript@5.9.3))': + '@vitejs/plugin-vue@4.0.0(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1))(vue@3.5.42(typescript@5.9.3))': dependencies: - vite: 4.3.1(@types/node@20.7.0)(sass@1.58.3) + vite: 4.3.1(@types/node@20.7.0)(sass@1.103.1) vue: 3.5.42(typescript@5.9.3) '@volar/language-core@2.4.28': @@ -3796,6 +3953,13 @@ snapshots: '@vue/shared@3.5.42': {} + '@vueuse/core@14.4.0(vue@3.5.42(typescript@5.9.3))': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 14.4.0 + '@vueuse/shared': 14.4.0(vue@3.5.42(typescript@5.9.3)) + vue: 3.5.42(typescript@5.9.3) + '@vueuse/core@9.1.1(vue@3.5.42(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.15 @@ -3806,8 +3970,14 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/metadata@14.4.0': {} + '@vueuse/metadata@9.1.1': {} + '@vueuse/shared@14.4.0(vue@3.5.42(typescript@5.9.3))': + dependencies: + vue: 3.5.42(typescript@5.9.3) + '@vueuse/shared@9.1.1(vue@3.5.42(typescript@5.9.3))': dependencies: vue-demi: 0.14.6(vue@3.5.42(typescript@5.9.3)) @@ -4041,6 +4211,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@5.0.0: + dependencies: + readdirp: 5.1.1 + chownr@2.0.0: {} class-utils@0.3.6: @@ -4147,7 +4321,7 @@ snapshots: csstype@3.2.3: {} - dayjs@1.11.10: {} + dayjs@1.11.23: {} debug@2.6.9: dependencies: @@ -4187,6 +4361,9 @@ snapshots: destr@2.0.1: {} + detect-libc@2.1.2: + optional: true + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -4262,26 +4439,24 @@ snapshots: electron-to-chromium@1.4.529: {} - element-plus@2.3.1(vue@3.5.42(typescript@5.9.3)): + element-plus@2.14.5(vue@3.5.42(typescript@5.9.3)): dependencies: - '@ctrl/tinycolor': 3.6.1 - '@element-plus/icons-vue': 2.1.0(vue@3.5.42(typescript@5.9.3)) - '@floating-ui/dom': 1.5.3 + '@ctrl/tinycolor': 4.2.0 + '@element-plus/icons-vue': 2.3.2(vue@3.5.42(typescript@5.9.3)) + '@floating-ui/dom': 1.8.0 '@popperjs/core': '@sxzz/popperjs-es@2.11.8' - '@types/lodash': 4.14.199 - '@types/lodash-es': 4.17.9 - '@vueuse/core': 9.1.1(vue@3.5.42(typescript@5.9.3)) + '@types/lodash': 4.17.25 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 14.4.0(vue@3.5.42(typescript@5.9.3)) async-validator: 4.2.5 - dayjs: 1.11.10 - escape-html: 1.0.3 + dayjs: 1.11.23 lodash: 4.18.1 lodash-es: 4.18.1 - lodash-unified: 1.0.3(@types/lodash-es@4.17.9)(lodash-es@4.18.1)(lodash@4.18.1) + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.18.1)(lodash@4.18.1) memoize-one: 6.0.0 normalize-wheel-es: 1.2.0 vue: 3.5.42(typescript@5.9.3) - transitivePeerDependencies: - - '@vue/composition-api' + vue-component-type-helpers: 3.3.11 emoji-regex@8.0.0: {} @@ -4351,8 +4526,6 @@ snapshots: escalade@3.1.1: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -4801,7 +4974,7 @@ snapshots: image-size@0.5.5: {} - immutable@4.3.4: {} + immutable@5.1.9: {} import-fresh@3.3.0: dependencies: @@ -4994,9 +5167,9 @@ snapshots: lodash-es@4.18.1: {} - lodash-unified@1.0.3(@types/lodash-es@4.17.9)(lodash-es@4.18.1)(lodash@4.18.1): + lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.18.1)(lodash@4.18.1): dependencies: - '@types/lodash-es': 4.17.9 + '@types/lodash-es': 4.17.12 lodash: 4.18.1 lodash-es: 4.18.1 @@ -5180,6 +5353,9 @@ snapshots: natural-compare@1.4.0: {} + node-addon-api@7.1.1: + optional: true + node-fetch-native@1.4.0: {} node-releases@2.0.13: {} @@ -5472,6 +5648,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@5.1.1: {} + redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -5526,11 +5704,13 @@ snapshots: dependencies: ret: 0.1.15 - sass@1.58.3: + sass@1.103.1: dependencies: - chokidar: 3.5.3 - immutable: 4.3.4 - source-map-js: 1.0.2 + chokidar: 5.0.0 + immutable: 5.1.9 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.6.0 scule@1.0.0: {} @@ -5988,9 +6168,9 @@ snapshots: universalify@2.0.0: {} - unocss@0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)): + unocss@0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)): dependencies: - '@unocss/astro': 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)) + '@unocss/astro': 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)) '@unocss/cli': 0.50.1(rollup@3.29.3) '@unocss/core': 0.50.1 '@unocss/preset-attributify': 0.50.1 @@ -6006,7 +6186,7 @@ snapshots: '@unocss/transformer-compile-class': 0.50.1 '@unocss/transformer-directives': 0.50.1 '@unocss/transformer-variant-group': 0.50.1 - '@unocss/vite': 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)) + '@unocss/vite': 0.50.1(rollup@3.29.3)(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)) transitivePeerDependencies: - rollup - supports-color @@ -6108,7 +6288,7 @@ snapshots: vary@1.1.2: {} - vite-plugin-svg-icons@2.0.1(vite@4.3.1(@types/node@20.7.0)(sass@1.58.3)): + vite-plugin-svg-icons@2.0.1(vite@4.3.1(@types/node@20.7.0)(sass@1.103.1)): dependencies: '@types/svgo': 2.6.4 cors: 2.8.5 @@ -6118,11 +6298,11 @@ snapshots: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 4.3.1(@types/node@20.7.0)(sass@1.58.3) + vite: 4.3.1(@types/node@20.7.0)(sass@1.103.1) transitivePeerDependencies: - supports-color - vite@4.3.1(@types/node@20.7.0)(sass@1.58.3): + vite@4.3.1(@types/node@20.7.0)(sass@1.103.1): dependencies: esbuild: 0.17.19 postcss: 8.5.26 @@ -6130,10 +6310,12 @@ snapshots: optionalDependencies: '@types/node': 20.7.0 fsevents: 2.3.3 - sass: 1.58.3 + sass: 1.103.1 vscode-uri@3.2.0: {} + vue-component-type-helpers@3.3.11: {} + vue-demi@0.13.11(vue@3.5.42(typescript@5.9.3)): dependencies: vue: 3.5.42(typescript@5.9.3) diff --git a/apps/frontend/src/api/config/hysteriaViewModel.ts b/apps/frontend/src/api/config/hysteriaViewModel.ts index 7db51a5..17d8dce 100644 --- a/apps/frontend/src/api/config/hysteriaViewModel.ts +++ b/apps/frontend/src/api/config/hysteriaViewModel.ts @@ -50,8 +50,8 @@ import type { type DeepRequired = T extends (infer U)[] ? DeepRequired[] : T extends object - ? { [K in keyof T]-?: DeepRequired> } - : T; + ? { [K in keyof T]-?: DeepRequired> } + : T; /** Конфиг Hysteria в том виде, в котором его показывает панель. */ export type Hysteria2ServerConfigView = DeepRequired; @@ -218,9 +218,7 @@ export const defaultHysteria2ServerConfigView: Hysteria2ServerConfigView = { }; function isPlainObject(value: unknown): value is Record { - return ( - typeof value === "object" && value !== null && !Array.isArray(value) - ); + return typeof value === "object" && value !== null && !Array.isArray(value); } /** diff --git a/apps/frontend/src/api/config/index.ts b/apps/frontend/src/api/config/index.ts index d2f6646..7fff998 100644 --- a/apps/frontend/src/api/config/index.ts +++ b/apps/frontend/src/api/config/index.ts @@ -48,4 +48,3 @@ export function exportHysteria2ConfigApi(): AxiosPromise { responseType: "blob", }); } - diff --git a/apps/frontend/src/api/peer/types.ts b/apps/frontend/src/api/peer/types.ts index 0d40379..dde6717 100644 --- a/apps/frontend/src/api/peer/types.ts +++ b/apps/frontend/src/api/peer/types.ts @@ -24,7 +24,28 @@ export interface PeerSaveDto { remark: string; } -export interface PeerVo extends IdDto { +/** + * Строка списка пиров. + * + * Объявлена через `type`, а не `interface`, и это не стилистика. + * + * `el-table-column` типизирует scope своего default-слота как + * `{ row: DefaultRow, ... }`, где `DefaultRow = Record`: + * колонка — отдельный компонент, и тип строки из `:data` родительской таблицы + * в неё не попадает. Значит, где-то на пути от слота к обработчику нужен ровно + * один переход `DefaultRow -> PeerVo` (см. `peerRow` в списке пиров). + * + * TypeScript даёт неявную индексную сигнатуру псевдонимам типов, но НЕ + * интерфейсам и не пересечениям с ними. Пока `PeerVo` был `interface`, он не + * был совместим с `DefaultRow` ни в одну сторону, и этот переход требовал + * двойного приведения через `unknown` — то есть утверждения, которое компилятор + * вообще не проверяет. С псевдонимом типа переход остаётся одним обычным + * приведением между связанными типами. + */ +export type PeerVo = { + // `id` объявлен здесь, а не унаследован от `IdDto`: пересечение с интерфейсом + // неявную индексную сигнатуру не получает. + id: number; name: string; remark: string; authId: string; @@ -39,7 +60,7 @@ export interface PeerVo extends IdDto { createTime: string; online: boolean; onlineDevices: number; -} +}; export interface PeerClientConfigVo { url: string; diff --git a/apps/frontend/src/styles/nprogress.scss b/apps/frontend/src/styles/nprogress.scss index 937717f..6941b04 100644 --- a/apps/frontend/src/styles/nprogress.scss +++ b/apps/frontend/src/styles/nprogress.scss @@ -13,8 +13,7 @@ } .peg { - box-shadow: - 0 0 10px var(--el-color-primary), + box-shadow: 0 0 10px var(--el-color-primary), 0 0 5px var(--el-color-primary); } diff --git a/apps/frontend/src/views/peer/list/index.vue b/apps/frontend/src/views/peer/list/index.vue index 8385152..842ea63 100644 --- a/apps/frontend/src/views/peer/list/index.vue +++ b/apps/frontend/src/views/peer/list/index.vue @@ -35,7 +35,12 @@ $t("peer.exportSettings") }} - + {{ $t("peer.exportBackup") }} @@ -74,11 +79,11 @@ / {{ quotaText(scope.row.quotaBytes) }}