{ "name": "opsxshell-gui", "version": "2.1.1", "description": "简单好用的原生运维终端 · SSH / SFTP / 转发 / RDP·VNC · 短路径、不堆堡垒", "author": "OpsXShell Team", "license": "MIT", "scripts": { "dev": "tauri dev", "dev:ui": "vite", "dev:tauri": "tauri dev", "build": "tauri build", "build:ui": "tsc --noEmit && vite build", "build:tauri": "tauri build", "preview": "vite preview", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "lint:fix": "eslint . --ext ts,tsx --fix", "format": "prettier --write \"**/*.{ts,tsx,css,json,md}\"", "format:check": "prettier --check \"**/*.{ts,tsx,css,json,md}\"", "typecheck": "npm run typecheck:ui && npm run typecheck:test", "typecheck:ui": "tsc --noEmit", "typecheck:test": "tsc --noEmit -p tsconfig.test.json", "test": "vitest run", "test:watch": "vitest", "test:patrol": "vitest run test/patrol", "test:coverage": "vitest run --coverage", "test:release": "node --test scripts/*.test.mjs", "acceptance": "npm run acceptance:quick", "acceptance:quick": "node scripts/acceptance.mjs quick", "acceptance:full": "node scripts/acceptance.mjs full", "clean": "rimraf dist src-tauri/target/release src-tauri/target/*/release", "prepare": "husky", "dist": "tauri build", "dist:win": "tauri build --target x86_64-pc-windows-msvc", "dist:mac": "tauri build --target aarch64-apple-darwin", "release:preflight:mac": "node scripts/release-preflight.mjs macos", "release:preflight:win": "node scripts/release-preflight.mjs windows", "release:verify:mac": "node scripts/verify-release.mjs macos", "release:verify:win": "node scripts/verify-release.mjs windows", "dist:linux": "tauri build --target x86_64-unknown-linux-gnu", "start": "bash scripts/run.sh", "build:native": "bash scripts/build.sh" }, "dependencies": { "@monaco-editor/react": "^4.7.0", "@tauri-apps/api": "^2.11.1", "@tauri-apps/plugin-opener": "^2.7.1", "@vitest/coverage-v8": "^4.1.4", "@xterm/addon-fit": "^0.10.0", "@xterm/addon-search": "^0.16.0", "@xterm/addon-web-links": "^0.11.0", "@xterm/xterm": "^5.5.0", "husky": "^9.1.7", "i18next": "^26.3.6", "lint-staged": "^16.4.0", "lucide-react": "^0.294.0", "monaco-editor": "^0.55.1", "prettier": "^3.8.3", "prettier-plugin-tailwindcss": "^0.7.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-i18next": "^17.0.11", "react-markdown": "^10.1.0", "react-router-dom": "^6.21.0", "remark-gfm": "^4.0.1", "rimraf": "^6.1.3", "zmodem-ts": "^1.0.8", "zustand": "^4.4.7" }, "devDependencies": { "@tauri-apps/cli": "^2.11.4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", "@types/node": "^22.20.1", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", "@vitejs/plugin-react": "^4.2.1", "@xterm/addon-webgl": "^0.19.0", "autoprefixer": "^10.4.16", "eslint": "^8.55.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", "jsdom": "^29.0.1", "postcss": "^8.4.32", "tailwindcss": "^3.3.6", "typescript": "^5.2.2", "vite": "^5.0.8", "vitest": "^4.1.2" } }