Files
bookorbit/package.json
T
neon 3aff8f521b chore(i18n): automate Crowdin translation progress SVG chart and consolidate repo chart workflows
Add automated Crowdin translation progress SVG chart generator, test, and workflow. Consolidate star history and translation stats generation into unified repo-charts workflow, and update README links.
2026-07-27 18:25:59 +00:00

123 lines
4.7 KiB
JSON

{
"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:charts && pnpm run test:server && pnpm run test:client",
"test:charts": "node --test scripts/star-history/generate.test.mjs scripts/crowdin-stats/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"
}
}
}