{ "name": "lifeforge-server", "private": true, "description": "The backend server for the LifeForge system", "version": "0.0.0", "license": "CC BY-NC-SA 4.0", "author": "LifeForge (https://github.com/LifeForge-app)", "homepage": "https://docs.lifeforge.melvinchia.dev", "repository": { "type": "git", "url": "https://github.com/LifeForge-app/lifeforge.git", "directory": "server" }, "type": "module", "main": "./dist/server.js", "scripts": { "dev": "echo \"PLEASE USE \"bun forge dev\" INSTEAD\"", "types": "bun run tsc -b", "build": "bun build ./src/index.ts --target bun --minify --production --outfile=./dist/server.js", "start": "NODE_ENV=production bun --env-file=../env/.env.local ./src/index.ts", "lint": "eslint ./src --fix && prettier --write ./src", "test": "vitest", "test:ui": "vitest --ui", "test:run": "vitest run", "schema:generate": "bun ./scripts/generateSchema.ts" }, "dependencies": { "bcryptjs": "^3.0.2", "chalk": "^5.4.1", "cors": "^2.8.5", "crypto": "^1.0.1", "crypto-js": "^4.2.0", "dotenv": "^16.5.0", "express": "^4.21.2", "express-rate-limit": "^7.4.1", "groq-sdk": "^0.5.0", "helmet": "^7.2.0", "lodash": "^4.17.21", "moment": "^2.30.1", "morgan": "^1.10.0", "multer": "^1.4.5-lts.1", "openai": "^6.7.0", "pdf2pic": "^3.2.0", "pocketbase": "^0.26.2", "request": "^2.88.2", "socket.io": "^4.8.1", "speakeasy": "^2.0.0", "tesseract.js": "^6.0.1", "uuid": "^9.0.1", "zod": "^4.1.11" }, "devDependencies": { "@eslint/js": "^9.31.0", "@types/bcrypt": "^5.0.2", "@types/cors": "^2.8.17", "@types/crypto-js": "^4.2.2", "@types/express": "^4.17.23", "@types/express-serve-static-core": "4.19.6", "@types/jsdom": "^21.1.7", "@types/lodash": "^4.17.21", "@types/morgan": "^1.9.9", "@types/multer": "^1.4.12", "@types/request": "^2.48.12", "@types/speakeasy": "^2.0.10", "@types/uuid": "^10.0.0", "@vitest/ui": "^4.0.2", "eslint": "^9.31.0", "forever": "^4.0.3", "tsx": "^4.19.1", "vitest": "^4.0.2" } }