Remove all Dexie/IndexedDB code and dependencies, including document and preview caches, local config, onboarding, and migration logic. Replace with server-backed React Query hooks for documents, folders, preferences, onboarding, and progress. Add browser Cache Storage for blob caching of documents, previews, and audio. Update API routes, database schema, and tests to support folder management, onboarding state, and server-side persistence of all user data. Refactor UI and hooks to use server state exclusively, ensuring all user state is synced and portable across devices. BREAKING CHANGE: All user data, preferences, onboarding, and document state are now stored and synced on the server; browser IndexedDB is no longer used. Existing local-only data will not be available after this update.
114 lines
4.4 KiB
JSON
114 lines
4.4 KiB
JSON
{
|
|
"name": "openreader",
|
|
"version": "4.3.0",
|
|
"private": true,
|
|
"packageManager": "pnpm@10.33.4",
|
|
"scripts": {
|
|
"dev": "pnpm --filter @openreader/bootstrap start pnpm dev:raw",
|
|
"dev:raw": "next dev --turbopack -p 3003",
|
|
"build": "next build",
|
|
"build:bundle-guard": "node scripts/check-next-server-bundle.mjs",
|
|
"check:compute-boundary": "node scripts/check-compute-boundary.mjs",
|
|
"start": "pnpm --filter @openreader/bootstrap start pnpm start:raw",
|
|
"start:raw": "next start -p 3003",
|
|
"lint": "next lint",
|
|
"test": "playwright test",
|
|
"test:e2e": "playwright test",
|
|
"test:unit": "vitest run",
|
|
"test:compute": "vitest run --project compute-worker",
|
|
"compose": "docker compose -f docker/examples/compose.yml up",
|
|
"compose:full": "docker compose -f docker/examples/compose.full.yml up",
|
|
"compose:local": "docker compose -f docker/examples/compose.local-slim.yml up --build",
|
|
"compose:local:slim": "docker compose -f docker/examples/compose.local-slim.yml up --build",
|
|
"compose:local:full": "docker compose -f docker/examples/compose.local-full.yml up --build",
|
|
"migrate": "pnpm --filter @openreader/database migrate",
|
|
"migrate-fs": "pnpm --filter @openreader/bootstrap migrate-storage",
|
|
"migrate-fs:dry-run": "pnpm --filter @openreader/bootstrap migrate-storage --dry-run true",
|
|
"generate": "node packages/database/scripts/generate.mjs",
|
|
"docs:init": "pnpm --dir docs-site install",
|
|
"docs:dev": "pnpm --dir docs-site start",
|
|
"docs:build": "pnpm --dir docs-site build",
|
|
"docs:serve": "pnpm --dir docs-site serve",
|
|
"docs:version": "pnpm --dir docs-site docusaurus docs:version",
|
|
"docs:clear": "pnpm --dir docs-site clear",
|
|
"compute:dev": "pnpm --filter @openreader/compute-worker dev",
|
|
"compute:start": "pnpm --filter @openreader/compute-worker start",
|
|
"compute:openapi:generate": "pnpm --dir packages/compute-worker openapi:generate && openapi-typescript packages/compute-worker/openapi.json -o src/lib/server/compute-worker/generated.ts",
|
|
"compute:openapi:check": "pnpm compute:openapi:generate && git diff --exit-code -- packages/compute-worker/openapi.json src/lib/server/compute-worker/generated.ts",
|
|
"lint:route-errors": "node scripts/check-route-error-responses.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.1061.0",
|
|
"@aws-sdk/s3-request-presigner": "^3.1061.0",
|
|
"@headlessui/react": "^2.2.10",
|
|
"@microsoft/antissrf": "^1.0.0",
|
|
"@mozilla/readability": "^0.6.0",
|
|
"@napi-rs/canvas": "^0.1.100",
|
|
"@openreader/database": "workspace:*",
|
|
"@speech-sdk/core": "^0.15.0",
|
|
"@tanstack/react-query": "^5.101.0",
|
|
"@types/archiver": "^7.0.0",
|
|
"@vercel/analytics": "^1.6.1",
|
|
"archiver": "^7.0.1",
|
|
"better-auth": "^1.6.14",
|
|
"cmpstr": "^3.3.0",
|
|
"compromise": "^14.15.1",
|
|
"core-js": "^3.49.0",
|
|
"dotenv": "^17.4.2",
|
|
"drizzle-orm": "^0.45.2",
|
|
"epubjs": "^0.3.93",
|
|
"fast-xml-parser": "^5.8.0",
|
|
"ffmpeg-static": "^5.3.0",
|
|
"howler": "^2.2.4",
|
|
"jszip": "^3.10.1",
|
|
"linkedom": "^0.18.12",
|
|
"lru-cache": "^11.5.1",
|
|
"next": "^15.5.19",
|
|
"openai": "^6.41.0",
|
|
"pdfjs-dist": "4.8.69",
|
|
"pino": "^10.3.1",
|
|
"pino-pretty": "^13.1.3",
|
|
"react": "^19.2.7",
|
|
"react-dnd": "^16.0.1",
|
|
"react-dnd-html5-backend": "^16.0.1",
|
|
"react-dnd-touch-backend": "^16.0.1",
|
|
"react-dom": "^19.2.7",
|
|
"react-dropzone": "^14.4.1",
|
|
"react-hot-toast": "^2.6.0",
|
|
"react-markdown": "^10.1.0",
|
|
"react-pdf": "^9.2.1",
|
|
"react-reader": "^2.0.15",
|
|
"remark-gfm": "^4.0.1",
|
|
"replicate": "^1.4.0",
|
|
"turndown": "^7.2.4",
|
|
"uuid": "^11.1.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.3.5",
|
|
"@playwright/test": "^1.60.0",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/howler": "^2.2.13",
|
|
"@types/mozilla-readability": "^0.2.1",
|
|
"@types/node": "^20.19.41",
|
|
"@types/pg": "^8.20.0",
|
|
"@types/react": "^19.2.16",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/turndown": "^5.0.6",
|
|
"@types/uuid": "^10.0.0",
|
|
"better-sqlite3": "^12.10.0",
|
|
"drizzle-kit": "^0.31.10",
|
|
"eslint": "^9.39.4",
|
|
"eslint-config-next": "^15.5.19",
|
|
"openapi-typescript": "^7.10.1",
|
|
"postcss": "^8.5.15",
|
|
"tailwindcss": "^3.4.19",
|
|
"typescript": "^5.9.3",
|
|
"vitest": "^4.1.8"
|
|
},
|
|
"pnpm": {
|
|
"overrides": {
|
|
"kysely": "0.28.17"
|
|
}
|
|
}
|
|
}
|