{"_id":"@asadahmed/bullmq-job-queue","_rev":"4-957c43774d013479aa9cd84848689664","name":"@asadahmed/bullmq-job-queue","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@asadahmed/bullmq-job-queue","version":"1.0.0","keywords":["bullmq","queue","redis","worker","pdf","email","webhook"],"author":{"name":"Asad Ahmed"},"license":"MIT","_id":"@asadahmed/bullmq-job-queue@1.0.0","maintainers":[{"name":"asadahmed","email":"asadahmed6345@gmail.com"}],"homepage":"https://github.com/asadahmed1/bullmq-job-queue","bugs":{"url":"https://github.com/asadahmed1/bullmq-job-queue/issues"},"dist":{"shasum":"2963f1edb9703f63b0b75e124f0e58af2679c43f","tarball":"https://registry.npmjs.org/@asadahmed/bullmq-job-queue/-/bullmq-job-queue-1.0.0.tgz","fileCount":36,"integrity":"sha512-R0G9HmqMNOHurbGovSi/4mgyaXY/+m/rdgolYz90VZlSnuVx1Q0MWYDrrr1xYmQYvvxSSi5dQu/e9pWtCDGAvQ==","signatures":[{"sig":"MEQCIGWN9EHhdNlmWJPKIJm20dWba61UxAPX+cpNg+vr3xisAiAB/gQIe1VPYq0/tEKY8UJVpVea/OS/kR1rHgphThocAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20031},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9da17e4ec4d7c7a8fa56bd3d6db34a325bd64984","scripts":{"dev":"ts-node src/server.ts","build":"tsc","start:pdf":"ts-node src/workers/pdfWorker.ts","start:email":"ts-node src/workers/emailWorker.ts","start:webhook":"ts-node src/workers/webhookWorker.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"asadahmed","email":"asadahmed6345@gmail.com"},"repository":{"url":"git+https://github.com/asadahmed1/bullmq-job-queue.git","type":"git"},"_npmVersion":"10.9.2","description":"Reusable BullMQ-based job queue microservice with support for email, PDF, and webhooks.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"joi":"^17.13.3","cors":"^2.8.5","bullmq":"^5.56.0","dotenv":"^16.6.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.17.0","puppeteer":"^24.11.1","bull-board":"^1.7.2","nodemailer":"^7.0.3","@sentry/node":"^9.33.0","@sendgrid/mail":"^8.1.5","@bull-board/api":"^6.10.1","@bull-board/express":"^6.10.1"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/node":"^24.0.4","@types/express":"^5.0.3","@types/nodemailer":"^6.4.17"},"_npmOperationalInternal":{"tmp":"tmp/bullmq-job-queue_1.0.0_1753362696548_0.9794121684499373","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @queuelabs/bullmq-utils"},"1.0.1":{"name":"@asadahmed/bullmq-job-queue","version":"1.0.1","keywords":["bullmq","queue","redis","worker","pdf","email","webhook"],"author":{"name":"Asad Ahmed"},"license":"MIT","_id":"@asadahmed/bullmq-job-queue@1.0.1","maintainers":[{"name":"asadahmed","email":"asadahmed6345@gmail.com"}],"homepage":"https://github.com/asadahmed1/bullmq-job-queue","bugs":{"url":"https://github.com/asadahmed1/bullmq-job-queue/issues"},"dist":{"shasum":"ed03e32aca3e7006f84322cdbc207a9965ff1c59","tarball":"https://registry.npmjs.org/@asadahmed/bullmq-job-queue/-/bullmq-job-queue-1.0.1.tgz","fileCount":36,"integrity":"sha512-r+VB5wdXPijk8JaJCJw9p7lK2ee7uWpIctZkVIDMFD6Zq1UaKe+jbpPA2qOiE7DMUAFHqXIKdCs9qHpBO00TUw==","signatures":[{"sig":"MEQCIHAptd1NMsFhfvFGZgcyxA54gpbI/rWGKf0ezWaeDmqPAiBBf7PqeNn4j23Ej1s72BIflNepFmfDWbIR7Vhb1w6aww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21323},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9da17e4ec4d7c7a8fa56bd3d6db34a325bd64984","scripts":{"dev":"ts-node src/server.ts","build":"tsc","start:pdf":"ts-node src/workers/pdfWorker.ts","start:email":"ts-node src/workers/emailWorker.ts","start:webhook":"ts-node src/workers/webhookWorker.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"asadahmed","email":"asadahmed6345@gmail.com"},"repository":{"url":"git+https://github.com/asadahmed1/bullmq-job-queue.git","type":"git"},"_npmVersion":"10.9.2","description":"Reusable BullMQ-based job queue microservice with support for email, PDF, and webhooks.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"joi":"^17.13.3","cors":"^2.8.5","bullmq":"^5.56.0","dotenv":"^16.6.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.17.0","puppeteer":"^24.11.1","bull-board":"^1.7.2","nodemailer":"^7.0.3","@sentry/node":"^9.33.0","@sendgrid/mail":"^8.1.5","@bull-board/api":"^6.10.1","@bull-board/express":"^6.10.1"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/node":"^24.0.4","@types/express":"^5.0.3","@types/nodemailer":"^6.4.17"},"_npmOperationalInternal":{"tmp":"tmp/bullmq-job-queue_1.0.1_1753363945370_0.4345205141161108","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @queuelabs/bullmq-utils"},"1.0.2":{"name":"@asadahmed/bullmq-job-queue","version":"1.0.2","keywords":["bullmq","queue","redis","worker","pdf","email","webhook"],"author":{"name":"Asad Ahmed"},"license":"MIT","_id":"@asadahmed/bullmq-job-queue@1.0.2","maintainers":[{"name":"asadahmed","email":"asadahmed6345@gmail.com"}],"homepage":"https://github.com/asadahmed1/bullmq-job-queue","bugs":{"url":"https://github.com/asadahmed1/bullmq-job-queue/issues"},"dist":{"shasum":"5019b03fc362f6ab4f3bbd19f8c39391d523bb2c","tarball":"https://registry.npmjs.org/@asadahmed/bullmq-job-queue/-/bullmq-job-queue-1.0.2.tgz","fileCount":36,"integrity":"sha512-sVc4wtCkNIsYfYYEG3ThRfQE2eiVzJOFTNj2FsIVEIfw+pffTjCy/Yw8746srXei16XXfHRogY+/USApGiNsEg==","signatures":[{"sig":"MEYCIQCZmZPy13VDD1CSC8vJsC1vCBnaw5BarKhtHk9ZDvha/gIhAJUif7X/sfqTFi66AFUKRWUISjYFKI3SlN/VwD9vLskh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21310},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9da17e4ec4d7c7a8fa56bd3d6db34a325bd64984","scripts":{"dev":"ts-node src/server.ts","build":"tsc","start:pdf":"ts-node src/workers/pdfWorker.ts","start:email":"ts-node src/workers/emailWorker.ts","start:webhook":"ts-node src/workers/webhookWorker.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"asadahmed","email":"asadahmed6345@gmail.com"},"repository":{"url":"git+https://github.com/asadahmed1/bullmq-job-queue.git","type":"git"},"_npmVersion":"10.9.2","description":"Reusable BullMQ-based job queue microservice with support for email, PDF, and webhooks.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"joi":"^17.13.3","cors":"^2.8.5","bullmq":"^5.56.0","dotenv":"^16.6.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.17.0","puppeteer":"^24.11.1","bull-board":"^1.7.2","nodemailer":"^7.0.3","@sentry/node":"^9.33.0","@sendgrid/mail":"^8.1.5","@bull-board/api":"^6.10.1","@bull-board/express":"^6.10.1"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/node":"^24.0.4","@types/express":"^5.0.3","@types/nodemailer":"^6.4.17"},"_npmOperationalInternal":{"tmp":"tmp/bullmq-job-queue_1.0.2_1753364669812_0.9875263049087177","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has moved to @queuelabs/bullmq-utils"}},"time":{"created":"2025-07-24T13:11:36.419Z","modified":"2025-08-28T10:26:17.194Z","1.0.0":"2025-07-24T13:11:36.737Z","1.0.1":"2025-07-24T13:32:25.575Z","1.0.2":"2025-07-24T13:44:30.005Z"},"bugs":{"url":"https://github.com/asadahmed1/bullmq-job-queue/issues"},"author":{"name":"Asad Ahmed"},"license":"MIT","homepage":"https://github.com/asadahmed1/bullmq-job-queue","keywords":["bullmq","queue","redis","worker","pdf","email","webhook"],"repository":{"url":"git+https://github.com/asadahmed1/bullmq-job-queue.git","type":"git"},"description":"Reusable BullMQ-based job queue microservice with support for email, PDF, and webhooks.","maintainers":[{"name":"asadahmed","email":"asadahmed6345@gmail.com"}],"readme":"# 📬 BullMQ Job Queue Microservice (Email Queue)\r\n\r\nA production-ready Node.js microservice for background job processing using BullMQ, Redis, and Express. This service queues and processes email jobs and includes an admin dashboard via Bull Board.\r\n\r\n---\r\n\r\n## 🚀 Features\r\n\r\n- 📥 Add jobs via REST API\r\n- 📤 Email worker using Nodemailer\r\n- 🖥️ Bull Board Admin UI (`/admin/queues`)\r\n- ✅ Input validation with Joi\r\n- 🧱 Redis-backed job queue (via BullMQ)\r\n- 🐳 Docker-ready for local or cloud deployment\r\n\r\n---\r\n\r\n## 🧰 Tech Stack\r\n\r\n- Node.js\r\n- Express\r\n- BullMQ\r\n- Redis\r\n- Nodemailer\r\n- Bull Board\r\n- TypeScript\r\n\r\n---\r\n\r\n## 📦 Project Structure\r\n\r\njob-queue-service/\r\n├── src/\r\n│ ├── queues/ # Job queues (e.g., emailQueue.ts)\r\n│ ├── workers/ # Job processors (e.g., emailWorker.ts)\r\n│ ├── routes/ # Express API routes\r\n│ ├── app.ts # Express app setup\r\n│ └── server.ts # Entry point\r\n├── .env\r\n├── Dockerfile\r\n├── docker-compose.yml\r\n├── package.json\r\n└── README.md\r\n\r\nyaml\r\nCopy\r\nEdit\r\n\r\n---\r\n\r\n## 🛠️ Prerequisites\r\n\r\n- Node.js `v18+`\r\n- Redis (locally or via Docker)\r\n- Docker (optional but recommended)\r\n- Gmail (or Mailtrap) for email testing\r\n\r\n---\r\n\r\n## 📥 Installation\r\n\r\n### 1. Clone the Repository\r\n```bash\r\ngit clone https://github.com/your-username/job-queue-service.git\r\ncd job-queue-service\r\nnpm install\r\ndocker run -d --name redis-server -p 6379:6379 redis\r\nnpx ts-node src/server.ts\r\nnpx ts-node src/workers/emailWorker.ts\r\nnpx ts-node src/workers/pdfWorker.ts\r\nnpx ts-node src/workers/webhookWorker.ts\r\n```\r\n","readmeFilename":"README.md"}