{ "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'", "start:debug": "nest start --debug --watch", "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/terminus": "^11.1.1", "@nestjs/throttler": "^6.5.0", "@nestjs/websockets": "^11.1.27", "@parcel/watcher": "^2.5.6", "@types/archiver": "^8.0.0", "archiver": "~8.0.0", "bcryptjs": "^3.0.3", "cheerio": "^1.2.0", "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" } }