{"_id":"@bitspacerlabs/rabbit-relay","_rev":"21-7c8c443f525a05e699c9f1e874c34192","name":"@bitspacerlabs/rabbit-relay","dist-tags":{"latest":"1.6.0"},"versions":{"0.5.0":{"name":"@bitspacerlabs/rabbit-relay","version":"0.5.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.5.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"dcec7008114dda0e6da2d922318c9a515e40c650","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.5.0.tgz","fileCount":31,"integrity":"sha512-gip9CetI4TCvw3vQG7thgpQuZ0jFLHA0VAx1fayjR2HnS7g3xI6pHqSsYPgp5SVzYLYQISraBbXiJG1aCEWhPw==","signatures":[{"sig":"MEUCIQCaCSWCWJr//ilqDeHb8CuBrqIdiT3NLjPj9V2yVomiLwIgQG2q6CgDCK2wP472JS3V0coTVKjppLcBPOMbgYT9Gn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87036},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"8fd15458e19ae7ef0d88f968abb16121f48cdebb","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.6.2","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"uuid":"^11.1.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.5.0_1769044062662_0.4454849272066297","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@bitspacerlabs/rabbit-relay","version":"0.5.1","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.5.1","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"45e0bf1b5041c37b18007848f8cce96497f934f1","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.5.1.tgz","fileCount":31,"integrity":"sha512-MAYjBsmI8ooyw6jBUG6Q8yTWkA5J8I9JeR1XwgCKz6B/vbiTEWCCiFCQgHQN9x1zIXsOxNtYCVlEQFA7CuBrdg==","signatures":[{"sig":"MEYCIQCvsfWsypENFCMOzj1rKIc/QwPW0vW7UYIAnHuwVHcYkQIhAICz8TUQfzT/F/G6alWoPsrdxyPw3pB7/6V+/aiuwbHx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87036},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"8fd15458e19ae7ef0d88f968abb16121f48cdebb","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.6.2","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"uuid":"^11.1.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.5.1_1769044371156_0.8077346844076909","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@bitspacerlabs/rabbit-relay","version":"0.5.2","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.5.2","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"5c42a14358a6cdc22d0d243e04e31ad00a411308","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.5.2.tgz","fileCount":31,"integrity":"sha512-9n0qFn+bnCjyX01IXv45ai1Zqh+FYlWU7mmxWaTJWfCb+uyoRD61hUXs5z9vPpIktfUoE8OwnU7Lf3moadMYIA==","signatures":[{"sig":"MEUCIQCGXCyJPY/JdaZ1yWtOk4pdBzW0wJDZaui6uPTxuIsTpQIgbEx/a4QGhyCxgcAjGj5dHWxQozxMW9V50+VG1VFSNFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87068},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"4d5b89fd41a1e42673a3d7b69bdcecc6a80c271d","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.6.2","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"uuid":"^11.1.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.5.2_1769045545079_0.8545538755788564","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bitspacerlabs/rabbit-relay","version":"0.6.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.6.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"bd001788f5684d7489889af69f1716b08804fa5a","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.6.0.tgz","fileCount":65,"integrity":"sha512-DBDGH/VLe3OzLmaxx06p41Dahp4V9pogqvXClQbRkIaYw2Drs/jFo+uDl1WVSOvGKg/PZZnQuAWyz6V+RK43SA==","signatures":[{"sig":"MEUCIQD4jMKHvq74LlByMUlGTOeGtvLWhKFgb4XIC9sueUqFHwIgGLkpfDPe55pAcqhTDzEmTs5WC+U5UC1o21mAkMldy7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110242},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"0e8fe20698103e80df6f3a69367de1ddf0139d12","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.6.2","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"uuid":"^11.1.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.6.0_1770388630506_0.646213032972567","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@bitspacerlabs/rabbit-relay","version":"0.6.1","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.6.1","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"64a92a1108dedf587ea25ae7c4025659ec4238df","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.6.1.tgz","fileCount":65,"integrity":"sha512-W+r2Fed8FuukDCC7ksjrsdsL8iboEGhWJHyMGs0H9Sl2ZzWFzTqvabFdKGpasYDAQMZnDJIlOzJM30cb3A+J8w==","signatures":[{"sig":"MEYCIQCfyW9dyr9FxUKnKtSbw5hXdFfPOvp8aj1k8dQo6bHRLwIhAJSyxUa06thOeRk0XzuF33TZWS/Csj8M0SPet+WmfVfe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110240},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"458d33a5c0d4e007451eeae93693cbf6f2e9beee","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.6.2","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"uuid":"^11.1.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.6.1_1770480200887_0.6988636598319964","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bitspacerlabs/rabbit-relay","version":"0.7.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.7.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"7c657b2713e24f5828e9e63d1d54527b9e40c4da","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.7.0.tgz","fileCount":64,"integrity":"sha512-32mPlIuAxnj39qZZygyoygngWdNFGfRP/pQVch3R90XUYWEYY4i+xVQpQvavdSYVXBij5CpClO8vDH70oD5v6w==","signatures":[{"sig":"MEUCIBMPyWfqc7BAZbKm7q1ZddRwmSqgJFW8we9BfhyavpQfAiEA8uPA9C0a/s7DSZREcXYwOVtsB/y4dLtcaU7T11FuxXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156499},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"d7612b02b533872bdbf103da3f1869d137601579","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"10.9.4","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"uuid":"^14.0.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.7.0_1778258675747_0.31931077196999724","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@bitspacerlabs/rabbit-relay","version":"0.8.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.8.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"d157b791dcaef8eb23bebe3321da641749b2d6ef","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.8.0.tgz","fileCount":68,"integrity":"sha512-u+fLi2NgYwWf79c/SDSRNOFNO5Mfls3hkBB98OioZHWI2xq2jNUB73qWxAdc6m0PHDlmfY6C6MKhtB6vW2a5Hg==","signatures":[{"sig":"MEYCIQDteBzwM//I3vxizkSGxCPE0bWlQZDxloTVKylRTGRKnwIhALqQxTYlBW87PrVUFpuok0J0m2wwog6yqThwlgqiXLhE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176731},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"ff8b4b0e51195d98b751d3edbab8ae91aa271c79","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"10.9.4","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"uuid":"^14.0.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.8.0_1778515634055_0.053904443784009715","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@bitspacerlabs/rabbit-relay","version":"0.9.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@0.9.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"1c64ddd28157c49d10cff1cfc5c438f7472fe072","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-0.9.0.tgz","fileCount":89,"integrity":"sha512-KM4PNqgPz3gaB9J7zPE3ZjBjbFrzM6UCjcHmhtJ4GLPJn6tTw5J08GET55uk8l23otLlEuCYVYADAp3kZzPsxw==","signatures":[{"sig":"MEYCIQC8xhgMvMXRz6nPob8Bh1MZ2bnWk2iaHIyD2bvYapTOIAIhANnK7DBs/Vvri07+IoqYaEr595oxFL8j3bWL3/6WXRhx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269432},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"}},"gitHead":"3f90dc12de8011761eb7ad927195bbf4f78c8d1f","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"10.9.4","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"uuid":"^14.0.0","amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_0.9.0_1778881331450_0.3207270569316405","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.1":{"name":"@bitspacerlabs/rabbit-relay","version":"1.0.0-rc.1","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.0.0-rc.1","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"b207faaa9747e76bf7452558495e208b1dcdb1a0","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.0.0-rc.1.tgz","fileCount":93,"integrity":"sha512-ts4/SBmi9rxQgolF1wfL8FvzTc5CDX5T8D3JVIDv8XyJj/mqyPdLlOoPyLrbrW9vkzC6bhB9B9uLpzX8/rpxRA==","signatures":[{"sig":"MEQCIDriaT7xuk24Hs/Z+0pNLOC6AfK/mGrKKvVZQFJQ8cTEAiBR/3XMtPhDEeVZdqosg82YcEcWhs+U/i/3iCI8EK/PGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6081768},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"1637913e0cfb73834482ad5baad0021fe825f5a9","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"10.9.4","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.0.0-rc.1_1782339619050_0.2810453609227843","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.0.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.0.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"81d5d60c57fbb0cb58367d711a94773d3418428c","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.0.0.tgz","fileCount":93,"integrity":"sha512-UEmyQWOO/wbg6+0aSwtjHFPVcMvEcgHOQJh9tRHrB1TrFtNm2XvJCi03qN5ZqMaKWZCkyRfIBYQ6zRjcePE3IQ==","signatures":[{"sig":"MEUCICJLikA8YGVI1qvXeS/tlrZfiiOinlj9BPwN0OseBd40AiEApP8gZwvtUGBRRacJ0KTi/Rn4rs0eL7oXOL7L5+t3rMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6083930},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"2a9be6935b06411d1cf2494e64b9918b659be793","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"deprecated":"This version accidentally included large image assets. Please upgrade to 1.0.1.","repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"10.9.4","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.0.0_1782364647418_0.9072081663709752","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bitspacerlabs/rabbit-relay","version":"1.0.1","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","events","messaging"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.0.1","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://github.com/bitspacerlabs/rabbit-relay#readme","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"3d4266e072486053b4acc40c2099d7f3db74b85b","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.0.1.tgz","fileCount":161,"integrity":"sha512-CFfUvFG2W8QGWNjGP/HdG/dXV+50F5hAQTFDQZZ0yqaCdWkk6ILclLhhpny0ii50M7HGdxhPF1ghEfOz87UCvA==","signatures":[{"sig":"MEQCIFU6OTa+gNEkMQjIrqlrhavUpjyLT7VCl3T65WaEZf0DAiBsCxnkj3tTCPwIRW632XrazKN7I3YRtXMhMTx+Fp14LA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503103},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"fc0e1f1f023b97b718a69ee0fa6c886762cf03ad","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"10.9.4","description":"A RabbitMQ-based event framework","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.0.1_1782505586962_0.2468139330805088","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.1.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.1.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"26ab7462731937455bdd782e605ccdef4364938d","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.1.0.tgz","fileCount":90,"integrity":"sha512-KBcE+V5ptpTcn3V+F2OvvM6TyBhWZ9iLzNR2LWcre7yasJLWFUsrUr9KIXWIzXYWzpsk2lx9VKrGYjpMpWGcww==","signatures":[{"sig":"MEUCIQDLckZex0Gg19p+DyoaIyL2fOikR1Z3WxFaSS17adYBuQIgSSrvCpb79bD+XQnlXu+EpG4N8qSlyqehj34vV3o37xM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308588},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"6bc7ee7abb7ef748050b5b42d3cd72d53304b63b","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","ts-node-dev":"^2.0.0","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.1.0_1785290050900_0.3439601569136719","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bitspacerlabs/rabbit-relay","version":"1.1.1","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.1.1","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"dist":{"shasum":"3a10bec123dc7015d4844623be7f8890400d7af8","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.1.1.tgz","fileCount":90,"integrity":"sha512-t29/f/zVLHP6RT/2n2nAaTEf/UOhY1WWFuuijiXOo2EIhX7+hE56FgETfD7ff7t1qjS/RAEfqQtQX/9wYst7tQ==","signatures":[{"sig":"MEUCIQCs8MPmdep02diSCiX6zjppGGNYZMT4dVivrqO18uOz9QIgX2aErbyyarweKT6BEiuuwvs9KFqo+2Q2HKub5GfTX4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308948},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"46ada766a2eb32f59873da315e76fc6d468b7815","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.1.1_1785335722300_0.20310664653735122","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.2.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.2.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"bin":{"rabbit-relay":"bin/rabbit-relay.mjs"},"dist":{"shasum":"653397bde12e6167efe411aa58250475e1fc13fd","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.2.0.tgz","fileCount":91,"integrity":"sha512-rJdq0KAu6r8IQnKFyrPB/WX2hG0O8Wi9v+z5Yw4w7l53kglWubX7jcaz/kkpZs4caWrVk4z2Q40hIM4i5HRtlA==","signatures":[{"sig":"MEQCIHfGyeGKmYTqYWz1Gn2+TEcai2lnZ+x+NKeQXgUPs33pAiBF3QXPp8yxBohFfHE6urNzE0/Dp5G4Y01d5T00edRPcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350362},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":"./bin/rabbit-relay.mjs","./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"796c89ef63820cb3f3da53722f021caa33ca6209","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:real-usage":"bash scripts/test-real-usage.sh","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.2.0_1785415462128_0.677518828621718","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@bitspacerlabs/rabbit-relay","version":"1.2.1","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.2.1","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"bin":{"rabbit-relay":"bin/rabbit-relay.mjs"},"dist":{"shasum":"7c79409bb068399b9a8d13c5e30651c180ca05ad","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.2.1.tgz","fileCount":91,"integrity":"sha512-bH5VfyZcR1rBfNGLZqQzip7ANIkJhPjeITbObAKJU2kIvptiZSQpMauiYGT330D06LOD9cxB/NgWvOvpG5V+qw==","signatures":[{"sig":"MEUCIG1/WIgUrLmyRIaah3bQqZcoxLvr9H8m9jUeR0AsScshAiEA21j4/A4Trnc/Fb1376fXtv0zsK++0KxGB/8WnBvDHRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353485},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":"./bin/rabbit-relay.mjs","./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"de4a10814c8f1b22755651bf7e1e4fc44316e9e4","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:real-usage":"bash scripts/test-real-usage.sh","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.2.1_1787320973509_0.859048127201016","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.3.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.3.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"bin":{"rabbit-relay":"bin/rabbit-relay.mjs"},"dist":{"shasum":"b6e0f4f19f25f92970f42c323679e9d11bf5fe20","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.3.0.tgz","fileCount":91,"integrity":"sha512-/oTOkYnPn2FP/X5WwnBRbbqe33OQX/r6G0lO0Ww1bdodkR9APpVJqZqM9IqSbefV4Ul3nCtkzTFz6dUbTtU2DQ==","signatures":[{"sig":"MEQCIEwnlqhADzEOby32UW2WeVy/EVjpbLEqn/0XaFqczgqsAiBo1IXRfTdBWpSIwVcbNqYIfZhn3qtyQ2Dsl+f6aHOe5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361851},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":"./bin/rabbit-relay.mjs","./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"ebeca7841499fc13870c54ae9c3fbe4eaa2e2ca9","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:real-usage":"bash scripts/test-real-usage.sh","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.3.0_1787376573897_0.7170078936843982","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.4.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.4.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"bin":{"rabbit-relay":"bin/rabbit-relay.mjs"},"dist":{"shasum":"3f509e4283b957137df87140ad8a4c9642cbeffe","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.4.0.tgz","fileCount":91,"integrity":"sha512-/OmMTlgtSsxp6VREFq5OyIPkH54DyyARPc3YMKY39AeT5tP05lF7UkLWaNxJifrJI7tey0y/wA7g+zv6IS5D2A==","signatures":[{"sig":"MEQCIAtvEa/aTfx1EnlRunEZ84oib/77ZzWRhYccMzHA3b4jAiB8K9kgO10YFox+G5Q0sCftisI/rO3eraSlpnE452NrOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367917},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":"./bin/rabbit-relay.mjs","./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"a4263c39b76d9c522747d4e823f1dea4b42858ef","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:real-usage":"bash scripts/test-real-usage.sh","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.4.0_1787497706122_0.24388960049315456","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.5.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.5.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"bin":{"rabbit-relay":"bin/rabbit-relay.mjs"},"dist":{"shasum":"e068fd8b091cb6a1fa7f33f3a4e491ffddccd59c","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.5.0.tgz","fileCount":91,"integrity":"sha512-xDlDY7R7tp++CnFXM0ajPBaIIiTviDxyEZSkGAr3+kegg0eoRIAYIakbUOJZS8fe+dkg7LQyOVhSkZGs+5SKPA==","signatures":[{"sig":"MEQCIASuIQf8C0GdrNDxTqnS6Xd4+CmeIP80+uriXE1lb9bUAiBsPnIWoQD+DEMF+N7twIFq7lvnoqgKnPM3pXWGcZRniQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380436},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":"./bin/rabbit-relay.mjs","./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"bdf3f7dc4ba394cc0f1190b026c7f62ef07910e7","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"vitepress dev docs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:real-usage":"bash scripts/test-real-usage.sh","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitepress":"^2.0.0-alpha.12","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.5.0_1787578608301_0.17231593247214705","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@bitspacerlabs/rabbit-relay","version":"1.6.0","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"author":{"name":"BitSpacer Labs"},"license":"MIT","_id":"@bitspacerlabs/rabbit-relay@1.6.0","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"bin":{"rabbit-relay":"bin/rabbit-relay.mjs"},"dist":{"shasum":"18ef961bcb05ec2a6537ae6e06076d3327efe553","tarball":"https://registry.npmjs.org/@bitspacerlabs/rabbit-relay/-/rabbit-relay-1.6.0.tgz","fileCount":91,"integrity":"sha512-pkRRv31jFwZgopcd08UIzVaiWKVWlrtbVbtb6M595ZTHkSlVNsToNi3FoPZEuKfC+KMOlg+tzYbFcgkiO0BELQ==","signatures":[{"sig":"MEUCIDdHUp0sAHJBD4xXXvFtRtktyPYHUGHCMsFRF34HYA//AiEAw2KqDCRsn2y9aN+WSoMiThzc6wixHVUaKpSH8Ku3vqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389145},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":"./bin/rabbit-relay.mjs","./dedupe":{"types":"./dist/cjs/utils/dedupe.d.ts","import":"./dist/esm/utils/dedupe.js","require":"./dist/cjs/utils/dedupe.js"},"./package.json":"./package.json"},"gitHead":"957178a57bdc20222a046ee2d51af8b91b8deabd","scripts":{"build":"npm run build:cjs && npm run build:esm","docs:dev":"cd website && npm run dev","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json && node scripts/write-esm-package.cjs","test:unit":"npm run build && node --test test/unit/*.test.cjs","docs:build":"cd website && npm run build","docs:preview":"cd website && npm run start","test:package":"bash scripts/test-package-usage.sh","prepublishOnly":"npm run build","test:real-usage":"bash scripts/test-real-usage.sh","test:integration":"npm run build && node --test --test-concurrency=1 test/integration/*.integration.cjs"},"_npmUser":{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"_npmVersion":"11.17.0","description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"amqplib":"^0.10.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.8.3","@types/amqplib":"^0.10.8"},"_npmOperationalInternal":{"tmp":"tmp/rabbit-relay_1.6.0_1787861294956_0.7773450692479775","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-22T01:07:42.563Z","modified":"2026-08-27T20:12:40.801Z","0.5.0":"2026-01-22T01:07:42.861Z","0.5.1":"2026-01-22T01:12:51.305Z","0.5.2":"2026-01-22T01:32:25.226Z","0.6.0":"2026-02-06T14:37:10.655Z","0.6.1":"2026-02-07T16:03:21.064Z","0.7.0":"2026-05-08T16:44:35.887Z","0.8.0":"2026-05-11T16:07:14.290Z","0.9.0":"2026-05-15T21:42:11.624Z","1.0.0-rc.1":"2026-06-24T22:20:19.272Z","1.0.0":"2026-06-25T05:17:27.642Z","1.0.1":"2026-06-26T20:26:27.149Z","1.1.0":"2026-07-29T01:54:11.065Z","1.1.1":"2026-07-29T14:35:22.454Z","1.2.0":"2026-07-30T12:44:22.294Z","1.2.1":"2026-08-21T14:02:53.651Z","1.3.0":"2026-08-22T05:29:34.073Z","1.4.0":"2026-08-23T15:08:26.340Z","1.5.0":"2026-08-24T13:36:48.446Z","1.6.0":"2026-08-27T20:08:15.109Z"},"bugs":{"url":"https://github.com/bitspacerlabs/rabbit-relay/issues"},"author":{"name":"BitSpacer Labs"},"license":"MIT","homepage":"https://bitspacerlabs.github.io/rabbit-relay/docs/","keywords":["rabbitmq","rabbit-relay","amqplib","amqp","typescript","events","event-driven","messaging","message-queue","microservices","pubsub","publisher-confirms","retry","dead-letter-queue","rpc"],"repository":{"url":"git+https://github.com/bitspacerlabs/rabbit-relay.git","type":"git"},"description":"Type-safe RabbitMQ framework for Node.js with reliable publishing, retries, DLQs, RPC, and explicit topology","maintainers":[{"name":"sohaibqasem","email":"sohaib_alqasem@yahoo.com"}],"readme":"<!--\nNOTE:\n- Package: @bitspacerlabs/rabbit-relay\n- Repo: https://github.com/bitspacerlabs/rabbit-relay\n-->\n\n<p align=\"center\">\n  <img src=\"assets/rabbit-relay.svg\" alt=\"Rabbit Relay\" width=\"220\" />\n</p>\n\n<h1 align=\"center\">Rabbit Relay</h1>\n\n<p align=\"center\">\n  A <strong>TypeScript-first RabbitMQ framework</strong> for building reliable publishers and consumers without hiding RabbitMQ.\n</p>\n\n<p align=\"center\">\n  Typed events · Publisher confirms · Retries and DLQs · RPC · Recovery · Graceful shutdown · OpenTelemetry\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.rabbitmq.com/client-libraries/devtools\">\n    <strong>Listed in the official RabbitMQ JavaScript and Node ecosystem</strong>\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/bitspacerlabs/rabbit-relay/actions/workflows/ci.yml\">\n    <img alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/bitspacerlabs/rabbit-relay/ci.yml?branch=main&label=CI\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@bitspacerlabs/rabbit-relay\">\n    <img alt=\"npm version\" src=\"https://img.shields.io/npm/v/@bitspacerlabs/rabbit-relay\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@bitspacerlabs/rabbit-relay\">\n    <img alt=\"npm downloads\" src=\"https://img.shields.io/npm/dm/@bitspacerlabs/rabbit-relay\">\n  </a>\n  <a href=\"https://github.com/bitspacerlabs/rabbit-relay/stargazers\">\n    <img alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/bitspacerlabs/rabbit-relay?style=flat\">\n  </a>\n  <a href=\"LICENSE\">\n    <img alt=\"license\" src=\"https://img.shields.io/github/license/bitspacerlabs/rabbit-relay\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://bitspacerlabs.github.io/rabbit-relay/docs/\">Documentation</a>\n  ·\n  <a href=\"https://github.com/bitspacerlabs/rabbit-relay/tree/main/examples\">Examples</a>\n  ·\n  <a href=\"https://github.com/bitspacerlabs/rabbit-relay/issues\">Issues</a>\n  ·\n  <a href=\"https://github.com/bitspacerlabs/rabbit-relay/discussions\">Discussions</a>\n</p>\n\n```bash\nnpm install @bitspacerlabs/rabbit-relay\n```\n\n```ts\nimport { RabbitMQBroker, event } from \"@bitspacerlabs/rabbit-relay\";\n\nconst broker = new RabbitMQBroker(\"orders-service\", {\n  publisherConfirms: true,\n});\n\nconst orderCreated = event(\"orderCreated\", \"v1\").of<{\n  orderId: string;\n  total: number;\n}>();\n\nconst orders = await broker\n  .queue(\"orders.created.q\")\n  .exchange(\"orders.events\", {\n    exchangeType: \"topic\",\n    routingKey: \"order.created\",\n  });\n\nconst api = orders.with({ orderCreated });\n\napi.handle(\"orderCreated\", async (_messageId, message) => {\n  console.log(\"Processing order\", message.data.orderId);\n});\n\nawait api.consume({ prefetch: 20, concurrency: 5 });\nawait api.orderCreated({ orderId: \"O-42\", total: 99.5 });\n```\n\n> Rabbit Relay uses **at-least-once delivery semantics**. Consumers must be idempotent because duplicates remain possible during retries, reconnects, and network failures. Read the [delivery-semantics guide](https://bitspacerlabs.github.io/rabbit-relay/docs/delivery-semantics).\n\nFor **publish-only producers** that don't consume, use `broker.exchange()` to declare just the exchange (no queue, binding, or consumer):\n\n```ts\nconst pub = await broker.exchange(\"orders.events\", {\n  exchangeType: \"topic\",\n  publisherConfirms: true,\n});\nawait pub.produce(orderCreated({ orderId: \"O-42\", total: 99.5 }));\n```\n\n## Why Rabbit Relay?\n\n[`amqplib`](https://github.com/amqp-node/amqplib) provides the essential AMQP primitives for Node.js. Production services commonly need an application layer around those primitives for recovery, typed contracts, retry policies, shutdown coordination, topology ownership, and observability.\n\nRabbit Relay provides that layer while keeping RabbitMQ concepts explicit:\n\n- **Typed and versioned events** with optional runtime validation\n- **Reliable publishing** with publisher confirms, mandatory returns, backpressure, and message-size limits\n- **Predictable consumers** with prefetch, concurrency, middleware, and deterministic acknowledgements\n- **Retries and dead-letter queues** with immediate or delayed retry strategies and DLQ redrive\n- **Connection recovery** that restores channels, topology, and consumers\n- **Graceful shutdown** that drains active handlers before closing resources\n- **RPC** with correlation IDs, reply queues, and timeouts\n- **Topology ownership modes** for application-owned, infrastructure-owned, or plan-only workflows\n- **Operational visibility** through health state, lifecycle events, and OpenTelemetry\n- **Native AMQP escape hatches** when direct `amqplib` access is needed\n\n| Need | Recommended approach |\n|---|---|\n| A few simple publishes or consumers with full low-level control | Use `amqplib` directly |\n| TypeScript-first messaging with reusable reliability conventions | Use Rabbit Relay |\n| RabbitMQ Streams workloads | Use the RabbitMQ Streams client |\n| A heavily configuration-driven enterprise messaging framework | Evaluate Rascal |\n\n> Using an AI coding agent? Give it [`llms.txt`](llms.txt) for a curated documentation map. Repository agents should begin with [`AGENTS.md`](AGENTS.md).\n\n## AI Coding Skills\n\nInstallable skills for AI coding agents that generate correct Rabbit Relay code:\n\n```bash\nnpx skills add bitspacerlabs/rabbit-relay-skills\n```\n\nIncludes skills for core API patterns, typed events, retries/DLQ, topology, RPC, and observability. Works with Claude Code, Cursor, Windsurf, GitHub Copilot, OpenCode, and Gemini CLI. See [`rabbit-relay-skills`](https://github.com/bitspacerlabs/rabbit-relay-skills) for details.\n\n## Stability\n\nRabbit Relay is **stable** on the 1.x line and follows semantic versioning. The repository includes unit tests, live RabbitMQ integration tests, and packed-package ESM, CommonJS, and TypeScript smoke tests.\n\nSee [`CHANGELOG.md`](CHANGELOG.md) for release history.\n\n## Contributing\n\nContributions are welcome. Read [`CONTRIBUTING.md`](CONTRIBUTING.md), [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md), and [`SECURITY.md`](SECURITY.md).\n\n## License\n\nMIT © BitSpacer Labs\n","readmeFilename":"README.md"}