{ "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": "tsx watch --env-file=../env/.env.local ./src/index.ts", "types": "bun run tsc -b --noEmit", "build": "bun build ./src/index.ts --target bun --minify --production --outfile=./dist/server.js", "start": "NODE_ENV=production bun --env-file=../env/.env.local ./dist/server.js", "lint": "eslint ./src --fix && prettier --write ./src", "test": "jest", "schema:generate": "bun ./scripts/generateSchema.ts" }, "dependencies": { "@ai-sdk/openai": "^2.0.16", "@ts-rest/express": "^3.52.1", "@zodios/express": "^10.6.1", "aewx-metar-parser": "^1.0.0", "ai": "^5.0.0-beta.34", "base64": "^2.1.0", "bcryptjs": "^3.0.2", "chalk": "^5.4.1", "cors": "^2.8.5", "crypto": "^1.0.1", "crypto-js": "^4.2.0", "dompurify": "^3.2.3", "dotenv": "^16.5.0", "epub2": "^3.0.2", "eslint-plugin-unused-imports": "^4.1.4", "exifreader": "^4.23.7", "express": "^4.21.2", "express-lazy-router": "^1.0.6", "express-rate-limit": "^7.4.1", "express-validator": "^7.2.0", "fast-glob": "^3.3.3", "fluent-ffmpeg": "^2.1.3", "get-video-dimensions": "^1.0.0", "groq-sdk": "^0.5.0", "helmet": "^7.2.0", "image-size": "^1.1.1", "imap-simple": "^5.1.0", "jsdom": "^24.1.3", "jszip": "^3.10.1", "lodash": "^4.17.21", "mailparser": "^3.7.2", "mime-types": "^2.1.35", "moment": "^2.30.1", "moment-range": "^4.0.2", "morgan": "^1.10.0", "multer": "^1.4.5-lts.1", "music-metadata": "^7.14.0", "nodemailer": "^7.0.3", "open-graph-scraper": "^6.8.2", "openai": "^5.11.0", "os-utils": "^0.0.14", "pdf-page-counter": "^1.0.3", "pdf-thumbnail": "^1.0.6", "pdf2pic": "^3.1.3", "pdfkit": "^0.15.1", "pluralize": "^8.0.0", "pocketbase": "^0.26.2", "puppeteer-core": "^24.6.1", "redis": "^4.7.0", "reflect-metadata": "^0.2.2", "request": "^2.88.2", "rrule": "^2.8.1", "sanitize-html": "^2.17.0", "shared": "workspace:*", "sharp": "^0.33.5", "socket.io": "^4.8.1", "speakeasy": "^2.0.0", "systeminformation": "^5.23.5", "tesseract.js": "^6.0.0", "ts-node": "^10.9.2", "uuid": "^9.0.1", "words-count": "^2.0.2", "zod": "^3.25.51", "zod-to-json-schema": "^3.24.5", "zod-to-ts": "^1.2.0" }, "devDependencies": { "@eslint/js": "^9.31.0", "@types/bcrypt": "^5.0.2", "@types/chai-http": "^4.2.0", "@types/cors": "^2.8.17", "@types/dompurify": "^3.0.5", "@types/express": "^4.17.21", "@types/fluent-ffmpeg": "^2.1.27", "@types/imap-simple": "^4.2.9", "@types/jest": "^29.5.14", "@types/jsdom": "^21.1.7", "@types/mailparser": "^3.4.5", "@types/mime-types": "^2.1.4", "@types/morgan": "^1.9.9", "@types/multer": "^1.4.12", "@types/nodemailer": "^6.4.17", "@types/pluralize": "^0.0.33", "@types/request": "^2.48.12", "@types/sanitize-html": "^2.16.0", "@types/speakeasy": "^2.0.10", "@types/supertest": "^6.0.2", "@types/uuid": "^10.0.0", "chai": "^5.1.1", "eslint": "^9.31.0", "forever": "^4.0.3", "globals": "^16.3.0", "jest": "^29.7.0", "nodemon": "^3.1.7", "supertest": "^7.0.0", "ts-jest": "^29.2.5", "tsx": "^4.19.1", "typescript-eslint": "^8.37.0" } }