mirror of
https://github.com/luckfox-eng29/kvm.git
synced 2026-05-27 00:25:09 +02:00
Update App version to 0.1.3
Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
This commit is contained in:
215
ui/package-lock.json
generated
215
ui/package-lock.json
generated
@@ -509,12 +509,6 @@
|
||||
"integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.9.0.tgz",
|
||||
"integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/babel-plugin/node_modules/convert-source-map": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
|
||||
@@ -540,12 +534,6 @@
|
||||
"stylis": "4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@emotion/cache/node_modules/@emotion/memoize": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.9.0.tgz",
|
||||
"integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/cache/node_modules/stylis": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.2.0.tgz",
|
||||
@@ -572,18 +560,18 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/is-prop-valid": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
|
||||
"integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz",
|
||||
"integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@emotion/memoize": "^0.8.1"
|
||||
"@emotion/memoize": "^0.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@emotion/memoize": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.8.1.tgz",
|
||||
"integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==",
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
|
||||
"integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/react": {
|
||||
@@ -629,12 +617,6 @@
|
||||
"integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/serialize/node_modules/@emotion/memoize": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.9.0.tgz",
|
||||
"integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@emotion/serialize/node_modules/@emotion/unitless": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.10.0.tgz",
|
||||
@@ -1778,9 +1760,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/pluginutils/node_modules/picomatch": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz",
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
||||
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -3145,12 +3127,6 @@
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/stylis": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmmirror.com/@types/stylis/-/stylis-4.2.5.tgz",
|
||||
"integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/validator": {
|
||||
"version": "13.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.0.tgz",
|
||||
@@ -3323,9 +3299,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz",
|
||||
"integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==",
|
||||
"version": "5.0.6",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
|
||||
"integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3894,9 +3870,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/babel-plugin-macros/node_modules/yaml": {
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
|
||||
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||
"version": "1.10.3",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz",
|
||||
"integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==",
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
@@ -3915,9 +3891,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.12",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||
"version": "1.1.14",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
|
||||
"integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0",
|
||||
@@ -4260,9 +4236,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
|
||||
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/cva": {
|
||||
@@ -5403,9 +5379,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/flatted": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
|
||||
"integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
|
||||
"version": "3.4.2",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
|
||||
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/focus-trap": {
|
||||
@@ -5872,9 +5848,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/immutable": {
|
||||
"version": "3.8.2",
|
||||
"resolved": "https://registry.npmmirror.com/immutable/-/immutable-3.8.2.tgz",
|
||||
"integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.3.tgz",
|
||||
"integrity": "sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
@@ -6743,9 +6719,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.23",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
|
||||
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
|
||||
"version": "4.18.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
|
||||
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.castarray": {
|
||||
@@ -7420,9 +7396,9 @@
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
|
||||
"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -7442,9 +7418,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.5.3",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
|
||||
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
|
||||
"version": "8.5.14",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
|
||||
"integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
@@ -7461,7 +7437,7 @@
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.8",
|
||||
"nanoid": "^3.3.11",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
@@ -8821,12 +8797,6 @@
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/shallowequal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz",
|
||||
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
@@ -9158,20 +9128,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/styled-components": {
|
||||
"version": "6.1.19",
|
||||
"resolved": "https://registry.npmmirror.com/styled-components/-/styled-components-6.1.19.tgz",
|
||||
"integrity": "sha512-1v/e3Dl1BknC37cXMhwGomhO8AkYmN41CqyX9xhUDxry1ns3BFQy2lLDRQXJRdVVWB9OHemv/53xaStimvWyuA==",
|
||||
"version": "6.4.1",
|
||||
"resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.4.1.tgz",
|
||||
"integrity": "sha512-ADu2dF53esUzzM4I0ewxhxFtsDd6v4V6dNkg3vG0iFKhnt06sJneTZnRvujAosZwW0XD58IKgGMQoqri4wHRqg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@emotion/is-prop-valid": "1.2.2",
|
||||
"@emotion/unitless": "0.8.1",
|
||||
"@types/stylis": "4.2.5",
|
||||
"@emotion/is-prop-valid": "1.4.0",
|
||||
"css-to-react-native": "3.2.0",
|
||||
"csstype": "3.1.3",
|
||||
"postcss": "8.4.49",
|
||||
"shallowequal": "1.1.0",
|
||||
"stylis": "4.3.2",
|
||||
"tslib": "2.6.2"
|
||||
"csstype": "3.2.3",
|
||||
"stylis": "4.3.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 16"
|
||||
@@ -9181,56 +9146,23 @@
|
||||
"url": "https://opencollective.com/styled-components"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"css-to-react-native": ">= 3.2.0",
|
||||
"react": ">= 16.8.0",
|
||||
"react-dom": ">= 16.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/styled-components/node_modules/@emotion/unitless": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz",
|
||||
"integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/styled-components/node_modules/postcss": {
|
||||
"version": "8.4.49",
|
||||
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz",
|
||||
"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.1.1",
|
||||
"source-map-js": "^1.2.1"
|
||||
"react-dom": ">= 16.8.0",
|
||||
"react-native": ">= 0.68.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
"peerDependenciesMeta": {
|
||||
"css-to-react-native": {
|
||||
"optional": true
|
||||
},
|
||||
"react-dom": {
|
||||
"optional": true
|
||||
},
|
||||
"react-native": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/styled-components/node_modules/stylis": {
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.2.tgz",
|
||||
"integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/styled-components/node_modules/tslib": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
|
||||
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
|
||||
"license": "0BSD"
|
||||
},
|
||||
"node_modules/stylis": {
|
||||
"version": "4.3.6",
|
||||
"resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz",
|
||||
@@ -9301,9 +9233,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "7.5.9",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz",
|
||||
"integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==",
|
||||
"version": "7.5.15",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.15.tgz",
|
||||
"integrity": "sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==",
|
||||
"dev": true,
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
@@ -9392,9 +9324,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby/node_modules/picomatch": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
||||
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
@@ -9743,9 +9675,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "6.4.1",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
|
||||
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
|
||||
"version": "6.4.2",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz",
|
||||
"integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"esbuild": "^0.25.0",
|
||||
@@ -9866,9 +9798,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite/node_modules/picomatch": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
||||
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
@@ -10031,9 +9963,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.8.1.tgz",
|
||||
"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
|
||||
"version": "2.8.4",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
|
||||
"integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
|
||||
"license": "ISC",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
@@ -10042,6 +9974,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/eemeli"
|
||||
}
|
||||
},
|
||||
"node_modules/yocto-queue": {
|
||||
|
||||
@@ -11,6 +11,7 @@ interface PopoverButtonProps {
|
||||
align?: "left" | "right";
|
||||
buttonClassName?: string;
|
||||
panelClassName?: string;
|
||||
style?: React.CSSProperties;
|
||||
}
|
||||
|
||||
const BottomPopoverButton: React.FC<PopoverButtonProps> = ({
|
||||
@@ -18,6 +19,7 @@ const BottomPopoverButton: React.FC<PopoverButtonProps> = ({
|
||||
buttonIconNode,
|
||||
panelContent,
|
||||
align = "left",
|
||||
style,
|
||||
}) => {
|
||||
const setDisableFocusTrap = useUiStore(state => state.setDisableVideoFocusTrap);
|
||||
return (
|
||||
@@ -28,7 +30,7 @@ const BottomPopoverButton: React.FC<PopoverButtonProps> = ({
|
||||
<>
|
||||
<PopoverButton
|
||||
as="div"
|
||||
style={{ display: "flex", justifyContent: "center", alignItems: "center" }}>
|
||||
style={{ display: "flex", justifyContent: "center", alignItems: "center", ...style }}>
|
||||
<div
|
||||
onClick={() => {
|
||||
setDisableFocusTrap(true);
|
||||
|
||||
@@ -546,7 +546,7 @@ export default function SettingsNetwork() {
|
||||
|
||||
<div className="space-y-4">
|
||||
<SettingsItem
|
||||
title="HTTP Proxy"
|
||||
title={$at("HTTP Proxy")}
|
||||
description={$at("Configure program HTTP proxy (optional)")}
|
||||
className={`${isMobile ? "w-full flex-col" : ""}`}
|
||||
>
|
||||
@@ -559,7 +559,7 @@ export default function SettingsNetwork() {
|
||||
/>
|
||||
</SettingsItem>
|
||||
<SettingsItem
|
||||
title="HTTPS Proxy"
|
||||
title={$at("HTTPS Proxy")}
|
||||
description={$at("Configure program HTTPS proxy (optional)")}
|
||||
className={`${isMobile ? "w-full flex-col" : ""}`}
|
||||
>
|
||||
@@ -572,7 +572,7 @@ export default function SettingsNetwork() {
|
||||
/>
|
||||
</SettingsItem>
|
||||
<SettingsItem
|
||||
title="ALL Proxy"
|
||||
title={$at("ALL Proxy")}
|
||||
description={$at("Configure program ALL proxy (optional)")}
|
||||
className={`${isMobile ? "w-full flex-col" : ""}`}
|
||||
>
|
||||
|
||||
@@ -750,10 +750,43 @@ function SystemUpToDateState({
|
||||
versionInfo: SystemVersionInfo | null;
|
||||
}) {
|
||||
const { $at } = useReactAt();
|
||||
const [send] = useJsonRpc();
|
||||
const [sigUpdateLoading, setSigUpdateLoading] = useState(false);
|
||||
const [sigUpdateResult, setSigUpdateResult] = useState<string | null>(null);
|
||||
const hasAbsentSig = versionInfo?.appSignatureAbsent;
|
||||
const hasInvalidSig = versionInfo?.appSignatureInvalid;
|
||||
const hasNoPublicKey = versionInfo?.appNoPublicKey;
|
||||
|
||||
const handleUpdateSignatures = useCallback(() => {
|
||||
setSigUpdateLoading(true);
|
||||
setSigUpdateResult(null);
|
||||
send("updateSignatures", {}, resp => {
|
||||
setSigUpdateLoading(false);
|
||||
if ("error" in resp) {
|
||||
setSigUpdateResult(`Failed: ${resp.error.data || "Unknown error"}`);
|
||||
notifications.error(`Signature update failed: ${resp.error.data || "Unknown error"}`);
|
||||
} else {
|
||||
const result = resp.result as {
|
||||
appSignatureUpdated: boolean;
|
||||
systemSignatureUpdated: boolean;
|
||||
appSignatureValid: boolean;
|
||||
systemSignatureValid: boolean;
|
||||
error?: string;
|
||||
};
|
||||
if (result.error) {
|
||||
setSigUpdateResult(`Failed: ${result.error}`);
|
||||
notifications.error(`Signature update failed: ${result.error}`);
|
||||
} else {
|
||||
const parts: string[] = [];
|
||||
if (result.appSignatureUpdated) parts.push("App signature updated");
|
||||
if (result.systemSignatureUpdated) parts.push("System signature updated");
|
||||
setSigUpdateResult(parts.join(", ") || "No signatures to update");
|
||||
notifications.success("Signatures updated successfully");
|
||||
}
|
||||
}
|
||||
});
|
||||
}, [send]);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col items-start justify-start space-y-4 text-left">
|
||||
<div className="text-left">
|
||||
@@ -797,17 +830,6 @@ function SystemUpToDateState({
|
||||
</div>
|
||||
)}
|
||||
|
||||
{versionInfo?.signatureVerified && (
|
||||
<div className="mt-4 rounded-md border border-green-500 bg-green-50 p-3 dark:border-green-600 dark:bg-green-900/30">
|
||||
<p className="text-sm font-medium text-green-800 dark:text-green-200">
|
||||
{$at("Signature Verified")}
|
||||
</p>
|
||||
<p className="mt-1 text-xs text-green-700 dark:text-green-300">
|
||||
{$at("Firmware signature has been verified and is valid.")}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="mt-4 flex gap-x-2">
|
||||
<AntdButton type="primary" onClick={checkUpdate}>
|
||||
{$at("Check Again")}
|
||||
@@ -816,6 +838,32 @@ function SystemUpToDateState({
|
||||
{$at("Back")}
|
||||
</AntdButton>
|
||||
</div>
|
||||
|
||||
<p className="text-base font-semibold text-black dark:text-white">
|
||||
{$at("Update Signatures")}
|
||||
</p>
|
||||
<p className="mb-2 text-sm text-slate-600 dark:text-slate-300">
|
||||
{$at("Update the signature of kvm_app to the latest version. If the current version is not up to date, signature verification will fail.")}
|
||||
</p>
|
||||
|
||||
{sigUpdateResult && (
|
||||
<div className="rounded-md border border-blue-500 bg-blue-50 p-3 dark:border-blue-600 dark:bg-blue-900/30">
|
||||
<p className="text-sm font-medium text-blue-800 dark:text-blue-200">
|
||||
{$at("Signature Update Result")}
|
||||
</p>
|
||||
<p className="mt-1 text-xs text-blue-700 dark:text-blue-300">
|
||||
{sigUpdateResult}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="space-y-4">
|
||||
<div className="flex items-center justify-start gap-x-2">
|
||||
<AntdButton type="primary" loading={sigUpdateLoading} onClick={handleUpdateSignatures}>
|
||||
{$at("Update")}
|
||||
</AntdButton>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@@ -839,6 +887,40 @@ function UpdateAvailableState({
|
||||
onSaveUpdateDownloadProxy: () => void;
|
||||
}) {
|
||||
const { $at } = useReactAt();
|
||||
const [send] = useJsonRpc();
|
||||
const [sigUpdateLoading, setSigUpdateLoading] = useState(false);
|
||||
const [sigUpdateResult, setSigUpdateResult] = useState<string | null>(null);
|
||||
|
||||
const handleUpdateSignatures = useCallback(() => {
|
||||
setSigUpdateLoading(true);
|
||||
setSigUpdateResult(null);
|
||||
send("updateSignatures", {}, resp => {
|
||||
setSigUpdateLoading(false);
|
||||
if ("error" in resp) {
|
||||
setSigUpdateResult(`Failed: ${resp.error.data || "Unknown error"}`);
|
||||
notifications.error(`Signature update failed: ${resp.error.data || "Unknown error"}`);
|
||||
} else {
|
||||
const result = resp.result as {
|
||||
appSignatureUpdated: boolean;
|
||||
systemSignatureUpdated: boolean;
|
||||
appSignatureValid: boolean;
|
||||
systemSignatureValid: boolean;
|
||||
error?: string;
|
||||
};
|
||||
if (result.error) {
|
||||
setSigUpdateResult(`Failed: ${result.error}`);
|
||||
notifications.error(`Signature update failed: ${result.error}`);
|
||||
} else {
|
||||
const parts: string[] = [];
|
||||
if (result.appSignatureUpdated) parts.push("App signature updated");
|
||||
if (result.systemSignatureUpdated) parts.push("System signature updated");
|
||||
setSigUpdateResult(parts.join(", ") || "No signatures to update");
|
||||
notifications.success("Signatures updated successfully");
|
||||
}
|
||||
}
|
||||
});
|
||||
}, [send]);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col items-start justify-start space-y-4 text-left">
|
||||
<div className="w-full space-y-4">
|
||||
@@ -888,6 +970,32 @@ function UpdateAvailableState({
|
||||
</AntdButton>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p className="text-base font-semibold text-black dark:text-white">
|
||||
{$at("Update Signatures")}
|
||||
</p>
|
||||
<p className="mb-2 text-sm text-slate-600 dark:text-slate-300">
|
||||
{$at("Update the signature of kvm_app to the latest version. If the current version is not up to date, signature verification will fail.")}
|
||||
</p>
|
||||
|
||||
{sigUpdateResult && (
|
||||
<div className="rounded-md border border-blue-500 bg-blue-50 p-3 dark:border-blue-600 dark:bg-blue-900/30">
|
||||
<p className="text-sm font-medium text-blue-800 dark:text-blue-200">
|
||||
{$at("Signature Update Result")}
|
||||
</p>
|
||||
<p className="mt-1 text-xs text-blue-700 dark:text-blue-300">
|
||||
{sigUpdateResult}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="space-y-4">
|
||||
<div className="flex items-center justify-start gap-x-2">
|
||||
<AntdButton type="primary" loading={sigUpdateLoading} onClick={handleUpdateSignatures}>
|
||||
{$at("Update")}
|
||||
</AntdButton>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -379,7 +379,7 @@ export default function Clipboard() {
|
||||
className={`${isMobile ? "w-full" : ""}`}
|
||||
onClick={handleOpenOcr}
|
||||
>
|
||||
{$at("Open OCR")}
|
||||
{$at("Open")}
|
||||
</Button>
|
||||
</SettingsItem>
|
||||
</div>
|
||||
|
||||
@@ -104,6 +104,14 @@
|
||||
"f9099fc033": "Renew DHCP Lease",
|
||||
"6e188f5984": "IPv6 Information",
|
||||
"cfdffa4fc7": "Link-local",
|
||||
"a588b1abc5": "Copied",
|
||||
"c5505be6c3": "No text detected",
|
||||
"a29aaf6603": "OCR failed",
|
||||
"dc67ba5f40": "Drag to select text area",
|
||||
"b603b043e8": "Copy text",
|
||||
"f5f78c501b": "Recognizing text...",
|
||||
"5df17e67f5": "Review the recognized text before copying.",
|
||||
"4dfb4a614f": "Please wait while OCR is running.",
|
||||
"d6e24388b4": "Continue Uploading",
|
||||
"62a5e49088": "Hide",
|
||||
"b34e855501": "USB Expansion Function",
|
||||
@@ -173,6 +181,24 @@
|
||||
"c40a72ad93": "KVM Terminal",
|
||||
"dd110018d2": "Serial Console",
|
||||
"7b277018e4": "Not connected",
|
||||
"02d2f33ec9": "Reinitialize USB Gadget",
|
||||
"c8e875e1c9": "Version Manager",
|
||||
"63a6a88c06": "Refresh",
|
||||
"d15f6e3312": "Hide Install Actions",
|
||||
"2b9b84a087": "Show Install Actions",
|
||||
"81dfff9d6f": "Install Status",
|
||||
"98dd43dfae": "Installed",
|
||||
"ddd8eef6f8": "Not Installed",
|
||||
"e2dc83997b": "Detected Version",
|
||||
"e3cc7e7df9": "System Architecture",
|
||||
"bc56777902": "Release Version",
|
||||
"c319e3982f": "Release Asset",
|
||||
"06933067aa": "Update",
|
||||
"a27dfe7717": "Uninstall",
|
||||
"349838fb1d": "Install",
|
||||
"4a0764788d": "Install Task",
|
||||
"46b5f8c58b": "Progress",
|
||||
"5e4caae72b": "Installed Versions",
|
||||
"bf733d8a93": "Access",
|
||||
"70e23e7d6f": "Manage the Access Control of the device",
|
||||
"509820290d": "Local",
|
||||
@@ -195,6 +221,8 @@
|
||||
"efd3cc702e": "Enable Password",
|
||||
"8f1e77e0d2": "Change Password",
|
||||
"3d0de21428": "Update your device access password",
|
||||
"d6d56d5972": "WebRTC Servers",
|
||||
"8bea04c48e": "STUN and TURN servers used for peer connections",
|
||||
"f8508f576c": "Remote",
|
||||
"a8bb6f5f9f": "Manage the mode of Remote access to the device",
|
||||
"0b86461350": "TailScale use xEdge server",
|
||||
@@ -267,7 +295,6 @@
|
||||
"324118a672": "Input",
|
||||
"29c2c02a36": "Output",
|
||||
"67d2f6740a": "Forward",
|
||||
"63a6a88c06": "Refresh",
|
||||
"a4d3b161ce": "Submit",
|
||||
"ec211f7c20": "Add",
|
||||
"5320550175": "Chain",
|
||||
@@ -288,6 +315,22 @@
|
||||
"64ae5dd047": "Destination Port",
|
||||
"fbb3878eb7": "Submit Firewall Policies?",
|
||||
"1c17a7e15b": "Warning: Adjusting some policies may cause network address loss, leading to device unavailability.",
|
||||
"6f20995c95": "Failed to load WebRTC servers",
|
||||
"aee9784c03": "Unknown error",
|
||||
"6ef7ce5b80": "Failed to save STUN",
|
||||
"4cd48aed7f": "STUN server saved",
|
||||
"4b5d050e51": "Failed to save TURN",
|
||||
"f6f10b4517": "TURN servers saved",
|
||||
"d235995f96": "STUN Server",
|
||||
"fc1bd2c935": "Public STUN server for NAT traversal",
|
||||
"289929755b": "Restore Default",
|
||||
"0268827609": "TURN Servers",
|
||||
"b3c14a0273": "Used as relay when direct peer-to-peer connection fails",
|
||||
"bbc48fb751": "No TURN servers configured",
|
||||
"f6039d44b2": "Username",
|
||||
"03bc142e64": "Credential",
|
||||
"ca3e8baee9": "Add TURN Server",
|
||||
"0acde1b3e3": "Save TURN Servers",
|
||||
"867cee98fd": "Passwords do not match",
|
||||
"9864ff9420": "Please enter your old password",
|
||||
"14a714ab22": "Please enter a new password",
|
||||
@@ -328,6 +371,12 @@
|
||||
"3369c97f56": "Enter your SSH public key",
|
||||
"81bafb2833": "The default SSH user is ",
|
||||
"7a941a0f87": "Update SSH Key",
|
||||
"d876ff8da6": "API Key",
|
||||
"96164f17cf": "API key for MCP and REST API authentication",
|
||||
"538ce1893b": "Enter API key or leave empty to auto-generate",
|
||||
"a55c6d580b": "Used for authenticating MCP and REST API requests.",
|
||||
"e85c388332": "Save API Key",
|
||||
"927c25953b": "Generate New",
|
||||
"fdad65b7be": "Force HTTP Transmission",
|
||||
"e033b5e2a3": "Force using HTTP for video streaming instead of WebRTC",
|
||||
"bda22ca687": "USB detection enhancement",
|
||||
@@ -338,7 +387,6 @@
|
||||
"020b92cfbb": "Enable USB Emulation",
|
||||
"9f55f64b0f": "USB Gadget Reinitialize",
|
||||
"40dc677a89": "Reinitialize USB gadget configuration",
|
||||
"02d2f33ec9": "Reinitialize USB Gadget",
|
||||
"f5ddf02991": "Reboot System",
|
||||
"1dbbf194af": "Restart the device system",
|
||||
"1de72c4fc6": "Reboot",
|
||||
@@ -347,6 +395,10 @@
|
||||
"f43c0398a4": "Reset Configuration",
|
||||
"0031dbef48": "Reset configuration to default. This will log you out.Some configuration changes will take effect after restart system.",
|
||||
"0d784092e8": "Reset Config",
|
||||
"115082e888": "Clear API Key?",
|
||||
"78fcaed30d": "Setting the API key to empty will auto-generate a new random key.",
|
||||
"81e8b4cd6b": "Make sure to update your clients with the new key after saving.",
|
||||
"211730be68": "Generate New Key",
|
||||
"a776e925bf": "Reboot System?",
|
||||
"1f070051ff": "Are you sure you want to reboot the system?",
|
||||
"f1a79f466e": "The device will restart and you will be disconnected from the web interface.",
|
||||
@@ -403,6 +455,12 @@
|
||||
"ef64a3770e": "Control mDNS (multicast DNS) operational mode",
|
||||
"be8226fe0c": "Time synchronization",
|
||||
"7e06bd28a6": "Configure time synchronization settings",
|
||||
"a2323452ba": "HTTP Proxy",
|
||||
"7fedd1ea53": "Configure program HTTP proxy (optional)",
|
||||
"a30d487cba": "HTTPS Proxy",
|
||||
"3f4c7e23cb": "Configure program HTTPS proxy (optional)",
|
||||
"48d941841f": "ALL Proxy",
|
||||
"3a2cd1e4a7": "Configure program ALL proxy (optional)",
|
||||
"d4dccb8ca2": "Save settings",
|
||||
"8750a898cb": "IPv4 Mode",
|
||||
"72c2543791": "Configure IPv4 mode",
|
||||
@@ -444,7 +502,16 @@
|
||||
"5b404b3c98": "Update in Background",
|
||||
"3723a3f846": "System is up to date",
|
||||
"a6b8796d51": "Your system is running the latest version. No updates are currently available.",
|
||||
"a8d2a89696": "Missing Signature File",
|
||||
"480f05b41b": "The current firmware is missing signature files. Integrity cannot be fully verified.",
|
||||
"323ebc9620": "Signature Verification Failed",
|
||||
"21355c9ecb": "The signature file exists but does not match the firmware. This may indicate tampering.",
|
||||
"0b54a6c322": "No Embedded Public Key",
|
||||
"9beb932d5a": "This build does not have an OTA public key embedded. Signature verification is unavailable.",
|
||||
"7c81553358": "Check Again",
|
||||
"3b5f9a1f01": "Update Signatures",
|
||||
"d25bfbb978": "Update the signature of kvm_app to the latest version. If the current version is not up to date, signature verification will fail.",
|
||||
"1bdd158a19": "Signature Update Result",
|
||||
"217b416896": "Update available",
|
||||
"f00af8c98f": "A new update is available to enhance system performance and improve compatibility. We recommend updating to ensure everything runs smoothly.",
|
||||
"8977c3f0b7": "Download Proxy Prefix",
|
||||
@@ -453,11 +520,22 @@
|
||||
"cffae9918d": "Update Error",
|
||||
"49cba7cadf": "An error occurred while updating your device. Please try again later.",
|
||||
"d849d5b330": "Error details:",
|
||||
"2b2f7a6d7c": "Use Ctrl+V to paste clipboard to remote",
|
||||
"fcfc8da1a3": "Verifying signature...",
|
||||
"4e16083ef8": "Please wait while verifying firmware signature.",
|
||||
"5367acff78": "Signature Status Unavailable",
|
||||
"634aac26af": "Unable to retrieve signature verification status.",
|
||||
"77de342f39": "Signature Verified",
|
||||
"20ac4a17cc": "Firmware signature has been verified and is valid.",
|
||||
"36a41c937c": "No video signal",
|
||||
"d34da01de2": "Enable paste shortcut",
|
||||
"2b1a1676d1": "Copy text from your client to the remote host",
|
||||
"604c45fbf2": "The following characters will not be pasted:",
|
||||
"a7eb9efa0b": "Sending text using keyboard layout:",
|
||||
"2593d0a3d5": "Confirm paste",
|
||||
"ac7e2a9783": "Enable OCR shortcut",
|
||||
"f529c51ee6": "OCR",
|
||||
"607440855c": "Open OCR selection mode on the video area",
|
||||
"c3bf447eab": "Open",
|
||||
"a0e3947a02": "Macros",
|
||||
"276043dbf0": "Create a new keyboard macro",
|
||||
"9605ef9593": "Modify your keyboard macro",
|
||||
@@ -487,6 +565,7 @@
|
||||
"21d104a54f": "Processing...",
|
||||
"9844086d90": "No SD Card Detected",
|
||||
"b56e598918": "SD Card Mount Failed",
|
||||
"d646589704": "Choose the file system for MicroSD formatting",
|
||||
"16eb8ed6c8": "Format MicroSD Card",
|
||||
"a63d5e0260": "Manage Shared Folders in KVM MicroSD Card",
|
||||
"1d50425f88": "Manage Shared Folders in KVM Storage",
|
||||
@@ -498,10 +577,15 @@
|
||||
"8bf8854beb": "of",
|
||||
"53e61336bb": "results",
|
||||
"d1f5a81904": "Unmount MicroSD Card",
|
||||
"827048afc2": "Formatting the SD card will erase all data. Continue?",
|
||||
"5874cf46ff": "SD card formatted successfully",
|
||||
"7dc25305d4": "Encodec Type",
|
||||
"41d263a988": "Stream Quality",
|
||||
"d8d7a5377b": "RC Control",
|
||||
"a09ff5b350": "Adjust rate control QP settings for better balance between quality and bitrate",
|
||||
"b1f9d95e72": "StepQp",
|
||||
"bf1af7559b": "MinQp",
|
||||
"6e4e284fcc": "MinIQp",
|
||||
"df1b8f72f2": "DetlpQp",
|
||||
"41f5283941": "NPU Application",
|
||||
"466990072d": "Enable NPU to Object Detection",
|
||||
"a6c2e30b8e": "Video Enhancement",
|
||||
@@ -518,6 +602,8 @@
|
||||
"85a003df9b": "EDID File",
|
||||
"5c7a666766": "Set Custom EDID",
|
||||
"7dad0ba758": "Restore to default",
|
||||
"7b2fb72a68": "RC Advanced Config",
|
||||
"827048afc2": "Formatting the SD card will erase all data. Continue?",
|
||||
"556c7553f1": "KVM MicroSD Card Mount",
|
||||
"b99cf1ecb7": "Manage and mount images from MicroSD card",
|
||||
"0a01e80566": "Mounted from KVM storage",
|
||||
@@ -571,23 +657,5 @@
|
||||
"65f1314580": "Confirm your password",
|
||||
"af21497286": "Set Password",
|
||||
"c3f88872d6": "This password will be used to secure your device data and protect against unauthorized access.",
|
||||
"06a7b3bf6e": "All data remains on your local device.",
|
||||
"d6d56d5972": "WebRTC Servers",
|
||||
"8bea04c48e": "STUN and TURN servers used for peer connections",
|
||||
"4cd48aed7f": "STUN server saved",
|
||||
"f6f10b4517": "TURN servers saved",
|
||||
"d235995f96": "STUN Server",
|
||||
"fc1bd2c935": "Public STUN server for NAT traversal",
|
||||
"289929755b": "Restore Default",
|
||||
"0268827609": "TURN Servers",
|
||||
"b3c14a0273": "Used as relay when direct peer-to-peer connection fails",
|
||||
"bbc48fb751": "No TURN servers configured",
|
||||
"f6039d44b2": "Username",
|
||||
"03bc142e64": "Credential",
|
||||
"ca3e8baee9": "Add TURN Server",
|
||||
"0acde1b3e3": "Save TURN Servers",
|
||||
"6f20995c95": "Failed to load WebRTC servers",
|
||||
"6ef7ce5b80": "Failed to save STUN",
|
||||
"4b5d050e51": "Failed to save TURN",
|
||||
"aee9784c03": "Unknown error"
|
||||
}
|
||||
"06a7b3bf6e": "All data remains on your local device."
|
||||
}
|
||||
@@ -104,6 +104,14 @@
|
||||
"f9099fc033": "重订 DHCP 租约",
|
||||
"6e188f5984": "IPv6 信息",
|
||||
"cfdffa4fc7": "本地链路",
|
||||
"a588b1abc5": "已复制",
|
||||
"c5505be6c3": "未检测到文本",
|
||||
"a29aaf6603": "OCR 失败",
|
||||
"dc67ba5f40": "拖动选择文本区域",
|
||||
"b603b043e8": "复制文本",
|
||||
"f5f78c501b": "正在识别文本...",
|
||||
"5df17e67f5": "复制前请检查识别出的文本。",
|
||||
"4dfb4a614f": "请等待 OCR 运行完成。",
|
||||
"d6e24388b4": "继续上传",
|
||||
"62a5e49088": "隐藏",
|
||||
"b34e855501": "USB拓展功能",
|
||||
@@ -173,6 +181,24 @@
|
||||
"c40a72ad93": "KVM 终端",
|
||||
"dd110018d2": "串口控制台",
|
||||
"7b277018e4": "未连接",
|
||||
"02d2f33ec9": "重新初始化 USB 设备",
|
||||
"c8e875e1c9": "版本管理器",
|
||||
"63a6a88c06": "刷新",
|
||||
"d15f6e3312": "隐藏安装操作",
|
||||
"2b9b84a087": "显示安装操作",
|
||||
"81dfff9d6f": "安装状态",
|
||||
"98dd43dfae": "已安装",
|
||||
"ddd8eef6f8": "未安装",
|
||||
"e2dc83997b": "检测到的版本",
|
||||
"e3cc7e7df9": "系统架构",
|
||||
"bc56777902": "发布版本",
|
||||
"c319e3982f": "发布资源",
|
||||
"06933067aa": "更新",
|
||||
"a27dfe7717": "卸载",
|
||||
"349838fb1d": "安装",
|
||||
"4a0764788d": "安装任务",
|
||||
"46b5f8c58b": "进度",
|
||||
"5e4caae72b": "已安装版本",
|
||||
"bf733d8a93": "访问",
|
||||
"70e23e7d6f": "管理设备的访问控制",
|
||||
"509820290d": "本地",
|
||||
@@ -195,6 +221,8 @@
|
||||
"efd3cc702e": "启用密码",
|
||||
"8f1e77e0d2": "更改密码",
|
||||
"3d0de21428": "更新设备访问密码",
|
||||
"d6d56d5972": "WebRTC 服务器",
|
||||
"8bea04c48e": "用于点对点连接的 STUN 和 TURN 服务器",
|
||||
"f8508f576c": "远程",
|
||||
"a8bb6f5f9f": "管理远程访问设备的方式",
|
||||
"0b86461350": "TailScale 使用 xEdge 服务器",
|
||||
@@ -267,7 +295,6 @@
|
||||
"324118a672": "输入",
|
||||
"29c2c02a36": "输出",
|
||||
"67d2f6740a": "转发",
|
||||
"63a6a88c06": "刷新",
|
||||
"a4d3b161ce": "提交",
|
||||
"ec211f7c20": "添加",
|
||||
"5320550175": "链",
|
||||
@@ -288,6 +315,22 @@
|
||||
"64ae5dd047": "目标端口",
|
||||
"fbb3878eb7": "提交防火墙策略?",
|
||||
"1c17a7e15b": "警告:调整某些策略可能会导致网络地址丢失,导致设备不可用。",
|
||||
"6f20995c95": "加载 WebRTC 服务器失败",
|
||||
"aee9784c03": "未知错误",
|
||||
"6ef7ce5b80": "保存 STUN 失败",
|
||||
"4cd48aed7f": "STUN 服务器已保存",
|
||||
"4b5d050e51": "保存 TURN 失败",
|
||||
"f6f10b4517": "TURN 服务器已保存",
|
||||
"d235995f96": "STUN 服务器",
|
||||
"fc1bd2c935": "用于 NAT 穿透的公共 STUN 服务器",
|
||||
"289929755b": "恢复默认",
|
||||
"0268827609": "TURN 服务器",
|
||||
"b3c14a0273": "当直接点对点连接失败时用作中继",
|
||||
"bbc48fb751": "未配置 TURN 服务器",
|
||||
"f6039d44b2": "用户名",
|
||||
"03bc142e64": "凭据",
|
||||
"ca3e8baee9": "添加 TURN 服务器",
|
||||
"0acde1b3e3": "保存 TURN 服务器",
|
||||
"867cee98fd": "密码不一致",
|
||||
"9864ff9420": "请输入旧密码",
|
||||
"14a714ab22": "请输入新密码",
|
||||
@@ -328,6 +371,12 @@
|
||||
"3369c97f56": "输入您的 SSH 公钥",
|
||||
"81bafb2833": "默认 SSH 用户是 ",
|
||||
"7a941a0f87": "更新 SSH 密钥",
|
||||
"d876ff8da6": "API 密钥",
|
||||
"96164f17cf": "用于 MCP 和 REST API 认证的 API 密钥",
|
||||
"538ce1893b": "输入 API 密钥或留空以自动生成",
|
||||
"a55c6d580b": "用于认证 MCP 和 REST API 请求。",
|
||||
"e85c388332": "保存 API 密钥",
|
||||
"927c25953b": "生成新密钥",
|
||||
"fdad65b7be": "强制 HTTP 传输",
|
||||
"e033b5e2a3": "强制使用 HTTP 传输数据替代 WebRTC",
|
||||
"bda22ca687": "USB 检测增强",
|
||||
@@ -338,7 +387,6 @@
|
||||
"020b92cfbb": "启用 USB 复用",
|
||||
"9f55f64b0f": "USB 设备重新初始化",
|
||||
"40dc677a89": "重新初始化 USB 设备配置",
|
||||
"02d2f33ec9": "重新初始化 USB 设备",
|
||||
"f5ddf02991": "重启系统",
|
||||
"1dbbf194af": "重启设备系统",
|
||||
"1de72c4fc6": "重启",
|
||||
@@ -347,6 +395,10 @@
|
||||
"f43c0398a4": "重置配置",
|
||||
"0031dbef48": "重置配置,这将使你退出登录。部分配置重启后生效。",
|
||||
"0d784092e8": "重置配置",
|
||||
"115082e888": "清除 API 密钥?",
|
||||
"78fcaed30d": "将 API 密钥留空将自动生成一个新的随机密钥。",
|
||||
"81e8b4cd6b": "请确保在保存后使用新密钥更新您的客户端。",
|
||||
"211730be68": "生成新密钥",
|
||||
"a776e925bf": "重启系统?",
|
||||
"1f070051ff": "你确定重启系统吗?",
|
||||
"f1a79f466e": "设备将重启,你将从 Web 界面断开连接。",
|
||||
@@ -403,6 +455,12 @@
|
||||
"ef64a3770e": "控制 mDNS(多播 DNS)运行模式",
|
||||
"be8226fe0c": "时间同步",
|
||||
"7e06bd28a6": "配置时间同步设置",
|
||||
"a2323452ba": "HTTP 代理",
|
||||
"7fedd1ea53": "配置程序 HTTP 代理(可选)",
|
||||
"a30d487cba": "HTTPS 代理",
|
||||
"3f4c7e23cb": "配置程序 HTTPS 代理(可选)",
|
||||
"48d941841f": "ALL 代理",
|
||||
"3a2cd1e4a7": "配置程序 ALL 代理(可选)",
|
||||
"d4dccb8ca2": "保存设置",
|
||||
"8750a898cb": "IPv4 模式",
|
||||
"72c2543791": "配置 IPv4 模式",
|
||||
@@ -444,7 +502,16 @@
|
||||
"5b404b3c98": "后台更新",
|
||||
"3723a3f846": "系统已更新到最新版本",
|
||||
"a6b8796d51": "您的系统已运行最新版本。当前没有可用的更新。",
|
||||
"a8d2a89696": "签名文件缺失",
|
||||
"480f05b41b": "当前固件缺少签名文件,无法完全验证完整性。",
|
||||
"323ebc9620": "签名验证失败",
|
||||
"21355c9ecb": "签名文件存在但与固件不匹配,可能存在篡改。",
|
||||
"0b54a6c322": "未嵌入公钥",
|
||||
"9beb932d5a": "此版本未嵌入 OTA 公钥,无法进行签名验证。",
|
||||
"7c81553358": "再次检查",
|
||||
"3b5f9a1f01": "更新签名",
|
||||
"d25bfbb978": "更新 kvm_app 的签名到最新版本。如果当前版本不是最新版本,签名验证将会失败。",
|
||||
"1bdd158a19": "签名更新结果",
|
||||
"217b416896": "更新可用",
|
||||
"f00af8c98f": "新的更新可用,以增强系统性能和提高兼容性。我们建议更新以确保一切正常运行。",
|
||||
"8977c3f0b7": "下载代理加速前缀",
|
||||
@@ -453,11 +520,22 @@
|
||||
"cffae9918d": "更新错误",
|
||||
"49cba7cadf": "更新设备时发生错误。请稍后重试。",
|
||||
"d849d5b330": "错误详情:",
|
||||
"2b2f7a6d7c": "按下 Ctrl+V 直接将本地剪贴板内容发送到远端主机",
|
||||
"fcfc8da1a3": "正在验证签名...",
|
||||
"4e16083ef8": "请等待固件签名验证完成。",
|
||||
"5367acff78": "签名状态不可用",
|
||||
"634aac26af": "无法获取签名验证状态。",
|
||||
"77de342f39": "签名已验证",
|
||||
"20ac4a17cc": "固件签名已验证且有效。",
|
||||
"36a41c937c": "无视频信号",
|
||||
"d34da01de2": "启用粘贴快捷键",
|
||||
"2b1a1676d1": "将文本从您的客户端复制到远程主机",
|
||||
"604c45fbf2": "以下字符将不会被粘贴:",
|
||||
"a7eb9efa0b": "使用键盘布局发送文本:",
|
||||
"2593d0a3d5": "确认粘贴",
|
||||
"ac7e2a9783": "启用 OCR 快捷键",
|
||||
"f529c51ee6": "OCR",
|
||||
"607440855c": "在视频区域打开 OCR 选择模式",
|
||||
"c3bf447eab": "打开",
|
||||
"a0e3947a02": "宏",
|
||||
"276043dbf0": "创建新的键盘宏",
|
||||
"9605ef9593": "修改键盘宏",
|
||||
@@ -487,6 +565,7 @@
|
||||
"21d104a54f": "处理中...",
|
||||
"9844086d90": "未检测到 SD 卡",
|
||||
"b56e598918": "SD 卡挂载失败",
|
||||
"d646589704": "选择 MicroSD 格式化的文件系统",
|
||||
"16eb8ed6c8": "格式化 MicroSD 卡",
|
||||
"a63d5e0260": "管理 KVM MicroSD Card 的共享文件夹",
|
||||
"1d50425f88": "管理 KVM 存储中的共享文件夹",
|
||||
@@ -498,10 +577,15 @@
|
||||
"8bf8854beb": "共",
|
||||
"53e61336bb": "条结果",
|
||||
"d1f5a81904": "卸载 MicroSD 卡",
|
||||
"827048afc2": "格式化 SD 卡会清除所有数据。是否继续?",
|
||||
"5874cf46ff": "SD 卡格式化成功",
|
||||
"7dc25305d4": "视频编码类型",
|
||||
"41d263a988": "视频质量",
|
||||
"d8d7a5377b": "RC 控制",
|
||||
"a09ff5b350": "调整码率控制 QP 参数,在质量和码率之间取得更好的平衡",
|
||||
"b1f9d95e72": "StepQp",
|
||||
"bf1af7559b": "MinQp",
|
||||
"6e4e284fcc": "MinIQp",
|
||||
"df1b8f72f2": "DetlpQp",
|
||||
"41f5283941": "NPU 应用",
|
||||
"466990072d": "启用 NPU 以进行物体检测",
|
||||
"a6c2e30b8e": "视频增强",
|
||||
@@ -518,6 +602,8 @@
|
||||
"85a003df9b": "EDID 文件",
|
||||
"5c7a666766": "设置自定义 EDID",
|
||||
"7dad0ba758": "恢复默认",
|
||||
"7b2fb72a68": "RC 高级配置",
|
||||
"827048afc2": "格式化 SD 卡会清除所有数据。是否继续?",
|
||||
"556c7553f1": "从 KVM MicroSD 卡挂载",
|
||||
"b99cf1ecb7": "从 MicroSD 卡中管理和挂载镜像",
|
||||
"0a01e80566": "已从 KVM 存储挂载",
|
||||
@@ -571,23 +657,5 @@
|
||||
"65f1314580": "确认您的密码",
|
||||
"af21497286": "设置密码",
|
||||
"c3f88872d6": "此密码将用于保护您的设备数据并防止未经授权的访问。",
|
||||
"06a7b3bf6e": "所有数据保留在您的本地设备上。",
|
||||
"d6d56d5972": "WebRTC 服务器",
|
||||
"8bea04c48e": "用于点对点连接的 STUN 和 TURN 服务器",
|
||||
"4cd48aed7f": "STUN 服务器已保存",
|
||||
"f6f10b4517": "TURN 服务器已保存",
|
||||
"d235995f96": "STUN 服务器",
|
||||
"fc1bd2c935": "用于 NAT 穿透的公共 STUN 服务器",
|
||||
"289929755b": "恢复默认",
|
||||
"0268827609": "TURN 服务器",
|
||||
"b3c14a0273": "当直接点对点连接失败时用作中继",
|
||||
"bbc48fb751": "未配置 TURN 服务器",
|
||||
"f6039d44b2": "用户名",
|
||||
"03bc142e64": "凭据",
|
||||
"ca3e8baee9": "添加 TURN 服务器",
|
||||
"0acde1b3e3": "保存 TURN 服务器",
|
||||
"6f20995c95": "加载 WebRTC 服务器失败",
|
||||
"6ef7ce5b80": "保存 STUN 失败",
|
||||
"4b5d050e51": "保存 TURN 失败",
|
||||
"aee9784c03": "未知错误"
|
||||
}
|
||||
"06a7b3bf6e": "所有数据保留在您的本地设备上。"
|
||||
}
|
||||
Reference in New Issue
Block a user