{ "name": "finance", "type": "module", "version": "0.0.1", "scripts": { "dev": "concurrently \"npm run server:dev\" \"npm run client:dev\"", "client:dev": "vite", "server:dev": "tsx watch server/index.ts", "build": "npm run client:build && npm run server:build", "client:build": "vite build", "server:build": "tsc --project server/tsconfig.json", "preview": "npm run build && npm start", "start": "node dist/server/index.js", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "format": "biome format --write .", "lint": "biome lint .", "check": "biome check --write .", "db:generate": "prisma generate", "db:migrate": "prisma migrate dev", "db:push": "prisma db push", "db:seed": "node prisma/seed.js", "db:studio": "prisma studio", "prepare": "husky" }, "dependencies": { "@fortawesome/fontawesome-free": "^6.7.2", "@nanostores/react": "^1.0.0", "@prisma/client": "^6.8.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-form": "^0.1.7", "@radix-ui/react-select": "^2.2.5", "@radix-ui/react-toast": "^1.2.14", "@types/react": "^19.1.5", "@types/react-dom": "^19.1.5", "cors": "^2.8.5", "dotenv": "^16.5.0", "express": "^4.21.2", "nanostores": "^1.0.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router-dom": "^6.23.0" }, "devDependencies": { "@biomejs/biome": "^1.9.4", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@types/cors": "^2.8.17", "@types/express": "^5.0.0", "@types/node": "^22.15.21", "@types/supertest": "^6.0.3", "@vitejs/plugin-react": "^4.5.0", "@vitest/coverage-v8": "^3.1.4", "concurrently": "^8.2.2", "husky": "^9.1.7", "jsdom": "^26.1.0", "prisma": "^6.8.2", "supertest": "^7.1.1", "ts-node": "^10.9.2", "tsx": "^4.7.1", "typescript": "^5.7.3", "vite": "^5.2.0", "vitest": "^3.1.4" }, "prisma": { "seed": "node prisma/seed.js" } }