{ "name": "frontend", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", "test": "vitest", "test:ui": "vitest --ui", "test:coverage": "vitest --coverage" }, "dependencies": { "@tonejs/midi": "^2.0.28", "@xmldom/xmldom": "^0.8.11", "react": "^19.2.0", "react-dom": "^19.2.0", "tone": "^15.1.3", "vexflow": "^4.2.4", "zustand": "^5.0.3" }, "devDependencies": { "@eslint/js": "^9.39.1", "@testing-library/jest-dom": "^6.1.5", "@testing-library/react": "^15.0.0", "@testing-library/user-event": "^14.5.1", "@types/node": "^24.10.1", "@types/react": "^19.2.5", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.1", "@vitest/coverage-v8": "^1.1.0", "@vitest/ui": "^1.1.0", "eslint": "^9.39.1", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.24", "globals": "^16.5.0", "jsdom": "^23.0.1", "typescript": "~5.9.3", "typescript-eslint": "^8.46.4", "vite": "^7.2.4", "vitest": "^1.1.0" } }