{"_id":"@diamir/nestjs-microservice","_rev":"5-5a71443c6a884f35b3e3c7ddff529f3e","name":"@diamir/nestjs-microservice","dist-tags":{"latest":"11.0.4-beta.0"},"versions":{"11.0.0":{"name":"@diamir/nestjs-microservice","version":"11.0.0","keywords":[],"author":{"name":"Backend","email":"backend@diamir.io"},"license":"ISC","_id":"@diamir/nestjs-microservice@11.0.0","maintainers":[{"name":"ws-admin","email":"backend@webundsoehne.com"},{"name":"dabls","email":"stephan.schmid@diamir.io"}],"homepage":"https://github.com/tailoredmedia/backend-nx-skeleton#readme","bugs":{"url":"https://github.com/tailoredmedia/backend-nx-skeleton/issues"},"dist":{"shasum":"e7acc83ef51bc64adbeef23f6beb29aa652c5a69","tarball":"https://registry.npmjs.org/@diamir/nestjs-microservice/-/nestjs-microservice-11.0.0.tgz","fileCount":17,"integrity":"sha512-IXryNji1pNC28z7oQBobH8p1rkv42bbAg23FSKF5quhvtv0jCfBIsMKVhBCuqI8KCSNru/QWP143Hczl1bN1lA==","signatures":[{"sig":"MEYCIQD8vDVT2EslMQ4N2q/t917//CzZLoHkzubYgNUzDlysRwIhAP7jaUXj8KvJCZePSz7g9mRcSTVwJnIWykLkcODrs92B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16219},"main":"./src/index.js","type":"commonjs","_from":"file:diamir-nestjs-microservice-11.0.0.tgz","types":"./src/index.d.ts","engines":{"node":">= 20"},"_npmUser":{"name":"ws-admin","email":"backend@webundsoehne.com"},"_resolved":"/tmp/44ceb97fe5afd6aacd4a8376ae7f3485/diamir-nestjs-microservice-11.0.0.tgz","_integrity":"sha512-IXryNji1pNC28z7oQBobH8p1rkv42bbAg23FSKF5quhvtv0jCfBIsMKVhBCuqI8KCSNru/QWP143Hczl1bN1lA==","repository":{"url":"git+https://github.com/tailoredmedia/backend-nx-skeleton.git","type":"git"},"_npmVersion":"10.9.2","description":"<p align=\"center\">   <a href=\"https://webundsoehne.com\" target=\"blank\">     <img src=\"https://webundsoehne.com/wp-content/uploads/webundsoehne-logo.png\" width=\"320\" alt=\"Web und Söhne - Logo\" />   </a> </p> Web & Söhne is Austria's leading expert in progr","directories":{},"_nodeVersion":"22.13.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"7.8.2","@nestjs/core":">= 11.0.0","@nestjs/common":">= 11.0.0","@nestjs/microservices":">= 11.0.0"},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/nestjs-microservice_11.0.0_1778592831230_0.8754704936644988","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"name":"@diamir/nestjs-microservice","version":"11.0.1","keywords":["diamir","nestjs","microservice","rabbitmq"],"author":{"name":"Backend","email":"backend@diamir.io"},"license":"ISC","_id":"@diamir/nestjs-microservice@11.0.1","maintainers":[{"name":"ws-admin","email":"backend@webundsoehne.com"},{"name":"dabls","email":"stephan.schmid@diamir.io"}],"homepage":"https://github.com/tailoredmedia/backend-nx-skeleton#readme","bugs":{"url":"https://github.com/tailoredmedia/backend-nx-skeleton/issues"},"dist":{"shasum":"730bbdc0ca3c55598bf0d0bd1d756af4ac841b68","tarball":"https://registry.npmjs.org/@diamir/nestjs-microservice/-/nestjs-microservice-11.0.1.tgz","fileCount":17,"integrity":"sha512-mDAKe/I0OUVe5ZKahNeedTzR7BWM7W9dh/vlLnqbC/J380dgeei0mXz/ffCJ5ddYH5J62gDMzg0NOVn9FUCJIQ==","signatures":[{"sig":"MEYCIQChxf0/A1m9puzVGOdG1GxKJNE3ZEgkfbbLr/kxXlqs6AIhAKAT8I/0yLR/8sSvrLe+LRvCvEkdFqwp8AMmlahTto2c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16407},"main":"./src/index.js","type":"commonjs","_from":"file:diamir-nestjs-microservice-11.0.1.tgz","types":"./src/index.d.ts","engines":{"node":">= 20"},"_npmUser":{"name":"ws-admin","email":"backend@webundsoehne.com"},"_resolved":"/tmp/c910b902a37fb2aced6b08cfb6ada0e4/diamir-nestjs-microservice-11.0.1.tgz","_integrity":"sha512-mDAKe/I0OUVe5ZKahNeedTzR7BWM7W9dh/vlLnqbC/J380dgeei0mXz/ffCJ5ddYH5J62gDMzg0NOVn9FUCJIQ==","repository":{"url":"git+https://github.com/tailoredmedia/backend-nx-skeleton.git","type":"git"},"_npmVersion":"10.9.8","description":"Nestjs microservice-provider wrapper module and base-service","directories":{},"_nodeVersion":"22.22.3","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"7.8.2","@nestjs/core":">= 11.0.0","@nestjs/common":">= 11.0.0","@nestjs/microservices":">= 11.0.0"},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/nestjs-microservice_11.0.1_1778851684436_0.17405949904502238","host":"s3://npm-registry-packages-npm-production"}},"11.0.2":{"name":"@diamir/nestjs-microservice","version":"11.0.2","keywords":["diamir","nestjs","microservice","rabbitmq"],"author":{"name":"Backend","email":"backend@diamir.io"},"license":"ISC","_id":"@diamir/nestjs-microservice@11.0.2","maintainers":[{"name":"ws-admin","email":"backend@webundsoehne.com"},{"name":"dabls","email":"stephan.schmid@diamir.io"}],"homepage":"https://github.com/tailoredmedia/backend-nx-skeleton#readme","bugs":{"url":"https://github.com/tailoredmedia/backend-nx-skeleton/issues"},"dist":{"shasum":"df66320ef8a87675e6dc3681811876a741870c73","tarball":"https://registry.npmjs.org/@diamir/nestjs-microservice/-/nestjs-microservice-11.0.2.tgz","fileCount":17,"integrity":"sha512-iqSHDdFcsgeSgCS07N4Kkf/WWgtm+dwdDpgKhxi7r3tzaT+mxVmCoJZUMUckb0l88kwMMZxdJgnOVF7V3HDdYQ==","signatures":[{"sig":"MEUCIDGvcSxwHE+03bc/Bmz8qKK9eeyJb6xRVSq3F4NqwEa2AiEAuXaXpU7jQOIZk0lLc4QLIzYuFAfym+zN559SevMCfek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16408},"main":"./src/index.js","type":"commonjs","_from":"file:diamir-nestjs-microservice-11.0.2.tgz","types":"./src/index.d.ts","engines":{"node":">= 20"},"_npmUser":{"name":"ws-admin","email":"backend@webundsoehne.com"},"_resolved":"/tmp/2235916eceddb8d7c8f356eda0810656/diamir-nestjs-microservice-11.0.2.tgz","_integrity":"sha512-iqSHDdFcsgeSgCS07N4Kkf/WWgtm+dwdDpgKhxi7r3tzaT+mxVmCoJZUMUckb0l88kwMMZxdJgnOVF7V3HDdYQ==","repository":{"url":"git+https://github.com/tailoredmedia/backend-nx-skeleton.git","type":"git"},"_npmVersion":"10.9.8","description":"Nestjs microservice-provider wrapper module and base-service","directories":{},"_nodeVersion":"22.22.3","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.2","@nestjs/core":">= 11.0.0","@nestjs/common":">= 11.0.0","@nestjs/microservices":">= 11.0.0"},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/nestjs-microservice_11.0.2_1779200935459_0.9038369827078225","host":"s3://npm-registry-packages-npm-production"}},"11.0.3":{"name":"@diamir/nestjs-microservice","version":"11.0.3","keywords":["diamir","nestjs","microservice","rabbitmq"],"author":{"name":"Backend","email":"backend@diamir.io"},"license":"ISC","_id":"@diamir/nestjs-microservice@11.0.3","maintainers":[{"name":"ws-admin","email":"backend@webundsoehne.com"},{"name":"dabls","email":"stephan.schmid@diamir.io"}],"homepage":"https://github.com/tailoredmedia/backend-nx-skeleton#readme","bugs":{"url":"https://github.com/tailoredmedia/backend-nx-skeleton/issues"},"dist":{"shasum":"b754c7bbed46c1f50d858a050120c1fb77bb6e64","tarball":"https://registry.npmjs.org/@diamir/nestjs-microservice/-/nestjs-microservice-11.0.3.tgz","fileCount":17,"integrity":"sha512-o49FZrFJrM3dR+yJUEyFY/UrKyIOxOcp7BEG4kSZhuuoxAdsiqFysyRDCYqrswp8hCxTKn5TbdANV1nLwO5hhg==","signatures":[{"sig":"MEQCIDzoAGcYppvYNY6s16k4Tuujs5U0zAeEDtQl8/qnGhlLAiBcbyy0+S+jc8XdHq9MFT+8ZI3fimWZHHapguT9Et54aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16467},"main":"./src/index.js","type":"commonjs","_from":"file:diamir-nestjs-microservice-11.0.3.tgz","types":"./src/index.d.ts","engines":{"node":">= 20"},"_npmUser":{"name":"ws-admin","email":"backend@webundsoehne.com"},"_resolved":"/tmp/3a1bb096afa3a5cd2e92a11b7d4079f8/diamir-nestjs-microservice-11.0.3.tgz","_integrity":"sha512-o49FZrFJrM3dR+yJUEyFY/UrKyIOxOcp7BEG4kSZhuuoxAdsiqFysyRDCYqrswp8hCxTKn5TbdANV1nLwO5hhg==","repository":{"url":"git+https://github.com/tailoredmedia/backend-nx-skeleton.git","type":"git"},"_npmVersion":"10.9.8","description":"Nestjs microservice-provider wrapper module and base-service","directories":{},"_nodeVersion":"22.22.3","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.2","@nestjs/core":">= 11.0.0","@nestjs/common":">= 11.0.0","@nestjs/microservices":">= 11.0.0"},"peerDependenciesMeta":{},"_npmOperationalInternal":{"tmp":"tmp/nestjs-microservice_11.0.3_1779798931881_0.508636736724333","host":"s3://npm-registry-packages-npm-production"}},"11.0.4-beta.0":{"name":"@diamir/nestjs-microservice","version":"11.0.4-beta.0","description":"Nestjs microservice-provider wrapper module and base-service","author":{"name":"Backend","email":"backend@diamir.io"},"repository":{"type":"git","url":"git+https://github.com/tailoredmedia/backend-nx-skeleton.git"},"license":"ISC","publishConfig":{"access":"public"},"keywords":["diamir","nestjs","microservice","rabbitmq"],"main":"./src/index.js","dependencies":{},"peerDependencies":{"@nestjs/common":">= 11.0.0","@nestjs/core":">= 11.0.0","@nestjs/microservices":">= 11.0.0","rxjs":"^7.8.2"},"peerDependenciesMeta":{},"engines":{"node":">= 20"},"types":"./src/index.d.ts","type":"commonjs","_id":"@diamir/nestjs-microservice@11.0.4-beta.0","bugs":{"url":"https://github.com/tailoredmedia/backend-nx-skeleton/issues"},"homepage":"https://github.com/tailoredmedia/backend-nx-skeleton#readme","_integrity":"sha512-sNu9iXfWluwQo3vhW8OtWJtdle0IT28Nk5kQkLTtGKqMeUE2/DDnDxffGxmlWQVZRh8Q2lZob4uGpn4QCxGYcA==","_resolved":"/tmp/769cac1a0420f5a3da98b8945080d224/diamir-nestjs-microservice-11.0.4-beta.0.tgz","_from":"file:diamir-nestjs-microservice-11.0.4-beta.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-sNu9iXfWluwQo3vhW8OtWJtdle0IT28Nk5kQkLTtGKqMeUE2/DDnDxffGxmlWQVZRh8Q2lZob4uGpn4QCxGYcA==","shasum":"403d2d8c5584584482ede196b0c430adcdbdd3ed","tarball":"https://registry.npmjs.org/@diamir/nestjs-microservice/-/nestjs-microservice-11.0.4-beta.0.tgz","fileCount":17,"unpackedSize":16474,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICfihWOsSzNby4lKv/8gVmws7lft4G4djNL4ATgKPbrSAiAhwkKu4YNx8Sb/JuLd0mloU77b397+dPCQkKAiTgBNQA=="}]},"_npmUser":{"name":"ws-admin","email":"backend@webundsoehne.com"},"directories":{},"maintainers":[{"name":"ws-admin","email":"backend@webundsoehne.com"},{"name":"dabls","email":"stephan.schmid@diamir.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-microservice_11.0.4-beta.0_1784790081524_0.0055088979904631685"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T13:33:51.122Z","modified":"2026-07-23T07:01:21.841Z","11.0.0":"2026-05-12T13:33:51.391Z","11.0.1":"2026-05-15T13:28:04.590Z","11.0.2":"2026-05-19T14:28:55.600Z","11.0.3":"2026-05-26T12:35:32.044Z","11.0.4-beta.0":"2026-07-23T07:01:21.668Z"},"bugs":{"url":"https://github.com/tailoredmedia/backend-nx-skeleton/issues"},"author":{"name":"Backend","email":"backend@diamir.io"},"license":"ISC","homepage":"https://github.com/tailoredmedia/backend-nx-skeleton#readme","keywords":["diamir","nestjs","microservice","rabbitmq"],"repository":{"type":"git","url":"git+https://github.com/tailoredmedia/backend-nx-skeleton.git"},"description":"Nestjs microservice-provider wrapper module and base-service","maintainers":[{"name":"ws-admin","email":"backend@webundsoehne.com"},{"name":"dabls","email":"stephan.schmid@diamir.io"}],"readme":"# nestjs-microservice\n\n## Description\n\nRabbitMQ, NestJs-Microservice wrapper for easier microservice interaction.\n\nCreate the microservice-server as normal with NestJs (`createMicroservice`) and in the api (that interacts with that server) use this provider-utils.\n\n---\n\n<!-- TOC -->\n* [nestjs-microservice](#nestjs-microservice)\n  * [Description](#description)\n  * [Microservice-Provider Module](#microservice-provider-module)\n    * [Options](#options)\n  * [Microservice-Provider](#microservice-provider)\n  * [Interceptor](#interceptor)\n* [Links](#links)\n<!-- TOC -->\n\n---\n\n## Microservice-Provider Module\n\nRegister the provider that can be injected in any service to interact with the message-queue.<br>\nThe module is global by default.\n\n```typescript\nimport { Module } from '@nestjs/common'\nimport { MicroserviceProviderModule } from '@diamir/nestjs-microservice'\n\nimport { ExampleProvider } from '@libs/microservice-provider'\n\n@Module({\n  imports: [\n    MicroserviceProviderModule.forRoot({ urls: ['http://localhost:5672'] }, [ExampleProvider])\n  ]\n})\n```\n\n### Options\n\n```typescript\n{ // type: ProviderOptions\n  urls // message-queue urls\n  clientOptions // (optional) options passed to the underlying `ClientRMQ`\n  global // (default: true) if module is imported globally, \n  timeout // (default: 10 minutes) time in milliseconds when a timeout error is thrown if operation not yet completed \n  timeoutErrorFactory // (optional) custom error on time-out\n  responseErrorFactory // (optional) custom error on response error\n}\n```\n\n## Microservice-Provider\n\nTo set up a new provider service, use the `@MSP()` decorator to define the MessageQueue to be used and extend the `BaseMicroserviceProvider`.<br>\nIn the service define/implement the methods to call the Message-Patterns of that queue.\n\nSetup:\n```typescript\n// libs/microservice-provider/mesage-queue.enum.ts\nenum MessageQueue { // used in nestjs `createMicroservice` options\n  EXAMPLE = 'EXAMPLE'\n}\n\n// libs/microservice-provider/provider/example/example.pattern.ts\nenum ExamplePattern { // used in nestjs `@MessagePattern(..)`\n  COMMAND_A = 'COMMAND_B',\n  COMMAND_B = 'COMMAND_B'\n}\n\n// libs/microservice-provider/provider/example/example.provider.ts\nimport { BaseMicroserviceProvider, MSP } from '@diamir/nestjs-microservice'\n\nimport { MessageQueue } from '../../message-queue.enum'\nimport { ExamplePattern } from './example.pattern'\n\n@MSP(MessageQueue.EXAMPLE)\nexport class ExampleProvider extends BaseMicroserviceProvider<ExamplePattern> {\n  commandA (options: { /* some data for command-a */ }): Promise<{ /* microservice response */ }> {\n    return this.send(ExamplePattern.COMMAND_A, options)\n  }\n\n  // or without payload\n  async commandB (): Promise<void> {\n    await this.emit(ExamplePattern.COMMAND_B)\n  }\n}\n```\n\nUsage:\n```typescript\n// apps/example/server/modules/example/example.service.ts\n@Injectable()\nexport class ExampleService {\n  constructor(private readonly exampleProvider: ExampleProvider){}\n  \n  async example(): Promise<void> {\n    await this.exampleProvider.commandB()\n  }\n}\n```\n\n## Interceptor\n\n- `RequestProfilerInterceptor`: logs incoming request patterns and how long they took until their response\n\n```typescript\nimport { Module } from '@nestjs/common'\nimport { APP_INTERCEPTOR } from '@nestjs/core'\n\nimport { RequestProfilerInterceptor } from '@diamir/nestjs-microservice'\n\n// microservice server\n@Module({\n  providers: [\n    {\n      provide: APP_INTERCEPTOR,\n      useClass: RequestProfilerInterceptor\n    }\n  ]\n})\n```\n\nExample Output:\n```text\n[2020-01-01T12:00:00.000Z] [debug] [RequestProfilerInterceptor] - Pattern example starting\n[2020-01-01T12:00:00.025Z] [debug] [RequestProfilerInterceptor] - Pattern example finished - took: 0.0250 sec\n```\n\n# Links\n- [Diamir](https://diamir.io/)\n- [nestjs](https://nestjs.com/)\n","readmeFilename":"README.md"}