{ "name": "frontend", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "tsc && vite build", "preview": "vite preview", "lint": "eslint ./src --ext .jsx,.js,.ts,.tsx", "lint-fix": "eslint ./src --ext .jsx,.js,.ts,.tsx --fix", "format": "prettier ./src --write", "prepare": "cd .. && husky install frontend/.husky" }, "lint-staged": { "**/*.{js,jsx,ts,tsx}": [ "npm run lint-fix", "npm run format" ] }, "dependencies": { "@reduxjs/toolkit": "^2.5.1", "chart.js": "^4.4.4", "clsx": "^2.1.1", "i18next": "^24.2.0", "i18next-browser-languagedetector": "^8.0.2", "mermaid": "^11.6.0", "prop-types": "^15.8.1", "react": "^18.2.0", "react-chartjs-2": "^5.3.0", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", "react-dropzone": "^14.3.5", "react-helmet": "^6.1.0", "react-i18next": "^15.4.0", "react-markdown": "^9.0.1", "react-redux": "^8.0.5", "react-router-dom": "^7.1.1", "react-syntax-highlighter": "^15.5.0", "rehype-katex": "^7.0.1", "remark-gfm": "^4.0.0", "remark-math": "^6.0.0" }, "devDependencies": { "@types/mermaid": "^9.1.0", "@types/react": "^18.0.27", "@types/react-dom": "^18.3.0", "@types/react-helmet": "^6.1.11", "@types/react-syntax-highlighter": "^15.5.13", "@typescript-eslint/eslint-plugin": "^5.51.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.13", "eslint": "^8.57.1", "eslint-config-prettier": "^9.1.0", "eslint-config-standard-with-typescript": "^34.0.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-n": "^15.7.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.6.0", "eslint-plugin-react": "^7.37.3", "eslint-plugin-unused-imports": "^4.1.4", "husky": "^8.0.0", "lint-staged": "^15.3.0", "postcss": "^8.4.49", "prettier": "^3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^3.4.17", "typescript": "^5.7.2", "vite": "^5.4.14", "vite-plugin-svgr": "^4.2.0" } }