{ "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.2.8", "@fontsource/fraunces": "^5.2.9", "@xdrop/shared": "workspace:*", "@zip.js/zip.js": "^2.8.26", "idb": "^8.0.3", "qrcode": "^1.5.4", "react": "^19.2.5", "react-dom": "^19.2.5", "react-router-dom": "^7.14.2", "zod": "^4.4.2" }, "devDependencies": { "@eslint/js": "^10.0.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/node": "^25.6.0", "@types/qrcode": "^1.5.5", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitest/coverage-v8": "^4.1.5", "@vitejs/plugin-react": "^6.0.1", "eslint": "^10.3.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", "fake-indexeddb": "^6.2.2", "globals": "^17.6.0", "jsdom": "^29.1.1", "typescript": "~6.0.3", "typescript-eslint": "^8.59.1", "vite": "^8.0.10", "vitest": "^4.1.5" } }