{ "name": "ruixin-website-react", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev -p 3000", "build": "next build", "start": "next start -p 3000", "lint": "eslint", "test": "playwright test", "test:smoke": "playwright test --grep @smoke", "test:report": "allure generate test-results/allure-results && allure open", "audit:performance": "node scripts/performance-audit.js", "audit:seo": "node scripts/seo-check.js", "audit:accessibility": "node scripts/accessibility-test.js", "audit:forms": "node scripts/form-validation.js", "audit:all": "./scripts/run-all-tests.sh", "report:generate": "node scripts/generate-test-report.js" }, "dependencies": { "@antv/g2": "^5.4.8", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@types/three": "^0.183.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "dompurify": "^3.3.1", "framer-motion": "^12.34.3", "lucide-react": "^0.563.0", "next": "16.1.6", "react": "19.2.3", "react-dom": "19.2.3", "resend": "^6.9.2", "tailwind-merge": "^3.4.0", "three": "^0.183.1", "zod": "^4.3.6" }, "devDependencies": { "@axe-core/playwright": "^4.11.1", "@tailwindcss/postcss": "^4", "@types/dompurify": "^3.0.5", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "chrome-launcher": "^1.2.1", "eslint": "^10.0.2", "eslint-config-next": "^0.2.4", "lighthouse": "^13.0.3", "tailwindcss": "^4", "typescript": "^5" } }