OnyxMunk/AudioForge
0
1{2 "name": "audioforge-frontend",3 "version": "0.1.0",4 "private": true,5 "scripts": {6 "dev": "next dev",7 "build": "next build",8 "start": "next start",9 "lint": "next lint",10 "lint:fix": "next lint --fix",11 "test": "vitest run",12 "test:watch": "vitest",13 "test:ui": "vitest --ui",14 "test:coverage": "vitest run --coverage",15 "type-check": "tsc --noEmit",16 "format": "prettier --write \"src/**/*.{ts,tsx,json,css,md}\"",17 "format:check": "prettier --check \"src/**/*.{ts,tsx,json,css,md}\"",18 "validate": "pnpm run type-check && pnpm run lint && pnpm run test",19 "pre-commit": "pnpm run format && pnpm run validate"20 },21 "dependencies": {22 "@hookform/resolvers": "^3.3.4",23 "@radix-ui/react-dialog": "^1.0.5",24 "@radix-ui/react-progress": "^1.0.5",25 "@radix-ui/react-select": "^2.0.0",26 "@radix-ui/react-slider": "^1.1.2",27 "@radix-ui/react-toast": "^1.1.5",28 "@tanstack/react-query": "^5.17.0",29 "axios": "^1.6.5",30 "class-variance-authority": "^0.7.0",31 "clsx": "^2.1.0",32 "date-fns": "^3.0.6",33 "lucide-react": "^0.309.0",34 "next": "^14.1.0",35 "react": "^18.2.0",36 "react-dom": "^18.2.0",37 "react-hook-form": "^7.49.3",38 "recharts": "^2.10.3",39 "sonner": "^2.0.7",40 "tailwind-merge": "^2.2.0",41 "zod": "^3.22.4",42 "zustand": "^4.4.7"43 },44 "devDependencies": {45 "@playwright/test": "^1.57.0",46 "@testing-library/jest-dom": "^6.1.5",47 "@testing-library/react": "^14.1.2",48 "@testing-library/user-event": "^14.5.1",49 "@types/node": "^20.11.5",50 "@types/react": "^18.2.48",51 "@types/react-dom": "^18.2.18",52 "@typescript-eslint/eslint-plugin": "^6.19.0",53 "@typescript-eslint/parser": "^6.19.0",54 "@vitejs/plugin-react": "^4.2.1",55 "autoprefixer": "^10.4.17",56 "eslint": "^8.56.0",57 "eslint-config-next": "^14.1.0",58 "jsdom": "^23.0.1",59 "postcss": "^8.4.33",60 "tailwindcss": "^3.4.1",61 "typescript": "^5.3.3",62 "vitest": "^1.2.0"63 }64}65 