{"_id":"nestjs-cloud-taskmq","_rev":"39-2eca78cd9524eee7dc3444f8092aac42","name":"nestjs-cloud-taskmq","dist-tags":{"latest":"2.0.0"},"versions":{"0.1.0":{"name":"nestjs-cloud-taskmq","version":"0.1.0","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.0","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"b0748865078f5f948d2c4927bf861597b172ca31","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.0.tgz","fileCount":54,"integrity":"sha512-zUO4GfCq1Vll9NKbIDfLj+WwV4by6CmBt8WhCYLOOGGqIHJDAF6arp3y9BR7TX67FAsDUeyThTjl1CRKDMYmlw==","signatures":[{"sig":"MEUCIQCCcEPcy0wyED0bBKZVDt7AVU7hNWYO9q2nO91j9rHJ1wIgaNYW7zOku0Txn2DLzR+PWagoDkvUwwK34C3WwktSE/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334486},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","publish":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.0_1745951841232_0.3209383644198096","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"nestjs-cloud-taskmq","version":"0.1.1","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.1","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"08d4f1b8cc2db746fb101a0440ad54d0bb6b2818","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.1.tgz","fileCount":54,"integrity":"sha512-ZiRvKC2zHYIJ4KhhOoTio43bLjV1C6r6Cb9EBnNCt10js1FoTzVqSYJfnibZAluXUUTYe/hnWmVEGpZ/8DsnHQ==","signatures":[{"sig":"MEQCIAVNvlDRCPq+1Xj5iGbaDRi0N8YOToK2eOOPY+gthKCFAiBY5KvhZdmnNdY+mopLomJbmGXV/MHEfMae6Z3CksjOuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334486},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","publish":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.1_1745951986724_0.7537198484555263","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"nestjs-cloud-taskmq","version":"0.1.2","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.2","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"e526cce770116d74a04b35c8d7f765aa8dc0eddc","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.2.tgz","fileCount":54,"integrity":"sha512-z6TzJVjnwK1Rfqe6nC6o64SSAV7NZdeHqb5PEcjEa5mRp3GDPbb41UY9sN8NdLNvCeB0Pyxmw+oBguadyUddDQ==","signatures":[{"sig":"MEUCIDsB/tplW0IVsdfDrQ/SPBKFWI8r0cekD7oL5FWb6i6QAiEAsqWmFGd9jncrnALrlq6qbma69X46NwHuy4oty/jMECU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334486},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","publish":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.2_1745952220090_0.7064033994014709","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"nestjs-cloud-taskmq","version":"0.1.4","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.4","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"5a121d5de0cd42df30f412fcfce67eb4d19de0c1","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.4.tgz","fileCount":54,"integrity":"sha512-gKMkGv9Rv6Avm2UDN1Qm0J/h8lyiSQZtxgfz55XEVBX9Sm6iCNLmn/mGc137n36nCLyr/29Tn3evUbqlGRRB7Q==","signatures":[{"sig":"MEYCIQCwQwK2Y5eGC+HGldp/3lzJl3a0I4R30EBpveXrgEGv9gIhAM09vknA4gdlk3RvESCVEo7gm6IFRhC3L+q7hw9WdPPE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333772},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.4_1745962753992_0.9945333231441096","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"nestjs-cloud-taskmq","version":"0.1.5","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.5","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"886903f34d9e481f51d12927ebd7465dc8415683","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.5.tgz","fileCount":54,"integrity":"sha512-7cvLoMXErDk9pM++EWgQCq1GPw3H2Y7hgyHtN2uJdOIr2yraqTqOcIbpAZUiLbCzbv6ccsoDgC3L/l17tXlOiA==","signatures":[{"sig":"MEUCIAayAa4la+q6UqhG+QK0RgWCiiZZfhgLCBBcsefS5ii7AiEAqdpnIeEja/KnHTKz+SsNS4q+buYHfkcH738OLntLGcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335137},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"84fb229a831b8433a1220f1be3c0de0bb872708d","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.5_1745963577332_0.06633168795985456","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"nestjs-cloud-taskmq","version":"0.1.6","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.6","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"c65dd3b02e1b1cd616ae524a71c507578e4dfc7a","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.6.tgz","fileCount":57,"integrity":"sha512-peZ9UY2j9DCXCncSdlsFrI9N7UQQsfxLg76N7czyxxL2XYma/k3spo4Rs2mXCPZjqcm5xxjHUNvTS7M0vDF8UA==","signatures":[{"sig":"MEYCIQC74O4QRliMqWhlpE5RkxJ3XqsSPIndtjUPu0wiSykBFAIhAI0SiwzUSM4g2UsMrgtsQc9zELIpeJqXB92Iputkhnlg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346766},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"84fb229a831b8433a1220f1be3c0de0bb872708d","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.6_1745964228978_0.7760628183010541","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"nestjs-cloud-taskmq","version":"0.1.7","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.7","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"635827bec1dce8cc0fef4c8ee9d3d9681178382a","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.7.tgz","fileCount":57,"integrity":"sha512-Jy464pm0yH64js9KaWITV/vp8V8TNp1x5E9Kjla6nW/dWqMcQaWw1NmgUZqt7PdCWKf+ty0FC7j/+45d5qJ8aw==","signatures":[{"sig":"MEUCIQCNP0MkfqUHwk8g0gMT2ZLpDtS40CPYlv6GySSurMV6sAIgHmuVK72IPJWuAVuM2i7Rlqhuuij0DT0AcmwnwikxCz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348216},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"84fb229a831b8433a1220f1be3c0de0bb872708d","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.7_1745964767706_0.00202360825533332","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"nestjs-cloud-taskmq","version":"0.1.8","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.8","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"6d31cda4894ef5970f5a846216a9e6e89a486736","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.8.tgz","fileCount":57,"integrity":"sha512-yOa+wTUaufLMdsA5Ls4WkRjOFGadu1RBq+Xf6wGyW4Vr3KCuRaat53v2RhnWIW8kv3EvF0oX3PmVyO2Wan6lsQ==","signatures":[{"sig":"MEQCIFTFHx/ya/Qnsqf0lud7gLGVIPfaDONxxOoxzLJeuGHDAiAiP7RAGNDM3Fk8z3voz1fV0x1KvQpaiDBdZ9fK8/48Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349828},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ac81dca2658289354a28adfb27e48863dc6ee815","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.8_1745971304206_0.9828524473644673","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"nestjs-cloud-taskmq","version":"0.1.9","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.9","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"3c657b7e408c4ab7d33df6f2881619eeb1dcfc7d","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.9.tgz","fileCount":57,"integrity":"sha512-0ScWpbxj1tM2FV5EX8+UJPO/wT0562K8DfIHO/Q43VvhuussfxMMTVLY63bizNWlBg8koJWAPwxfKiAcu7CklA==","signatures":[{"sig":"MEQCIGiCxi9VU82KA8ql2voFF8XXz44bDGpPUw62Ew6Y0klqAiB3IgGO+juvwdtw3VtVtf3BQa3q2FcR9HzYowLFDsuNDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353942},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ac81dca2658289354a28adfb27e48863dc6ee815","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.9_1745972935716_0.4282338046896217","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"nestjs-cloud-taskmq","version":"0.1.10","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.10","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"09bd6e18af8d222a476371bccde8ec8dd4e0b388","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.10.tgz","fileCount":57,"integrity":"sha512-ZzL+CKE+osaApJ5Y2r6CKHlNpQy925a313EgsrT2S5k07jwfdCd3DTDQpzt3TXUsr9+8vYRCtdGWPgDE6B2RYQ==","signatures":[{"sig":"MEUCIQDJKIpELQTTxGTGZPzVj99xuCUdCu1mxEwMa1Hb768hugIgFFogBeSWhOb1BbZfuTJbANt5dFW8t2PMa4wEiYrbcpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":370927},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"98a1b85591a171d8023fdcccc15cebe24f359ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.10_1745975847302_0.0363805803996371","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"nestjs-cloud-taskmq","version":"0.1.11","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.11","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"1d176827cb0a520cb2ebe49e500a2313113f7173","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.11.tgz","fileCount":57,"integrity":"sha512-k1LoQ3Bn38T2enb1boVmdDNDj8XBIQjNGm7EXj8b9fcsFuEPbYdCEboI2nG3yz0eB2SACnVw2nCXzbA1RagaIA==","signatures":[{"sig":"MEUCIQCZcDV3sYOJhRDneOIK2i1xeTQdaB0IDxTY1DVOlqKdugIgZjPybirsPI6Ga+4fXNkjwJyCliOljG8dKglQg4LZsAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":370927},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"98a1b85591a171d8023fdcccc15cebe24f359ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.11_1745976480140_0.5835464690760526","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"nestjs-cloud-taskmq","version":"0.1.12","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.12","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"2752c2084bb1f19efadb25a0c1c6f967bf10d759","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.12.tgz","fileCount":57,"integrity":"sha512-Ii0PVWlpGLnrrqcxu/USxG9mmvZwgxoq003xqCSVCEbq/1pxL6+W74p4yPyxu1QlRMTumtN54up5l5fsVjsNyw==","signatures":[{"sig":"MEUCIQC+iVDGQuXtXPBjp10qF9LYwUzbGO5MWcvGdLyxUJUuqgIgbeFl18XjWS+W1WimkqkrH11KopEM4SS0rSzBrFDCuhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372411},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"98a1b85591a171d8023fdcccc15cebe24f359ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.12_1745977074364_0.40833832176538887","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"nestjs-cloud-taskmq","version":"0.1.13","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.13","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"ab3a52b277883c041f7651765456e17857402dd8","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.13.tgz","fileCount":57,"integrity":"sha512-c8dubSSrDPLbBSolt+txjzRcVV0nNRM+BOivV6v2HgXaUXYAwMOmVrIIk3KfwiNGpKLKxgz75i/w/h08Ja5fFg==","signatures":[{"sig":"MEYCIQDbEp+JSnzE0ejDUiqhi9XV9Y1f8ZJ0guAAOB1PCgkCwgIhAJM1cL1x2+peq9w6ot7JTDIlphmMRKwVR3+Idoq9O1Vd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372482},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"98a1b85591a171d8023fdcccc15cebe24f359ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.13_1745977627961_0.6186583896774478","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"nestjs-cloud-taskmq","version":"0.1.14","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.14","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"1d846393c96b7331cde7941bd6ee3b39f4ee20c6","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.14.tgz","fileCount":57,"integrity":"sha512-GCgsV+X3mQRI7qd0QfeN1BD3I/aOUymODDyWNyFACnzo4KpZwW1U5JDo2+5inkUuwHhRt8peCf64ltbZKoKByQ==","signatures":[{"sig":"MEQCIHapSwLcnshXgy0tVtZT3DIpS9/hSKsXx92OKNkByt0/AiAHg5FhDveXBxZw6s1jUIRP0Ar3rUV7J9eVm7XmXyiu9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374460},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"98a1b85591a171d8023fdcccc15cebe24f359ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.14_1745977980285_0.9643561733412696","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"nestjs-cloud-taskmq","version":"0.1.15","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.15","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"ce46d9dd031f0388c3ae56d323f3359386915dbd","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.15.tgz","fileCount":57,"integrity":"sha512-/sK6qh1pVYYdC/l/cTBNLZmjLbvdn5uExcdZ4/7vdpptLBc2V+ZvOZuZ45kyNvMm48xe02YN0mreGrzlcFeC6Q==","signatures":[{"sig":"MEUCIFFgqMv9oCORkm43g4CPVZF3YxipO8ebGrJLgxuLoiB6AiEA3Su6fSkKWG4CuZyYC9Oc7xqR2Rujw29cXB+kZhB32uI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379355},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"98a1b85591a171d8023fdcccc15cebe24f359ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.15_1745979558900_0.10518761820890865","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"nestjs-cloud-taskmq","version":"0.1.16","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.16","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"dbbd1ca8f6d5c1af5239067a49fefa53545e27c4","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.16.tgz","fileCount":57,"integrity":"sha512-CCQh+xy0GCG346FQfVqAtb82Qom854Ac4Upx0zWPObFcdyvUbcQufQaTsGdj2//9mqni6vGgi6OPcLYPuHnY9Q==","signatures":[{"sig":"MEYCIQDhw1i8RRvAnyLjUvIE1QN/RqTc/feI0j6qluUACoZhEAIhAL0S1aaocJZuhBHyu+4vFp/gxTj2BrDPy2Xo3KNKhPMG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377267},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"01551f0257ad97fd33414bf813add1543e654cad","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.16_1746048599932_0.9114236456093501","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"nestjs-cloud-taskmq","version":"0.1.17","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.17","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"4b9820f68ab71364826ec265b25e17eb42a490a6","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.17.tgz","fileCount":57,"integrity":"sha512-QLmxPe8Dif7X+Lb7Vyl8eBOCJMjVtyD9+FF3BtYpkPha7bNS9Q3RX+zbbdBSwLkG0DYx4lhDOaXRkME7ZluhFw==","signatures":[{"sig":"MEYCIQCtW7gm435FRMD3xNqk+BHBE0DR/bTxGHKJwki5Bvka5wIhALhxiq5/j76n0aT0oa8MztEriLYmXLtPJefZ5afuyjC/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380620},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"01551f0257ad97fd33414bf813add1543e654cad","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.17_1746064983410_0.9118758757922139","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"nestjs-cloud-taskmq","version":"0.1.18","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.18","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"d48bd654cf64ede303ac5b6cb6ef10f4bc4a37b2","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.18.tgz","fileCount":57,"integrity":"sha512-wtEF5RQM1tKfIU0y53n+VAhXPlrJBk7ISEdl91A1zRba7Ne+1Hfm/FB1km/lYmmM0LsLYsLVvv2YguPjYvXPjQ==","signatures":[{"sig":"MEYCIQCoEbjV0ubIKClcrEgn5PCPMyFBhhjE/SNByMag438OLQIhALrusn6whiqq3DAMr/Zve4Rw4Y1k73Z8h0TcD0DLtJSg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380699},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"01551f0257ad97fd33414bf813add1543e654cad","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.18_1746065410497_0.09195656460918622","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"nestjs-cloud-taskmq","version":"0.1.19","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.19","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"863186ac26ebd83fe3454a0bb2d6a45e6c148f99","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.19.tgz","fileCount":60,"integrity":"sha512-qJdiW6SsTlWXkH4wFtGMffnPD5mkYz0NJTFRE425aZC16Oa4hqHsxVnSstwpC1CywBe9nCkvoVsROghDkroPLQ==","signatures":[{"sig":"MEYCIQDlm0Z8mTX/QnnUotQtz9q3avFFoggIQjdOC4NOEK8gvwIhAMIPHVtm3CW1dMhGTzigAZm9H3oPuU6PQy4d2bRha4UO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386532},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c47ba8bb8beaa7330e6afa33d6609cdd81554c47","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.19_1746067356772_0.7921812584287895","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"nestjs-cloud-taskmq","version":"0.1.20","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.20","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"26b1b2036a506a5ec1cd9bb87d8e41256a87f8d1","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.20.tgz","fileCount":60,"integrity":"sha512-a3RypAV4awFmJqNNhBK7NrYPIwlis4rhtIcY62EUjg17qHg9dSXFsf62EpqanLo+TnnDNNgUQn2rqfdGZ/bJRw==","signatures":[{"sig":"MEUCIQC10dfX1CZks152txPGP9uAD2a9/Wcg6zbbhx9YQrfJSgIgWNBBx+dJiEoVhKIkscf6/7yaEIi35OYlFmI9PdFMVdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388111},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c47ba8bb8beaa7330e6afa33d6609cdd81554c47","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.20_1746067880363_0.2913414614019558","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"nestjs-cloud-taskmq","version":"0.1.21","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.21","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"d0712e12a73ad6863eb975e12826c97ca8299de3","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.21.tgz","fileCount":60,"integrity":"sha512-7dR/RVofwwE7Ko85GC7IZQWIy9B7vcElk/s9aEl/1zLYiIjUYnLY7MBzsS/x06lwkfcbTD6G1hzMx3IgTWtRuw==","signatures":[{"sig":"MEQCIFeJdfSrs1190UBRsc6G1sE5UxxOv/uBoY8DoQUVf4aFAiATukaYfR8soRvUfN00LjS3Ai3lDHUBgNIcKRsFEdHQOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387590},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c47ba8bb8beaa7330e6afa33d6609cdd81554c47","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.21_1746068263123_0.7319211732948314","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"nestjs-cloud-taskmq","version":"0.1.22","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.22","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"9325ea77bc13614fa148b381b1c09fb6ac59e745","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.22.tgz","fileCount":63,"integrity":"sha512-BighqrXsJGhVYRYMVPONu3oO5xQz+8H82vKXtV47ww1Pf4331anhUX7l/zHLBjW6H+IuRR0Wp5oQRvJK6HkCMQ==","signatures":[{"sig":"MEQCIGh6Wq9//Rys+fBvtSzrbcMxWxltjkslbHUDyUVfufAAAiAZ4zpZQQXxzlNJK53tunq/tvbKdx2VqTxZL2piPLmeHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408405},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.22_1746201584616_0.9611437831884977","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"nestjs-cloud-taskmq","version":"0.1.23","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.23","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"943f02723806d0c9da95a2b8204d06014ad21ecf","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.23.tgz","fileCount":63,"integrity":"sha512-T0q1nYOWx4Iwn9u+KtYSWsXClA10hmSBh/64KEiXBn+7t24IDO08gUhjmElycsWHofmCc+kiwm5ML5rkxwLfIg==","signatures":[{"sig":"MEUCIQDEWTl5LwKCGVblO+9OA/R640SwaybXSVI9L5NdHPbjHwIgP+S6S/6naDt03ARlsHEoVrB4derCx+x7Psnv1MUv1Ks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408786},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.23_1746202410788_0.19557663612950704","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"nestjs-cloud-taskmq","version":"0.1.24","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.24","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"2f90aca2dec1a9bf660ce98a5853252f3fe9412c","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.24.tgz","fileCount":63,"integrity":"sha512-LL6w/joa/apERrZdXQkzkWE3vvHeKOrJZVsBTO6v8nUyZIpFSt+JrzJcjMLrPyJbjzV73CYmZnJYstdlgXLZJA==","signatures":[{"sig":"MEUCIH+gNMw04QDV8HqGnNVVUoqB17FDaocDEeFQIxToOdw5AiEAkDJJxaOZcb2B0alKQecl+SiGaO3Yu1i2pSeXy0l6Qlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408841},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.24_1746202655628_0.8817725094511681","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"nestjs-cloud-taskmq","version":"0.1.25","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.25","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"a1b3b0df0da1feaf8eefcbe8ae9d474e18b7f4c6","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.25.tgz","fileCount":63,"integrity":"sha512-3CVM4Qjq0x6JY94qQtYNnDDaYrrEvaaBaZfet7B2zS25GrWHW9U1vCwlW0kGD9nLhDCD/7QTUprgtIwZlf4Trg==","signatures":[{"sig":"MEUCICjrSm3u5a2WWuvZ5VDNnizR1em3OKhV17+w0hLuG7YnAiEAsSMXRJN38i5IaW4ZN+BY/J6fV7Dua6BAkeoEvm3mvkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408896},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.25_1746202930803_0.12012079367314898","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"nestjs-cloud-taskmq","version":"0.1.26","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.26","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"8871aa8b9b04787af9c92c3eb3486a3c7d04d82f","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.26.tgz","fileCount":63,"integrity":"sha512-tGbWZTzErpDr4AIi5YOay8sVamlu2iWnRdwwTrW59rqBo/GV+tMduUoZSj+BmztlZ+FqQdx2/IpWgYByZZIQaQ==","signatures":[{"sig":"MEUCIQDWSMoClmLxKUtwIQqPW8Pas8X3/T4gGwYSo+8bJVpiUAIgD3pg+47ZioE7humtSdf3iwJbfDty8MyEWQXH8cZTv/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409340},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.26_1746203259096_0.5114611715253352","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"nestjs-cloud-taskmq","version":"0.1.27","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.27","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"23033a04df018c88b21cc252fecb74a2439a3a68","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.27.tgz","fileCount":63,"integrity":"sha512-ZXIrZlVFm55zLrnAyJC4hDGfwlTNmjeBu0fsZ2AGFAui9O5wugOkgkq24Bf0auL/os1fy1lHib70JlPuqdRG+A==","signatures":[{"sig":"MEUCIATGUf6Y6oXFpqPfTF4wHpO3MqZrauywZ2MQNhLHOcY9AiEAoGrFjACp8S6dtuBkRTWNQ5MQzkAC27R1Z8ItMuBCZx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409367},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.27_1746204700922_0.23255912437412007","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"nestjs-cloud-taskmq","version":"0.1.28","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.28","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"be61ab7933ef8ab4324e9290c8db854c3d4a83f4","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.28.tgz","fileCount":63,"integrity":"sha512-2UwcN1Vhd1bt6kWPpJFet2/U2O6z/aoL6YpWQ4zrxh2ssGffPLyRNDOCxIFam/Tv95CX6NRadiduGuaRSB5Cig==","signatures":[{"sig":"MEQCIADVkPWIz6c8PoYggZU+mLG6Fw3AEqdsy2sdLcatx0oxAiBegPADN0h+aHEHaVC4b1tiLu0WF1eBWVL3eJY8PhZfOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412530},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.28_1746206849607_0.22100538794001068","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"nestjs-cloud-taskmq","version":"0.1.29","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.29","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"553bf3bd7291862b8f010c78f5d536d8850f5b92","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.29.tgz","fileCount":63,"integrity":"sha512-yJl1r8nd2xfTJJK856hq1EJlXLtxL/XhDr2F8EbBlPVHBF7qJ0KSHe/htWodYCNAcDXQPYsAdNsSxyOGyFgNZQ==","signatures":[{"sig":"MEUCIBJQ1D4DAnpfBOoxMKJ0mttXT/SF53JNaw/ghaHcn/kDAiEAhyOrsITF2BWLGKKQsRy518c1i3I7KcyOWF0+G/Htdhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415069},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.29_1746208141910_0.9464989558157753","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"nestjs-cloud-taskmq","version":"0.1.30","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.30","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"a51ad00b6735315bec35cf2182547fefb69ccd29","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.30.tgz","fileCount":63,"integrity":"sha512-o5/q0BogncgwRwlBuCZhcd6j2tONoFpowmXwBhCx//bLZc4+khsVh/u3xeCNrySWDnzvq83cbbKgFuSf0sbQaA==","signatures":[{"sig":"MEUCIQD3g0uCuDSvINxMjJgUn6J97/4cBkBekPq2LuZ5JKz+xgIgQZmNJVAS3hFTvxvqC7AB9fcx+OGIofDJSd1z6FkM7EE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415183},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.30_1746208695401_0.10829157304483128","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"nestjs-cloud-taskmq","version":"0.1.31","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.31","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"126fde9acc780ce2c33f2e821a682b8e93dcc45e","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.31.tgz","fileCount":63,"integrity":"sha512-TwbavPnjhLrc/yUgPU/SWtQX+LBkCNXA1ljsic1uUsjZF+bIWsBHytT+JFizLP9pYjemVAuoUQWVnyafgtDtkw==","signatures":[{"sig":"MEUCIQCqaTP+b++eeODT12iGGyQv3h6u55uy60OSO35fNCwhpQIgBtQx27vNKozEOQ3l7bRJ5ULBRFmT2MO+JRALVXyisTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416005},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.31_1746209527296_0.5156082934950581","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"nestjs-cloud-taskmq","version":"0.1.32","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.32","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"82749e75d8fe872711eee52318450dbd74d27045","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.32.tgz","fileCount":63,"integrity":"sha512-BGap+3SEwlpGIzvt6mPnhRgENLRfBtI+PRBkd9+ZMMDltFwnnSais3sj5WbX5bG5tDBmAwH/igNrmrsUWnFkPQ==","signatures":[{"sig":"MEUCIQCsByCDuZ7MzJ0ve4UAXmeTpQ3rW9mWZyWf4b/E2nHx9AIgIUD56wNhQq5CEl/uNIbUex/zOvCDKQJWak7/Bv0PAnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416264},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.32_1746210208227_0.0907012014944053","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"nestjs-cloud-taskmq","version":"0.1.33","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.33","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"212473eec124eec152336d5a0149681d9895301b","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.33.tgz","fileCount":63,"integrity":"sha512-aMhbUuuake7D2Ou0YFhk6MWsfEOhHlQwRJJqTdi+xpTPfB4LsHMW5NCZKudAB0F8qG8rnBpHkDnnZ3MQrBRkNw==","signatures":[{"sig":"MEUCIQCJhQ8kjlP2ywx8ajZ87mgJowHK174nHy0aIjn5X04nzAIgG5sdOCnzJI4eDELc5zsF7lb8mQ+3wP2gsM19qbUdxQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416583},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"64d6ffed99a275316976bf428ff9cd311833f0c2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.33_1746211449123_0.892866545758604","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"nestjs-cloud-taskmq","version":"0.1.34","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.34","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"fdde2fcd53fd14791562a25b71df29232500521f","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.34.tgz","fileCount":66,"integrity":"sha512-MLOip4zbOetU2g/4ypTmBGFFIK8tP1UeJnMVrSyOmVJqtiKrQjE6XYHL6juyGCKM1YQPxfi44OvsOXZHAK1gzQ==","signatures":[{"sig":"MEUCIQCZAiuTIeJJZVsgPoGvJAauxKPEanjgMREb6iA83QsHqgIgYpMrhvhy0LFvOPAsfl6H5tyi1LLv3dcrAM2MFkWk2GE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":429997},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d7f97e55d695fad5ed1a622b7979258202c10471","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.34_1746215505629_0.7302920124425145","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"nestjs-cloud-taskmq","version":"0.1.35","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.35","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"f5402d21930bb2a3cfa4ece32c2ffa07a3c20e4d","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.35.tgz","fileCount":66,"integrity":"sha512-tlDPx9mSiMRLNurDcK/olEv0jM/0doy9TBPLKDsHMzLZOIVTRNKRNrk76BhU8is9gq73p6EScsk9FyYo49RFww==","signatures":[{"sig":"MEQCIC/8Ss06HllefmF3H+Fs3iQN9hqoVvBb84qJUj/DcgrTAiAxAlrUuzSrVbxt0kr1Rh665JXgzMbdDJhn9pBEr2cwsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441227},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"35be2e9e56fe32d967baf74c0a3dd8391fe0f978","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.35_1746217464047_0.6788134290517784","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"nestjs-cloud-taskmq","version":"0.1.36","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.36","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"b473fbd681cf2442c35b265da0c5e2a24cd99b83","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.36.tgz","fileCount":66,"integrity":"sha512-acbjq7QhCZRYXv7pobIRUZ6OZC1akoyOAx1rU5Spp1FwLjIi5DjH/+j3GaMdZdr8a2orLRWOdUc6V6bvYPOisg==","signatures":[{"sig":"MEUCIHJac181FyZWkjZDhdsH8vsqfWsHK6iRV1Ak4vdE/g+iAiEA72u0RK1ca3fmjyRjNXO2Cl+p4CN53nos/TW1eRw3Ghs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441316},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"35be2e9e56fe32d967baf74c0a3dd8391fe0f978","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.36_1746217771940_0.48286136380955846","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"nestjs-cloud-taskmq","version":"0.1.37","license":"MIT","_id":"nestjs-cloud-taskmq@0.1.37","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"3ffb37e39aae8e67c8d79cf6be93ce80590abf7d","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-0.1.37.tgz","fileCount":66,"integrity":"sha512-7xnV5e4bXJhhZFgzse/P4TDD7C4Cq6bfs22il/7A+NbF8Q3TpZUhksKU/2GC7emw58Pp5KvCthKcX9XXw8hSug==","signatures":[{"sig":"MEYCIQC7s0NuGqh/1rAXWEPKIbqJAGr0NbxESI4AyX9zobKnqQIhALbrjVTCsIh1JRjVN23h4OK4iVnRd5rpmyetsDlbJBcd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441291},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"35be2e9e56fe32d967baf74c0a3dd8391fe0f978","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis/Memory/Custom for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_0.1.37_1746218290716_0.992561753835902","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"nestjs-cloud-taskmq","version":"1.0.0","keywords":["nestjs","google-cloud-tasks","queue","bullmq","task","redis","mongodb","memory","custom"],"license":"MIT","_id":"nestjs-cloud-taskmq@1.0.0","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"dist":{"shasum":"ee823a7715b31be1faf2e234ae41f8c341d1cab2","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-1.0.0.tgz","fileCount":66,"integrity":"sha512-WOOIGKNLwVZBQu8V+mH6bG/zkxMPMTylZRrwbH/1Mm9gs2ag902P+gMMvqm8sVSSWeJJwAN/Qsv98dYwf2pCkw==","signatures":[{"sig":"MEQCIHBQo9TedEsEhgTDLDAAqZQX+z2+1drCD5WiD7SPRpOIAiBM9XSF794sDQys9izdCS2oAaPeG9UAK31lRJ/6x0IRgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441445},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"35be2e9e56fe32d967baf74c0a3dd8391fe0f978","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"},"_npmVersion":"10.9.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis/Memory/Custom for a BullMQ-like queue system","directories":{},"_nodeVersion":"23.3.0","dependencies":{"express":"^5.1.0","ioredis":"^5.3.2","@google-cloud/tasks":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.1","ts-jest":"^29.1.0","prettier":"^2.8.7","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.15.11","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@types/express":"^5.0.1","@nestjs/testing":"^10.0.0","@nestjs/mongoose":"^10.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.0.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"peerDependencies":{"mongoose":"^7.0.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/nestjs-cloud-taskmq_1.0.0_1746218414084_0.874755914083553","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"nestjs-cloud-taskmq","version":"2.0.0","description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis/Memory/Custom for a BullMQ-like queue system","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json","test":"jest","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepublishOnly":"npm run build"},"peerDependencies":{"@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","@nestjs/schedule":"^6.0.0","@nestjs/config":"^4.0.2","mongoose":"^7.0.0","reflect-metadata":"^0.1.13"},"dependencies":{"@google-cloud/tasks":"^4.0.0","async":"^3.2.6","express":"^4.18.2","ioredis":"^5.3.2"},"devDependencies":{"@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","@nestjs/mongoose":"^10.0.0","@nestjs/testing":"^10.0.0","@types/express":"^4.17.21","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","eslint":"^8.0.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","jest":"^29.5.0","prettier":"^2.8.7","ts-jest":"^29.1.0","typescript":"^5.0.4"},"keywords":["nestjs","google-cloud-tasks","queue","bullmq","task","redis","mongodb","memory","custom"],"_id":"nestjs-cloud-taskmq@2.0.0","gitHead":"21230202351b808c44b750c39b14c553d04550e5","_nodeVersion":"23.3.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-pUv61HE1AWaIW43dFx0Y4bURs/TuT5qzsV8Vz1OgCHPCCUowJ+45qJOtEid6x85y6G9CMyRLhNQxoUeQllgrSg==","shasum":"3f3b4e58124c954875cbd87cf47574163bb13f84","tarball":"https://registry.npmjs.org/nestjs-cloud-taskmq/-/nestjs-cloud-taskmq-2.0.0.tgz","fileCount":108,"unpackedSize":748623,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICnjIBc0+An6O/JyKujT0x7ltdYUICK+Ec/ItZJH9N1NAiEA1E4raNUDFxjB2Cex9ihKUNMCsSySmHDwyXz+Xv07bsY="}]},"_npmUser":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com","actor":{"name":"edgardurand","email":"edgarduranddiaz@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-cloud-taskmq_2.0.0_1750526974903_0.2806266754169937"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-29T18:37:21.159Z","modified":"2025-06-21T17:29:35.314Z","0.1.0":"2025-04-29T18:37:21.408Z","0.1.1":"2025-04-29T18:39:46.898Z","0.1.2":"2025-04-29T18:43:40.403Z","0.1.4":"2025-04-29T21:39:14.209Z","0.1.5":"2025-04-29T21:52:57.511Z","0.1.6":"2025-04-29T22:03:49.194Z","0.1.7":"2025-04-29T22:12:47.962Z","0.1.8":"2025-04-30T00:01:44.392Z","0.1.9":"2025-04-30T00:28:55.907Z","0.1.10":"2025-04-30T01:17:27.501Z","0.1.11":"2025-04-30T01:28:00.316Z","0.1.12":"2025-04-30T01:37:54.643Z","0.1.13":"2025-04-30T01:47:08.135Z","0.1.14":"2025-04-30T01:53:00.513Z","0.1.15":"2025-04-30T02:19:19.165Z","0.1.16":"2025-04-30T21:30:00.129Z","0.1.17":"2025-05-01T02:03:03.658Z","0.1.18":"2025-05-01T02:10:10.758Z","0.1.19":"2025-05-01T02:42:36.964Z","0.1.20":"2025-05-01T02:51:20.568Z","0.1.21":"2025-05-01T02:57:43.365Z","0.1.22":"2025-05-02T15:59:45.066Z","0.1.23":"2025-05-02T16:13:30.965Z","0.1.24":"2025-05-02T16:17:35.857Z","0.1.25":"2025-05-02T16:22:11.106Z","0.1.26":"2025-05-02T16:27:39.521Z","0.1.27":"2025-05-02T16:51:41.192Z","0.1.28":"2025-05-02T17:27:29.793Z","0.1.29":"2025-05-02T17:49:02.109Z","0.1.30":"2025-05-02T17:58:15.578Z","0.1.31":"2025-05-02T18:12:07.451Z","0.1.32":"2025-05-02T18:23:28.432Z","0.1.33":"2025-05-02T18:44:09.331Z","0.1.34":"2025-05-02T19:51:46.009Z","0.1.35":"2025-05-02T20:24:24.226Z","0.1.36":"2025-05-02T20:29:32.134Z","0.1.37":"2025-05-02T20:38:11.006Z","1.0.0":"2025-05-02T20:40:14.395Z","2.0.0":"2025-06-21T17:29:35.143Z"},"license":"MIT","keywords":["nestjs","google-cloud-tasks","queue","bullmq","task","redis","mongodb","memory","custom"],"description":"NestJS library for integrating Google Cloud Tasks with MongoDB/Redis/Memory/Custom for a BullMQ-like queue system","maintainers":[{"name":"edgardurand","email":"edgarduranddiaz@gmail.com"}],"readme":"# CloudTaskMQ\n\nCloudTaskMQ is a NestJS library that provides a queue system similar to BullMQ but leverages Google Cloud Tasks for task scheduling and delivery, with MongoDB or Redis for state tracking and observability.\n\n## Features\n\n- **Google Cloud Tasks Integration**: Utilize GCP's managed queue service for task scheduling and delivery\n- **State Tracking**: Persistent storage of task states (idle, active, completed, failed) using MongoDB, Redis, or in-memory storage\n- **Storage Agnostic**: Switch between storage providers without changing your application code\n- **Task Chaining**: Sequential task execution with automatic chain progression and proper ordering\n- **Rate Limiting**: Built-in persistent rate limiting to control task processing throughput\n- **Automatic Queue Creation**: Optionally create missing queues in GCP Cloud Tasks\n- **Task Retries**: Configure retry attempts for failed tasks with customizable backoff\n- **Event-Driven Programming**: Familiar BullMQ-like decorators for lifecycle events\n- **Easy Job Processing**: Simple API for adding tasks to queues and processing them\n- **Observability**: Track task status and monitor queue health\n- **TypeScript Support**: Built with and for TypeScript with type safety in mind\n- **Task Uniqueness (`uniquenessKey`)**: Prevent duplicate task processing. Provide a `uniquenessKey` when adding a task. If a task with the same key is added while the key is \"active\" in the storage, the new task attempt is dropped.\n    - A key becomes active when a consumer picks up a task with that key and saves it before processing.\n    - The key is stored with a 24-hour Time-To-Live (TTL) as a safeguard (e.g., if a consumer crashes).\n    - If the task completes and `removeOnComplete` is `true` (or `removeOnFail` is `true` for failed tasks), the `uniquenessKey` is removed from storage along with the task record, allowing a new task with the same key to be processed sooner than the full TTL.\n    - If `removeOnComplete` is `false`, the `uniquenessKey` will persist for its full 24-hour TTL, enforcing uniqueness for that entire period even after task completion.\n\n## Quick Start\n\n### 1. Register the Module\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { CloudTaskMQModule } from 'nestjs-cloud-taskmq';\n\n@Module({\n  imports: [\n    CloudTaskMQModule.forRoot({\n      projectId: 'my-gcp-project',\n      location: 'us-central1',\n      defaultProcessorUrl: 'https://my-app.com/api/cloud-tasks',\n      queues: [\n        {\n          name: 'email-queue', // Name used in your code\n          path: 'projects/my-gcp-project/locations/us-central1/queues/email-queue', // Full path in GCP\n          serviceAccountEmail: 'my-service-account@my-gcp-project.iam.gserviceaccount.com',\n        },\n        {\n          name: 'notification-queue',\n          path: 'projects/my-gcp-project/locations/us-central1/queues/notification-queue',\n        }\n      ],\n      storageAdapter: 'mongo', // 'redis', 'memory', or 'custom'\n      storageOptions: {\n        mongoUri: 'mongodb://localhost:27017/my-app',\n        collectionName: 'cloud_tasks', // optional, defaults to 'cloud_taskmq_tasks'\n      },\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n### Using Redis Storage\n\n```typescript\nCloudTaskMQModule.forRoot({\n  // other config...\n  storageAdapter: 'redis',\n  storageOptions: {\n    redis: {\n      host: 'localhost',\n      port: 6379,\n      password: 'password', // Optional\n      // OR use a connection URL\n      url: 'redis://:password@localhost:6379',\n      keyPrefix: 'cloud-taskmq:', // Optional, defaults to 'cloud-taskmq:'\n    },\n  },\n  // other config...\n})\n```\n\n### Using In-Memory Storage (for development/testing)\n\n```typescript\nCloudTaskMQModule.forRoot({\n  // other config...\n  storageAdapter: 'memory',\n  // other config...\n})\n```\n\n### 2. Using Environment Variables (Recommended)\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { CloudTaskMQModule } from 'nestjs-cloud-taskmq';\n\n@Module({\n  imports: [\n    ConfigModule.forRoot(),\n    CloudTaskMQModule.forRootAsync({\n      imports: [ConfigModule],\n      inject: [ConfigService],\n      useFactory: (configService: ConfigService) => ({\n        projectId: configService.get('GCP_PROJECT_ID'),\n        location: configService.get('GCP_LOCATION'),\n        defaultProcessorUrl: configService.get('CLOUD_TASKS_PROCESSOR_URL'),\n        queues: [\n          {\n            name: 'email-queue',\n            path: `projects/${configService.get('GCP_PROJECT_ID')}/locations/${configService.get('GCP_LOCATION')}/queues/email-queue`,\n            serviceAccountEmail: configService.get('GCP_SERVICE_ACCOUNT'),\n          },\n        ],\n        storageAdapter: configService.get('STORAGE_ADAPTER') || 'mongo',\n        storageOptions: {\n          mongoUri: configService.get('MONGODB_URI'),\n          // For Redis:\n          // redis: {\n          //   host: configService.get('REDIS_HOST'),\n          //   port: configService.get('REDIS_PORT'),\n          //   password: configService.get('REDIS_PASSWORD'),\n          // },\n        },\n      }),\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n## Task Producer: Adding Tasks to Queues\n\n## Adding Tasks to Queues\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { ProducerService } from 'nestjs-cloud-taskmq';\n\n@Injectable()\nexport class EmailService {\n  constructor(private readonly producerService: ProducerService) {}\n\n  async sendWelcomeEmail(userId: string, email: string): Promise<void> {\n    // Add a task to the email-queue\n    await this.producerService.addTask('email-queue', {\n      to: email,\n      subject: 'Welcome!',\n      template: 'welcome',\n      userId,\n    }, {\n      // Optional parameters\n      scheduleTime: new Date(Date.now() + 60000), // Run 1 minute from now\n      taskId: `welcome-${userId}`, // Custom task ID (must be unique)\n      uniquenessKey: `welcome-email-${userId}`, // Ensures this task is unique for this userId while key is active\n      metadata: { importance: 'high' }, // Custom metadata\n      maxRetry: 3, // Maximum number of retry attempts\n      rateLimiterKey: 'welcome-emails', // Custom rate limiter key\n      removeOnComplete: true, // Remove task from storage when completed\n      removeOnFail: false, // Keep failed tasks in storage\n    });\n  }\n\n  // Schedule a task with a custom ID that includes timestamp to avoid duplicates when retrying\n  async sendDailyDigest(userId: string, email: string): Promise<void> {\n    const timestamp = Date.now();\n    await this.producerService.addTask('email-queue', {\n      to: email,\n      subject: 'Your Daily Digest',\n      template: 'daily-digest',\n      userId,\n    }, {\n      taskId: `daily-digest-${userId}-${timestamp}`,\n    });\n  }\n}\n\n### Using `uniquenessKey` for Idempotent Task Submission\n\nThe `uniquenessKey` option allows you to ensure that a task is processed only once, even if it's submitted multiple times with the same key. This is useful for operations that should be idempotent based on certain parameters.\n\n**How it works:**\n- When you provide a `uniquenessKey` (e.g., `order-confirmation-${orderId}`) in the `AddTaskOptions`:\n  1.  The `ProducerService` checks if this key is already active in the storage. If so, the new task submission is dropped.\n  2.  If the key is not active, the task is created, and the `uniquenessKey` is passed in its metadata.\n  3.  When a `ConsumerService` instance picks up the task, it again checks the `uniquenessKey`:\n      - If the key is already active in storage (e.g., another consumer processed it, or it's a retry after the key was saved), the task is skipped.\n      - Otherwise, the consumer saves the `uniquenessKey` to storage *before* processing the task. This key is automatically set with a 24-hour Time-To-Live (TTL) by the storage adapter (Redis, Mongo, Memory) as a safeguard.\n- **Interaction with `removeOnComplete` / `removeOnFail`**:\n  - If `removeOnComplete: true` (default for `addTask` if not specified in options or task configuration) and the task completes successfully, the `uniquenessKey` is removed from storage along with the task record. This means a new task with the same `uniquenessKey` can be processed relatively soon after the first one completes.\n  - If `removeOnComplete: false`, the `uniquenessKey` will remain in storage for its full 24-hour TTL, even after the task finishes. This enforces uniqueness for that key for the entire 24-hour period.\n  - Similar logic applies with `removeOnFail` for failed tasks.\n\n**Example:**\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { ProducerService } from 'nestjs-cloud-taskmq';\n\n@Injectable()\nexport class OrderService {\n  constructor(private readonly producerService: ProducerService) {}\n\n  async processOrderPayment(orderId: string, paymentDetails: any): Promise<void> {\n    // This task will only be processed once per orderId while the key is active.\n    // If this method is called multiple times for the same orderId quickly,\n    // subsequent attempts will be dropped.\n    await this.producerService.addTask('payment-processing-queue', \n      { orderId, ...paymentDetails }, \n      {\n        uniquenessKey: `payment-${orderId}`,\n        // To ensure uniqueness for the full 24-hour TTL, even if this task completes quickly:\n        // removeOnComplete: false, \n        // By default (or if removeOnComplete: true), the uniquenessKey is cleared on successful completion.\n      }\n    );\n  }\n}\n```\n\n## Task Consumer: Processing Tasks\n\n### Creating a Processor\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { \n  Processor, \n  Process, \n  OnQueueActive, \n  OnQueueCompleted, \n  OnQueueFailed,\n  CloudTask\n} from 'nestjs-cloud-taskmq';\n\n// Define the type of your task payload for better type safety\ninterface EmailTaskPayload {\n  type: string;\n  userId: string;\n  email: string;\n  subject: string;\n  body?: string;\n}\n\n@Injectable()\n@Processor('email-queue')\nexport class EmailProcessor {\n    constructor(private readonly actualEmailService: YourEmailService) {}\n    \n    @Process()\n    async handleEmailTask(task: CloudTask<EmailTaskPayload>): Promise<any> {\n    const { type, userId, email, subject, body } = task.payload;\n    \n    // Report progress (if you have an @OnQueueProgress handler)\n    await task.reportProgress(50);\n    \n    // Send the actual email\n    await this.actualEmailService.sendEmail(email, subject, body);\n    \n    // Return a result (will be passed to @OnQueueCompleted handler)\n    return { success: true, sentAt: new Date() };\n    }\n    \n    @OnTaskActive()\n    onActive(task: CloudTask<EmailTaskPayload>): void {\n    console.log(`Processing email task ${task.taskId} for user ${task.payload.userId}`);\n    }\n    \n    @OnTaskCompleted()\n    onCompleted(task: CloudTask<EmailTaskPayload>, result: any): void {\n    console.log(`Email task ${task.taskId} completed with result:`, result);\n    }\n    \n    @OnTaskFailed()\n    onFailed(task: CloudTask<EmailTaskPayload>, error: Error): void {\n    console.error(`Email task ${task.taskId} failed with error:`, error.message);\n    // You might want to notify someone or log to a monitoring system\n    }\n\n    /**\n     * Called when progress is reported\n     */\n    @OnTaskProgress()\n    onTaskProgress(task: CloudTask<TestTaskPayload>, progress: number): void {\n        console.log(`Task ${task.taskId} progress: ${progress}%`);\n    }\n}\n\n### Setting up the consumer endpoint\n\nBy default, CloudTaskMQ creates a controller at `/cloud-tasks` to handle incoming task requests from Google Cloud Tasks. However, you can create your own custom controller:\n\n```typescript\nimport { Controller, Post, Body } from '@nestjs/common';\nimport { CloudTaskConsumer } from 'nestjs-cloud-taskmq';\n\n@CloudTaskConsumer({\n  queues: ['email-queue', 'notification-queue'],\n  includeOidcToken: true, // If you are using a different auth mechanism or no auth (e.g., internal network),\n  // you might need to adjust or provide custom guards.\n  // For Cloud Tasks with OIDC:\n  // Controller expects OIDC tokens from GCP for authentication.\n})\nexport class TasksController {\n  // The CloudTaskMQ library will handle most of the work for you,\n  // but you can add your own logic here if needed\n  @Post()\n  async handleTask(@Body() body: any): Promise<any> {\n    // Additional custom logic can go here\n    console.log('Received task:', body.taskId);\n    \n    // The actual task processing is handled automatically by the library\n    return { received: true };\n  }\n}\n\n## Storage Adapters\n\nCloudTaskMQ supports different storage adapters for storing task state. By default, it includes adapters for MongoDB, Redis, and InMemory.\n\n### MongoDB Adapter\n\n```typescript\nCloudTaskMQModule.forRoot({\n  // ... other configuration\n  storageAdapter: 'mongo',\n  storageOptions: {\n    mongoUri: 'mongodb://localhost:27017/my-database',\n    collectionName: 'cloud_tasks', // Optional, defaults to 'cloud_taskmq_tasks'\n  },\n})\n```\n\n### Redis Adapter\n\n```typescript\nCloudTaskMQModule.forRoot({\n  // ... other configuration\n  storageAdapter: 'redis',\n  storageOptions: {\n    redis: {\n      host: 'localhost',\n      port: 6379,\n      password: 'password', // Optional\n      keyPrefix: 'my-app:', // Optional prefix for Redis keys\n    },\n  },\n})\n```\n\n## Advanced: Custom Storage Adapter\n\nYou can implement your own storage adapter by implementing the `IStateStorageAdapter` interface:\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { IStateStorageAdapter, TaskQueryOptions, ITask, TaskStatus, IRateLimiterBucket } from 'nestjs-cloud-taskmq';\n\n@Injectable()\nexport class CustomStorageAdapter implements IStateStorageAdapter {\n  async initialize(): Promise<void> {\n    // Initialize connection to your storage, e.g., DB connection, create tables/collections if not exist\n    console.log('CustomStorageAdapter initialized');\n  }\n\n  async createTask(task: Omit<ITask, 'createdAt' | 'updatedAt'>): Promise<ITask> {\n    // Logic to save the task to your custom storage\n    // Ensure to return the full task object including generated createdAt and updatedAt\n    const newTask = { ...task, createdAt: new Date(), updatedAt: new Date(), id: 'custom-id' } as ITask; // Example\n    console.log('Task created:', newTask.taskId);\n    return newTask;\n  }\n\n  async getTaskById(taskId: string): Promise<ITask | null> {\n    // Logic to retrieve a task by its ID from your storage\n    console.log('Getting task by ID:', taskId);\n    return null; // Replace with actual implementation\n  }\n\n  async updateTaskStatus(taskId: string, status: TaskStatus, additionalData?: Partial<ITask>): Promise<ITask | null> {\n    // Logic to update the status and other data of a task\n    console.log('Updating task status:', taskId, status);\n    return null; // Replace with actual implementation\n  }\n\n  async acquireTaskLock(taskId: string, workerId: string, lockDurationMs: number): Promise<boolean> {\n    // Logic to attempt to lock a task for processing\n    // Return true if lock acquired, false otherwise\n    console.log('Acquiring task lock:', taskId, workerId, lockDurationMs);\n    return true; // Replace with actual implementation\n  }\n\n  async releaseTaskLock(taskId: string, workerId: string): Promise<boolean> {\n    // Logic to release a lock on a task\n    // Return true if lock released, false otherwise (e.g., if not locked by this worker)\n    console.log('Releasing task lock:', taskId, workerId);\n    return true; // Replace with actual implementation\n  }\n\n  async findTasks(options: TaskQueryOptions): Promise<ITask[]> {\n    // Logic to find tasks based on query options (status, queueName, pagination, sorting)\n    console.log('Finding tasks with options:', options);\n    return []; // Replace with actual implementation\n  }\n\n  async countTasks(options: TaskQueryOptions): Promise<number> {\n    // Logic to count tasks based on query options\n    console.log('Counting tasks with options:', options);\n    return 0; // Replace with actual implementation\n  }\n\n  async deleteTask(taskId: string): Promise<boolean> {\n    // Logic to delete a task by its ID\n    // Return true if deleted, false otherwise\n    console.log('Deleting task:', taskId);\n    return true; // Replace with actual implementation\n  }\n\n  async completeTask(taskId: string, result?: any): Promise<ITask> {\n    // Logic to mark a task as completed, store result, and update status\n    console.log('Completing task:', taskId, result);\n    // Should typically call updateTaskStatus internally or similar logic\n    return null; // Replace with actual implementation that returns the updated task\n  }\n\n  async failTask(taskId: string, error?: any): Promise<ITask> {\n    // Logic to mark a task as failed, store error, and update status\n    console.log('Failing task:', taskId, error);\n    // Should typically call updateTaskStatus internally or similar logic\n    return null; // Replace with actual implementation that returns the updated task\n  }\n\n  // Rate limiter methods\n  async getRateLimiterBucket(key: string): Promise<IRateLimiterBucket | null> {\n    // Logic to retrieve a rate limiter bucket by its key\n    console.log('Getting rate limiter bucket:', key);\n    return null; // Replace with actual implementation\n  }\n\n  async saveRateLimiterBucket(bucket: IRateLimiterBucket): Promise<IRateLimiterBucket> {\n    // Logic to save a rate limiter bucket\n    console.log('Saving rate limiter bucket:', bucket.key);\n    return bucket; // Replace with actual implementation that returns the saved/updated bucket\n  }\n\n  async deleteRateLimiterBucket(key: string): Promise<boolean> {\n    // Logic to delete a rate limiter bucket by its key\n    // Return true if deleted, false otherwise\n    console.log('Deleting rate limiter bucket:', key);\n    return true; // Replace with actual implementation\n  }\n\n  // Uniqueness key methods\n  async getUniquenessValue(key: string): Promise<boolean> {\n    // Logic to check if a uniqueness key exists (and is active)\n    // Return true if key exists, false otherwise\n    console.log('Getting uniqueness value for key:', key);\n    return false; // Replace with actual implementation\n  }\n\n  async saveUniquenessKey(key: string): Promise<void> {\n    // Logic to save a uniqueness key (typically with a TTL, e.g., 24 hours)\n    console.log('Saving uniqueness key:', key);\n  }\n\n  async removeUniquenessKey(key: string): Promise<void> {\n    // Logic to remove a uniqueness key\n    console.log('Removing uniqueness key:', key);\n  }\n\n  async hasActiveTaskInChain(chainId: string): Promise<boolean> {\n    // Logic to check if there are any active tasks in the specified chain\n    // Return true if there are active tasks, false otherwise\n    console.log('Checking for active tasks in chain:', chainId);\n    return false; // Replace with actual implementation\n  }\n\n  async getNextTaskInChain(chainId: string): Promise<ITask | null> {\n    // Logic to get the next task to be executed in the chain\n    // Should return the IDLE task with the lowest chainOrder in the specified chain\n    console.log('Getting next task in chain:', chainId);\n    return null; // Replace with actual implementation\n  }\n\n  async findTasksByChainId(chainId: string, status?: TaskStatus): Promise<ITask[]> {\n    // Logic to find all tasks in a chain, optionally filtered by status\n    // Used for chain management and monitoring\n    console.log('Finding tasks by chain ID:', chainId, 'with status:', status);\n    return []; // Replace with actual implementation\n  }\n}\n\n### Integrating Your Custom Storage Adapter\n\nOnce you have defined your `CustomStorageAdapter` class (as shown above), you need to register an instance of it with the `CloudTaskMQModule`. This is done by setting the `storageAdapter` option to `'custom'` and providing your adapter instance to the `customStorageAdapterInstance` property in the module configuration.\n\nThe `CloudTaskMQModule` will automatically call the `initialize()` method on your provided `customStorageAdapterInstance` during its bootstrap process.\n\n**1. Basic Integration (Simple Instantiation)**\n\nIf your `CustomStorageAdapter` does not have complex dependencies and can be instantiated directly:\n\n```typescript\n// src/app.module.ts (or your main application module)\n\nimport { Module } from '@nestjs/common';\nimport { CloudTaskMQModule } from 'nestjs-cloud-taskmq'; // Adjust path as needed\nimport { CustomStorageAdapter } from './your-path-to-adapter/custom-storage.adapter'; // Adjust path\n\n@Module({\n  imports: [\n    // ... other NestJS modules (e.g., ConfigModule)\n    CloudTaskMQModule.forRoot({\n      // --- Essential Cloud Task MQ Configuration ---\n      projectId: 'your-gcp-project-id', // Replace with your GCP Project ID\n      location: 'your-gcp-location',   // Replace with your GCP Location (e.g., 'us-central1')\n      defaultProcessorUrl: 'https://your-app-url.com/tasks/process', // Optional: Default base URL for task handlers\n\n      queues: [\n        {\n          name: 'email-queue', // Name used in your code\n          path: 'projects/your-gcp-project-id/locations/your-gcp-location/queues/email-queue', // Full path in GCP\n          // processorUrl: 'https://your-app-url.com/tasks/email', // Optional: Specific URL for this queue\n        },\n        // ... add more queue configurations\n      ],\n\n      // --- Custom Storage Adapter Configuration ---\n      storageAdapter: 'custom',\n      customStorageAdapterInstance: new CustomStorageAdapter(/* Pass constructor arguments if any */),\n\n      // --- Optional Global Settings ---\n      // lockDurationMs: 300000, // Optional: Default 5 minutes\n      // autoCreateQueues: false, // Optional: Default false\n    }),\n  ],\n  // ... controllers, providers for your application\n})\nexport class AppModule {}\n```\n\n**2. Advanced Integration (Using NestJS DI for Custom Adapter)**\n\nIf your `CustomStorageAdapter` has its own dependencies that need to be injected by NestJS (e.g., a database connection service), you should make your `CustomStorageAdapter` a NestJS provider. Then, use `CloudTaskMQModule.forRootAsync` to retrieve the adapter instance from the DI container.\n\nFirst, ensure your `CustomStorageAdapter` is an injectable provider, possibly within its own module:\n\nThen, integrate it using `CloudTaskMQModule.forRootAsync`:\n\n```typescript\n// src/app.module.ts (or your main application module)\n\nimport { Module } from '@nestjs/common';\nimport { CloudTaskMQModule } from 'nestjs-cloud-taskmq';\nimport { CustomStorageAdapter } from './custom-storage/custom-storage.adapter';\n// import { ConfigModule, ConfigService } from '@nestjs/config'; // Example for config-based setup\n\n@Module({\n  imports: [\n    // ConfigModule.forRoot({ isGlobal: true }), // Example\n    CloudTaskMQModule.forRootAsync({\n      imports: [CustomStorageModule /*, ConfigModule */], // Make CustomStorageAdapter and other services like ConfigService available\n      useFactory: async (customAdapter: CustomStorageAdapter /*, configService: ConfigService */) => {\n        // The customAdapter instance is managed by NestJS DI.\n        // Its initialize() method will be called by CloudTaskMQModule.\n        return {\n          // projectId: configService.get('GCP_PROJECT_ID'), // Example: from ConfigService\n          // location: configService.get('GCP_LOCATION'),     // Example: from ConfigService\n          projectId: 'your-gcp-project-id',\n          location: 'your-gcp-location',\n          queues: [/* queue config */],\n\n          storageAdapter: 'custom',\n          customStorageAdapterInstance: customAdapter,\n\n          // ... other global configurations\n        };\n      },\n      inject: [CustomStorageAdapter /*, ConfigService */], // Inject your custom adapter and other dependencies for the factory\n    }),\n  ],\n  providers: [CustomStorageAdapter /*, ConfigService */], // Make CustomStorageAdapter and other services like ConfigService available\n})\nexport class AppModule {}\n```\n\nRemember to replace placeholder values like `'your-gcp-project-id'`, paths, and service names with your actual configuration.\n\n## Rate Limiting\n\nCloudTaskMQ provides persistent rate limiting for controlling task processing throughput. Rate limits persist across application restarts using the configured storage adapter.\n\n### 1. Queue-Level Rate Limiting\n\nDefine rate limiters in the queue configuration:\n\n```typescript\nCloudTaskMQModule.forRoot({\n  // other config...\n  queues: [\n    {\n      name: 'email-queue',\n      path: 'projects/my-gcp-project/locations/us-central1/queues/email-queue',\n      rateLimiterOptions: [\n        {\n          limiterKey: 'email-queue-default', // Default limiter for this queue\n          tokens: 100, // Allow 100 operations\n          timeMS: 60000, // Per minute (60000ms)\n        }\n      ],\n    },\n  ],\n})\n```\n\n### 2. Dynamic Rate Limiters\n\nCreate and use rate limiters at runtime:\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { RateLimiterService, ProducerService } from 'nestjs-cloud-taskmq';\n\n@Injectable()\nexport class NotificationService {\n  constructor(\n    private readonly producerService: ProducerService,\n    private readonly rateLimiterService: RateLimiterService\n  ) {\n    // Set up rate limiters during service initialization\n    this.setupRateLimiters();\n  }\n\n  private async setupRateLimiters() {\n    // Register a rate limiter for a specific user\n    await this.rateLimiterService.registerDynamicLimiter({\n      limiterKey: 'user-123-notifications',\n      tokens: 10, // Allow 10 notifications\n      timeMS: 3600000, // Per hour (3600000ms)\n    });\n  }\n\n  async sendNotification(userId: string, message: string) {\n    // Use the rate limiter when adding a task\n    await this.producerService.addTask('notification-queue', {\n      userId,\n      message,\n    }, {\n      rateLimiterKey: `user-${userId}-notifications`,\n    });\n  }\n\n  async cleanup(userId: string) {\n    // Remove a dynamic rate limiter when no longer needed\n    await this.rateLimiterService.unregisterDynamicLimiter(`user-${userId}-notifications`);\n  }\n}\n```\n\n## Task Retries\n\nConfigure automatic retries for failed tasks:\n\n```typescript\n// When adding a task\nawait producerService.addTask('some-queue', payload, {\n  maxRetry: 5, // Retry up to 5 times\n});\n\n// Or in the processor\n@CloudTaskProcessor({\n  queue: 'some-queue',\n  maxRetry: 3, // Default max retries for all tasks in this processor\n})\nexport class SomeProcessor {\n}\n```\n\n## Queue Auto-Creation\n\nEnable automatic creation of queues that don't exist in GCP:\n\n```typescript\nCloudTaskMQModule.forRoot({\n  // other config...\n  autoCreateQueues: true, // Will create any queues that don't exist in GCP\n  queues: [/* queue config */],\n})\n```\n\n## Task Chaining\n\nCloudTaskMQ supports sequential task execution through the task chaining feature. Tasks in a chain are executed one at a time in the specified order, ensuring proper sequence and data flow between related tasks.\n\n### Basic Chaining\n\nTo create a chain of tasks, use the `chainOptions` parameter when adding tasks:\n\n```typescript\nimport { ProducerService } from 'nestjs-cloud-taskmq';\n\n@Injectable()\nexport class OrderService {\n  constructor(private readonly producerService: ProducerService) {}\n\n  async processOrderWorkflow(orderId: string): Promise<void> {\n    const chainId = `order-${orderId}`;\n\n    // Step 1: Validate payment\n    await this.producerService.addTask('payment-queue', \n      { orderId, action: 'validate' },\n      { chainOptions: { chainId, chainOrder: 1 } }\n    );\n\n    // Step 2: Process inventory\n    await this.producerService.addTask('inventory-queue',\n      { orderId, action: 'reserve' },\n      { chainOptions: { chainId, chainOrder: 2 } }\n    );\n\n    // Step 3: Send confirmation email\n    await this.producerService.addTask('email-queue',\n      { orderId, action: 'send-confirmation' },\n      { chainOptions: { chainId, chainOrder: 3 } }\n    );\n  }\n}\n```\n\n### Chain Execution Flow\n\n1. **Task Creation**: All chain tasks start with `IDLE` status regardless of chain state\n2. **Polling Discovery**: The polling mechanism discovers `IDLE` tasks and filters them for chain eligibility\n3. **Chain Filtering**: Only one task per chain can be `ACTIVE` at a time; the system selects the next task based on `chainOrder`\n4. **Task Execution**: The selected task is sent to GCP Cloud Tasks and marked as `ACTIVE`\n5. **Chain Progression**: When a task completes or fails, the next task in the chain is automatically activated\n\n### Chain Management\n\nYou can monitor and manage chains using the producer service:\n\n```typescript\n@Injectable()\nexport class OrderService {\n  constructor(private readonly producerService: ProducerService) {}\n\n  async getChainStatus(chainId: string): Promise<ITask[]> {\n    // Get all tasks in a chain\n    return await this.producerService.getChainTasks(chainId);\n  }\n\n  async getActiveChainTasks(chainId: string): Promise<ITask[]> {\n    // Get only active tasks in a chain\n    return await this.producerService.getChainTasks(chainId, TaskStatus.ACTIVE);\n  }\n}\n```\n\n### Chain Task Processing\n\nChain tasks are processed the same way as regular tasks. The chaining logic is handled automatically:\n\n```typescript\n@Consumer('payment-queue')\nexport class PaymentProcessor {\n  @Process()\n  async processPayment(task: CloudTask<{ orderId: string; action: string }>): Promise<any> {\n    const { orderId, action } = task.data;\n    \n    if (action === 'validate') {\n      // Validate payment logic\n      const isValid = await this.validatePayment(orderId);\n      \n      if (!isValid) {\n        throw new Error('Payment validation failed');\n      }\n      \n      return { status: 'validated', orderId };\n    }\n  }\n\n  @OnTaskCompleted()\n  onCompleted(task: CloudTask, result: any): void {\n    console.log(`Payment task completed for order ${task.data.orderId}`);\n    // Next task in chain will be automatically activated\n  }\n\n  @OnTaskFailed()\n  onFailed(task: CloudTask, error: Error): void {\n    console.log(`Payment task failed for order ${task.data.orderId}:`, error.message);\n    // Next task in chain will still be activated\n  }\n}\n```\n\n### Chain Behavior with Rate Limiting\n\nWhen a chain task is rate-limited, it gets special handling:\n\n- **Rate-limited chain tasks** with `scheduleTime` are sent directly to GCP, bypassing normal chain ordering\n- This ensures rate-limited retries work correctly without getting stuck\n- A warning is logged when `chainOptions` and `scheduleTime` are combined\n\n⚠️ **Important**: Combining `chainOptions` with `scheduleTime` breaks the sequential execution guarantee and should only be used for rate-limited retries.\n\n### Best Practices\n\n1. **Unique Chain IDs**: Use meaningful, unique identifiers for chains (e.g., `order-${orderId}`, `user-onboarding-${userId}`)\n\n2. **Sequential Order Numbers**: Use incremental integers for `chainOrder` (1, 2, 3, etc.)\n\n3. **Error Handling**: Design your chain to handle failures gracefully:\n   ```typescript\n   @OnTaskFailed()\n   onFailed(task: CloudTask, error: Error): void {\n     if (task.chainId) {\n       // Log chain failure\n       console.log(`Chain ${task.chainId} failed at step ${task.chainOrder}`);\n       \n       // Next task will still be processed - implement your retry logic\n       if (this.shouldRetryChain(error)) {\n         // Custom retry logic\n       }\n     }\n   }\n   ```\n\n4. **Chain Monitoring**: Implement monitoring for long-running chains:\n   ```typescript\n   async monitorChainProgress(chainId: string): Promise<void> {\n     const tasks = await this.producerService.getChainTasks(chainId);\n     const completed = tasks.filter(t => t.status === TaskStatus.COMPLETED).length;\n     const total = tasks.length;\n     \n     console.log(`Chain ${chainId} progress: ${completed}/${total}`);\n   }\n   ```\n\n### Error Handling\n\nCloudTaskMQ integrates with Cloud Tasks' retry mechanism. When a task throws an error:\n\n1. The task is marked as FAILED in the storage\n2. The @OnTaskFailed handler is called (if defined)\n3. The error is logged\n4. Cloud Tasks will handle retries according to your queue's retry configuration\n\n```typescript\n@Process()\nasync processTask(task: CloudTask): Promise<any> {\n  try {\n    // Your processing logic\n    return result;\n  } catch (error) {\n    // You can add custom error handling here\n    console.error('Custom error handling:', error);\n    \n    // Then rethrow to let CloudTaskMQ handle the failure\n    throw error;\n  }\n}\n```\n\n## Google Cloud Tasks Setup\n\nTo use this library, you need to:\n\n1. Create a Google Cloud project\n2. Enable the Cloud Tasks API\n3. Create queues in the GCP console or via gcloud\n4. Configure a service account with appropriate permissions\n5. Ensure your application has network connectivity to your storage (MongoDB/Redis)\n\nExample gcloud command to create a queue:\n\n```bash\ngcloud tasks queues create email-queue \\\n  --location=us-central1 \\\n  --max-concurrent-dispatches=10 \\\n  --max-attempts=5 \\\n  --min-backoff=5s\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Configuration Reference\n\n### CloudTaskMQConfig\n\n| Property | Type | Description |\n|----------|------|-------------|\n| projectId | string | GCP project ID |\n| location | string | GCP location (e.g., 'us-central1') |\n| defaultProcessorUrl | string | URL where Cloud Tasks will send task requests |\n| queues | QueueConfig[] | Array of queue configurations |\n| storageAdapter | string | Storage adapter to use ('mongo' or 'redis') |\n| storageOptions | object | Options specific to the chosen storage adapter |\n| lockDurationMs | number | How long to lock tasks when processing (default: 60000ms) |\n\n### QueueConfig\n\n| Property | Type | Description |\n|----------|------|-------------|\n| name | string | Name of the queue (used in code references) |\n| path | string | Full path to the queue in GCP |\n| serviceAccountEmail | string | Service account email for OIDC token generation |\n| processorUrl | string | Optional custom URL for this specific queue |\n\n### Environment Variables\n\nCloudTaskMQ supports several environment variables for advanced configuration:\n\n| Variable | Description | Default | Use Case |\n|----------|-------------|---------|----------|\n| `CTMQ_IS_CHILD_INSTANCE` | Set to `'true'` to disable task polling/pulling in microservice instances | `false` | Useful in monorepos with microservice architecture where you want to prevent specific services from pulling tasks to avoid duplicity |\n\n#### CTMQ_IS_CHILD_INSTANCE Usage\n\nIn monorepo architectures with multiple microservices, you might want to designate certain instances as \"child\" instances that don't pull tasks from the queue to avoid duplicate processing:\n\n```typescript\n// In your microservice that should NOT pull tasks\nprocess.env.CTMQ_IS_CHILD_INSTANCE = 'true';\n\n// Or set it in your deployment environment\n// Docker: ENV CTMQ_IS_CHILD_INSTANCE=true\n// Kubernetes: - name: CTMQ_IS_CHILD_INSTANCE value: \"true\"\n```\n\n**Example Scenario:**\n- **Gateway Service**: Processes all tasks (`CTMQ_IS_CHILD_INSTANCE=false` or not set)\n- **Auth Service**: Only produces tasks, doesn't process them (`CTMQ_IS_CHILD_INSTANCE=true`)  \n- **Notification Service**: Only produces tasks, doesn't process them (`CTMQ_IS_CHILD_INSTANCE=true`)\n\nThis prevents multiple services from competing for the same tasks and ensures centralized task processing.\n\n## Advanced Usage\n\n### Task Progress Tracking\n\n```typescript\n@Processor('video-queue')\nexport class VideoProcessor {\n  @Process()\n  async processVideo(task: CloudTask<VideoTaskData>): Promise<any> {\n    // Report progress at various stages\n    await task.reportProgress(10); // Starting\n    \n    // Process video...\n    await task.reportProgress(50); // Half-way\n    \n    // Finish processing...\n    await task.reportProgress(100); // Complete\n    \n    return { videoUrl: 'https://example.com/processed-video.mp4' };\n  }\n  \n  @OnTaskProgress()\n  onProgress(task: CloudTask, progress: number): void {\n    console.log(`Video task ${task.taskId} is ${progress}% complete`);\n    // You could update a real-time dashboard here\n  }\n}\n```\n\n### Error Handling\n\nCloudTaskMQ integrates with Cloud Tasks' retry mechanism. When a task throws an error:\n\n1. The task is marked as FAILED in the storage\n2. The @OnTaskFailed handler is called (if defined)\n3. The error is logged\n4. Cloud Tasks will handle retries according to your queue's retry configuration\n\n```typescript\n@Process()\nasync processTask(task: CloudTask): Promise<any> {\n  try {\n    // Your processing logic\n    return result;\n  } catch (error) {\n    // You can add custom error handling here\n    console.error('Custom error handling:', error);\n    \n    // Then rethrow to let CloudTaskMQ handle the failure\n    throw error;\n  }\n}\n","readmeFilename":"README.md"}