mirror of https://github.com/jetkvm/kvm.git
				
				
				
			
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JSON
		
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			JSON
		
	
	
	
{
 | 
						|
  "name": "kvm-ui",
 | 
						|
  "private": true,
 | 
						|
  "version": "2025.10.24.2140",
 | 
						|
  "type": "module",
 | 
						|
  "engines": {
 | 
						|
    "node": "^22.20.0"
 | 
						|
  },
 | 
						|
  "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 && eslint './src/**/*.{ts,tsx}'",
 | 
						|
    "lint:fix": "npm run i18n:compile && eslint './src/**/*.{ts,tsx}' --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"
 | 
						|
  },
 | 
						|
  "dependencies": {
 | 
						|
    "@headlessui/react": "^2.2.9",
 | 
						|
    "@headlessui/tailwindcss": "^0.2.2",
 | 
						|
    "@heroicons/react": "^2.2.0",
 | 
						|
    "@vitejs/plugin-basic-ssl": "^2.1.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.18",
 | 
						|
    "eslint-import-resolver-alias": "^1.1.2",
 | 
						|
    "focus-trap-react": "^11.0.4",
 | 
						|
    "framer-motion": "^12.23.24",
 | 
						|
    "lodash.throttle": "^4.1.1",
 | 
						|
    "mini-svg-data-uri": "^1.4.4",
 | 
						|
    "react": "^19.2.0",
 | 
						|
    "react-animate-height": "^3.2.3",
 | 
						|
    "react-dom": "^19.2.0",
 | 
						|
    "react-hook-form": "^7.65.0",
 | 
						|
    "react-hot-toast": "^2.6.0",
 | 
						|
    "react-icons": "^5.5.0",
 | 
						|
    "react-router": "^7.9.4",
 | 
						|
    "react-simple-keyboard": "^3.8.131",
 | 
						|
    "react-use-websocket": "^4.13.0",
 | 
						|
    "react-xtermjs": "^1.0.10",
 | 
						|
    "recharts": "^3.3.0",
 | 
						|
    "tailwind-merge": "^3.3.1",
 | 
						|
    "usehooks-ts": "^3.1.1",
 | 
						|
    "validator": "^13.15.15",
 | 
						|
    "zustand": "^4.5.2"
 | 
						|
  },
 | 
						|
  "devDependencies": {
 | 
						|
    "@eslint/compat": "^1.4.1",
 | 
						|
    "@eslint/eslintrc": "^3.3.1",
 | 
						|
    "@eslint/js": "^9.39.0",
 | 
						|
    "@inlang/cli": "^3.0.12",
 | 
						|
    "@inlang/paraglide-js": "^2.4.0",
 | 
						|
    "@inlang/plugin-m-function-matcher": "^2.1.0",
 | 
						|
    "@inlang/plugin-message-format": "^4.0.0",
 | 
						|
    "@inlang/sdk": "^2.4.9",
 | 
						|
    "@tailwindcss/forms": "^0.5.10",
 | 
						|
    "@tailwindcss/postcss": "^4.1.16",
 | 
						|
    "@tailwindcss/typography": "^0.5.19",
 | 
						|
    "@tailwindcss/vite": "^4.1.16",
 | 
						|
    "@types/react": "^19.2.2",
 | 
						|
    "@types/react-dom": "^19.2.2",
 | 
						|
    "@types/semver": "^7.7.1",
 | 
						|
    "@types/validator": "^13.15.3",
 | 
						|
    "@typescript-eslint/eslint-plugin": "^8.46.2",
 | 
						|
    "@typescript-eslint/parser": "^8.46.2",
 | 
						|
    "@vitejs/plugin-react-swc": "^4.2.0",
 | 
						|
    "autoprefixer": "^10.4.21",
 | 
						|
    "eslint": "^9.38.0",
 | 
						|
    "eslint-config-prettier": "^10.1.8",
 | 
						|
    "eslint-plugin-import": "^2.32.0",
 | 
						|
    "eslint-plugin-prettier": "^5.5.4",
 | 
						|
    "eslint-plugin-react": "^7.37.5",
 | 
						|
    "eslint-plugin-react-hooks": "^7.0.1",
 | 
						|
    "eslint-plugin-react-refresh": "^0.4.24",
 | 
						|
    "globals": "^16.4.0",
 | 
						|
    "postcss": "^8.5.6",
 | 
						|
    "prettier": "^3.6.2",
 | 
						|
    "prettier-plugin-tailwindcss": "^0.7.1",
 | 
						|
    "tailwindcss": "^4.1.16",
 | 
						|
    "typescript": "^5.9.3",
 | 
						|
    "vite": "^7.1.12",
 | 
						|
    "vite-tsconfig-paths": "^5.1.4"
 | 
						|
  }
 | 
						|
}
 |