{ "name": "postsider", "version": "1.3.0", "description": "PostSider - open-source social media scheduler for 30+ platforms (backend monorepo)", "main": "index.js", "license": "AGPL-3.0", "homepage": "https://postsider.com", "repository": { "type": "git", "url": "git+https://github.com/lumizone/postsider.git" }, "bugs": { "url": "https://github.com/lumizone/postsider/issues" }, "keywords": [ "social-media", "scheduler", "self-hosted", "mcp", "nestjs", "nextjs" ], "author": "Lumi Zone Ɓukasz Blania ", "engines": { "node": ">=20.17.0 <23.0.0" }, "packageManager": "pnpm@10.6.1", "scripts": { "dev": "pnpm run --filter ./apps/orchestrator --filter ./apps/backend --parallel dev", "dev-backend": "pnpm run --filter ./apps/backend --parallel dev", "pm2": "pnpm run pm2-run", "publish-sdk": "pnpm run --filter ./apps/sdk publish", "pm2-run": "pnpm run prisma-migrate-deploy && pm2-runtime start ecosystem.config.js", "build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 pnpm -r --workspace-concurrency=1 --filter ./apps/backend --filter ./apps/orchestrator run build", "build:backend": "rm -rf apps/backend/dist && cross-env NODE_OPTIONS=--max-old-space-size=4096 pnpm --filter ./apps/backend run build", "build:orchestrator": "rm -rf apps/orchestrator/dist && cross-env NODE_OPTIONS=--max-old-space-size=4096 pnpm --filter ./apps/orchestrator run build", "build:sdk": "pnpm --filter ./apps/sdk exec tsup", "dev:backend": "rm -rf apps/backend/dist && pnpm --filter ./apps/backend run dev", "dev:orchestrator": "rm -rf apps/orchestrator/dist && pnpm --filter ./apps/orchestrator run dev", "dev:frontend": "pnpm --filter ./apps/frontend run dev", "start:prod:orchestrator": "pnpm --filter ./apps/orchestrator run start", "start:prod:backend": "pnpm --filter ./apps/backend run start", "dev:docker": "docker compose -f ./docker-compose.dev.yaml up -d", "commands:build:development": "pnpm --filter ./apps/commands run build", "bootstrap": "pnpm --filter ./apps/commands run bootstrap", "prisma-generate": "pnpm dlx prisma@6.5.0 generate --schema ./libraries/nestjs-libraries/src/database/prisma/schema.prisma", "prisma-db-push": "pnpm dlx prisma@6.5.0 db push --schema ./libraries/nestjs-libraries/src/database/prisma/schema.prisma", "prisma-db-pull": "pnpm dlx prisma@6.5.0 db pull --schema ./libraries/nestjs-libraries/src/database/prisma/schema.prisma", "prisma-migrate-dev": "pnpm dlx prisma@6.5.0 migrate dev --schema ./libraries/nestjs-libraries/src/database/prisma/schema.prisma", "prisma-migrate-deploy": "pnpm exec prisma migrate deploy --schema ./libraries/nestjs-libraries/src/database/prisma/schema.prisma", "prisma-migrate-status": "pnpm dlx prisma@6.5.0 migrate status --schema ./libraries/nestjs-libraries/src/database/prisma/schema.prisma", "prisma-reset": "cd ./libraries/nestjs-libraries/src/database/prisma && pnpm dlx prisma@6.5.0 db push --force-reset && pnpx prisma@6.5.0 db push", "postinstall": "pnpm run prisma-generate", "test": "jest --coverage --reporters=default --reporters=jest-junit --forceExit", "test:handles": "jest --runInBand --detectOpenHandles" }, "dependencies": { "@atproto/api": "^0.15.15", "@aws-sdk/client-s3": "^3.787.0", "@aws-sdk/s3-request-presigner": "^3.787.0", "@casl/ability": "^6.5.0", "@nest-lab/throttler-storage-redis": "^1.2.0", "@nestjs/cli": "^11.0.21", "@nestjs/common": "^11.1.21", "@nestjs/core": "^11.1.21", "@nestjs/microservices": "^11.1.21", "@nestjs/platform-express": "^11.1.21", "@nestjs/schedule": "^6.1.3", "@nestjs/swagger": "^11.4.3", "@nestjs/throttler": "^6.5.0", "@neynar/nodejs-sdk": "^3.112.0", "@polar-sh/sdk": "^0.48.1", "@prisma/client": "6.5.0", "@sentry/nestjs": "^10.26.0", "@sentry/profiling-node": "^10.25.0", "@temporalio/activity": "^1.14.0", "@temporalio/client": "^1.14.0", "@temporalio/common": "^1.14.0", "@temporalio/worker": "^1.14.0", "@temporalio/workflow": "^1.14.0", "@types/bcrypt": "^5.0.2", "@types/concat-stream": "^2.0.3", "@types/facebook-nodejs-business-sdk": "^20.0.2", "@types/jsonwebtoken": "^9.0.5", "@types/lodash": "^4.14.202", "@types/md5": "^2.3.5", "@types/mime": "^4.0.0", "@types/mime-types": "^2.1.4", "@types/multer": "^1.4.11", "@types/nodemailer": "^6.4.17", "@types/parse5": "v6.0.1", "@types/remove-markdown": "^0.3.4", "@types/sha256": "^0.2.2", "@types/striptags": "^0.0.5", "@types/yup": "^0.32.0", "axios": "^1.18.0", "bcrypt": "^6.0.0", "bs58": "^6.0.0", "bufferutil": "^4.0.8", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "class-validator-jsonschema": "^5.1.0", "compression": "^1.8.1", "concat-stream": "^2.0.0", "cookie-parser": "^1.4.7", "dayjs": "^1.11.10", "dotenv": "^16.5.0", "dotenv-cli": "^8.0.0", "evp_bytestokey": "^1.0.3", "facebook-nodejs-business-sdk": "^21.0.5", "ffprobe-static": "^3.1.0", "file-type": "^21.3.4", "google-auth-library": "^9.11.0", "googleapis": "^137.1.0", "image-to-pdf": "^3.0.2", "ioredis": "^5.3.2", "isomorphic-dompurify": "^3.10.0", "json-to-graphql-query": "^2.2.5", "jsonwebtoken": "^9.0.2", "lodash": "^4.17.21", "mime": "^4.1.0", "mime-types": "^2.1.35", "multer": "^1.4.5-lts.1", "music-metadata": "^11.12.3", "nestjs-command": "^3.1.4", "nestjs-real-ip": "^3.0.1", "nestjs-temporal-core": "^3.2.0", "node-fetch": "^3.3.2", "node-telegram-bot-api": "^0.66.0", "nodemailer": "^9.0.1", "nostr-tools": "^2.18.2", "openai": "^6.2.0", "p-limit": "^3.1.0", "parse5": "^6.0.1", "pdf-lib": "^1.17.1", "prisma": "6.5.0", "reflect-metadata": "^0.2.2", "remove-markdown": "^0.5.0", "resend": "^3.2.0", "rss-parser": "^3.13.0", "rxjs": "^7.8.0", "sharp": "^0.35.4", "slugify": "^1.6.6", "striptags": "^3.2.0", "subtitle": "4.2.2", "tldts": "^6.1.47", "transloadit": "^3.0.2", "tslib": "^2.3.0", "tweetnacl": "^1.0.3", "twitter-api-v2": "^1.29.0", "twitter-text": "^3.1.0", "utf-8-validate": "^5.0.10", "uuid": "^14.0.2", "ws": "^8.21.0", "yargs": "^17.7.2", "yup": "^1.4.0", "zod": "^3.25.76" }, "devDependencies": { "@babel/preset-env": "^7.29.7", "@nestjs/schematics": "^11.1.0", "@nestjs/testing": "^11.1.21", "@swc-node/register": "1.9.2", "@swc/cli": "0.3.14", "@swc/core": "1.5.7", "@types/cache-manager-redis-store": "^2.0.4", "@types/compression": "^1.8.1", "@types/cookie-parser": "^1.4.6", "@types/jest": "29.5.12", "@types/jsdom": "^28.0.3", "@types/node": "18.16.9", "@types/node-telegram-bot-api": "^0.64.7", "@types/uuid": "^9.0.8", "@types/ws": "^8.18.1", "@types/yargs": "^17.0.32", "@typescript-eslint/eslint-plugin": "7.18.0", "@typescript-eslint/parser": "7.18.0", "babel-jest": "29.7.0", "cross-env": "^10.0.0", "eslint": "8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "2.32.0", "fast-check": "^4.8.0", "fs-extra": "^11.3.0", "jest": "29.7.0", "jest-environment-node": "^29.4.1", "jest-junit": "^16.0.0", "jest-mock-extended": "^4.0.0-beta1", "nodemon": "^3.1.9", "prettier": "^2.6.2", "ts-jest": "^29.1.0", "ts-node": "10.9.2", "tsup": "^8.5.0", "typescript": "5.5.4" }, "volta": { "node": "20.17.0" }, "jest-junit": { "outputDirectory": "./reports", "outputName": "junit.xml" } }