{ "name": "@papra/app-server", "type": "module", "version": "0.0.0", "private": true, "description": "Papra app server", "author": "Corentin Thomasset (https://corentin.tech)", "license": "AGPL-3.0-or-later", "keywords": [], "scripts": { "dev": "tsx watch --env-file-if-exists=.env src/index.ts | crowlog-pretty", "build": "pnpm esbuild --bundle src/index.ts --platform=node --packages=external --format=esm --outfile=dist/index.js --minify", "start": "node dist/index.js", "start:with-migrations": "pnpm migrate:up:prod && pnpm start", "lint": "eslint .", "lint:fix": "eslint --fix .", "test": "vitest run", "test:watch": "vitest watch", "test:unit": "vitest run --exclude '**/*.int.test.ts'", "test:unit:watch": "vitest watch --exclude '**/*.int.test.ts'", "test:int": "vitest run .int.test.ts", "test:int:watch": "vitest watch '**/*.int.test.ts'", "test:int:pull-images": "tsx --env-file-if-exists=.env src/scripts/pull-test-container-images.script.ts | crowlog-pretty", "typecheck": "tsc --noEmit", "migrate:up": "tsx --env-file-if-exists=.env src/scripts/migrate-up.script.ts | crowlog-pretty", "migrate:down": "tsx --env-file-if-exists=.env src/scripts/migrate-down.script.ts | crowlog-pretty", "migrate:up:prod": "tsx src/scripts/migrate-up.script.ts", "migrate:push": "drizzle-kit push", "migrate:create": "sh -c 'tsx --env-file-if-exists=.env src/scripts/create-migration.ts \"$1\" | crowlog-pretty' --", "db:studio": "drizzle-kit studio", "clean:dist": "rm -rf dist", "clean:db": "rm db.sqlite", "clean:storage": "rm -rf local-documents", "clean:all": "pnpm clean:db && pnpm clean:storage", "dev:reset": "pnpm clean:all && pnpm migrate:up", "script:send-intake-email": "tsx --env-file-if-exists=.env src/scripts/send-intake-email.script.ts | crowlog-pretty", "stripe:webhook": "stripe listen --forward-to localhost:1221/api/stripe/webhook", "script:make-user-admin": "tsx --env-file-if-exists=.env src/scripts/make-user-admin.script.ts", "maintenance:encrypt-all-documents": "tsx --env-file-if-exists=.env src/scripts/encrypt-all-documents.script.ts", "maintenance:migrate-document-storage": "tsx --env-file-if-exists=.env src/scripts/migrate-document-storage.script.ts" }, "dependencies": { "@aws-sdk/client-s3": "^3.835.0", "@aws-sdk/lib-storage": "^3.835.0", "@azure/storage-blob": "^12.27.0", "@better-auth/expo": "catalog:", "@cadence-mq/core": "^0.2.1", "@cadence-mq/driver-libsql": "^0.2.4", "@cadence-mq/driver-memory": "^0.2.0", "@clack/prompts": "1.0.0-alpha.6", "@corentinth/chisels": "catalog:", "@corentinth/friendly-ids": "^0.0.1", "@crowlog/async-context-plugin": "^2.1.0", "@crowlog/logger": "^2.2.2", "@hono/node-server": "^1.19.6", "@libsql/client": "^0.14.0", "@owlrelay/api-sdk": "^0.0.2", "@owlrelay/webhook": "^0.0.3", "@papra/lecture": "workspace:*", "@papra/search-parser": "workspace:*", "@papra/webhooks": "workspace:*", "@paralleldrive/cuid2": "^2.2.2", "@sindresorhus/slugify": "^3.0.0", "better-auth": "catalog:", "busboy": "^1.6.0", "c12": "^3.0.4", "chokidar": "^4.0.3", "drizzle-kit": "^0.30.6", "drizzle-orm": "^0.38.4", "figue": "catalog:", "file-type": "^21.3.0", "filenamify": "^7.0.1", "hono": "^4.10.7", "mime-types": "^3.0.1", "nanoid": "^5.1.5", "node-cron": "^3.0.3", "nodemailer": "^7.0.3", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "picomatch": "^4.0.2", "posthog-node": "^5.20.0", "resend": "^4.6.0", "sanitize-html": "^2.17.0", "stripe": "^17.7.0", "tsx": "catalog:", "valibot": "catalog:", "zod": "^3.25.67" }, "devDependencies": { "@antfu/eslint-config": "catalog:", "@crowlog/pretty": "^2.0.1", "@testcontainers/azurite": "^11.5.1", "@testcontainers/localstack": "^11.5.1", "@total-typescript/ts-reset": "^0.6.1", "@types/backblaze-b2": "^1.5.6", "@types/busboy": "^1.5.4", "@types/mime-types": "^2.1.4", "@types/node": "catalog:", "@types/node-cron": "^3.0.11", "@types/nodemailer": "^6.4.17", "@types/picomatch": "^4.0.0", "@types/sanitize-html": "^2.16.0", "@vitest/coverage-v8": "catalog:", "esbuild": "^0.24.2", "eslint": "catalog:", "magicast": "^0.3.5", "memfs": "^4.17.2", "testcontainers": "^11.5.1", "typescript": "catalog:", "vitest": "catalog:" } }