mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
68a395095a
Add support for selecting multiple books and downloading entire lists, pages, or selections in bulk. This includes long-press actions, a dedicated bulk download queue with retry and cancel support, and format preset configurations. The commit also simplifies the OPDS random book query using ORDER BY random() and adjusts the Nest dev CLI config to disable the Swagger plugin for faster restarts. Closes #478
141 lines
5.0 KiB
JSON
141 lines
5.0 KiB
JSON
{
|
|
"name": "server",
|
|
"version": "0.0.1",
|
|
"description": "BookOrbit server - self-hosted library management and reading platform",
|
|
"author": "neonsolstice",
|
|
"private": true,
|
|
"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"
|
|
},
|
|
"scripts": {
|
|
"setup:kobo-cloudscraper": "tsx src/scripts/setup-kobo-cloudscraper.ts",
|
|
"prestart": "pnpm --filter @bookorbit/types build",
|
|
"prestart:dev": "pnpm --filter @bookorbit/types build",
|
|
"prestart:debug": "pnpm --filter @bookorbit/types build",
|
|
"prebuild": "pnpm --filter @bookorbit/types build",
|
|
"build": "nest build",
|
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"start": "nest start",
|
|
"start:dev": "sh -c 'export $(grep -v \"^#\" .env | xargs) 2>/dev/null; exec nest start --watch --config nest-cli.dev.json'",
|
|
"start:debug": "nest start --debug --watch --config nest-cli.dev.json",
|
|
"start:prod": "node dist/main",
|
|
"db:generate": "drizzle-kit generate --name",
|
|
"db:migrate": "drizzle-kit migrate",
|
|
"e2e:db:migrate": "DATABASE_URL=postgres://bookorbit:bookorbit@localhost:5432/bookorbit_e2e pnpm db:migrate",
|
|
"db:migrate:runtime": "node dist/scripts/migrate.js",
|
|
"e2e:db:prepare": "tsx src/scripts/db-prepare-e2e.ts",
|
|
"db:studio": "drizzle-kit studio",
|
|
"db:seed": "tsx src/scripts/db-seed.ts",
|
|
"whats-new:preview": "tsx src/scripts/whats-new-preview.ts",
|
|
"whats-new:lint": "tsx src/scripts/whats-new-lint.ts",
|
|
"whats-new:check": "tsx src/scripts/whats-new-check.ts",
|
|
"whats-new:images": "tsx src/scripts/whats-new-images.ts",
|
|
"pretype-check": "pnpm --filter @bookorbit/types build",
|
|
"type-check": "tsc --noEmit -p tsconfig.build.json",
|
|
"lint": "pnpm run lint:check",
|
|
"lint:check": "eslint \"{src,apps,libs,test}/**/*.ts\"",
|
|
"lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
"test": "vitest run --exclude test/scanner-scenarios.e2e-spec.ts --exclude test/scanner-file-operations.e2e-spec.ts",
|
|
"test:watch": "vitest",
|
|
"test:cov": "vitest run --coverage",
|
|
"e2e:run": "vitest run test/app-smoke.e2e-spec.ts"
|
|
},
|
|
"dependencies": {
|
|
"7z-wasm": "^1.2.0",
|
|
"@bookorbit/types": "workspace:*",
|
|
"@fastify/compress": "^9.0.0",
|
|
"@fastify/cookie": "^11.0.2",
|
|
"@fastify/formbody": "^8.0.2",
|
|
"@fastify/helmet": "^13.0.2",
|
|
"@fastify/multipart": "^10.0.0",
|
|
"@fastify/static": "^9.1.3",
|
|
"@nestjs/common": "^11.1.27",
|
|
"@nestjs/config": "^4.0.4",
|
|
"@nestjs/core": "^11.1.27",
|
|
"@nestjs/jwt": "^11.0.2",
|
|
"@nestjs/passport": "^11.0.5",
|
|
"@nestjs/platform-fastify": "^11.1.27",
|
|
"@nestjs/platform-socket.io": "^11.1.27",
|
|
"@nestjs/schedule": "^6.1.3",
|
|
"@nestjs/swagger": "^11.4.4",
|
|
"@nestjs/terminus": "^11.1.1",
|
|
"@nestjs/throttler": "^6.5.0",
|
|
"@nestjs/websockets": "^11.1.27",
|
|
"@types/archiver": "^8.0.0",
|
|
"archiver": "~8.0.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"cheerio": "^1.2.0",
|
|
"chokidar": "^4.0.3",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.15.1",
|
|
"date-fns-tz": "^3.2.0",
|
|
"drizzle-orm": "^0.45.2",
|
|
"fast-xml-parser": "^5.9.3",
|
|
"fastest-levenshtein": "^1.0.16",
|
|
"fastify": "^5.8.5",
|
|
"jose": "^6.2.3",
|
|
"ms": "^2.1.3",
|
|
"mysql2": "^3.22.5",
|
|
"nestjs-pino": "^4.6.1",
|
|
"node-unrar-js": "^2.0.2",
|
|
"nodemailer": "^9.0.1",
|
|
"opentype.js": "^2.0.0",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"pdf-lib": "^1.17.1",
|
|
"pg": "^8.22.0",
|
|
"pg-connection-string": "^2.14.0",
|
|
"pino-http": "^11.0.0",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.2",
|
|
"sharp": "^0.35.2",
|
|
"socket.io": "^4.8.3",
|
|
"unzipper": "^0.12.3",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.3.5",
|
|
"@eslint/js": "^10.0.1",
|
|
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
|
"@ffprobe-installer/ffprobe": "^2.1.2",
|
|
"@nestjs/cli": "^11.0.23",
|
|
"@nestjs/schematics": "^11.1.0",
|
|
"@nestjs/testing": "^11.1.27",
|
|
"@swc/cli": "^0.8.1",
|
|
"@swc/core": "^1.15.41",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/express": "^5.0.6",
|
|
"@types/node": "^26.0.0",
|
|
"@types/nodemailer": "^8.0.1",
|
|
"@types/opentype.js": "^1.3.10",
|
|
"@types/passport-jwt": "^4.0.1",
|
|
"@types/pg": "^8.18.0",
|
|
"@types/supertest": "^7.2.0",
|
|
"@types/unzipper": "^0.10.11",
|
|
"@vitest/coverage-v8": "^4.1.9",
|
|
"drizzle-kit": "^0.31.10",
|
|
"eslint": "^10.5.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-prettier": "^5.5.6",
|
|
"globals": "^17.6.0",
|
|
"pino-pretty": "^13.1.3",
|
|
"prettier": "^3.8.4",
|
|
"source-map-support": "^0.5.21",
|
|
"supertest": "^7.2.2",
|
|
"ts-loader": "^9.6.1",
|
|
"ts-node": "^10.9.2",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"tsx": "^4.22.4",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.61.1",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|