{ "name": "@xdrop/web", "private": true, "type": "module", "scripts": { "dev": "vite", "build": "tsc -b && vite build && bun ./scripts/generate-seo-assets.mjs", "lint": "eslint .", "preview": "vite preview", "test": "vitest run", "test:coverage": "vitest run --coverage --maxWorkers=1", "test:watch": "vitest", "typecheck": "tsc --noEmit -p tsconfig.app.json" }, "dependencies": { "@fontsource-variable/instrument-sans": "^5.3.0", "@fontsource/fraunces": "^5.3.0", "@xdrop/shared": "workspace:*", "@zip.js/zip.js": "^2.8.49", "idb": "^8.0.3", "qrcode": "^1.5.4", "react": "^19.2.8", "react-dom": "^19.2.8", "react-router-dom": "^7.18.2", "zod": "^4.4.3" }, "devDependencies": { "@eslint/js": "^10.0.1", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.4", "@types/node": "^26.2.0", "@types/qrcode": "^1.5.5", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.4", "@vitest/coverage-v8": "^4.1.10", "@vitejs/plugin-react": "^6.0.5", "eslint": "^10.8.1", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.4", "fake-indexeddb": "^6.2.2", "globals": "^17.11.0", "jsdom": "^30.0.1", "typescript": "~6.0.3", "typescript-eslint": "^8.67.0", "vite": "^8.2.1", "vitest": "^4.1.10" } }