{ "name": "readmeabook", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "eslint", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:studio": "prisma studio", "db:push": "prisma db push", "db:seed": "ts-node prisma/seed.ts" }, "dependencies": { "@headlessui/react": "^2.2.9", "@heroicons/react": "^2.2.0", "@prisma/client": "^6.19.0", "axios": "^1.7.2", "bcrypt": "^5.1.1", "bull": "^4.12.0", "cheerio": "^1.0.0-rc.12", "clsx": "^2.1.1", "date-fns": "^3.6.0", "fast-xml-parser": "^5.3.1", "form-data": "^4.0.4", "ioredis": "^5.3.2", "jsonwebtoken": "^9.0.2", "next": "16.0.7", "openid-client": "^4.9.1", "parse-torrent": "^11.0.19", "react": "19.2.1", "react-dom": "19.2.1", "react-hook-form": "^7.66.0", "react-swipeable": "^7.0.1", "string-similarity": "^4.0.4", "swr": "^2.3.6", "xml2js": "^0.6.2", "zod": "^3.23.8" }, "devDependencies": { "@tailwindcss/postcss": "^4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.1", "@testing-library/user-event": "^14.6.1", "@types/bcrypt": "^5.0.2", "@types/bull": "^4.10.0", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^20", "@types/parse-torrent": "^5.8.8", "@types/react": "^19", "@types/react-dom": "^19", "@types/string-similarity": "^4.0.2", "@types/xml2js": "^0.4.14", "@vitest/coverage-v8": "^4.0.17", "eslint": "^9", "eslint-config-next": "16.0.7", "jsdom": "^27.4.0", "prisma": "^6.19.0", "tailwindcss": "^4", "ts-node": "^10.9.2", "typescript": "^5", "vite-tsconfig-paths": "^6.0.4", "vitest": "^4.0.17" } }