build(frontend): Element Plus 2.3.1 -> 2.14.5, sass 1.58 -> 1.103, icons 1.x -> 2.3.2
Element Plus с 2.8.5 требует sass >= 1.79, поэтому обновление идёт классом:
element-plus + sass + @element-plus/icons-vue, отдельным коммитом от Vue и
typechecker — UI-регрессию так проще локализовать.
Обновление внесло единственный новый класс ошибок типов — тот самый
DefaultRow/PeerVo, который аудит ожидал увидеть сразу: до 2.14 слоты таблицы
типизировались слабее и ошибки не давали. 10 ошибок в семи колонках списка
пиров.
el-table обобщён по типу строки, но el-table-column — отдельный компонент, и
тип из :data родительской таблицы в его слот не попадает: scope всегда
{ row: DefaultRow }. Аннотировать слот нельзя — DefaultRow не сужается до PeerVo
контравариантно. Поэтому переход нужен, и вопрос только в том, где он стоит:
здесь он ровно один (peerRow), назван и объяснён, вместо семи `as any` в
шаблоне, каждый из которых глушил бы и остальное выражение.
PeerVo переведён с interface на псевдоним типа: неявную индексную сигнатуру
TypeScript даёт литеральным типам, но не интерфейсам, поэтому раньше PeerVo и
DefaultRow не были совместимы ни в одну сторону и переход требовал `as unknown
as` — утверждения, которое компилятор не проверяет вообще.
typecheck: 0, eslint: 0, build: OK.
This commit is contained in:
@@ -16,12 +16,12 @@
|
|||||||
"lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix"
|
"lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@element-plus/icons-vue": "^1.0.0",
|
"@element-plus/icons-vue": "^2.3.2",
|
||||||
"@vueuse/core": "^9.1.1",
|
"@vueuse/core": "^9.1.1",
|
||||||
"axios": "^1.20.0",
|
"axios": "^1.20.0",
|
||||||
"copy-to-clipboard": "^3.3.3",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
"echarts": "^5.5.1",
|
"echarts": "^5.5.1",
|
||||||
"element-plus": "^2.3.1",
|
"element-plus": "^2.14.5",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"path-browserify": "^1.0.1",
|
"path-browserify": "^1.0.1",
|
||||||
"pinia": "^2.0.33",
|
"pinia": "^2.0.33",
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"postcss-html": "^1.5.0",
|
"postcss-html": "^1.5.0",
|
||||||
"postcss-scss": "^4.0.6",
|
"postcss-scss": "^4.0.6",
|
||||||
"prettier": "^2.8.7",
|
"prettier": "^2.8.7",
|
||||||
"sass": "^1.58.3",
|
"sass": "^1.103.1",
|
||||||
"stylelint": "^15.5.0",
|
"stylelint": "^15.5.0",
|
||||||
"stylelint-config-html": "^1.1.0",
|
"stylelint-config-html": "^1.1.0",
|
||||||
"stylelint-config-recess-order": "^4.0.0",
|
"stylelint-config-recess-order": "^4.0.0",
|
||||||
|
|||||||
Generated
+275
-93
@@ -13,8 +13,8 @@ importers:
|
|||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@element-plus/icons-vue':
|
'@element-plus/icons-vue':
|
||||||
specifier: ^1.0.0
|
specifier: ^2.3.2
|
||||||
version: 1.0.0(vue@3.5.42(typescript@5.9.3))
|
version: 2.3.2(vue@3.5.42(typescript@5.9.3))
|
||||||
'@vueuse/core':
|
'@vueuse/core':
|
||||||
specifier: ^9.1.1
|
specifier: ^9.1.1
|
||||||
version: 9.1.1(vue@3.5.42(typescript@5.9.3))
|
version: 9.1.1(vue@3.5.42(typescript@5.9.3))
|
||||||
@@ -28,8 +28,8 @@ importers:
|
|||||||
specifier: ^5.5.1
|
specifier: ^5.5.1
|
||||||
version: 5.6.0
|
version: 5.6.0
|
||||||
element-plus:
|
element-plus:
|
||||||
specifier: ^2.3.1
|
specifier: ^2.14.5
|
||||||
version: 2.3.1(vue@3.5.42(typescript@5.9.3))
|
version: 2.14.5(vue@3.5.42(typescript@5.9.3))
|
||||||
nprogress:
|
nprogress:
|
||||||
specifier: ^0.2.0
|
specifier: ^0.2.0
|
||||||
version: 0.2.0
|
version: 0.2.0
|
||||||
@@ -75,7 +75,7 @@ importers:
|
|||||||
version: 5.51.0(eslint@8.34.0)(typescript@5.9.3)
|
version: 5.51.0(eslint@8.34.0)(typescript@5.9.3)
|
||||||
'@vitejs/plugin-vue':
|
'@vitejs/plugin-vue':
|
||||||
specifier: ^4.0.0
|
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:
|
autoprefixer:
|
||||||
specifier: ^10.4.13
|
specifier: ^10.4.13
|
||||||
version: 10.4.13(postcss@8.5.26)
|
version: 10.4.13(postcss@8.5.26)
|
||||||
@@ -104,8 +104,8 @@ importers:
|
|||||||
specifier: ^2.8.7
|
specifier: ^2.8.7
|
||||||
version: 2.8.7
|
version: 2.8.7
|
||||||
sass:
|
sass:
|
||||||
specifier: ^1.58.3
|
specifier: ^1.103.1
|
||||||
version: 1.58.3
|
version: 1.103.1
|
||||||
stylelint:
|
stylelint:
|
||||||
specifier: ^15.5.0
|
specifier: ^15.5.0
|
||||||
version: 15.5.0(typescript@5.9.3)
|
version: 15.5.0(typescript@5.9.3)
|
||||||
@@ -132,7 +132,7 @@ importers:
|
|||||||
version: 5.9.3
|
version: 5.9.3
|
||||||
unocss:
|
unocss:
|
||||||
specifier: ^0.50.1
|
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:
|
unplugin-auto-import:
|
||||||
specifier: ^0.13.0
|
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)
|
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))
|
version: 0.23.0(@babel/parser@7.29.8)(rollup@3.29.3)(vue@3.5.42(typescript@5.9.3))
|
||||||
vite:
|
vite:
|
||||||
specifier: ^4.3.1
|
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:
|
vite-plugin-svg-icons:
|
||||||
specifier: ^2.0.1
|
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:
|
vue-tsc:
|
||||||
specifier: ^3.3.11
|
specifier: ^3.3.11
|
||||||
version: 3.3.11(typescript@5.9.3)
|
version: 3.3.11(typescript@5.9.3)
|
||||||
@@ -299,17 +299,12 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
postcss-selector-parser: ^6.0.10
|
postcss-selector-parser: ^6.0.10
|
||||||
|
|
||||||
'@ctrl/tinycolor@3.6.1':
|
'@ctrl/tinycolor@4.2.0':
|
||||||
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
|
resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
'@element-plus/icons-vue@1.0.0':
|
'@element-plus/icons-vue@2.3.2':
|
||||||
resolution: {integrity: sha512-v8W6uiOfwq9GRWBLc0fvp0WwExU09BLdYfldRBxWUCJHeJ9WHeFrtt6BdixGVl9SCZ2V5soB8gi4tr365a9p/Q==}
|
resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==}
|
||||||
peerDependencies:
|
|
||||||
vue: ^3.2.0
|
|
||||||
|
|
||||||
'@element-plus/icons-vue@2.1.0':
|
|
||||||
resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==}
|
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: ^3.2.0
|
vue: ^3.2.0
|
||||||
|
|
||||||
@@ -449,14 +444,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
|
resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
|
||||||
'@floating-ui/core@1.5.0':
|
'@floating-ui/core@1.8.0':
|
||||||
resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==}
|
resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==}
|
||||||
|
|
||||||
'@floating-ui/dom@1.5.3':
|
'@floating-ui/dom@1.8.0':
|
||||||
resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
|
resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==}
|
||||||
|
|
||||||
'@floating-ui/utils@0.1.4':
|
'@floating-ui/utils@0.2.12':
|
||||||
resolution: {integrity: sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==}
|
resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
|
||||||
|
|
||||||
'@humanwhocodes/config-array@0.11.11':
|
'@humanwhocodes/config-array@0.11.11':
|
||||||
resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==}
|
resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==}
|
||||||
@@ -544,6 +539,82 @@ packages:
|
|||||||
'@nuxt/ui-templates@1.3.1':
|
'@nuxt/ui-templates@1.3.1':
|
||||||
resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==}
|
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':
|
'@polka/url@1.0.0-next.23':
|
||||||
resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
|
resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
|
||||||
|
|
||||||
@@ -569,11 +640,11 @@ packages:
|
|||||||
'@types/json-schema@7.0.13':
|
'@types/json-schema@7.0.13':
|
||||||
resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
|
resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
|
||||||
|
|
||||||
'@types/lodash-es@4.17.9':
|
'@types/lodash-es@4.17.12':
|
||||||
resolution: {integrity: sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==}
|
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
|
||||||
|
|
||||||
'@types/lodash@4.14.199':
|
'@types/lodash@4.17.25':
|
||||||
resolution: {integrity: sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==}
|
resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==}
|
||||||
|
|
||||||
'@types/minimist@1.2.2':
|
'@types/minimist@1.2.2':
|
||||||
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
|
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
|
||||||
@@ -599,6 +670,9 @@ packages:
|
|||||||
'@types/web-bluetooth@0.0.15':
|
'@types/web-bluetooth@0.0.15':
|
||||||
resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==}
|
resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==}
|
||||||
|
|
||||||
|
'@types/web-bluetooth@0.0.21':
|
||||||
|
resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@5.51.0':
|
'@typescript-eslint/eslint-plugin@5.51.0':
|
||||||
resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==}
|
resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
@@ -771,12 +845,25 @@ packages:
|
|||||||
'@vue/shared@3.5.42':
|
'@vue/shared@3.5.42':
|
||||||
resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==}
|
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':
|
'@vueuse/core@9.1.1':
|
||||||
resolution: {integrity: sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==}
|
resolution: {integrity: sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==}
|
||||||
|
|
||||||
|
'@vueuse/metadata@14.4.0':
|
||||||
|
resolution: {integrity: sha512-swx/255R6JyHZFJhx845iz5CRWDZdCfvkZOpACWc5+c5WHcG24mv8gUT1WIdFQaHt6dq79rvILd9QnCWiyVm9g==}
|
||||||
|
|
||||||
'@vueuse/metadata@9.1.1':
|
'@vueuse/metadata@9.1.1':
|
||||||
resolution: {integrity: sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog==}
|
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':
|
'@vueuse/shared@9.1.1':
|
||||||
resolution: {integrity: sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==}
|
resolution: {integrity: sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==}
|
||||||
|
|
||||||
@@ -971,6 +1058,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
|
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
|
||||||
engines: {node: '>= 8.10.0'}
|
engines: {node: '>= 8.10.0'}
|
||||||
|
|
||||||
|
chokidar@5.0.0:
|
||||||
|
resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
|
||||||
|
engines: {node: '>= 20.19.0'}
|
||||||
|
|
||||||
chownr@2.0.0:
|
chownr@2.0.0:
|
||||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -1088,8 +1179,8 @@ packages:
|
|||||||
csstype@3.2.3:
|
csstype@3.2.3:
|
||||||
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
|
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
|
||||||
|
|
||||||
dayjs@1.11.10:
|
dayjs@1.11.23:
|
||||||
resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==}
|
resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==}
|
||||||
|
|
||||||
debug@2.6.9:
|
debug@2.6.9:
|
||||||
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
||||||
@@ -1145,6 +1236,10 @@ packages:
|
|||||||
destr@2.0.1:
|
destr@2.0.1:
|
||||||
resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==}
|
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:
|
dir-glob@3.0.1:
|
||||||
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -1205,10 +1300,10 @@ packages:
|
|||||||
electron-to-chromium@1.4.529:
|
electron-to-chromium@1.4.529:
|
||||||
resolution: {integrity: sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==}
|
resolution: {integrity: sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==}
|
||||||
|
|
||||||
element-plus@2.3.1:
|
element-plus@2.14.5:
|
||||||
resolution: {integrity: sha512-IBS7ic1mRyDXpOreRkredV4ByZSuax5HPb0zNOHm4qwKC4wm927yQv+Is0JbzxPzCW5zWaV4PLy9/Gl3E3v59w==}
|
resolution: {integrity: sha512-bghYy/S+qg87enHPXELirhEdDqsVAUGcGpbGIeG8dz0kwpIkGz7gYsifulBshXX74iRtHib85XWQj0uSH2A1Yg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: ^3.2.0
|
vue: ^3.3.7
|
||||||
|
|
||||||
emoji-regex@8.0.0:
|
emoji-regex@8.0.0:
|
||||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||||
@@ -1267,9 +1362,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
|
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
escape-html@1.0.3:
|
|
||||||
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
|
||||||
|
|
||||||
escape-string-regexp@1.0.5:
|
escape-string-regexp@1.0.5:
|
||||||
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
@@ -1660,8 +1752,8 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
immutable@4.3.4:
|
immutable@5.1.9:
|
||||||
resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
|
resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==}
|
||||||
|
|
||||||
import-fresh@3.3.0:
|
import-fresh@3.3.0:
|
||||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
||||||
@@ -2084,6 +2176,9 @@ packages:
|
|||||||
natural-compare@1.4.0:
|
natural-compare@1.4.0:
|
||||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||||
|
|
||||||
|
node-addon-api@7.1.1:
|
||||||
|
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
|
||||||
|
|
||||||
node-fetch-native@1.4.0:
|
node-fetch-native@1.4.0:
|
||||||
resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==}
|
resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==}
|
||||||
|
|
||||||
@@ -2382,6 +2477,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
||||||
engines: {node: '>=8.10.0'}
|
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:
|
redent@3.0.0:
|
||||||
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
|
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -2452,9 +2551,9 @@ packages:
|
|||||||
safe-regex@1.1.0:
|
safe-regex@1.1.0:
|
||||||
resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
|
resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
|
||||||
|
|
||||||
sass@1.58.3:
|
sass@1.103.1:
|
||||||
resolution: {integrity: sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==}
|
resolution: {integrity: sha512-9icZURbP51S6S0QGoyaeqk9uB06GNWxsFYWfH5RgpFgqK5FA8tJcM3AdVxrZEVJ7dz+L87nG95gBKf4VuaMHGw==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=20.19.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
scule@1.0.0:
|
scule@1.0.0:
|
||||||
@@ -2960,6 +3059,9 @@ packages:
|
|||||||
vscode-uri@3.2.0:
|
vscode-uri@3.2.0:
|
||||||
resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==}
|
resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==}
|
||||||
|
|
||||||
|
vue-component-type-helpers@3.3.11:
|
||||||
|
resolution: {integrity: sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==}
|
||||||
|
|
||||||
vue-demi@0.13.11:
|
vue-demi@0.13.11:
|
||||||
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
|
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -3244,13 +3346,9 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
postcss-selector-parser: 6.0.13
|
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))':
|
'@element-plus/icons-vue@2.3.2(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))':
|
|
||||||
dependencies:
|
dependencies:
|
||||||
vue: 3.5.42(typescript@5.9.3)
|
vue: 3.5.42(typescript@5.9.3)
|
||||||
|
|
||||||
@@ -3334,16 +3432,16 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@floating-ui/core@1.5.0':
|
'@floating-ui/core@1.8.0':
|
||||||
dependencies:
|
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:
|
dependencies:
|
||||||
'@floating-ui/core': 1.5.0
|
'@floating-ui/core': 1.8.0
|
||||||
'@floating-ui/utils': 0.1.4
|
'@floating-ui/utils': 0.2.12
|
||||||
|
|
||||||
'@floating-ui/utils@0.1.4': {}
|
'@floating-ui/utils@0.2.12': {}
|
||||||
|
|
||||||
'@humanwhocodes/config-array@0.11.11':
|
'@humanwhocodes/config-array@0.11.11':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3471,6 +3569,63 @@ snapshots:
|
|||||||
|
|
||||||
'@nuxt/ui-templates@1.3.1': {}
|
'@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': {}
|
'@polka/url@1.0.0-next.23': {}
|
||||||
|
|
||||||
'@rollup/pluginutils@5.0.4(rollup@3.29.3)':
|
'@rollup/pluginutils@5.0.4(rollup@3.29.3)':
|
||||||
@@ -3489,11 +3644,11 @@ snapshots:
|
|||||||
|
|
||||||
'@types/json-schema@7.0.13': {}
|
'@types/json-schema@7.0.13': {}
|
||||||
|
|
||||||
'@types/lodash-es@4.17.9':
|
'@types/lodash-es@4.17.12':
|
||||||
dependencies:
|
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': {}
|
'@types/minimist@1.2.2': {}
|
||||||
|
|
||||||
@@ -3513,6 +3668,8 @@ snapshots:
|
|||||||
|
|
||||||
'@types/web-bluetooth@0.0.15': {}
|
'@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)':
|
'@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:
|
dependencies:
|
||||||
'@typescript-eslint/parser': 5.51.0(eslint@8.34.0)(typescript@5.9.3)
|
'@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
|
'@typescript-eslint/types': 5.51.0
|
||||||
eslint-visitor-keys: 3.4.3
|
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:
|
dependencies:
|
||||||
'@unocss/core': 0.50.1
|
'@unocss/core': 0.50.1
|
||||||
'@unocss/reset': 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:
|
transitivePeerDependencies:
|
||||||
- rollup
|
- rollup
|
||||||
- vite
|
- vite
|
||||||
@@ -3697,7 +3854,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 0.50.1
|
'@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:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.2.1
|
'@ampproject/remapping': 2.2.1
|
||||||
'@rollup/pluginutils': 5.0.4(rollup@3.29.3)
|
'@rollup/pluginutils': 5.0.4(rollup@3.29.3)
|
||||||
@@ -3709,13 +3866,13 @@ snapshots:
|
|||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
fast-glob: 3.3.1
|
fast-glob: 3.3.1
|
||||||
magic-string: 0.30.3
|
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:
|
transitivePeerDependencies:
|
||||||
- rollup
|
- 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:
|
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)
|
vue: 3.5.42(typescript@5.9.3)
|
||||||
|
|
||||||
'@volar/language-core@2.4.28':
|
'@volar/language-core@2.4.28':
|
||||||
@@ -3796,6 +3953,13 @@ snapshots:
|
|||||||
|
|
||||||
'@vue/shared@3.5.42': {}
|
'@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))':
|
'@vueuse/core@9.1.1(vue@3.5.42(typescript@5.9.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/web-bluetooth': 0.0.15
|
'@types/web-bluetooth': 0.0.15
|
||||||
@@ -3806,8 +3970,14 @@ snapshots:
|
|||||||
- '@vue/composition-api'
|
- '@vue/composition-api'
|
||||||
- vue
|
- vue
|
||||||
|
|
||||||
|
'@vueuse/metadata@14.4.0': {}
|
||||||
|
|
||||||
'@vueuse/metadata@9.1.1': {}
|
'@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))':
|
'@vueuse/shared@9.1.1(vue@3.5.42(typescript@5.9.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
vue-demi: 0.14.6(vue@3.5.42(typescript@5.9.3))
|
vue-demi: 0.14.6(vue@3.5.42(typescript@5.9.3))
|
||||||
@@ -4041,6 +4211,10 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
|
chokidar@5.0.0:
|
||||||
|
dependencies:
|
||||||
|
readdirp: 5.1.1
|
||||||
|
|
||||||
chownr@2.0.0: {}
|
chownr@2.0.0: {}
|
||||||
|
|
||||||
class-utils@0.3.6:
|
class-utils@0.3.6:
|
||||||
@@ -4147,7 +4321,7 @@ snapshots:
|
|||||||
|
|
||||||
csstype@3.2.3: {}
|
csstype@3.2.3: {}
|
||||||
|
|
||||||
dayjs@1.11.10: {}
|
dayjs@1.11.23: {}
|
||||||
|
|
||||||
debug@2.6.9:
|
debug@2.6.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4187,6 +4361,9 @@ snapshots:
|
|||||||
|
|
||||||
destr@2.0.1: {}
|
destr@2.0.1: {}
|
||||||
|
|
||||||
|
detect-libc@2.1.2:
|
||||||
|
optional: true
|
||||||
|
|
||||||
dir-glob@3.0.1:
|
dir-glob@3.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
path-type: 4.0.0
|
path-type: 4.0.0
|
||||||
@@ -4262,26 +4439,24 @@ snapshots:
|
|||||||
|
|
||||||
electron-to-chromium@1.4.529: {}
|
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:
|
dependencies:
|
||||||
'@ctrl/tinycolor': 3.6.1
|
'@ctrl/tinycolor': 4.2.0
|
||||||
'@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))
|
||||||
'@floating-ui/dom': 1.5.3
|
'@floating-ui/dom': 1.8.0
|
||||||
'@popperjs/core': '@sxzz/popperjs-es@2.11.8'
|
'@popperjs/core': '@sxzz/popperjs-es@2.11.8'
|
||||||
'@types/lodash': 4.14.199
|
'@types/lodash': 4.17.25
|
||||||
'@types/lodash-es': 4.17.9
|
'@types/lodash-es': 4.17.12
|
||||||
'@vueuse/core': 9.1.1(vue@3.5.42(typescript@5.9.3))
|
'@vueuse/core': 14.4.0(vue@3.5.42(typescript@5.9.3))
|
||||||
async-validator: 4.2.5
|
async-validator: 4.2.5
|
||||||
dayjs: 1.11.10
|
dayjs: 1.11.23
|
||||||
escape-html: 1.0.3
|
|
||||||
lodash: 4.18.1
|
lodash: 4.18.1
|
||||||
lodash-es: 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
|
memoize-one: 6.0.0
|
||||||
normalize-wheel-es: 1.2.0
|
normalize-wheel-es: 1.2.0
|
||||||
vue: 3.5.42(typescript@5.9.3)
|
vue: 3.5.42(typescript@5.9.3)
|
||||||
transitivePeerDependencies:
|
vue-component-type-helpers: 3.3.11
|
||||||
- '@vue/composition-api'
|
|
||||||
|
|
||||||
emoji-regex@8.0.0: {}
|
emoji-regex@8.0.0: {}
|
||||||
|
|
||||||
@@ -4351,8 +4526,6 @@ snapshots:
|
|||||||
|
|
||||||
escalade@3.1.1: {}
|
escalade@3.1.1: {}
|
||||||
|
|
||||||
escape-html@1.0.3: {}
|
|
||||||
|
|
||||||
escape-string-regexp@1.0.5: {}
|
escape-string-regexp@1.0.5: {}
|
||||||
|
|
||||||
escape-string-regexp@4.0.0: {}
|
escape-string-regexp@4.0.0: {}
|
||||||
@@ -4801,7 +4974,7 @@ snapshots:
|
|||||||
|
|
||||||
image-size@0.5.5: {}
|
image-size@0.5.5: {}
|
||||||
|
|
||||||
immutable@4.3.4: {}
|
immutable@5.1.9: {}
|
||||||
|
|
||||||
import-fresh@3.3.0:
|
import-fresh@3.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4994,9 +5167,9 @@ snapshots:
|
|||||||
|
|
||||||
lodash-es@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):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/lodash-es': 4.17.9
|
'@types/lodash-es': 4.17.12
|
||||||
lodash: 4.18.1
|
lodash: 4.18.1
|
||||||
lodash-es: 4.18.1
|
lodash-es: 4.18.1
|
||||||
|
|
||||||
@@ -5180,6 +5353,9 @@ snapshots:
|
|||||||
|
|
||||||
natural-compare@1.4.0: {}
|
natural-compare@1.4.0: {}
|
||||||
|
|
||||||
|
node-addon-api@7.1.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
node-fetch-native@1.4.0: {}
|
node-fetch-native@1.4.0: {}
|
||||||
|
|
||||||
node-releases@2.0.13: {}
|
node-releases@2.0.13: {}
|
||||||
@@ -5472,6 +5648,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
|
readdirp@5.1.1: {}
|
||||||
|
|
||||||
redent@3.0.0:
|
redent@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
indent-string: 4.0.0
|
indent-string: 4.0.0
|
||||||
@@ -5526,11 +5704,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ret: 0.1.15
|
ret: 0.1.15
|
||||||
|
|
||||||
sass@1.58.3:
|
sass@1.103.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
chokidar: 3.5.3
|
chokidar: 5.0.0
|
||||||
immutable: 4.3.4
|
immutable: 5.1.9
|
||||||
source-map-js: 1.0.2
|
source-map-js: 1.2.1
|
||||||
|
optionalDependencies:
|
||||||
|
'@parcel/watcher': 2.6.0
|
||||||
|
|
||||||
scule@1.0.0: {}
|
scule@1.0.0: {}
|
||||||
|
|
||||||
@@ -5988,9 +6168,9 @@ snapshots:
|
|||||||
|
|
||||||
universalify@2.0.0: {}
|
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:
|
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/cli': 0.50.1(rollup@3.29.3)
|
||||||
'@unocss/core': 0.50.1
|
'@unocss/core': 0.50.1
|
||||||
'@unocss/preset-attributify': 0.50.1
|
'@unocss/preset-attributify': 0.50.1
|
||||||
@@ -6006,7 +6186,7 @@ snapshots:
|
|||||||
'@unocss/transformer-compile-class': 0.50.1
|
'@unocss/transformer-compile-class': 0.50.1
|
||||||
'@unocss/transformer-directives': 0.50.1
|
'@unocss/transformer-directives': 0.50.1
|
||||||
'@unocss/transformer-variant-group': 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:
|
transitivePeerDependencies:
|
||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -6108,7 +6288,7 @@ snapshots:
|
|||||||
|
|
||||||
vary@1.1.2: {}
|
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:
|
dependencies:
|
||||||
'@types/svgo': 2.6.4
|
'@types/svgo': 2.6.4
|
||||||
cors: 2.8.5
|
cors: 2.8.5
|
||||||
@@ -6118,11 +6298,11 @@ snapshots:
|
|||||||
pathe: 0.2.0
|
pathe: 0.2.0
|
||||||
svg-baker: 1.7.0
|
svg-baker: 1.7.0
|
||||||
svgo: 2.8.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:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- 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:
|
dependencies:
|
||||||
esbuild: 0.17.19
|
esbuild: 0.17.19
|
||||||
postcss: 8.5.26
|
postcss: 8.5.26
|
||||||
@@ -6130,10 +6310,12 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 20.7.0
|
'@types/node': 20.7.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
sass: 1.58.3
|
sass: 1.103.1
|
||||||
|
|
||||||
vscode-uri@3.2.0: {}
|
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)):
|
vue-demi@0.13.11(vue@3.5.42(typescript@5.9.3)):
|
||||||
dependencies:
|
dependencies:
|
||||||
vue: 3.5.42(typescript@5.9.3)
|
vue: 3.5.42(typescript@5.9.3)
|
||||||
|
|||||||
@@ -218,9 +218,7 @@ export const defaultHysteria2ServerConfigView: Hysteria2ServerConfigView = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
||||||
return (
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
||||||
typeof value === "object" && value !== null && !Array.isArray(value)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -48,4 +48,3 @@ export function exportHysteria2ConfigApi(): AxiosPromise {
|
|||||||
responseType: "blob",
|
responseType: "blob",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,28 @@ export interface PeerSaveDto {
|
|||||||
remark: string;
|
remark: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface PeerVo extends IdDto {
|
/**
|
||||||
|
* Строка списка пиров.
|
||||||
|
*
|
||||||
|
* Объявлена через `type`, а не `interface`, и это не стилистика.
|
||||||
|
*
|
||||||
|
* `el-table-column` типизирует scope своего default-слота как
|
||||||
|
* `{ row: DefaultRow, ... }`, где `DefaultRow = Record<PropertyKey, any>`:
|
||||||
|
* колонка — отдельный компонент, и тип строки из `:data` родительской таблицы
|
||||||
|
* в неё не попадает. Значит, где-то на пути от слота к обработчику нужен ровно
|
||||||
|
* один переход `DefaultRow -> PeerVo` (см. `peerRow` в списке пиров).
|
||||||
|
*
|
||||||
|
* TypeScript даёт неявную индексную сигнатуру псевдонимам типов, но НЕ
|
||||||
|
* интерфейсам и не пересечениям с ними. Пока `PeerVo` был `interface`, он не
|
||||||
|
* был совместим с `DefaultRow` ни в одну сторону, и этот переход требовал
|
||||||
|
* двойного приведения через `unknown` — то есть утверждения, которое компилятор
|
||||||
|
* вообще не проверяет. С псевдонимом типа переход остаётся одним обычным
|
||||||
|
* приведением между связанными типами.
|
||||||
|
*/
|
||||||
|
export type PeerVo = {
|
||||||
|
// `id` объявлен здесь, а не унаследован от `IdDto`: пересечение с интерфейсом
|
||||||
|
// неявную индексную сигнатуру не получает.
|
||||||
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
remark: string;
|
remark: string;
|
||||||
authId: string;
|
authId: string;
|
||||||
@@ -39,7 +60,7 @@ export interface PeerVo extends IdDto {
|
|||||||
createTime: string;
|
createTime: string;
|
||||||
online: boolean;
|
online: boolean;
|
||||||
onlineDevices: number;
|
onlineDevices: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface PeerClientConfigVo {
|
export interface PeerClientConfigVo {
|
||||||
url: string;
|
url: string;
|
||||||
|
|||||||
@@ -13,8 +13,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.peg {
|
.peg {
|
||||||
box-shadow:
|
box-shadow: 0 0 10px var(--el-color-primary),
|
||||||
0 0 10px var(--el-color-primary),
|
|
||||||
0 0 5px var(--el-color-primary);
|
0 0 5px var(--el-color-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,12 @@
|
|||||||
$t("peer.exportSettings")
|
$t("peer.exportSettings")
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-button class="ml-2" type="warning" plain @click="handleExportBackup">
|
<el-button
|
||||||
|
class="ml-2"
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
@click="handleExportBackup"
|
||||||
|
>
|
||||||
{{ $t("peer.exportBackup") }}
|
{{ $t("peer.exportBackup") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -74,11 +79,11 @@
|
|||||||
/ {{ quotaText(scope.row.quotaBytes) }}
|
/ {{ quotaText(scope.row.quotaBytes) }}
|
||||||
</div>
|
</div>
|
||||||
<el-progress
|
<el-progress
|
||||||
:percentage="trafficPercent(scope.row)"
|
:percentage="trafficPercent(peerRow(scope.row))"
|
||||||
:status="
|
:status="
|
||||||
scope.row.quotaBytes < 0
|
scope.row.quotaBytes < 0
|
||||||
? undefined
|
? undefined
|
||||||
: trafficPercent(scope.row) >= 90
|
: trafficPercent(peerRow(scope.row)) >= 90
|
||||||
? 'exception'
|
? 'exception'
|
||||||
: undefined
|
: undefined
|
||||||
"
|
"
|
||||||
@@ -115,36 +120,45 @@
|
|||||||
>
|
>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div class="peer-actions">
|
<div class="peer-actions">
|
||||||
<el-button link type="primary" @click="openOverview(scope.row)">{{
|
<el-button
|
||||||
$t("peer.overview")
|
link
|
||||||
}}</el-button>
|
type="primary"
|
||||||
<el-button link type="primary" @click="copyUri(scope.row)">{{
|
@click="openOverview(peerRow(scope.row))"
|
||||||
$t("peer.copyUri")
|
>{{ $t("peer.overview") }}</el-button
|
||||||
}}</el-button>
|
>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="copyUri(peerRow(scope.row))"
|
||||||
|
>{{ $t("peer.copyUri") }}</el-button
|
||||||
|
>
|
||||||
<el-dropdown trigger="click" placement="bottom-end">
|
<el-dropdown trigger="click" placement="bottom-end">
|
||||||
<el-button text circle class="peer-more-btn" @click.stop>
|
<el-button text circle class="peer-more-btn" @click.stop>
|
||||||
<i-ep-more-filled />
|
<i-ep-more-filled />
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item @click="showQr(scope.row)">{{
|
<el-dropdown-item @click="showQr(peerRow(scope.row))">{{
|
||||||
$t("peer.clientQr")
|
$t("peer.clientQr")
|
||||||
}}</el-dropdown-item>
|
}}</el-dropdown-item>
|
||||||
<el-dropdown-item @click="handleUpdate(scope.row)">{{
|
<el-dropdown-item
|
||||||
$t("common.edit")
|
@click="handleUpdate(peerRow(scope.row))"
|
||||||
}}</el-dropdown-item>
|
>{{ $t("common.edit") }}</el-dropdown-item
|
||||||
<el-dropdown-item @click="handleResetTraffic(scope.row)">{{
|
>
|
||||||
$t("common.resetTraffic")
|
<el-dropdown-item
|
||||||
}}</el-dropdown-item>
|
@click="handleResetTraffic(peerRow(scope.row))"
|
||||||
<el-dropdown-item @click="handleKick(scope.row)">{{
|
>{{ $t("common.resetTraffic") }}</el-dropdown-item
|
||||||
|
>
|
||||||
|
<el-dropdown-item @click="handleKick(peerRow(scope.row))">{{
|
||||||
$t("peer.kick")
|
$t("peer.kick")
|
||||||
}}</el-dropdown-item>
|
}}</el-dropdown-item>
|
||||||
<el-dropdown-item @click="handleReleaseKick(scope.row)">{{
|
<el-dropdown-item
|
||||||
$t("peer.releaseKick")
|
@click="handleReleaseKick(peerRow(scope.row))"
|
||||||
}}</el-dropdown-item>
|
>{{ $t("peer.releaseKick") }}</el-dropdown-item
|
||||||
|
>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
divided
|
divided
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(peerRow(scope.row))"
|
||||||
>{{ $t("common.delete") }}</el-dropdown-item
|
>{{ $t("common.delete") }}</el-dropdown-item
|
||||||
>
|
>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
@@ -356,6 +370,28 @@ import {
|
|||||||
} from "@/api/peer/types";
|
} from "@/api/peer/types";
|
||||||
import { UploadFile, UploadRawFile, UploadRequestOptions } from "element-plus";
|
import { UploadFile, UploadRawFile, UploadRequestOptions } from "element-plus";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Единственный переход от строки слота таблицы к модели пира.
|
||||||
|
*
|
||||||
|
* `el-table-column` — отдельный компонент, и тип строки из `:data` родительской
|
||||||
|
* таблицы в его слот не попадает: scope всегда типизирован как
|
||||||
|
* `{ row: DefaultRow, ... }`, где `DefaultRow = Record<PropertyKey, any>`.
|
||||||
|
* Обобщённость `el-table` здесь не помогает, а аннотировать слот нельзя —
|
||||||
|
* `DefaultRow` не сужается до `PeerVo` контравариантно.
|
||||||
|
*
|
||||||
|
* Поэтому переход нужен, и вопрос только в том, где он стоит. Здесь он ровно
|
||||||
|
* один, назван и объяснён; альтернативой были семь `as any` прямо в шаблоне,
|
||||||
|
* каждый из которых отключал бы проверку и всего остального выражения.
|
||||||
|
*
|
||||||
|
* Утверждение опирается на соседнюю строку шаблона: `:data="records"`, где
|
||||||
|
* `records` объявлен как `Ref<PeerVo[]>`. Таблица не получает никаких других
|
||||||
|
* данных, поэтому в `row` не может оказаться ничего другого. Смена типа
|
||||||
|
* `records` сломает компиляцию здесь же: `PeerVo` объявлен псевдонимом типа и
|
||||||
|
* потому совместим с `DefaultRow`, так что это обычное приведение между
|
||||||
|
* связанными типами, а не `as unknown as`.
|
||||||
|
*/
|
||||||
|
const peerRow = (row: Record<PropertyKey, any>): PeerVo => row as PeerVo;
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user