{ "name": "reader-client", "version": "0.1.0", "private": true, "description": "Reader client: shared rendering layer for the H5 build and the Android WebView shell.", "license": "AGPL-3.0-or-later", "type": "module", "scripts": { "dev": "vite", "build": "tsc -p tsconfig.json --noEmit && vite build", "typecheck": "tsc -p tsconfig.json --noEmit", "test": "vitest run && tsx --test test/api.test.ts test/asset-url.test.ts test/paginator.test.ts test/window.test.ts test/windowed-toc.test.ts", "test:watch": "vitest", "icons": "node tools/icons/build.mjs", "ui:review": "npm run build && node tools/ui-review/react-app.mjs", "ui:review:only": "node tools/ui-review/react-app.mjs", "ui:review:reader": "node tools/ui-review/run.mjs", "ui:sources": "npm run build && node --import ../server/node_modules/tsx/dist/loader.mjs tools/ui-review/host-source-flow.mjs" }, "dependencies": { "@tanstack/query-core": "^5.104.0", "@tanstack/react-query": "^5.90.5", "dplayer": "^1.27.1", "fast-xml-parser": "^4.5.1", "jszip": "^3.10.1", "lucide-react": "^0.468.0", "notyf": "^3.10.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router-dom": "^7.9.4", "zustand": "^5.0.8" }, "devDependencies": { "@types/jsdom": "^30.0.0", "@types/node": "^22.20.3", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.3.4", "clipper-lib": "^6.4.2", "jsdom": "^30.0.1", "playwright": "^1.63.0", "tsx": "^4.19.2", "typescript": "^5.7.3", "vite": "^6.0.7", "vitest": "^3.2.4" } }