mirror of
https://github.com/jetkvm/kvm.git
synced 2026-05-21 05:20:35 +00:00
da5793a117
* fix(logging): reset troubleshooting log level after reboot Restore WARN on boot so temporary troubleshooting verbosity cannot silently fill device storage before rolling logs land. Update the settings copy to describe the reboot reset, add an e2e regression test for the INFO-to-WARN behavior, and make the i18n resort helper accept lint-staged file arguments. * fix(i18n): avoid formatter churn in locale files Keep localization message JSON on the repo's existing resort_messages.py formatting so translation-only changes do not explode into full-file diffs. Remove JSON from the generic oxfmt lint-staged rule and restage the locale files in their canonical format.
102 lines
3.7 KiB
JSON
102 lines
3.7 KiB
JSON
{
|
|
"name": "kvm-ui",
|
|
"version": "2025.12.11.1200",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "./dev_device.sh",
|
|
"dev:ssl": "USE_SSL=true ./dev_device.sh",
|
|
"dev:cloud": "vite dev --mode=cloud-development",
|
|
"build": "npm run build:prod",
|
|
"build:device": "npm run i18n:compile && tsc && vite build --mode=device --emptyOutDir",
|
|
"build:staging": "npm run i18n:compile && tsc && vite build --mode=cloud-staging",
|
|
"build:prod": "npm run i18n:compile && tsc && vite build --mode=cloud-production",
|
|
"lint": "npm run i18n:compile && npm run lint:only",
|
|
"lint:only": "oxlint ./src",
|
|
"lint:fix": "npm run i18n:compile && npm run lint:fixonly",
|
|
"lint:fixonly": "oxlint ./src --fix",
|
|
"i18n": "npm run i18n:resort && npm run i18n:validate && npm run i18n:compile",
|
|
"i18n:resort": "python3 tools/resort_messages.py",
|
|
"i18n:validate": "inlang validate --project ./localization/jetKVM.UI.inlang",
|
|
"i18n:compile": "paraglide-js compile --project ./localization/jetKVM.UI.inlang --outdir ./localization/paraglide",
|
|
"i18n:machine-translate": "inlang machine translate --project ./localization/jetKVM.UI.inlang && npm run i18n:resort",
|
|
"i18n:audit": "npm run i18n:find-dupes && npm run i18n:find-excess && npm run i18n:find-unused",
|
|
"i18n:find-excess": "python3 ./tools/find_excess_messages.py",
|
|
"i18n:find-unused": "python3 ./tools/find_unused_messages.py",
|
|
"i18n:find-dupes": "python3 ./tools/find_duplicate_translations.py",
|
|
"test:e2e": "playwright test",
|
|
"prepare": "cd .. && husky ui/.husky"
|
|
},
|
|
"dependencies": {
|
|
"@headlessui/react": "^2.2.9",
|
|
"@headlessui/tailwindcss": "^0.2.2",
|
|
"@heroicons/react": "^2.2.0",
|
|
"@vitejs/plugin-basic-ssl": "^2.3.0",
|
|
"@xterm/addon-clipboard": "^0.1.0",
|
|
"@xterm/addon-fit": "^0.10.0",
|
|
"@xterm/addon-unicode11": "^0.8.0",
|
|
"@xterm/addon-web-links": "^0.11.0",
|
|
"@xterm/addon-webgl": "^0.18.0",
|
|
"@xterm/xterm": "^5.5.0",
|
|
"cva": "^1.0.0-beta.4",
|
|
"dayjs": "^1.11.19",
|
|
"focus-trap-react": "^11.0.4",
|
|
"framer-motion": "^12.23.26",
|
|
"mini-svg-data-uri": "^1.4.4",
|
|
"react": "^19.2.3",
|
|
"react-animate-height": "^3.2.3",
|
|
"react-dom": "^19.2.3",
|
|
"react-hook-form": "^7.68.0",
|
|
"react-hot-toast": "^2.6.0",
|
|
"react-icons": "^5.5.0",
|
|
"react-router": "^7.10.1",
|
|
"react-simple-keyboard": "^3.8.141",
|
|
"react-use-websocket": "^4.13.0",
|
|
"react-xtermjs": "^1.0.10",
|
|
"recharts": "^3.5.1",
|
|
"semver": "^7.7.3",
|
|
"tailwind-merge": "^3.4.0",
|
|
"tesseract.js": "^7.0.0",
|
|
"tslog": "^4.10.2",
|
|
"usehooks-ts": "^3.1.1",
|
|
"validator": "^13.15.23",
|
|
"zustand": "^4.5.2"
|
|
},
|
|
"devDependencies": {
|
|
"@inlang/cli": "^3.0.12",
|
|
"@inlang/paraglide-js": "^2.6.0",
|
|
"@inlang/plugin-m-function-matcher": "^2.1.0",
|
|
"@inlang/plugin-message-format": "^4.0.0",
|
|
"@inlang/sdk": "^2.4.9",
|
|
"@playwright/test": "^1.49.0",
|
|
"@tailwindcss/forms": "^0.5.10",
|
|
"@tailwindcss/postcss": "^4.1.18",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@tailwindcss/vite": "^4.2.2",
|
|
"@types/node": "^24.10.1",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/semver": "^7.7.1",
|
|
"@types/validator": "^13.15.10",
|
|
"@vitejs/plugin-react-swc": "^4.3.0",
|
|
"autoprefixer": "^10.4.23",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^16.4.0",
|
|
"oxfmt": "^0.42.0",
|
|
"oxlint": "^1.57.0",
|
|
"oxlint-tsgolint": "^0.18.1",
|
|
"postcss": "^8.5.6",
|
|
"tailwindcss": "^4.1.18",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^8.0.3"
|
|
},
|
|
"lint-staged": {
|
|
"*.{ts,tsx}": "oxlint --fix --deny-warnings",
|
|
"*.{ts,tsx,js,jsx,css,md}": "oxfmt",
|
|
"localization/messages/*.json": "npm run i18n:resort"
|
|
},
|
|
"engines": {
|
|
"node": "^22.21.1"
|
|
}
|
|
}
|