{ "name": "tuning-visualizer", "version": "0.0.0", "private": true, "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview", "lint": "oxlint", "typecheck": "tsc --noEmit", "check": "pnpm lint && pnpm typecheck", "lint:fix": "oxlint --fix", "format": "oxfmt", "format:check": "oxfmt --check", "test": "tsx --test", "dup": "jscpd", "dup:report": "jscpd --reporters console,html", "deadcode": "jscpd --dead-code --exit-code" }, "dependencies": { "@chenglou/pretext": "^0.0.9", "@dmnerd/microtonal": "^0.3.1", "@tanstack/react-virtual": "^3.14.18", "clsx": "^2.1.1", "fuse.js": "^7.5.0", "i18next": "^26.4.4", "i18next-browser-languagedetector": "^8.2.1", "is-hotkey": "^0.2.0", "json-edit-react": "^2.0.4", "react": "^19.3.0", "react-dom": "^19.3.0", "react-error-boundary": "^6.1.6", "react-hot-toast": "^2.6.1", "react-i18next": "^17.0.16", "react-icons": "^5.7.0", "react-qr-code": "^2.2.0", "valibot": "^1.5.0", "zustand": "^5.0.15" }, "devDependencies": { "@types/node": "^22.20.5", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@vitejs/plugin-react": "^6.1.2", "eslint-plugin-i18next": "^6.1.5", "jscpd": "^5.4.1", "lightningcss": "^1.33.0", "oxfmt": "^0.73.0", "oxlint": "^1.88.0", "oxlint-tsgolint": "^7.0.2004", "sharp": "^0.35.5", "svgo": "^4.1.0", "tsx": "^4.23.15", "typescript": "~7.0.2", "vite": "^8.3.4", "vite-plugin-compression2": "^2.5.3", "vite-plugin-image-optimizer": "^2.0.3", "vite-plugin-pwa": "^2.0.0", "vite-plugin-sri3": "^2.0.0" }, "browserslist": [ ">0.5%", "last 2 versions", "not dead", "Safari >= 15" ], "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319" }