{ "name": "insforge-backend", "version": "1.0.0", "author": "Insforge", "description": "Open source backend-as-a-service with PostgreSQL and MCP integration", "type": "module", "main": "../dist/server.js", "scripts": { "start": "node ../dist/server.js", "dev": "dotenv -e ../.env -- tsx watch src/server.ts", "build": "tsup", "clean": "rimraf dist", "prebuild": "npm run clean", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:ui": "vitest --ui", "test:e2e": "./tests/run-all-tests.sh", "test:integration": "vitest run --dir tests/integration --testTimeout=30000", "migrate:bootstrap": "tsx src/infra/database/migrations/bootstrap/bootstrap-migrations.js", "migrate:baseline": "tsx src/infra/database/migrations/bootstrap/baseline-migrations.js", "migrate:up": "npm run migrate:bootstrap && node-pg-migrate up --migrations-dir src/infra/database/migrations --migrations-schema system --migrations-table migrations", "migrate:down": "node-pg-migrate down --migrations-dir src/infra/database/migrations --migrations-schema system --migrations-table migrations", "migrate:create": "node-pg-migrate create --migrations-dir src/infra/database/migrations --migrations-schema system --migrations-table migrations", "migrate:check-duplicates": "node scripts/check-migration-duplicates.js", "migrate:redo": "npm run migrate:bootstrap && node-pg-migrate redo --migrations-dir src/infra/database/migrations --migrations-schema system --migrations-table migrations", "migrate:up:local": "dotenv -e ../.env -- npm run migrate:bootstrap && dotenv -e ../.env -- node-pg-migrate up --migrations-dir src/infra/database/migrations --migrations-schema system --migrations-table migrations", "migrate:down:local": "dotenv -e ../.env -- node-pg-migrate down --migrations-dir src/infra/database/migrations --migrations-schema system --migrations-table migrations", "typecheck": "tsc --noEmit", "lint": "eslint ." }, "keywords": [ "backend-as-a-service", "postgresql", "jwt" ], "dependencies": { "@asteasolutions/zod-to-openapi": "^7.3.4", "@aws-sdk/client-cloudwatch-logs": "^3.713.0", "@aws-sdk/client-s3": "^3.713.0", "@aws-sdk/cloudfront-signer": "^3.901.0", "@aws-sdk/lib-storage": "^3.1035.0", "@aws-sdk/s3-presigned-post": "^3.879.0", "@aws-sdk/s3-request-presigner": "^3.879.0", "@databases/split-sql-query": "^1.0.4", "@databases/sql": "^3.3.0", "@types/multer": "^1.4.13", "@types/pg": "^8.15.4", "adm-zip": "^0.5.16", "axios": "^1.16.1", "bcryptjs": "^3.0.2", "cookie-parser": "^1.4.7", "cors": "^2.8.5", "cron-parser": "^5.4.0", "csv-parse": "^6.1.0", "dotenv": "^16.4.5", "express": "^4.22.0", "express-rate-limit": "^7.1.5", "file-type": "^19.0.0", "google-auth-library": "^10.1.0", "jose": "^6.1.0", "jsonwebtoken": "^9.0.2", "libpg-query": "^17.6.0", "lru-cache": "^11.3.5", "multer": "^2.0.2", "node-fetch": "^3.3.2", "node-pg-migrate": "^8.0.3", "nodemailer": "^8.0.2", "openai": "^5.19.1", "pg": "^8.16.3", "pg-format": "^1.0.4", "picomatch": "^4.0.4", "razorpay": "^2.9.6", "socket.io": "^4.8.1", "stripe": "^22.1.0", "typescript": "^5.3.3", "winston": "^3.17.0", "xml2js": "^0.6.2", "zod": "^3.23.8" }, "devDependencies": { "@types/adm-zip": "^0.5.7", "@types/cookie-parser": "^1.4.8", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jsonwebtoken": "^9.0.9", "@types/node": "^20.11.24", "@types/nodemailer": "^7.0.11", "@types/pg-format": "^1.0.5", "@types/picomatch": "^4.0.3", "@types/supertest": "^7.2.0", "@types/xml2js": "^0.4.14", "dotenv-cli": "^10.0.0", "insforge-test": "^0.2.0", "supertest": "^7.2.2", "tsup": "^8.5.0", "tsx": "^4.7.1", "vite-tsconfig-paths": "^5.1.4", "vitest": "^4.1.8" } }