mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-08-29 18:31:33 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
749dc3d865 | ||
|
|
8f7501203b | ||
|
|
46d4626f03 | ||
|
|
80191409e8 | ||
|
|
a6874cea95 |
@@ -0,0 +1,23 @@
|
||||
name: Redirect issues
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
close:
|
||||
if: github.event.issue.author_association != 'OWNER' && github.event.issue.author_association != 'COLLABORATOR'
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
steps:
|
||||
- uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const n = context.issue.number;
|
||||
await github.rest.issues.createComment({
|
||||
...context.repo, issue_number: n,
|
||||
body: "Do not create issues here. Use the dedicated support repo and issue template system: https://github.com/Termix-SSH/Support"
|
||||
});
|
||||
await github.rest.issues.update({ ...context.repo, issue_number: n, state: "closed", state_reason: "not_planned" });
|
||||
await github.rest.issues.lock({ ...context.repo, issue_number: n, lock_reason: "off-topic" });
|
||||
Generated
+122
-118
@@ -9,7 +9,7 @@
|
||||
"version": "2.7.1",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.116.0",
|
||||
"@anthropic-ai/sdk": "^0.120.0",
|
||||
"@simplewebauthn/browser": "^13.3.0",
|
||||
"@simplewebauthn/server": "^13.3.2",
|
||||
"@tanstack/react-virtual": "^3.14.9",
|
||||
@@ -28,7 +28,7 @@
|
||||
"express": "^5.2.1",
|
||||
"guacamole-lite": "^1.2.0",
|
||||
"jose": "^6.2.8",
|
||||
"js-yaml": "^5.2.3",
|
||||
"js-yaml": "^5.3.0",
|
||||
"jsonwebtoken": "^9.0.3",
|
||||
"jszip": "^3.10.1",
|
||||
"ldapjs": "^3.0.7",
|
||||
@@ -37,7 +37,7 @@
|
||||
"mysql2": "^3.23.2",
|
||||
"nanoid": "^6.0.1",
|
||||
"node-pty": "^1.1.0",
|
||||
"pg": "^8.22.0",
|
||||
"pg": "^8.23.0",
|
||||
"qrcode": "^1.5.4",
|
||||
"serialport": "^13.0.0",
|
||||
"sharp": "^0.35.3",
|
||||
@@ -49,7 +49,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@codemirror/autocomplete": "^6.20.3",
|
||||
"@codemirror/commands": "^6.10.4",
|
||||
"@codemirror/commands": "^6.11.0",
|
||||
"@codemirror/search": "^6.7.1",
|
||||
"@codemirror/theme-one-dark": "^6.1.3",
|
||||
"@codemirror/view": "^6.43.7",
|
||||
@@ -93,8 +93,8 @@
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"@types/multer": "^2.2.0",
|
||||
"@types/node": "^26.1.2",
|
||||
"@types/pg": "^8.20.3",
|
||||
"@types/node": "^26.2.0",
|
||||
"@types/pg": "^8.23.1",
|
||||
"@types/qrcode": "^1.5.6",
|
||||
"@types/react": "^19.2.18",
|
||||
"@types/react-dom": "^19.2.4",
|
||||
@@ -104,7 +104,7 @@
|
||||
"@uiw/codemirror-extensions-langs": "^4.25.11",
|
||||
"@uiw/codemirror-theme-github": "^4.25.11",
|
||||
"@uiw/react-codemirror": "^4.25.11",
|
||||
"@vitejs/plugin-react": "^6.0.5",
|
||||
"@vitejs/plugin-react": "^6.1.0",
|
||||
"@vitest/coverage-v8": "^4.1.10",
|
||||
"@vitest/ui": "^4.1.10",
|
||||
"@xterm/addon-clipboard": "^0.2.0",
|
||||
@@ -119,31 +119,31 @@
|
||||
"concurrently": "^10.0.4",
|
||||
"cytoscape": "^3.34.0",
|
||||
"drizzle-kit": "^0.31.10",
|
||||
"electron": "^43.2.0",
|
||||
"electron": "^43.4.1",
|
||||
"electron-builder": "^26.15.3",
|
||||
"eslint": "^10.8.0",
|
||||
"eslint-plugin-react-hooks": "^7.1.1",
|
||||
"eslint-plugin-react-refresh": "^0.5.3",
|
||||
"eslint-plugin-unused-imports": "^4.4.1",
|
||||
"globals": "^17.8.0",
|
||||
"globals": "^17.11.0",
|
||||
"guacamole-common-js": "^1.5.0",
|
||||
"husky": "^9.1.7",
|
||||
"i18next": "^26.3.6",
|
||||
"i18next": "^26.4.0",
|
||||
"i18next-browser-languagedetector": "^8.2.1",
|
||||
"jsdom": "^30.0.1",
|
||||
"lint-staged": "^17.2.0",
|
||||
"lucide-react": "^1.28.0",
|
||||
"lucide-react": "^1.33.0",
|
||||
"prettier": "3.9.6",
|
||||
"radix-ui": "^1.6.7",
|
||||
"react": "^19.2.8",
|
||||
"react-cytoscapejs": "^2.0.0",
|
||||
"react-dom": "^19.2.8",
|
||||
"react-h5-audio-player": "^3.10.2",
|
||||
"react-hook-form": "^7.84.0",
|
||||
"react-hook-form": "^7.85.0",
|
||||
"react-i18next": "^17.0.11",
|
||||
"react-icons": "^5.7.0",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-pdf": "^10.4.1",
|
||||
"react-pdf": "^10.5.0",
|
||||
"react-photo-view": "^1.2.7",
|
||||
"react-syntax-highlighter": "^16.1.1",
|
||||
"react-xtermjs": "^1.0.10",
|
||||
@@ -153,7 +153,7 @@
|
||||
"tailwindcss": "^4.2.4",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "~6.0.3",
|
||||
"typescript-eslint": "^8.66.0",
|
||||
"typescript-eslint": "^8.67.0",
|
||||
"vite": "^8.2.0",
|
||||
"vite-plugin-svgr": "^5.2.0",
|
||||
"vitest": "^4.1.10"
|
||||
@@ -171,9 +171,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@anthropic-ai/sdk": {
|
||||
"version": "0.116.0",
|
||||
"resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.116.0.tgz",
|
||||
"integrity": "sha512-4UEapYQ+epLEMsAuLZDvW8ExVSOtHD8a7zTyLzhw0H9RXJ1eilPgmqhjwgcdg22diwx13spw6fJ4rONZ+bS7Ww==",
|
||||
"version": "0.120.0",
|
||||
"resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.120.0.tgz",
|
||||
"integrity": "sha512-ZlvmNFT/iIF6JD13rxbbMWD8nvGR0RaUp6yMQnoc+4Af0YjVVe/bIdW1XSQQsoxXAtg1NaT6Vak0LKFlJ4d37Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"json-schema-to-ts": "^3.1.1",
|
||||
@@ -625,9 +625,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/commands": {
|
||||
"version": "6.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.4.tgz",
|
||||
"integrity": "sha512-Ryk9y9T0FFVF0cUGhAknveAyUOl/A1qReTFi+qPKtOh2Z9F4AUBz3XOrYD4ZEgZirdugVzHvd/2/Wcwy5OliTg==",
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.11.0.tgz",
|
||||
"integrity": "sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -7266,18 +7266,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "26.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz",
|
||||
"integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==",
|
||||
"version": "26.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz",
|
||||
"integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~8.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/pg": {
|
||||
"version": "8.20.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.20.3.tgz",
|
||||
"integrity": "sha512-4Tvg+HO6+oQaAkpT8GTYoSExzpGGZz532GXgbbCElWJQeQdMozBWxEKNBhJJpHFjWXsMxqPbyypvj/89FWNoSQ==",
|
||||
"version": "8.23.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.23.1.tgz",
|
||||
"integrity": "sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -7409,17 +7409,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz",
|
||||
"integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz",
|
||||
"integrity": "sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/regexpp": "^4.12.2",
|
||||
"@typescript-eslint/scope-manager": "8.66.0",
|
||||
"@typescript-eslint/type-utils": "8.66.0",
|
||||
"@typescript-eslint/utils": "8.66.0",
|
||||
"@typescript-eslint/visitor-keys": "8.66.0",
|
||||
"@typescript-eslint/scope-manager": "8.67.0",
|
||||
"@typescript-eslint/type-utils": "8.67.0",
|
||||
"@typescript-eslint/utils": "8.67.0",
|
||||
"@typescript-eslint/visitor-keys": "8.67.0",
|
||||
"ignore": "^7.0.5",
|
||||
"natural-compare": "^1.4.0",
|
||||
"ts-api-utils": "^2.5.0"
|
||||
@@ -7432,7 +7432,7 @@
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@typescript-eslint/parser": "^8.66.0",
|
||||
"@typescript-eslint/parser": "^8.67.0",
|
||||
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
|
||||
"typescript": ">=4.8.4 <6.1.0"
|
||||
}
|
||||
@@ -7448,16 +7448,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz",
|
||||
"integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz",
|
||||
"integrity": "sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.66.0",
|
||||
"@typescript-eslint/types": "8.66.0",
|
||||
"@typescript-eslint/typescript-estree": "8.66.0",
|
||||
"@typescript-eslint/visitor-keys": "8.66.0",
|
||||
"@typescript-eslint/scope-manager": "8.67.0",
|
||||
"@typescript-eslint/types": "8.67.0",
|
||||
"@typescript-eslint/typescript-estree": "8.67.0",
|
||||
"@typescript-eslint/visitor-keys": "8.67.0",
|
||||
"debug": "^4.4.3"
|
||||
},
|
||||
"engines": {
|
||||
@@ -7473,14 +7473,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/project-service": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz",
|
||||
"integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz",
|
||||
"integrity": "sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/tsconfig-utils": "^8.66.0",
|
||||
"@typescript-eslint/types": "^8.66.0",
|
||||
"@typescript-eslint/tsconfig-utils": "^8.67.0",
|
||||
"@typescript-eslint/types": "^8.67.0",
|
||||
"debug": "^4.4.3"
|
||||
},
|
||||
"engines": {
|
||||
@@ -7495,14 +7495,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz",
|
||||
"integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz",
|
||||
"integrity": "sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.66.0",
|
||||
"@typescript-eslint/visitor-keys": "8.66.0"
|
||||
"@typescript-eslint/types": "8.67.0",
|
||||
"@typescript-eslint/visitor-keys": "8.67.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
@@ -7513,9 +7513,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/tsconfig-utils": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz",
|
||||
"integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz",
|
||||
"integrity": "sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -7530,15 +7530,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz",
|
||||
"integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz",
|
||||
"integrity": "sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.66.0",
|
||||
"@typescript-eslint/typescript-estree": "8.66.0",
|
||||
"@typescript-eslint/utils": "8.66.0",
|
||||
"@typescript-eslint/types": "8.67.0",
|
||||
"@typescript-eslint/typescript-estree": "8.67.0",
|
||||
"@typescript-eslint/utils": "8.67.0",
|
||||
"debug": "^4.4.3",
|
||||
"ts-api-utils": "^2.5.0"
|
||||
},
|
||||
@@ -7555,9 +7555,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz",
|
||||
"integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz",
|
||||
"integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -7569,16 +7569,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz",
|
||||
"integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz",
|
||||
"integrity": "sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/project-service": "8.66.0",
|
||||
"@typescript-eslint/tsconfig-utils": "8.66.0",
|
||||
"@typescript-eslint/types": "8.66.0",
|
||||
"@typescript-eslint/visitor-keys": "8.66.0",
|
||||
"@typescript-eslint/project-service": "8.67.0",
|
||||
"@typescript-eslint/tsconfig-utils": "8.67.0",
|
||||
"@typescript-eslint/types": "8.67.0",
|
||||
"@typescript-eslint/visitor-keys": "8.67.0",
|
||||
"debug": "^4.4.3",
|
||||
"minimatch": "^10.2.2",
|
||||
"semver": "^7.7.3",
|
||||
@@ -7597,16 +7597,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz",
|
||||
"integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz",
|
||||
"integrity": "sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.9.1",
|
||||
"@typescript-eslint/scope-manager": "8.66.0",
|
||||
"@typescript-eslint/types": "8.66.0",
|
||||
"@typescript-eslint/typescript-estree": "8.66.0"
|
||||
"@typescript-eslint/scope-manager": "8.67.0",
|
||||
"@typescript-eslint/types": "8.67.0",
|
||||
"@typescript-eslint/typescript-estree": "8.67.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
@@ -7621,13 +7621,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz",
|
||||
"integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz",
|
||||
"integrity": "sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.66.0",
|
||||
"@typescript-eslint/types": "8.67.0",
|
||||
"eslint-visitor-keys": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
@@ -7775,9 +7775,9 @@
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/@vitejs/plugin-react": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz",
|
||||
"integrity": "sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.0.tgz",
|
||||
"integrity": "sha512-qd2BzUBehkov86WFhg0JkEFEYyCLG9uPCe6qWTY/kRlss9OvJrOF2UbIWT7p+8IzZHkEu0DNGHc4HSv+JdDLsw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -7789,6 +7789,7 @@
|
||||
"peerDependencies": {
|
||||
"@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
|
||||
"babel-plugin-react-compiler": "^1.0.0",
|
||||
"oxc-transform-react": "^0.145.0",
|
||||
"vite": "^8.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
@@ -7797,6 +7798,9 @@
|
||||
},
|
||||
"babel-plugin-react-compiler": {
|
||||
"optional": true
|
||||
},
|
||||
"oxc-transform-react": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10250,9 +10254,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/electron": {
|
||||
"version": "43.2.0",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-43.2.0.tgz",
|
||||
"integrity": "sha512-80zvrgG7ZRXD+tD0IyLvrnN9n+veSxadMRsMaC9wKKP3iUbtC7rGM8+dVuCmOb0Rrwwv8ESW4awnUZh9Hbp1fA==",
|
||||
"version": "43.4.1",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz",
|
||||
"integrity": "sha512-5b+EuiwkgG5iRcsEL34rimgRpkYp15SsfZOa0pC5kXs0Tb82TH4n95rpQzTZa7yRCbA7tm0WoEbuBL6NaAhAcA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -11454,9 +11458,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/globals": {
|
||||
"version": "17.9.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-17.9.0.tgz",
|
||||
"integrity": "sha512-m/MvAW61QVU5VDNF1Vj8axt016h8w7L5TU1e9zlab7XIttAT2YAlCwl75K1fOqvMM9apmD7lbCIRhpfkhmxhCg==",
|
||||
"version": "17.11.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz",
|
||||
"integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -11801,9 +11805,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/i18next": {
|
||||
"version": "26.3.6",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.6.tgz",
|
||||
"integrity": "sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA==",
|
||||
"version": "26.4.0",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-26.4.0.tgz",
|
||||
"integrity": "sha512-rsmK5bFqsD1AetSFSIa43wtNR4WpvvH4p0tLEsTxkC7QTrfdFm06nbQ95bh8Og4wwaCnUEcm9DVYL2cgxitiQg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -12224,9 +12228,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/js-yaml": {
|
||||
"version": "5.2.3",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.3.tgz",
|
||||
"integrity": "sha512-n+mUVyUX5bVv7G/G2zyIHOhdxfuU1dY2NOFzTQUWiMUbFss8b57NFlgCCaggU78wSw5KVS9cllzeLyzyR+n5nw==",
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.3.0.tgz",
|
||||
"integrity": "sha512-muutsYr+e2+d3rTgUGslq5rxbBlUy3cJ61IsHag2QNDQV+7zXWjkUpmALIajhrlLlrgRUiymj6U3zUr/TMK84Q==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@@ -12964,9 +12968,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/lucide-react": {
|
||||
"version": "1.28.0",
|
||||
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.28.0.tgz",
|
||||
"integrity": "sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==",
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.33.0.tgz",
|
||||
"integrity": "sha512-MTRwMy0ZlL8Ur/vOAiJ9XGHE+kFPC7brq6MxAm0GiGXEBj0qy0jA/pG4N675oSzciO/UCdX8T+5yUQdmDeTLxg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peerDependencies": {
|
||||
@@ -14781,14 +14785,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/pg": {
|
||||
"version": "8.22.0",
|
||||
"resolved": "https://registry.npmjs.org/pg/-/pg-8.22.0.tgz",
|
||||
"integrity": "sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA==",
|
||||
"version": "8.23.0",
|
||||
"resolved": "https://registry.npmjs.org/pg/-/pg-8.23.0.tgz",
|
||||
"integrity": "sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"pg-connection-string": "^2.14.0",
|
||||
"pg-pool": "^3.14.0",
|
||||
"pg-protocol": "^1.15.0",
|
||||
"pg-protocol": "^1.16.0",
|
||||
"pg-types": "2.2.0",
|
||||
"pgpass": "1.0.5"
|
||||
},
|
||||
@@ -14839,9 +14843,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/pg-protocol": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.15.0.tgz",
|
||||
"integrity": "sha512-cq9sECI5s0+uPUXjbz8ioyPJni6RzsRib0US67i5IoTZKw8fNeYlVE7u8F4dG7vEJJtc5wdD1K189lCCUwqWTQ==",
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.16.0.tgz",
|
||||
"integrity": "sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/pg-types": {
|
||||
@@ -15596,9 +15600,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-hook-form": {
|
||||
"version": "7.84.0",
|
||||
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.84.0.tgz",
|
||||
"integrity": "sha512-+hWvQP6GLco56mDwrbU4XnHix8t1z90ltZsDIrREl+jnQFQxYLX8oAzqe/Xn8nHpmoXTY5M6oEXrAhbP1qevNQ==",
|
||||
"version": "7.85.0",
|
||||
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.85.0.tgz",
|
||||
"integrity": "sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -15686,9 +15690,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-pdf": {
|
||||
"version": "10.4.1",
|
||||
"resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.4.1.tgz",
|
||||
"integrity": "sha512-kS/35staVCBqS29verTQJQZXw7RfsRCPO3fdJoW1KXylcv7A9dw6DZ3vJXC2w+bIBgLw5FN4pOFvKSQtkQhPfA==",
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.5.0.tgz",
|
||||
"integrity": "sha512-zGKb6Ph5AYn2OfO4TS8Gg0Go3eW5K/TKy0+0FTm8EwFNbpgbuaWBZoJdYkJt+cRBCkizE9dYvqtMtHRj522Q4w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -17274,16 +17278,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript-eslint": {
|
||||
"version": "8.66.0",
|
||||
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz",
|
||||
"integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==",
|
||||
"version": "8.67.0",
|
||||
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.67.0.tgz",
|
||||
"integrity": "sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "8.66.0",
|
||||
"@typescript-eslint/parser": "8.66.0",
|
||||
"@typescript-eslint/typescript-estree": "8.66.0",
|
||||
"@typescript-eslint/utils": "8.66.0"
|
||||
"@typescript-eslint/eslint-plugin": "8.67.0",
|
||||
"@typescript-eslint/parser": "8.67.0",
|
||||
"@typescript-eslint/typescript-estree": "8.67.0",
|
||||
"@typescript-eslint/utils": "8.67.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
|
||||
+14
-14
@@ -46,7 +46,7 @@
|
||||
"schema:migrations": "drizzle-kit generate --config=drizzle.config.sqlite.ts && drizzle-kit generate --config=drizzle.config.pg.ts && drizzle-kit generate --config=drizzle.config.mysql.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.116.0",
|
||||
"@anthropic-ai/sdk": "^0.120.0",
|
||||
"@simplewebauthn/browser": "^13.3.0",
|
||||
"@simplewebauthn/server": "^13.3.2",
|
||||
"@tanstack/react-virtual": "^3.14.9",
|
||||
@@ -65,7 +65,7 @@
|
||||
"express": "^5.2.1",
|
||||
"guacamole-lite": "^1.2.0",
|
||||
"jose": "^6.2.8",
|
||||
"js-yaml": "^5.2.3",
|
||||
"js-yaml": "^5.3.0",
|
||||
"jsonwebtoken": "^9.0.3",
|
||||
"jszip": "^3.10.1",
|
||||
"ldapjs": "^3.0.7",
|
||||
@@ -74,7 +74,7 @@
|
||||
"mysql2": "^3.23.2",
|
||||
"nanoid": "^6.0.1",
|
||||
"node-pty": "^1.1.0",
|
||||
"pg": "^8.22.0",
|
||||
"pg": "^8.23.0",
|
||||
"qrcode": "^1.5.4",
|
||||
"serialport": "^13.0.0",
|
||||
"sharp": "^0.35.3",
|
||||
@@ -86,7 +86,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@codemirror/autocomplete": "^6.20.3",
|
||||
"@codemirror/commands": "^6.10.4",
|
||||
"@codemirror/commands": "^6.11.0",
|
||||
"@codemirror/search": "^6.7.1",
|
||||
"@codemirror/theme-one-dark": "^6.1.3",
|
||||
"@codemirror/view": "^6.43.7",
|
||||
@@ -130,8 +130,8 @@
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"@types/multer": "^2.2.0",
|
||||
"@types/node": "^26.1.2",
|
||||
"@types/pg": "^8.20.3",
|
||||
"@types/node": "^26.2.0",
|
||||
"@types/pg": "^8.23.1",
|
||||
"@types/qrcode": "^1.5.6",
|
||||
"@types/react": "^19.2.18",
|
||||
"@types/react-dom": "^19.2.4",
|
||||
@@ -141,7 +141,7 @@
|
||||
"@uiw/codemirror-extensions-langs": "^4.25.11",
|
||||
"@uiw/codemirror-theme-github": "^4.25.11",
|
||||
"@uiw/react-codemirror": "^4.25.11",
|
||||
"@vitejs/plugin-react": "^6.0.5",
|
||||
"@vitejs/plugin-react": "^6.1.0",
|
||||
"@vitest/coverage-v8": "^4.1.10",
|
||||
"@vitest/ui": "^4.1.10",
|
||||
"@xterm/addon-clipboard": "^0.2.0",
|
||||
@@ -156,31 +156,31 @@
|
||||
"concurrently": "^10.0.4",
|
||||
"cytoscape": "^3.34.0",
|
||||
"drizzle-kit": "^0.31.10",
|
||||
"electron": "^43.2.0",
|
||||
"electron": "^43.4.1",
|
||||
"electron-builder": "^26.15.3",
|
||||
"eslint": "^10.8.0",
|
||||
"eslint-plugin-react-hooks": "^7.1.1",
|
||||
"eslint-plugin-react-refresh": "^0.5.3",
|
||||
"eslint-plugin-unused-imports": "^4.4.1",
|
||||
"globals": "^17.8.0",
|
||||
"globals": "^17.11.0",
|
||||
"guacamole-common-js": "^1.5.0",
|
||||
"husky": "^9.1.7",
|
||||
"i18next": "^26.3.6",
|
||||
"i18next": "^26.4.0",
|
||||
"i18next-browser-languagedetector": "^8.2.1",
|
||||
"jsdom": "^30.0.1",
|
||||
"lint-staged": "^17.2.0",
|
||||
"lucide-react": "^1.28.0",
|
||||
"lucide-react": "^1.33.0",
|
||||
"prettier": "3.9.6",
|
||||
"radix-ui": "^1.6.7",
|
||||
"react": "^19.2.8",
|
||||
"react-cytoscapejs": "^2.0.0",
|
||||
"react-dom": "^19.2.8",
|
||||
"react-h5-audio-player": "^3.10.2",
|
||||
"react-hook-form": "^7.84.0",
|
||||
"react-hook-form": "^7.85.0",
|
||||
"react-i18next": "^17.0.11",
|
||||
"react-icons": "^5.7.0",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-pdf": "^10.4.1",
|
||||
"react-pdf": "^10.5.0",
|
||||
"react-photo-view": "^1.2.7",
|
||||
"react-syntax-highlighter": "^16.1.1",
|
||||
"react-xtermjs": "^1.0.10",
|
||||
@@ -190,7 +190,7 @@
|
||||
"tailwindcss": "^4.2.4",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "~6.0.3",
|
||||
"typescript-eslint": "^8.66.0",
|
||||
"typescript-eslint": "^8.67.0",
|
||||
"vite": "^8.2.0",
|
||||
"vite-plugin-svgr": "^5.2.0",
|
||||
"vitest": "^4.1.10"
|
||||
|
||||
@@ -2053,7 +2053,7 @@
|
||||
"failedToUploadFile": "Caricamento file non riuscito",
|
||||
"uploadingFolderFiles": "Caricamento del/dei file {{count}} in corso...",
|
||||
"uploadedFolderFiles": "File caricati con successo {{count}}",
|
||||
"uploadedFolderPartial": "Uploaded {{uploaded}} file(s), {{failed}} failed",
|
||||
"uploadedFolderPartial": "Caricamento del/i file {{uploaded}} non riuscito/i {{failed}}",
|
||||
"fileDownloadedSuccessfully": "File \"{{name}}\" scaricato con successo",
|
||||
"failedToDownloadFile": "Scaricamento file non riuscito",
|
||||
"fileCreatedSuccessfully": "File \"{{name}}\" creato con successo",
|
||||
|
||||
@@ -111,16 +111,16 @@
|
||||
"filterTypeKey": "SSH 密钥",
|
||||
"filterTagsGroup": "标签",
|
||||
"copyDeployCommand": "复制部署命令",
|
||||
"cloneCredentialAction": "克隆凭证",
|
||||
"cloneCredentialAction": "克隆凭据",
|
||||
"clonedCredential": "克隆 {{name}}",
|
||||
"clonedCredentialName": "{{name}} (复制)",
|
||||
"clonedCredentialName": "{{name}} (副本)",
|
||||
"deleteCredentialAction": "删除凭据",
|
||||
"editCredentialAction": "编辑凭证",
|
||||
"failedToCloneCredential": "克隆凭证失败",
|
||||
"failedToDeleteCredential": "删除凭据失败",
|
||||
"idBadge": "ID",
|
||||
"keyBadge": "钥匙",
|
||||
"passwordBadge": "公共工程部",
|
||||
"keyBadge": "密钥",
|
||||
"passwordBadge": "密码",
|
||||
"renameFolder": "重命名文件夹",
|
||||
"deleteFolder": "删除文件夹",
|
||||
"deleteCredentialConfirm": "删除凭证“{{name}}”?",
|
||||
@@ -135,26 +135,26 @@
|
||||
"sortManual": "手动(拖动重新排序)",
|
||||
"customizeSidebar": "自定义侧边栏",
|
||||
"customizeSidebarDescription": "选择凭证列表的外观和行为方式。",
|
||||
"customizeDensityTitle": "密度",
|
||||
"densityComfortableDesc": "每行一条凭证,并附上详细信息。",
|
||||
"densityCompactDesc": "较长的列表,每条凭证占一行。",
|
||||
"displayDensityComfortable": "舒服的",
|
||||
"displayDensityCompact": "袖珍的",
|
||||
"customizeBehaviorTitle": "行为",
|
||||
"customizeDensityTitle": "显示密度",
|
||||
"densityComfortableDesc": "每个凭证独占一行,展示更多详细信息。",
|
||||
"densityCompactDesc": "每行一条凭证,适用于较长的列表。",
|
||||
"displayDensityComfortable": "宽松",
|
||||
"displayDensityCompact": "紧凑",
|
||||
"customizeBehaviorTitle": "交互",
|
||||
"showCredentialTags": "显示标签",
|
||||
"showCredentialTagsDesc": "在凭证列表中显示标签",
|
||||
"actionsVisibility": "凭证操作",
|
||||
"actionsVisibilityDesc": "当每个凭证上的连接和管理按钮出现时",
|
||||
"actionsAlways": "始终可见",
|
||||
"actionsOnly": "仅连接,其余操作请点击",
|
||||
"actionsHover": "鼠标悬停时显示",
|
||||
"actionsClick": "点击显示",
|
||||
"actionsVisibility": "显示操作按钮",
|
||||
"actionsVisibilityDesc": "设置连接与管理按钮的显示时机",
|
||||
"actionsAlways": "始终显示",
|
||||
"actionsOnly": "仅显示“连接”,其余点击显示",
|
||||
"actionsHover": "悬停时显示",
|
||||
"actionsClick": "点击时显示",
|
||||
"customizeSortHint": "排序方式设置在工具栏的排序菜单中。",
|
||||
"expandActions": "展开操作",
|
||||
"collapseActions": "坍塌动作",
|
||||
"backToHosts": "返回主持人",
|
||||
"backToCredentials": "返回凭证",
|
||||
"searchCredentialsPlaceholder": "搜索凭证…",
|
||||
"backToHosts": "返回主机列表",
|
||||
"backToCredentials": "返回凭据列表",
|
||||
"searchCredentialsPlaceholder": "搜索凭据…",
|
||||
"deployDialogTitle": "部署 SSH 密钥",
|
||||
"deployDialogDesc": "将 {{name}} 部署到主机的 authorized_keys 中。",
|
||||
"targetHostLabel": "目标主机",
|
||||
@@ -165,7 +165,7 @@
|
||||
"failedToDeployKey": "密钥部署失败",
|
||||
"folderRenamedTo": "文件夹已重命名为 “{{name}}”",
|
||||
"failedToRenameFolder": "重命名文件夹失败",
|
||||
"arrangeUnlockedSwitchedToManual": "已切换至人工分拣,因此您的订单不会更改。",
|
||||
"arrangeUnlockedSwitchedToManual": "已切换至手动排序以保留您的自定义顺序",
|
||||
"arrangeUnlocked": "解锁拖动即可重新排列"
|
||||
},
|
||||
"homepage": {
|
||||
@@ -457,7 +457,7 @@
|
||||
"title": "Termix Desktop 现在可以独立运行",
|
||||
"body1": "此应用以前直接连接到您的 Termix 服务器。现在已重新设计,可完全独立运行,将主机和凭据存储在本地,因此即使离线也能正常工作。与自托管 Termix 服务器的双向同步现在是可选的。",
|
||||
"body2": "您现有的主机和凭据仍然在 {{url}}上。启用远程同步并重新连接到该服务器,即可恢复它们并保持两者同步。",
|
||||
"dismiss": "现在不要",
|
||||
"dismiss": "稍后再说",
|
||||
"setUpSync": "设置远程同步"
|
||||
},
|
||||
"remoteSync": {
|
||||
@@ -471,17 +471,17 @@
|
||||
"syncError": "同步错误: {{message}}",
|
||||
"needsReauth": "登录已过期",
|
||||
"connectButton": "连接到服务器",
|
||||
"disconnectButton": "断开",
|
||||
"disconnectButton": "断开连接",
|
||||
"syncNowButton": "立即同步",
|
||||
"syncing": "正在同步...",
|
||||
"serverUrl": "服务器 URL",
|
||||
"enterServerUrl": "请输入服务器网址",
|
||||
"mustIncludeProtocol": "服务器 URL 必须以 http:// 或 https:// 开头。",
|
||||
"enterServerUrl": "请输入服务器 URL",
|
||||
"mustIncludeProtocol": "服务器 URL 必须以 http:// 或 https:// 开头",
|
||||
"connectionTestFailed": "无法通过该 URL 连接到 Termix 服务器",
|
||||
"allowInvalidCertificate": "允许无效证书",
|
||||
"allowInvalidCertificateDesc": "仅适用于具有自签名证书或 IP 地址证书的受信任的自托管服务器。",
|
||||
"savedServers": "已保存的服务器",
|
||||
"removeServer": "消除",
|
||||
"removeServer": "删除",
|
||||
"continueButton": "继续",
|
||||
"cancelButton": "取消",
|
||||
"signInTitle": "登录到 {{url}}",
|
||||
@@ -579,73 +579,73 @@
|
||||
"required": "必填"
|
||||
},
|
||||
"onboarding": {
|
||||
"stepCounter": "步骤 {{current}} 的 {{total}}",
|
||||
"stepCounter": "步骤 {{current}}/{{total}}",
|
||||
"skip": "跳过设置",
|
||||
"next": "下一个",
|
||||
"finish": "开始使用",
|
||||
"welcomeTitle": "欢迎来到 Termix",
|
||||
"welcomeIntro": "Termix 让您在一个地方即可管理所有服务器。整个设置过程大约只需一分钟,而且所有设置都不是永久性的。",
|
||||
"welcome_hosts": "保护你的服务器",
|
||||
"welcomeIntro": "Termix 能够为您集中管理服务器。设置大约只需一分钟,且所有配置后续均可随时更改。",
|
||||
"welcome_hosts": "保存你的服务器",
|
||||
"welcome_hosts_desc": "将您管理的所有机器都放在一个列表中。",
|
||||
"welcome_terminal": "立即连接",
|
||||
"welcome_terminal_desc": "在标签页中打开终端,无需单独的 SSH 客户端。",
|
||||
"welcome_terminal": "快速连接",
|
||||
"welcome_terminal_desc": "在标签页中直接打开终端,无需额外安装 SSH 客户端。",
|
||||
"welcome_files": "浏览和编辑文件",
|
||||
"welcome_files_desc": "上传、下载和编辑远程文件。",
|
||||
"presetTitle": "你想在屏幕上显示多少内容?",
|
||||
"presetIntro": "Termix 可以根据您的需要,简单或详细均可。选择一个起点即可。",
|
||||
"presetChangeLater": "您可以在“设置”下的“界面”中切换预设或更改任何单个设置。",
|
||||
"appearanceTitle": "让它成为你的",
|
||||
"appearanceIntro": "选择主题、强调色和语言。这三项都可以在“设置”中更改。",
|
||||
"featuresTitle": "Termix 还有哪些其他功能",
|
||||
"featuresIntro": "您保存的每个服务器都可以在终端以外的多个终端中打开。以下是左侧图标背后的功能。",
|
||||
"welcome_files_desc": "支持上传、下载及编辑远程文件。",
|
||||
"presetTitle": "你希望屏幕上显示多少信息?",
|
||||
"presetIntro": "Termix 允许您灵活配置界面的信息密度。请选择初始布局。",
|
||||
"presetChangeLater": "后续你可以可随时在“设置”>“界面”中切换预设或调整具体选项。",
|
||||
"appearanceTitle": "个性化外观",
|
||||
"appearanceIntro": "选择主题、强调色和界面语言。后续均可在“设置”中随时更改。",
|
||||
"featuresTitle": "Termix 的其他功能",
|
||||
"featuresIntro": "保存的服务器不仅能在终端中打开。左侧图标还提供了以下强大功能。",
|
||||
"feature_files": "文件管理器",
|
||||
"feature_files_desc": "无需离开应用程序,即可通过 SFTP 浏览、上传、下载和编辑文件。",
|
||||
"feature_files_desc": "无需离开应用,即可通过 SFTP 浏览、上传、下载及编辑文件。",
|
||||
"feature_desktop": "远程桌面",
|
||||
"feature_desktop_desc": "像 SSH 一样,在同一个标签页中打开 RDP、VNC 和 Telnet 会话。",
|
||||
"feature_desktop_desc": "像 SSH 一样,在标签页中直接打开 RDP、VNC 和 Telnet 会话。",
|
||||
"feature_tunnels": "隧道",
|
||||
"feature_tunnels_desc": "通过服务器转发端口以访问未公开的服务。",
|
||||
"feature_tunnels_desc": "通过服务器转发端口以访问未暴露的服务。",
|
||||
"feature_docker": "Docker",
|
||||
"feature_docker_desc": "查看运行 Docker 的任何主机上的容器、读取日志和查看统计信息。",
|
||||
"feature_snippets": "片段",
|
||||
"feature_snippets_desc": "保存您经常运行的命令,并一键将其发送到终端。",
|
||||
"feature_docker_desc": "在任何运行 Docker 的主机上查看容器、读取日志及监控运行状态。",
|
||||
"feature_snippets": "代码片段",
|
||||
"feature_snippets_desc": "保存常用命令,一键发送至终端执行。",
|
||||
"feature_automations": "自动化",
|
||||
"feature_automations_desc": "当发生某些事情时,自动运行步骤并接收通知。",
|
||||
"feature_metrics": "指标和警报",
|
||||
"feature_metrics_desc": "跟踪 CPU、内存和磁盘的运行情况,并在它们出现故障时发出警报。",
|
||||
"featuresRailHint": "不需要其中任何一个图标?您可以在“设置”>“导航”中隐藏侧边栏中的任何图标。",
|
||||
"workflowTitle": "移动速度加快",
|
||||
"workflowIntro": "拥有几台服务器后,养成以下几个习惯可以节省大量时间。",
|
||||
"feature_automations_desc": "触发特定事件时自动执行任务,并接收通知。",
|
||||
"feature_metrics": "指标与告警",
|
||||
"feature_metrics_desc": "跟踪 CPU、内存和磁盘的运行情况,并在它们出现故障时发出告警。",
|
||||
"featuresRailHint": "不需要某些功能?可在“设置” > “导航”中隐藏侧边栏的对应图标。",
|
||||
"workflowTitle": "提升操作效率",
|
||||
"workflowIntro": "当您管理多台服务器时,掌握以下技巧能大幅节省时间。",
|
||||
"workflow_palette": "命令面板",
|
||||
"workflow_palette_desc": "输入文字即可跳转到任意服务器或操作。按两次Shift键即可打开。",
|
||||
"workflow_palette_desc": "输入文字即可快速跳转至服务器或执行操作。双击 Shift 键打开。",
|
||||
"workflow_split": "分屏",
|
||||
"workflow_split_desc": "工作时可并排显示最多四个标签页来查看日志。",
|
||||
"workflow_split_desc": "支持最多四分屏并排显示,方便边工作边查看日志。",
|
||||
"workflow_dock": "侧面板",
|
||||
"workflow_dock_desc": "单击中键或右键单击侧边栏图标,即可将其作为标签页打开或将其固定到右侧。",
|
||||
"workflow_dock_desc": "中键或右键单击侧边栏图标,可将其在标签页中打开或固定至右侧。",
|
||||
"workflow_workspaces": "工作区",
|
||||
"workflow_workspaces_desc": "保存一组打开的标签页,稍后重新打开整个布局。",
|
||||
"securityTitle": "保护您的登录信息安全",
|
||||
"securityIntro": "Termix 会为您存储凭据,因此值得花点时间了解一下它是如何工作的。",
|
||||
"security_credentials": "可重用凭证",
|
||||
"security_credentials_desc": "只需保存一次密钥或密码,即可将其附加到任意数量的服务器。",
|
||||
"security_twofa": "双因素认证和密码",
|
||||
"security_twofa_desc": "在“设置”>“安全”中,为您的帐户添加 TOTP 或密码密钥。",
|
||||
"workflow_workspaces_desc": "保存当前打开的标签页组合,方便之后一键恢复整个布局。",
|
||||
"securityTitle": "保障登录安全",
|
||||
"securityIntro": "Termix 提供安全的凭据存储功能,建议花一分钟了解其工作原理。",
|
||||
"security_credentials": "可重用凭据",
|
||||
"security_credentials_desc": "只需保存一次密钥或密码,即可将绑定至任意数量的服务器。",
|
||||
"security_twofa": "双因素认证与通行密钥",
|
||||
"security_twofa_desc": "请前往“设置” > “安全”为您的账号添加 TOTP 或通行密钥。",
|
||||
"security_identity": "Termix ID",
|
||||
"security_identity_desc": "颁发短期 SSH 证书,而不是将密钥复制到每台服务器。",
|
||||
"security_sharing": "分享",
|
||||
"security_sharing_desc": "允许其他用户在不透露密码的情况下访问服务器。",
|
||||
"securityEncryptionNote": "凭证在存储前会进行加密,只有在连接需要时才会解密。",
|
||||
"security_identity_desc": "签发短期 SSH 证书,避免在每台服务器上复制密钥。",
|
||||
"security_sharing": "共享",
|
||||
"security_sharing_desc": "无需共享密码,即可授权其他用户访问服务器。",
|
||||
"securityEncryptionNote": "凭据在存储前会被加密,仅在建立连接时解密。",
|
||||
"doneTitle": "一切就绪",
|
||||
"doneHeading": "设置完成",
|
||||
"doneDesc": "从侧边栏选择一个服务器,即可打开终端、浏览其文件或查看其指标。",
|
||||
"doneDesc": "从侧边栏选择一台服务器,即可打开终端、浏览文件或查看监控指标。",
|
||||
"done_settings": "稍后更改任何内容",
|
||||
"done_settings_desc": "主题、布局密度以及显示的图标等设置都可以在“设置”中进行更改。",
|
||||
"done_rerun": "还想再来一次吗?",
|
||||
"done_rerun_desc": "打开设置,进入界面,选择运行设置,再次按照这些步骤操作。",
|
||||
"done_settings_desc": "主题、界面显示密度及侧边栏图标,均可在“设置”中随时更改。",
|
||||
"done_rerun": "需要重新配置?",
|
||||
"done_rerun_desc": "前往“设置” > “界面”并选择“运行向导”,即可再次执行此流程。",
|
||||
"done_desktop": "桌面应用程序",
|
||||
"done_desktop_desc": "Termix 可作为桌面应用程序在 Windows、macOS 和 Linux 上运行。",
|
||||
"done_desktop_link": "获取桌面应用程序",
|
||||
"done_mobile": "移动应用",
|
||||
"done_mobile_desc": "在 iOS 和 Android 设备上携带您的服务器。",
|
||||
"done_mobile_desc": "在 iOS 和 Android 设备上随时随地管理您的服务器。",
|
||||
"done_mobile_link": "获取移动应用",
|
||||
"done_docs": "完整文档",
|
||||
"done_docs_desc": "所有功能均提供指南,包括此处未涵盖的功能。",
|
||||
@@ -653,13 +653,13 @@
|
||||
"done_cli": "命令行工具",
|
||||
"done_cli_desc": "通过终端管理您的服务器,并在您自己的脚本中使用Termix。",
|
||||
"done_cli_link": "打开 CLI 文档",
|
||||
"aiTitle": "人工智能助手",
|
||||
"aiTitle": "AI 助手",
|
||||
"aiIntro": "Termix 可以包含一个可选的 AI 助手。您可以稍后在设置中更改此选项。",
|
||||
"aiEnableTitle": "打开它",
|
||||
"aiEnableDesc": "添加一个助手,它可以读取您的设置并提出您批准的更改建议。需要您提供服务提供商,例如当地的 Ollama 服务商。",
|
||||
"aiSkipTitle": "丢开",
|
||||
"aiSkipDesc": "Termix 的运行方式与现在相同。助手保持隐藏状态。",
|
||||
"aiNote": "在您添加服务提供商并发送消息之前,任何内容都不会发送到任何地方。"
|
||||
"aiEnableTitle": "启用",
|
||||
"aiEnableDesc": "启用 AI 助手,它将分析您的配置并提供优化建议。需自行配置服务商,例如本地运行的 Ollama。",
|
||||
"aiSkipTitle": "禁用",
|
||||
"aiSkipDesc": "Termix 正常工作,AI 助手将保持隐藏状态。",
|
||||
"aiNote": "在您配置服务商并主动发送消息之前,绝不会向外发送任何数据。"
|
||||
},
|
||||
"nav": {
|
||||
"home": "首页",
|
||||
@@ -719,7 +719,7 @@
|
||||
"serial": "串口",
|
||||
"roleAdministrator": "管理员",
|
||||
"roleUser": "用户",
|
||||
"ai": "人工智能"
|
||||
"ai": "AI"
|
||||
},
|
||||
"hosts": {
|
||||
"hosts": "主机",
|
||||
@@ -3183,8 +3183,8 @@
|
||||
"sectionImageStorage": "图像存储",
|
||||
"imageStorageMode": "存储模式",
|
||||
"imageStorageModeDesc": "终端镜像粘贴和上传位置已设置。自动选择连接、本地和远程(SFTP)镜像的功能已修复。",
|
||||
"imageStorageModeAuto": "汽车",
|
||||
"imageStorageModeLocal": "当地的",
|
||||
"imageStorageModeAuto": "自动",
|
||||
"imageStorageModeLocal": "本地",
|
||||
"imageStorageModeRemoteSftp": "远程(SFTP)",
|
||||
"imageStorageLocalDir": "本地目录",
|
||||
"imageStorageLocalDirDesc": "Termix 后端上的绝对路径。出于安全考虑,保存后将不显示。",
|
||||
@@ -3574,7 +3574,7 @@
|
||||
"save": "保存",
|
||||
"saving": "保存中..."
|
||||
},
|
||||
"aiGloballyEnabled": "人工智能助手",
|
||||
"aiGloballyEnabled": "AI 助手",
|
||||
"aiGloballyEnabledDesc": "允许用户开启AI助手。关闭此功能后,助手将被隐藏,所有用户均无法使用。",
|
||||
"aiPrivateEndpoints": "允许的私有人工智能主机",
|
||||
"aiPrivateEndpointsDesc": "用户可能将服务提供商指向的私有网络上的主机,例如自托管的 Ollama。用逗号分隔。",
|
||||
@@ -4107,7 +4107,7 @@
|
||||
"presetConfirmDesc": "此操作会重置您的侧边栏、导航栏、仪表盘布局、终端工具栏和文件管理器视图。您的主机、凭据和主页不会受到影响。",
|
||||
"presetConfirmApply": "应用预设",
|
||||
"runSetupAgainDesc": "再走一遍第一次运行的设置流程。",
|
||||
"runSetupAgainButton": "运行设置",
|
||||
"runSetupAgainButton": "运行向导",
|
||||
"uiArea_chrome": "Chrome 应用",
|
||||
"uiArea_hostList": "主机列表",
|
||||
"uiArea_credentialList": "凭证列表",
|
||||
@@ -4562,7 +4562,7 @@
|
||||
"proposalApplied": "变更已生效",
|
||||
"proposalApplyFailed": "无法应用更改",
|
||||
"proposalRejectFailed": "无法拒绝更改",
|
||||
"enableTitle": "启用人工智能助手",
|
||||
"enableTitle": "启用 AI 助手",
|
||||
"enableDescription": "让助手读取您的设置并提出更改建议,供您批准。",
|
||||
"readOnlyCommands": "允许只读诊断命令",
|
||||
"readOnlyCommandsDescription": "助手可能会在不每次都询问的情况下运行一些安全的命令,例如 `df` 和 `uptime`。任何会更改服务器的操作都会优先被提出。",
|
||||
|
||||
Reference in New Issue
Block a user