{ "name": "personal-site", "private": true, "version": "1.0.0", "type": "module", "scripts": { "start": "vite", "lint": "eslint . --ext ts,tsx --fix", "format": "prettier --write \"src/**/*.{ts,tsx,css}\"", "build": "tsc && vite build", "type-check": "tsc --noEmit", "dev": "vite --host 0.0.0.0", "clean": "rimraf dist node_modules/.cache", "preview": "vite preview" }, "dependencies": { "@radix-ui/react-slot": "^1.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "itty-router": "^4.0.27", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.22.0", "tailwind-merge": "^2.2.1", "zustand": "5.0.3" }, "devDependencies": { "@cloudflare/workers-types": "4.20250129.0", "@commitlint/cli": "^18.6.0", "@commitlint/config-conventional": "^18.6.0", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", "@types/node": "20.17.16", "@types/react": "18.3.18", "@types/react-dom": "18.3.5", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "@vitejs/plugin-react-swc": "^3.5.0", "@vitest/ui": "^1.2.2", "autoprefixer": "10.4.20", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", "husky": "^9.0.10", "jsdom": "^24.0.0", "lint-staged": "^15.2.2", "lucide-react": "0.474.0", "postcss": "8.5.1", "prettier": "^3.2.5", "prettier-plugin-tailwindcss": "^0.5.11", "rimraf": "^5.0.5", "tailwindcss": "3.4.17", "typescript": "^5.3.3", "vite": "6.2.2", "vitest": "3.0.9", "web-vitals": "4.2.4", "wrangler": "^3.28.0" }, "lint-staged": { "*.{ts,tsx}": [ "eslint --fix", "prettier --write" ], "*.{html,css,json,md}": [ "prettier --write" ] }, "commitlint": { "extends": [ "@commitlint/config-conventional" ] }, "engines": { "node": ">=18.0.0" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }