{ "name": "futureporn", "private": true, "version": "2.4.9", "type": "module", "scripts": { "dev": "concurrently npm:dev:serve npm:dev:build npm:dev:worker npm:dev:compose npm:dev:sftp", "dev:serve": "npx @dotenvx/dotenvx run -f ../../.env.development.local -- tsx watch ./src/index.ts", "dev:compose": "docker compose -f compose.development.yaml up", "dev:worker": "npx @dotenvx/dotenvx run -e GRAPHILE_LOGGER_DEBUG=1 -f ../../.env.development.local -- tsx watch ./src/worker.ts", "dev:build": "chokidar 'src/**/*.{js,ts}' -c tsup --clean", "dev:sftp": "docker run -p 2222:22 --rm atmoz/sftp user:pass:::watch", "start": "echo please use either start:server or start:worker; exit 1", "start:server": "tsx ./src/index.ts", "start:worker": "tsx ./src/worker.ts", "preview": "vite preview", "build": "tsup --clean", "lint": "eslint .", "clean": "rm -rf node_modules && rm -rf pnpm-lock.yaml", "deploy": "npx prisma migrate deploy", "test:watch": "npx vitest --watch", "test": "npx vitest" }, "devDependencies": { "@eslint/compat": "^1.3.1", "@eslint/js": "^9.31.0", "eslint": "^9.31.0", "eslint-plugin-svelte": "^3.10.1", "globals": "^16.3.0", "nodemon": "^3.1.10", "prisma": "6.8.2", "typescript": "^5.8.3", "typescript-eslint": "^8.36.0", "vitest": "^3.2.4" }, "pnpm": { "onlyBuiltDependencies": [ "esbuild" ] }, "dependencies": { "@aws-sdk/client-s3": "3.726.1", "@aws-sdk/s3-request-presigner": "^3.844.0", "@dotenvx/dotenvx": "^1.47.5", "@fastify/caching": "^9.0.3", "@fastify/flash": "^6.0.3", "@fastify/formbody": "^8.0.2", "@fastify/multipart": "^9.0.3", "@fastify/oauth2": "^8.1.2", "@fastify/secure-session": "^8.2.0", "@fastify/static": "^8.2.0", "@fastify/swagger": "^9.5.1", "@fastify/swagger-ui": "^5.2.3", "@fastify/view": "^11.1.0", "@imgly/background-removal-node": "^1.4.5", "@imqueue/pg-pubsub": "^1.10.0", "@keyv/postgres": "^1.4.11", "@paralleldrive/cuid2": "^2.2.2", "@prisma/client": "6.8.2", "@prisma/extension-accelerate": "^1.3.0", "@types/node": "^22.16.3", "@types/node-fetch": "^2.6.12", "cache-manager": "^7.0.1", "canvas": "^3.1.2", "chokidar-cli": "^3.0.0", "concurrently": "^9.2.0", "create-torrent": "^6.1.0", "date-fns": "^4.1.0", "fastify": "^5.4.0", "fastify-plugin": "^5.0.1", "fastify-sse-v2": "^4.2.1", "form-data": "^4.0.3", "fs-extra": "^11.3.0", "graphile-worker": "^0.16.6", "handlebars": "4.7.8", "jdenticon": "^3.3.0", "js-yaml": "^4.1.0", "keyv": "^4.5.4", "lodash-es": "^4.17.21", "mime-types": "^3.0.1", "nano-spawn": "^1.0.2", "nanoid": "^5.1.5", "node-fetch": "^3.3.2", "onnxruntime-node": "1.22.0-rev", "pino": "^9.7.0", "pino-pretty": "^13.0.0", "pnpm": "^10.14.0", "protobufjs": "^7.5.3", "rate-limiter-flexible": "^7.1.1", "rimraf": "6.0.1", "sharp": "^0.34.3", "slugify": "^1.6.6", "slvtt": "^0.3.4", "ssh2-sftp-client": "^12.0.1", "ts-node": "^10.9.2", "tsup": "^8.5.0", "tsx": "^4.20.3", "which": "^5.0.0", "zod": "^3.25.76" }, "prisma": { "seed": "tsx prisma/seed.ts" } }