{ "name": "donutbrowser", "private": true, "license": "AGPL-3.0", "version": "0.17.3", "type": "module", "scripts": { "dev": "next dev --turbopack -p 12341", "build": "next build", "start": "next start", "test": "pnpm test:rust:unit && pnpm test:sync-e2e", "test:rust": "cd src-tauri && cargo test", "test:rust:unit": "cd src-tauri && cargo test --lib && cargo test --test donut_proxy_integration", "test:sync-e2e": "node scripts/sync-test-harness.mjs", "lint": "pnpm lint:js && pnpm lint:rust && pnpm lint:spell", "lint:js": "biome check src/ && tsc --noEmit && cd donut-sync && biome check src/ && tsc --noEmit", "lint:rust": "cd src-tauri && cargo clippy --all-targets --all-features -- -D warnings -D clippy::all && cargo fmt --all", "lint:spell": "typos .", "tauri": "tauri", "shadcn:add": "pnpm dlx shadcn@latest add", "prepare": "husky && husky install", "format:rust": "cd src-tauri && cargo clippy --fix --allow-dirty --all-targets --all-features -- -D warnings -D clippy::all && cargo fmt --all", "format:js": "biome check src/ --write --unsafe && cd donut-sync && biome check src/ --write --unsafe", "format": "pnpm format:js && pnpm format:rust", "build:sync": "cd donut-sync && pnpm build", "cargo": "cd src-tauri && cargo", "unused-exports:js": "ts-unused-exports tsconfig.json", "check-unused-commands": "cd src-tauri && cargo test test_no_unused_tauri_commands", "copy-proxy-binary": "node src-tauri/copy-proxy-binary.mjs", "prebuild": "pnpm copy-proxy-binary", "pretauri:dev": "pnpm copy-proxy-binary", "precargo": "pnpm copy-proxy-binary" }, "dependencies": { "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-label": "^2.1.8", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-radio-group": "^1.3.8", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@tanstack/react-table": "^8.21.3", "@tauri-apps/api": "~2.10.1", "@tauri-apps/plugin-deep-link": "^2.4.7", "@tauri-apps/plugin-dialog": "^2.6.0", "@tauri-apps/plugin-fs": "~2.4.5", "@tauri-apps/plugin-log": "^2.8.0", "@tauri-apps/plugin-opener": "^2.5.3", "ahooks": "^3.9.6", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "color": "^5.0.3", "flag-icons": "^7.5.0", "i18next": "^25.8.18", "lucide-react": "^0.577.0", "motion": "^12.36.0", "next": "^16.1.6", "next-themes": "^0.4.6", "radix-ui": "^1.4.3", "react": "^19.2.4", "react-dom": "^19.2.4", "react-i18next": "^16.5.8", "react-icons": "^5.6.0", "recharts": "3.8.0", "sonner": "^2.0.7", "tailwind-merge": "^3.5.0", "tauri-plugin-macos-permissions-api": "^2.3.0" }, "devDependencies": { "@biomejs/biome": "2.4.7", "@tailwindcss/postcss": "^4.2.1", "@tauri-apps/cli": "~2.10.1", "@types/color": "^4.2.0", "@types/node": "^25.5.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "husky": "^9.1.7", "lint-staged": "^16.3.4", "tailwindcss": "^4.2.1", "ts-unused-exports": "^11.0.1", "tw-animate-css": "^1.4.0", "typescript": "~5.9.3" }, "packageManager": "pnpm@10.30.1", "lint-staged": { "**/*.{js,jsx,ts,tsx,json,css}": [ "biome check --fix" ], "src-tauri/**/*.rs": [ "bash -c 'cd src-tauri && cargo fmt --all'", "bash -c 'cd src-tauri && cargo clippy --all-targets --all-features -- -D warnings -D clippy::all'", "bash -c 'cd src-tauri && cargo test --lib'" ], "**/*.{rs,ts,tsx,js,jsx,md}": [ "typos" ] } }