{"_id":"@aion2hub/shared-queue-utils","_rev":"18-abf52f59ca733933c10e43c76673a7ce","name":"@aion2hub/shared-queue-utils","dist-tags":{"latest":"1.0.17"},"versions":{"1.0.0":{"name":"@aion2hub/shared-queue-utils","version":"1.0.0","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.0","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"3b8ff0f2ea3e38111cdb8b7a7d233515c8b7017e","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.0.tgz","fileCount":30,"integrity":"sha512-3iTNp4Yk5zD1ppchWa42tBFJfhSgIidKwZPb96TnI144AIObscIhph8hjDkPo3Z0ZfppO4LpWKQsBs4ZkZfUQw==","signatures":[{"sig":"MEUCIQCvPHR1CubPl8r0Lpz4hS9G/p/3jYdMcHUC9G6RxxPCFgIgKUGKCMfUSW074wpJWsxcUdIwM1oWq7E9Y1a5Utg+Z+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108076},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8506ed961657d0fb51903e65830cf3f88ebbd2ff","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.0_1757878742287_0.8498666674289441","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aion2hub/shared-queue-utils","version":"1.0.1","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.1","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"8af388132ba1192e7b1a39135ff29c65562d5210","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.1.tgz","fileCount":30,"integrity":"sha512-58kfCL2GG6HewDBSmdztDIaLmz4Ypim85yH+9KKLUqzf0tBzppocjkiwaNK7H8GcCEW3MnmoQCxcEWZaGIqP+Q==","signatures":[{"sig":"MEYCIQCNhuRvDuUXSAodTs+Qn7iQ3LoaHaYPJVdNiucKQ6BoewIhAI0n+isEDOjudpppVs2nLqpprNps+GViBp8ghsHp/rLl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108194},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f40b8de6f5de276e23e20fedb3684e7c49c54e73","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.1_1757880224321_0.8448507047390266","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aion2hub/shared-queue-utils","version":"1.0.2","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.2","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"b90f747336199c93363d6edd640f0569d7caa391","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.2.tgz","fileCount":30,"integrity":"sha512-rVdl2AZ5/E0ELlCbp1uznrsXlDB3TExuz73gNZJW90aruJjHk0MmgQl5VnSmXOd/vkJA8Pbz7ch9fvWX110DQA==","signatures":[{"sig":"MEYCIQDROrvN4jPILpzL5G9+CQKjNyqEFdvSBkntE1oyrGr+hgIhAOxgqrAu9B2TwZca1wf+HzTDv1CnzbmIuBN20pbZrBNg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108477},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f40b8de6f5de276e23e20fedb3684e7c49c54e73","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.2_1757880367923_0.017277226801258427","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aion2hub/shared-queue-utils","version":"1.0.3","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.3","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"f03140601e76551f06efb28b18d7f1dbe8255a2e","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.3.tgz","fileCount":30,"integrity":"sha512-0Jfi9inthv3NXZccF1UyO2az+rMYPFR4sReNbsBUhSKQEP8w+QWcr8MbJNgaeRhPVq+bka031OjXO1UOTHm7ng==","signatures":[{"sig":"MEQCIF3yE1SXRAHdbDW8a5LP0rcF1ps3zV+IEfawF328NcY2AiBi4Jxhi2dBJVFIBark9yGD9kyuq+GCcOAYce//NAlmQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110114},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f40b8de6f5de276e23e20fedb3684e7c49c54e73","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.3_1757883010951_0.07922046254042137","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aion2hub/shared-queue-utils","version":"1.0.4","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.4","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"aa97a9114a4b72ebfd97734339b94ac1beb5d799","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.4.tgz","fileCount":38,"integrity":"sha512-N5o/fORndA6immu1yEFQj/BK6WnyVcyJprCvaiSAMrGSgo2M5Kleyrla3aeDk8l09dfXC/YuPa0iLoELJ08W8A==","signatures":[{"sig":"MEUCIFDvagXWguT0VS3fNZ0MMd0oF7anHUEGfoBfOVCTvFKJAiEAx/VIbIcySaa4hKzdVPnGTFdEf5iFZheT01bC25acVnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129274},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f40b8de6f5de276e23e20fedb3684e7c49c54e73","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.4_1757886289557_0.9686366394265624","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aion2hub/shared-queue-utils","version":"1.0.5","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.5","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"cbbeb2018c36d305d66b6217ed86ee69a0fc83c3","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.5.tgz","fileCount":38,"integrity":"sha512-3SrQz80z+bdxSZ4pnIZ0Ez4XkIXjVn1vIjqtFGvwF0OwCDwPFb4Zgk+V1L2kgcWzalJrXhk2SAs9QZYPKB9uRg==","signatures":[{"sig":"MEQCIH21FCTZpkyxc1OIwmoKDzl53mNcd2/776yRdlEtBlZeAiBzeU6uU6HnmIFopF7f0tUK86PM2RKNRfJ5Sm5B661JwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129274},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f40b8de6f5de276e23e20fedb3684e7c49c54e73","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.5_1757889119393_0.28384012265996383","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aion2hub/shared-queue-utils","version":"1.0.6","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.6","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"b778462fb71f69027e0c22938bd4b174ed29f5c4","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.6.tgz","fileCount":38,"integrity":"sha512-3c04gR+4EieGFWFkweNTgAewyRhff6382oM/sxQvF8aX8fdiKczF1yOC5MA2laYAENS0hLbrZOcEIKe7x22qMg==","signatures":[{"sig":"MEUCIQCpdz8R4m2IczxA2+lBbqCd6Xmd7VOFnqiIWvW5sYZy4QIgMjXFJJjabfG0cV8ne2wI9O62LR8CK4fNdCYDmqqFjvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130736},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"479e283e29db2b21d934ad547bb9fd12eb188f55","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.6_1758166563953_0.6950571856103394","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@aion2hub/shared-queue-utils","version":"1.0.7","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.7","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"005556d8bc7295c86918290dc5d2edfb80c08cde","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.7.tgz","fileCount":38,"integrity":"sha512-eU/c0BQee2F+Aa3CAqE5uTtgbe7ExV4CoPEP0djaAm4yMBzQLvY1V+rSsA7fcoSmMKpANZNSlKTD4o0eUHGjXw==","signatures":[{"sig":"MEYCIQDiA0/6+vRN+HDLvRl8SYo7HT1NZhlABDG+txVd7cWRyAIhAKj1td/v/ZU6BrC1fYNsJL+kBnG83PpMYj+JQp/+Sfkf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134617},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6b3ec0a694ebd8893c45fe1db00945dceec1a685","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.7_1758220229551_0.21329303126404375","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@aion2hub/shared-queue-utils","version":"1.0.8","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.8","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"f3b17b0c5fd63881ad74558efc62e63765d1caaf","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.8.tgz","fileCount":38,"integrity":"sha512-g4BhoyVTL/m+xubVML+hbBrDovg+hmq95qaTQwOjrXF6GRdrpMWbH86Rni9HflDBwvry4WO2GaxpxS4NN7LNUg==","signatures":[{"sig":"MEUCIQDWrDvEHvjDjVtQVKdpovwZV1A2yzbFDe6/Fd1ScsGv4gIgNQsIkVf2VPwmiqEu8wfbPvjmINVjZG4qRT90MWxiIp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134620},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6b3ec0a694ebd8893c45fe1db00945dceec1a685","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.8_1758220726062_0.17825129096940828","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@aion2hub/shared-queue-utils","version":"1.0.9","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.9","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"41fdc56329231ead1f5d391db599f7862fd70722","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.9.tgz","fileCount":38,"integrity":"sha512-cc4WUgixUc3sf4NkY3hGyDwQ3dNt0A5ScDgpMjJVLxR8vjE9Fru9WfgTZjjGnyzVddZ4DPBa87P5uDqoTI/sYg==","signatures":[{"sig":"MEUCIHvxI0mfLT6fn78fxNk4rZ2bY+r6V9wqsu958lOMvZPiAiEAlsyv36kzGMvhZISUVxF10gmszSIkPxKGBJ13WDYF6+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134854},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6b3ec0a694ebd8893c45fe1db00945dceec1a685","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.9_1758221378746_0.034648248359360645","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@aion2hub/shared-queue-utils","version":"1.0.10","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.10","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"5499ef680ab1097333344b8c20ea907e382238a8","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.10.tgz","fileCount":38,"integrity":"sha512-JpARTI/EwsKd4ecpXnu2M1CGkGwdnLoze3vpkS1XBASVw5QhSFq7Id/ePgOwOANY+EG8iHQRMy8C5XL0A+1dXQ==","signatures":[{"sig":"MEQCIByJWVHFjttyJwWXcqlFi/qUgryVq7t8uytnGGykPKsPAiAHMUpU5Oy2qfg4uLWD130KqFUFWnSUvct/MbamRLyAvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135895},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6b3ec0a694ebd8893c45fe1db00945dceec1a685","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.10_1758221767733_0.0363702646702555","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@aion2hub/shared-queue-utils","version":"1.0.11","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.11","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"16bab7b307b2109dc0d52d05cda523ac6c63cde1","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.11.tgz","fileCount":38,"integrity":"sha512-9dZK+E03cONFewNmRJjmdT1MDyPs55s2zlbhJoflEWNJ7VP1Ga3DakrndSKuGwY9pn+VRgEgO+e1le20UEOaXQ==","signatures":[{"sig":"MEYCIQDE0x+lUO6UQsI0J9grix1XKEqD2qfVb4ZRf1LQNZJC6wIhANdBU/Hcw6TTRlQS/eYoONbUhBRrPtrwdVHdfAuoLPTX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147980},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7b7d5f5b2a970f08dd466477cea0c5d756bf58a5","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.11_1758223408467_0.683010941191756","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@aion2hub/shared-queue-utils","version":"1.0.12","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.12","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"7d608df8c69fda6c3b44d383ef0b6b0612e50132","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.12.tgz","fileCount":42,"integrity":"sha512-Ple/kbYfrVVbzQc9xo/0VQIOnewNhhOwYMv1Uo0wLrMwxYN9ltCzR/Ud1a5MDEM1vitP/XSZlBXArmjxbsgsGA==","signatures":[{"sig":"MEUCIAUVt2AtxyF1UVPOoa/PIs9W+1DEHQbmEZsdPExGDTNIAiEAqKT2RoY0CUDv7tfFDHPifiLloa2XaNa/7FXNSBtDN8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156227},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4bc4850ff86faddc7477060d2a7448cd45000ddb","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.12_1758281410225_0.30031481002117366","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@aion2hub/shared-queue-utils","version":"1.0.13","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.13","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"38c072879c0db9a20afefb5794071a245096d2ca","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.13.tgz","fileCount":42,"integrity":"sha512-C85B6qigHVjSiEghwtzzs38Oi2FFDDt6KjqISFbfChrFDFPig7PpTXxHXhqUujMOVtVazkkw4uK0EBDwtZFW2Q==","signatures":[{"sig":"MEYCIQDh98jkLSS288GpwxwWa7CV2YF+nle1wS4fY5pCe8KuowIhAO7eWA1opwofW3TB89Ako5OfEtwa1ZmHHAqhrUsbDjtE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156667},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4bc4850ff86faddc7477060d2a7448cd45000ddb","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.13_1758281829427_0.2505536777877262","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@aion2hub/shared-queue-utils","version":"1.0.14","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.14","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"6598c1777aa7bd41205c6066da0a2ef12f96bdc4","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.14.tgz","fileCount":42,"integrity":"sha512-cnOGWieMn1XFkXqD1CPgoGyQdyJWuZsl620p/+DelGd823mXsSuoDkjP4apkoZd06KEULZFTeAt9+1QIXaP55Q==","signatures":[{"sig":"MEQCIC9cwGp2LqR2PYTXrvYy3mVMEqQ5iriXRzZ0dgZiVROoAiARNqrbTK70+aoLmnE1JdDLwBkLwIW1XdkAOCSacEBHVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162767},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6e472f4dfe9be342245e0a9515c67f98b3fb3780","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.14_1758330384284_0.13378149141931295","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@aion2hub/shared-queue-utils","version":"1.0.15","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.15","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"9e530c72e325a3c79e4b6c7fb594b5f155291e50","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.15.tgz","fileCount":42,"integrity":"sha512-5mzmfdq+8G/wvfP8m10qDZIDkH2MP8V1KSxDuMUG1X5aEylVMe3LDrbZtJAwL3DRaQQvovyP4rCvCjz+Lk02hw==","signatures":[{"sig":"MEQCID1EdsqMIbO7cbJmk6jNfRQ6zIspLSBGQFKew1fboXNOAiB8DAIUmdog7hmRiUMYqyXAcHOXSAGcgA7y0fs+M/My3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164781},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a54cd42567b9d3c07baaa4510ce1c19db7ed4557","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.15_1758362118210_0.8935738677133593","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@aion2hub/shared-queue-utils","version":"1.0.16","keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","_id":"@aion2hub/shared-queue-utils@1.0.16","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"dist":{"shasum":"c98476aa650a7a604af72791a0abe695ae4d12e6","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.16.tgz","fileCount":42,"integrity":"sha512-o2DtyzpdDMht4/zQKGg4GYkzflXM+fWAWeP66KdpMizAMUwkCuvmINFGXIu5i6kboxpAx/PpAoTgRX0cn6h7bg==","signatures":[{"sig":"MEYCIQDTxy2J3MCUq66WBg0y+UCNwdFUa9q7XZCOB9yGt5oTDgIhALLite6t2uEPe9W/F8sJCp5fjlk1VqIZPrNsbNGz9Bwi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174948},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"dc3f6c33399eecaec4ea18d8362a5edb23f58446","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"_npmVersion":"11.6.0","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","directories":{},"_nodeVersion":"22.19.0","dependencies":{"uuid":"^9.0.1","bullmq":"^5.58.5","ioredis":"^5.3.2","winston":"^3.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","typescript":"^5.9.2","@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-queue-utils_1.0.16_1758467348269_0.26049415328153946","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@aion2hub/shared-queue-utils","version":"1.0.17","description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build","test":"jest","lint":"eslint src --ext .ts"},"keywords":["redis","queue","event-driven","microservices","aion2hub"],"author":{"name":"Aion2Hub Development Team"},"license":"MIT","dependencies":{"bullmq":"^5.58.5","ioredis":"^5.3.2","uuid":"^9.0.1","winston":"^3.11.0"},"devDependencies":{"@types/node":"^20.10.0","@types/uuid":"^9.0.7","@typescript-eslint/eslint-plugin":"^6.13.0","@typescript-eslint/parser":"^6.13.0","eslint":"^8.54.0","jest":"^29.7.0","typescript":"^5.9.2"},"publishConfig":{"access":"public"},"_id":"@aion2hub/shared-queue-utils@1.0.17","gitHead":"728aae2b517bd9f760dd6531c86a2987fe430f06","_nodeVersion":"22.19.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-SUMWXgNOj39zyhNiQXT+0GbHmdwEm1xpQXz7En4qakUnAWBDSL7WVu+wysQWMEcv7WxKJiDhKEY/r6Ep/lxA9A==","shasum":"8b9f057e2aa906abd1d60ac3c610e1ad981da6af","tarball":"https://registry.npmjs.org/@aion2hub/shared-queue-utils/-/shared-queue-utils-1.0.17.tgz","fileCount":42,"unpackedSize":177988,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA5BWj0pC+lUPtv05ZQbS7Sa+NFF58t0ey8CB472ej1XAiBXDECBEhBocMti+8yeyTbyHlsSR8Br8+O0CJSB8JFDaA=="}]},"_npmUser":{"name":"constantinradulescu","email":"constatin.r@gmail.com"},"directories":{},"maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shared-queue-utils_1.0.17_1758558706224_0.37192966492723567"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-14T19:39:02.199Z","modified":"2025-09-22T16:31:46.612Z","1.0.0":"2025-09-14T19:39:02.496Z","1.0.1":"2025-09-14T20:03:44.541Z","1.0.2":"2025-09-14T20:06:08.099Z","1.0.3":"2025-09-14T20:50:11.132Z","1.0.4":"2025-09-14T21:44:49.755Z","1.0.5":"2025-09-14T22:31:59.589Z","1.0.6":"2025-09-18T03:36:04.145Z","1.0.7":"2025-09-18T18:30:29.723Z","1.0.8":"2025-09-18T18:38:46.239Z","1.0.9":"2025-09-18T18:49:38.973Z","1.0.10":"2025-09-18T18:56:07.966Z","1.0.11":"2025-09-18T19:23:28.721Z","1.0.12":"2025-09-19T11:30:10.401Z","1.0.13":"2025-09-19T11:37:09.621Z","1.0.14":"2025-09-20T01:06:24.500Z","1.0.15":"2025-09-20T09:55:18.416Z","1.0.16":"2025-09-21T15:09:08.470Z","1.0.17":"2025-09-22T16:31:46.419Z"},"author":{"name":"Aion2Hub Development Team"},"license":"MIT","keywords":["redis","queue","event-driven","microservices","aion2hub"],"description":"Shared Redis queue utilities for Aion2Hub event-driven RSS processing","maintainers":[{"name":"constantinradulescu","email":"constatin.r@gmail.com"}],"readme":"# @aion2hub/shared-queue-utils\n\nShared Redis queue utilities for Aion2Hub event-driven RSS processing system.\n\n## Features\n\n- **Queue Management**: Create, configure, and manage Redis-based queues\n- **Worker Processing**: Concurrent job processing with retry logic and error handling\n- **Monitoring**: Comprehensive queue health monitoring and metrics\n- **Event-Driven Architecture**: Support for RSS processing pipeline events\n- **Dead Letter Queues**: Automatic handling of failed jobs\n- **Priority Queues**: Support for job prioritization\n- **Delayed Jobs**: Schedule jobs for future execution\n- **Batch Processing**: Process multiple jobs together for efficiency\n\n## Installation\n\n```bash\nnpm install @aion2hub/shared-queue-utils\n```\n\n## Quick Start\n\n### Queue Manager\n\n```typescript\nimport { QueueManager, QUEUE_NAMES } from '@aion2hub/shared-queue-utils';\n\nconst queueManager = new QueueManager('redis://localhost:6379');\n\n// Publish a job\nawait queueManager.publishJob(QUEUE_NAMES.RSS_SCRAPED, {\n  feedId: 'feed-123',\n  articles: [...]\n}, {\n  priority: 1,\n  correlationId: 'scrape-job-456'\n});\n\n// Get queue metrics\nconst metrics = await queueManager.getQueueMetrics(QUEUE_NAMES.RSS_SCRAPED);\nconsole.log(`Queue depth: ${metrics.depth}`);\n```\n\n### Queue Worker\n\n```typescript\nimport { QueueWorker, createQueueLogger } from '@aion2hub/shared-queue-utils';\n\nconst logger = createQueueLogger('rss-processor');\n\nconst worker = new QueueWorker(\n  'redis://localhost:6379',\n  {\n    queueName: QUEUE_NAMES.RSS_TRANSLATE,\n    concurrency: 3,\n    batchSize: 10,\n    timeout: 60000\n  },\n  async (jobs) => {\n    // Process batch of translation jobs\n    for (const job of jobs) {\n      await translateArticles(job.data);\n    }\n  },\n  logger\n);\n\nawait worker.start();\n```\n\n### Queue Monitoring\n\n```typescript\nimport { QueueMonitor, createQueueLogger } from '@aion2hub/shared-queue-utils';\n\nconst logger = createQueueLogger('queue-monitor');\nconst monitor = new QueueMonitor('redis://localhost:6379', logger);\n\n// Start monitoring with 30-second intervals\nmonitor.startMonitoring(30000);\n\n// Get current health status\nconst health = await monitor.getHealthStatus();\nconsole.log(`System health: ${health.overall}`);\n```\n\n## Queue Types\n\nThe system defines several predefined queues for RSS processing:\n\n- `rss_scraped`: Raw parsed article data from RSS feeds\n- `rss_translate`: Articles ready for translation processing\n- `rss_classify`: Articles ready for AI classification\n- `rss_ingest`: Articles ready for database ingestion\n- `*_dlq`: Dead letter queues for failed jobs\n\n## Event Types\n\n### RSSScrapedEvent\n```typescript\ninterface RSSScrapedEvent {\n  jobId: string;\n  correlationId: string;\n  feedId: string;\n  feedUrl: string;\n  feedName: string;\n  timestamp: Date;\n  articles: Array<{\n    title: string;\n    content: string;\n    url: string;\n    publishedAt: Date;\n    author?: string;\n    language: string;\n    description?: string;\n  }>;\n  metadata: {\n    priority: number;\n    retryCount: number;\n    maxRetries: number;\n    feedCategory?: string;\n  };\n}\n```\n\n### RSSTranslateEvent\n```typescript\ninterface RSSTranslateEvent {\n  jobId: string;\n  correlationId: string;\n  feedId: string;\n  articles: Array<{\n    id: string;\n    title: string;\n    content: string;\n    description?: string;\n    url: string;\n    publishedAt: Date;\n    author?: string;\n    language: string;\n    needsTranslation: boolean;\n  }>;\n  metadata: {\n    priority: number;\n    retryCount: number;\n    maxRetries: number;\n  };\n}\n```\n\n## Configuration\n\nDefault queue configurations are provided but can be customized:\n\n```typescript\nimport { DEFAULT_QUEUE_CONFIGS, QueueConfig } from '@aion2hub/shared-queue-utils';\n\nconst customConfig: QueueConfig = {\n  ...DEFAULT_QUEUE_CONFIGS.rss_scraped,\n  maxLength: 5000,\n  retryAttempts: 5\n};\n```\n\n## Error Handling\n\nThe system provides comprehensive error handling:\n\n- **Automatic Retries**: Failed jobs are automatically retried with exponential backoff\n- **Dead Letter Queues**: Jobs that exceed retry limits are moved to dead letter queues\n- **Circuit Breakers**: Workers can be paused/resumed for maintenance\n- **Timeout Handling**: Jobs that exceed timeout limits are automatically failed\n\n## Monitoring\n\nBuilt-in monitoring provides:\n\n- Queue depth and processing metrics\n- Health status for all queues\n- Redis connection monitoring\n- Error rate tracking\n- Performance metrics\n\n## Best Practices\n\n1. **Use Correlation IDs**: Track related jobs across the pipeline\n2. **Set Appropriate Timeouts**: Configure timeouts based on job complexity\n3. **Monitor Queue Health**: Set up alerts for queue depth and error rates\n4. **Handle Failures Gracefully**: Implement proper error handling in processors\n5. **Use Batch Processing**: Process multiple jobs together when possible\n6. **Configure Dead Letter Queues**: Always configure DLQs for failed job analysis\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build the package\nnpm run build\n\n# Run tests\nnpm test\n\n# Watch for changes\nnpm run dev\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}