{ "name": "thingport-backend", "private": true, "version": "1.2.0", "license": "AGPL-3.0-only", "type": "commonjs", "engines": { "node": ">=24" }, "scripts": { "dev": "tsx watch src/server.ts", "build": "tsc -p tsconfig.json", "start": "node dist/server.js", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:deploy": "prisma migrate deploy", "test": "vitest run", "lint": "oxlint ." }, "dependencies": { "@modelcontextprotocol/sdk": "^1.32.1", "@prisma/client": "^5.22.0", "bcryptjs": "^3.0.3", "cheerio": "^1.2.0", "cors": "^2.8.6", "dotenv": "^18.0.8", "express": "^4.22.3", "impit": "0.14.6", "jsonwebtoken": "^9.0.3", "jszip": "^3.10.2", "meshoptimizer": "^1.3.0", "mime-types": "^3.0.2", "multer": "^2.4.0", "nodemailer": "^10.1.2", "openid-client": "^6.8.8", "prisma": "^5.22.0", "sharp": "^0.35.5", "svg-captcha": "^1.4.0", "three": "^0.186.1", "turndown": "^7.2.4", "turndown-plugin-gfm": "^1.0.2", "yauzl": "^3.4.0", "zod": "^3.25.76" }, "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^4.17.25", "@types/jsonwebtoken": "^9.0.10", "@types/mime-types": "^3.0.1", "@types/multer": "^2.3.0", "@types/node": "^24.0.0", "@types/nodemailer": "^8.0.2", "@types/supertest": "^7.2.1", "@types/three": "^0.186.0", "@types/turndown": "^5.0.6", "@types/yauzl": "^3.4.0", "oxlint": "^1.88.0", "supertest": "^7.3.1", "tsx": "^4.23.15", "typescript": "^5.9.3", "vitest": "^4.1.12" }, "overrides": { "qs": "^6.16.0" }, "allowScripts": { "prisma": true, "@prisma/client": true, "@prisma/engines": true, "esbuild": true, "fsevents": false } }