{ "name": "bookorbit", "description": "Self-hosted library management and reading platform for ebooks, PDFs, audiobooks, and comics", "author": "neonsolstice", "license": "AGPL-3.0", "homepage": "https://bookorbit.app", "repository": { "type": "git", "url": "https://github.com/bookorbit/bookorbit" }, "bugs": { "url": "https://github.com/bookorbit/bookorbit/issues" }, "private": true, "packageManager": "pnpm@10.32.1", "scripts": { "setup": "bash ./scripts/bootstrap/local.sh", "dev": "concurrently --names \"types,server,client\" --prefix-colors \"cyan,blue,green\" \"pnpm --filter @bookorbit/types dev\" \"pnpm run dev:server\" \"pnpm run dev:client\"", "dev:client": "cd client && pnpm dev -- --host", "dev:server": "cd server && pnpm start:dev", "verify:fast": "pnpm run lint:check && pnpm run typecheck", "verify": "pnpm run lint:check && pnpm run typecheck && pnpm run test", "verify:strict": "pnpm run format:check && pnpm run lint:check && pnpm run typecheck:full && pnpm run test", "build:client": "pnpm --filter client build", "build:server": "pnpm --filter server build", "typecheck": "pnpm run typecheck:server && pnpm run typecheck:client", "typecheck:full": "pnpm run typecheck:server && pnpm run typecheck:client", "typecheck:server": "pnpm --filter server type-check", "typecheck:client": "pnpm --filter client type-check", "lint:check": "pnpm --filter server lint:check && pnpm --filter client lint:check", "lint:fix": "pnpm --filter server lint:fix && pnpm --filter client lint:fix", "format": "pnpm --filter server format && pnpm --filter client format", "format:check": "pnpm --filter server format:check && pnpm --filter client format:check", "test": "pnpm run test:star-history && pnpm run test:server && pnpm run test:client", "test:star-history": "node --test scripts/star-history/generate.test.mjs", "test:server": "pnpm --filter server test", "test:client": "pnpm --filter client test:unit --run", "e2e:run": "node ./scripts/e2e/run-suite.mjs", "e2e:all": "node ./scripts/e2e/run-suite.mjs all", "e2e:list": "node ./scripts/e2e/run-suite.mjs --list", "coverage": "pnpm run coverage:server && pnpm run coverage:client", "coverage:server": "pnpm --filter server test:cov", "coverage:client": "pnpm --filter client test:cov --run", "db:up": "docker compose -f docker-compose.dev.yml up -d --wait", "prod:up": "docker compose up -d --wait", "prod:down": "docker compose down", "db:migrate": "pnpm --filter server db:migrate", "db:reset": "bash ./scripts/db/reset.sh", "db:seed": "bash ./scripts/db/seed-baseline.sh", "e2e:db:prepare": "bash ./scripts/e2e/prepare-db.sh", "e2e:db:migrate": "pnpm --filter server e2e:db:migrate", "prepare": "husky" }, "engines": { "node": ">=24", "pnpm": ">=9" }, "devDependencies": { "@commitlint/cli": "^21.2.1", "@commitlint/config-conventional": "^21.2.0", "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/github": "^12.0.9", "@semantic-release/release-notes-generator": "^14.1.1", "concurrently": "^10.0.4", "conventional-changelog-conventionalcommits": "^9.3.1", "husky": "^9.1.7", "lint-staged": "^17.2.0", "prettier": "^3.9.6", "semantic-release": "^25.0.8" }, "lint-staged": { "*.{md,json,yml,yaml}": [ "pnpm exec prettier --write" ], "client/src/**/*.{ts,vue}": [ "pnpm --dir client exec eslint --fix --max-warnings 0", "pnpm exec prettier --write" ], "server/{src,test}/**/*.ts": [ "pnpm --dir server exec eslint --fix", "pnpm exec prettier --write" ] }, "pnpm": { "overrides": { "@xhmikosr/decompress": "^11.1.3", "@esbuild-kit/core-utils>esbuild": "^0.25.12", "@nestjs/swagger>js-yaml": "^5.2.2", "brace-expansion@>=5.0.0 <5.0.8": "^5.0.8", "engine.io": "^6.6.7", "esbuild": "^0.28.1", "fastify": "^5.10.0", "fast-uri": "^3.1.4", "fast-xml-builder": "^1.1.7", "find-my-way": "^9.7.0", "form-data": "^4.0.6", "piscina": "^4.9.3", "qs": "^6.15.2", "ws": "^8.21.0" }, "packageExtensions": { "@embedpdf/utils@2.14.4": { "dependencies": { "@embedpdf/models": "2.14.4" } } }, "onlyBuiltDependencies": [ "@nestjs/core", "@parcel/watcher", "@swc/core", "esbuild", "sharp", "unrs-resolver" ], "patchedDependencies": { "@embedpdf/core@2.14.4": "patches/@embedpdf__core@2.14.4.patch", "@embedpdf/engines@2.14.4": "patches/@embedpdf__engines@2.14.4.patch", "@embedpdf/plugin-scroll@2.14.4": "patches/@embedpdf__plugin-scroll@2.14.4.patch" } } }