@cargolift-cdi/util-rabbitmq 0.1.30 → 0.1.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +0 -82
  2. package/dist/index.d.ts +0 -6
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +0 -7
  5. package/dist/index.js.map +1 -1
  6. package/package.json +1 -2
  7. package/dist/messaging/auto-publish.interceptor.d.ts +0 -12
  8. package/dist/messaging/auto-publish.interceptor.d.ts.map +0 -1
  9. package/dist/messaging/auto-publish.interceptor.js +0 -66
  10. package/dist/messaging/auto-publish.interceptor.js.map +0 -1
  11. package/dist/messaging/envelope-builder.service.d.ts +0 -14
  12. package/dist/messaging/envelope-builder.service.d.ts.map +0 -1
  13. package/dist/messaging/envelope-builder.service.js +0 -38
  14. package/dist/messaging/envelope-builder.service.js.map +0 -1
  15. package/dist/messaging/message-envelope.d.ts +0 -17
  16. package/dist/messaging/message-envelope.d.ts.map +0 -1
  17. package/dist/messaging/message-envelope.js +0 -2
  18. package/dist/messaging/message-envelope.js.map +0 -1
  19. package/dist/messaging/message-publisher.service.d.ts +0 -20
  20. package/dist/messaging/message-publisher.service.d.ts.map +0 -1
  21. package/dist/messaging/message-publisher.service.js +0 -42
  22. package/dist/messaging/message-publisher.service.js.map +0 -1
  23. package/dist/messaging/messaging.module.d.ts +0 -3
  24. package/dist/messaging/messaging.module.d.ts.map +0 -1
  25. package/dist/messaging/messaging.module.js +0 -33
  26. package/dist/messaging/messaging.module.js.map +0 -1
  27. package/dist/messaging/publish.decorator.d.ts +0 -9
  28. package/dist/messaging/publish.decorator.d.ts.map +0 -1
  29. package/dist/messaging/publish.decorator.js +0 -4
  30. package/dist/messaging/publish.decorator.js.map +0 -1
package/README.md CHANGED
@@ -1,84 +1,2 @@
1
1
  # @cargolift-cdi/util-rabbitmq
2
2
 
3
- Utilitários para publicação RabbitMQ com suporte a:
4
-
5
- 1. Publicação direta (emit) e confirmada (publish) com headers de rastreabilidade
6
- 2. Envelope padronizado de mensagens (meta + data)
7
- 3. Decorator `@PublishMessage` + Interceptor automático para reduzir repetição em controllers NestJS
8
-
9
- ## Envelope
10
- Estrutura enviada:
11
- ```jsonc
12
- {
13
- "meta": {
14
- "correlationId": "uuid",
15
- "eventType": "dominio.recurso.acao",
16
- "producer": "nome-do-servico",
17
- "timestamp": "2025-09-26T12:34:56.789Z",
18
- "http": { "method": "POST", "path": "/demo" },
19
- "trace": []
20
- },
21
- "data": { /* payload original */ }
22
- }
23
- ```
24
-
25
- ## Uso rápido
26
-
27
- 1. Importe o `MessagingModule` no módulo da API:
28
- ```ts
29
- import { Module } from '@nestjs/common';
30
- import { MessagingModule } from '@cargolift-cdi/util-rabbitmq';
31
- import { APP_INTERCEPTOR } from '@nestjs/core';
32
- import { AutoPublishInterceptor } from '@cargolift-cdi/util-rabbitmq';
33
-
34
- @Module({
35
- imports: [MessagingModule],
36
- providers: [
37
- { provide: APP_INTERCEPTOR, useClass: AutoPublishInterceptor }
38
- ]
39
- })
40
- export class AppModule {}
41
- ```
42
-
43
- 2. Em um controller:
44
- ```ts
45
- import { Controller, Post, Body } from '@nestjs/common';
46
- import { PublishMessage } from '@cargolift-cdi/util-rabbitmq';
47
-
48
- @Controller('demo')
49
- export class DemoController {
50
- @Post()
51
- @PublishMessage({ eventType: 'integration.erp.demo', routingKey: 'integration.erp.demo' })
52
- create(@Body() body: any) {
53
- return body; // Interceptor publicará e retornará { message, correlationId, eventType }
54
- }
55
- }
56
- ```
57
-
58
- ## Headers
59
-
60
- Os headers adicionados automaticamente:
61
- ```
62
- x-correlation-id
63
- x-trace
64
- x-event-type
65
- pattern (routingKey ou pattern)
66
- ```
67
-
68
- ## Variáveis de ambiente relevantes
69
- ```
70
- RABBITMQ_URL=amqp://user:pass@host:5672/vhost
71
- RABBITMQ_EXCHANGE=integration.inbound (opcional se usar decorator sem especificar exchange)
72
- RABBITMQ_EXCHANGE_TYPE=topic (default se não passado no decorator)
73
- SERVICE_NAME=middleware-api (usado como producer)
74
- ```
75
-
76
- ## Extensões futuras sugeridas
77
- - schemaVersion no envelope
78
- - Retry com backoff exponencial
79
- - Dead-letter metadata
80
- - Enriquecimento com identidade do usuário
81
-
82
- ## Licença
83
- MIT
84
-
package/dist/index.d.ts CHANGED
@@ -4,10 +4,4 @@
4
4
  */
5
5
  export * from './rabbitmq-publisher.service.js';
6
6
  export * from './rabbitmq-publisher-dlq.service.js';
7
- export * from './messaging/message-envelope.js';
8
- export * from './messaging/publish.decorator.js';
9
- export * from './messaging/envelope-builder.service.js';
10
- export * from './messaging/message-publisher.service.js';
11
- export * from './messaging/auto-publish.interceptor.js';
12
- export * from './messaging/messaging.module.js';
13
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -4,11 +4,4 @@
4
4
  */
5
5
  export * from './rabbitmq-publisher.service.js';
6
6
  export * from './rabbitmq-publisher-dlq.service.js';
7
- // messaging
8
- export * from './messaging/message-envelope.js';
9
- export * from './messaging/publish.decorator.js';
10
- export * from './messaging/envelope-builder.service.js';
11
- export * from './messaging/message-publisher.service.js';
12
- export * from './messaging/auto-publish.interceptor.js';
13
- export * from './messaging/messaging.module.js';
14
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,YAAY;AACZ,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cargolift-cdi/util-rabbitmq",
3
- "version": "0.1.30",
3
+ "version": "0.1.33",
4
4
  "description": "Funções utilitárias para trabalhar com RabbitMQ",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -41,7 +41,6 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/amqplib": "^0.10.7",
44
- "@types/express": "^5.0.3",
45
44
  "@types/node": "^24.3.1",
46
45
  "typescript": "^5.6.2"
47
46
  },
@@ -1,12 +0,0 @@
1
- import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
- import { Reflector } from '@nestjs/core';
3
- import { Observable } from 'rxjs';
4
- import { MessagePublisherService } from './message-publisher.service.js';
5
- export declare class AutoPublishInterceptor implements NestInterceptor {
6
- private readonly reflector;
7
- private readonly publisher;
8
- private readonly logger;
9
- constructor(reflector: Reflector, publisher: MessagePublisherService);
10
- intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
11
- }
12
- //# sourceMappingURL=auto-publish.interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-publish.interceptor.d.ts","sourceRoot":"","sources":["../../src/messaging/auto-publish.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAc,eAAe,EAAU,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAQ,MAAM,MAAM,CAAC;AAGxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,qBACa,sBAAuB,YAAW,eAAe;IAG1D,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAH5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAE5C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,uBAAuB;IAGrD,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC;CAyCzE"}
@@ -1,66 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Injectable, Logger } from '@nestjs/common';
11
- import { Reflector } from '@nestjs/core';
12
- import { from } from 'rxjs';
13
- import { mergeMap, map } from 'rxjs/operators';
14
- import { PUBLISH_METADATA_KEY } from './publish.decorator.js';
15
- import { MessagePublisherService } from './message-publisher.service.js';
16
- let AutoPublishInterceptor = class AutoPublishInterceptor {
17
- constructor(reflector, publisher) {
18
- this.reflector = reflector;
19
- this.publisher = publisher;
20
- this.logger = new Logger('AutoPublishInterceptor');
21
- }
22
- intercept(context, next) {
23
- if (!this.reflector) {
24
- this.logger.error('Reflector não injetado (undefined)');
25
- }
26
- if (!this.publisher) {
27
- this.logger.error('MessagePublisherService não injetado (undefined)');
28
- }
29
- let publishOptions;
30
- try {
31
- publishOptions = this.reflector?.get(PUBLISH_METADATA_KEY, context.getHandler());
32
- }
33
- catch (e) {
34
- this.logger.error('Falha ao acessar reflector.get', e);
35
- publishOptions = undefined;
36
- }
37
- if (!publishOptions) {
38
- return next.handle();
39
- }
40
- const http = context.switchToHttp();
41
- const req = http.getRequest();
42
- return next.handle().pipe(mergeMap((controllerResult) => {
43
- const payload = controllerResult?.payload !== undefined ? controllerResult.payload : controllerResult;
44
- const exchange = publishOptions.exchange || process.env.RABBITMQ_EXCHANGE || 'integration.inbound';
45
- return from(this.publisher.publish({
46
- req,
47
- eventType: publishOptions.eventType,
48
- exchange,
49
- routingKey: publishOptions.routingKey,
50
- payload,
51
- exchangeType: publishOptions.exchangeType,
52
- })).pipe(map((envelope) => ({
53
- message: 'Mensagem publicada com sucesso',
54
- correlationId: envelope.meta.correlationId,
55
- eventType: envelope.meta.eventType,
56
- })));
57
- }));
58
- }
59
- };
60
- AutoPublishInterceptor = __decorate([
61
- Injectable(),
62
- __metadata("design:paramtypes", [Reflector,
63
- MessagePublisherService])
64
- ], AutoPublishInterceptor);
65
- export { AutoPublishInterceptor };
66
- //# sourceMappingURL=auto-publish.interceptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-publish.interceptor.js","sourceRoot":"","sources":["../../src/messaging/auto-publish.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAiC,UAAU,EAAmB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAc,IAAI,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAkB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEjC,YACmB,SAAoB,EACpB,SAAkC;QADlC,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAyB;QAHpC,WAAM,GAAG,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAI5D,CAAC;IAEJ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,cAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAA6B,oBAAoB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAQ,CAAC,CAAC;YAC9D,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,QAAQ,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,gBAAgB,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACtG,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,qBAAqB,CAAC;YACnG,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACjC,GAAG;gBACH,SAAS,EAAE,cAAc,CAAC,SAAS;gBACnC,QAAQ;gBACR,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,OAAO;gBACP,YAAY,EAAE,cAAc,CAAC,YAAY;aAC1C,CAAC,CAAC,CAAC,IAAI,CACN,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjB,OAAO,EAAE,gCAAgC;gBACzC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa;gBAC1C,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;aACnC,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAhDY,sBAAsB;IADlC,UAAU,EAAE;qCAImB,SAAS;QACT,uBAAuB;GAJ1C,sBAAsB,CAgDlC"}
@@ -1,14 +0,0 @@
1
- import type { Request } from 'express';
2
- import { MessageEnvelope } from './message-envelope.js';
3
- import { LoggerContextService } from '@cargolift-cdi/common';
4
- export declare class EnvelopeBuilderService {
5
- private readonly loggerCtx;
6
- constructor(loggerCtx: LoggerContextService);
7
- build<T>(params: {
8
- req?: Request;
9
- eventType: string;
10
- payload: T;
11
- producer?: string;
12
- }): MessageEnvelope<T>;
13
- }
14
- //# sourceMappingURL=envelope-builder.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope-builder.service.d.ts","sourceRoot":"","sources":["../../src/messaging/envelope-builder.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBACa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,oBAAoB;IAE5D,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,CAAC,CAAC,CAAC;CAiB1G"}
@@ -1,38 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Injectable } from '@nestjs/common';
11
- import { LoggerContextService } from '@cargolift-cdi/common';
12
- let EnvelopeBuilderService = class EnvelopeBuilderService {
13
- constructor(loggerCtx) {
14
- this.loggerCtx = loggerCtx;
15
- }
16
- build(params) {
17
- const { req, eventType, payload } = params;
18
- const producer = params.producer || process.env.SERVICE_NAME || process.env.npm_package_name || 'unknown-service';
19
- const ctx = this.loggerCtx.getContext();
20
- return {
21
- meta: {
22
- correlationId: ctx.correlation_id || crypto.randomUUID(),
23
- trace: ctx.trace,
24
- eventType,
25
- producer,
26
- timestamp: new Date().toISOString(),
27
- http: req ? { method: req.method, path: (req.route?.path || req.path) } : undefined,
28
- },
29
- data: payload,
30
- };
31
- }
32
- };
33
- EnvelopeBuilderService = __decorate([
34
- Injectable(),
35
- __metadata("design:paramtypes", [LoggerContextService])
36
- ], EnvelopeBuilderService);
37
- export { EnvelopeBuilderService };
38
- //# sourceMappingURL=envelope-builder.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope-builder.service.js","sourceRoot":"","sources":["../../src/messaging/envelope-builder.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGtD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAA6B,SAA+B;QAA/B,cAAS,GAAT,SAAS,CAAsB;IAAG,CAAC;IAEhE,KAAK,CAAI,MAA2E;QAClF,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;QAClH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAExC,OAAO;YACL,IAAI,EAAE;gBACJ,aAAa,EAAG,GAAG,CAAC,cAAyB,IAAI,MAAM,CAAC,UAAU,EAAE;gBACpE,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS;gBACT,QAAQ;gBACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;aACpF;YACD,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;CACF,CAAA;AApBY,sBAAsB;IADlC,UAAU,EAAE;qCAE6B,oBAAoB;GADjD,sBAAsB,CAoBlC"}
@@ -1,17 +0,0 @@
1
- export interface MessageMeta {
2
- correlationId: string;
3
- eventType: string;
4
- producer: string;
5
- timestamp: string;
6
- http?: {
7
- method: string;
8
- path: string;
9
- };
10
- trace?: any;
11
- [key: string]: any;
12
- }
13
- export interface MessageEnvelope<T = any> {
14
- meta: MessageMeta;
15
- data: T;
16
- }
17
- //# sourceMappingURL=message-envelope.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-envelope.d.ts","sourceRoot":"","sources":["../../src/messaging/message-envelope.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,CAAC,CAAC;CACT"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=message-envelope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-envelope.js","sourceRoot":"","sources":["../../src/messaging/message-envelope.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import type { Request } from 'express';
2
- import { EnvelopeBuilderService } from './envelope-builder.service.js';
3
- import { RabbitMQPublisherService } from '../rabbitmq-publisher.service.js';
4
- import { MessageEnvelope } from './message-envelope.js';
5
- export interface PublishMessageParams<T = any> {
6
- req?: Request;
7
- eventType: string;
8
- exchange: string;
9
- routingKey: string;
10
- payload: T;
11
- exchangeType?: 'topic' | 'direct' | 'fanout' | 'headers';
12
- headers?: Record<string, any>;
13
- }
14
- export declare class MessagePublisherService {
15
- private readonly envelopeBuilder;
16
- private readonly publisher;
17
- constructor(envelopeBuilder: EnvelopeBuilderService, publisher: RabbitMQPublisherService);
18
- publish<T>(params: PublishMessageParams<T>): Promise<MessageEnvelope<T>>;
19
- }
20
- //# sourceMappingURL=message-publisher.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-publisher.service.d.ts","sourceRoot":"","sources":["../../src/messaging/message-publisher.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAC,GAAG;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,qBACa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,eAAe,EAAE,sBAAsB,EACvC,SAAS,EAAE,wBAAwB;IAGhD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwB/E"}
@@ -1,42 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Injectable } from '@nestjs/common';
11
- import { EnvelopeBuilderService } from './envelope-builder.service.js';
12
- import { RabbitMQPublisherService } from '../rabbitmq-publisher.service.js';
13
- let MessagePublisherService = class MessagePublisherService {
14
- constructor(envelopeBuilder, publisher) {
15
- this.envelopeBuilder = envelopeBuilder;
16
- this.publisher = publisher;
17
- }
18
- async publish(params) {
19
- const envelope = this.envelopeBuilder.build({
20
- req: params.req,
21
- eventType: params.eventType,
22
- payload: params.payload,
23
- });
24
- await this.publisher.publish(params.exchange, params.routingKey, envelope, {
25
- exchangeType: params.exchangeType,
26
- headers: {
27
- 'x-correlation-id': envelope.meta.correlationId,
28
- 'x-trace': JSON.stringify(envelope.meta.trace || []),
29
- 'x-event-type': envelope.meta.eventType,
30
- ...(params.headers || {}),
31
- },
32
- });
33
- return envelope;
34
- }
35
- };
36
- MessagePublisherService = __decorate([
37
- Injectable(),
38
- __metadata("design:paramtypes", [EnvelopeBuilderService,
39
- RabbitMQPublisherService])
40
- ], MessagePublisherService);
41
- export { MessagePublisherService };
42
- //# sourceMappingURL=message-publisher.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-publisher.service.js","sourceRoot":"","sources":["../../src/messaging/message-publisher.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAcrE,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YACmB,eAAuC,EACvC,SAAmC;QADnC,oBAAe,GAAf,eAAe,CAAwB;QACvC,cAAS,GAAT,SAAS,CAA0B;IACnD,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAI,MAA+B;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1C,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAC1B,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,EACjB,QAAQ,EACR;YACE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE;gBACP,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa;gBAC/C,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;gBACvC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aAC1B;SACF,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AA9BY,uBAAuB;IADnC,UAAU,EAAE;qCAGyB,sBAAsB;QAC5B,wBAAwB;GAH3C,uBAAuB,CA8BnC"}
@@ -1,3 +0,0 @@
1
- export declare class MessagingModule {
2
- }
3
- //# sourceMappingURL=messaging.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messaging.module.d.ts","sourceRoot":"","sources":["../../src/messaging/messaging.module.ts"],"names":[],"mappings":"AAOA,qBAea,eAAe;CAAI"}
@@ -1,33 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Module } from '@nestjs/common';
8
- import { EnvelopeBuilderService } from './envelope-builder.service.js';
9
- import { MessagePublisherService } from './message-publisher.service.js';
10
- import { AutoPublishInterceptor } from './auto-publish.interceptor.js';
11
- import { RabbitMQPublisherService } from '../rabbitmq-publisher.service.js';
12
- import { LoggerContextService } from '@cargolift-cdi/common';
13
- let MessagingModule = class MessagingModule {
14
- };
15
- MessagingModule = __decorate([
16
- Module({
17
- providers: [
18
- LoggerContextService,
19
- RabbitMQPublisherService,
20
- EnvelopeBuilderService,
21
- MessagePublisherService,
22
- AutoPublishInterceptor,
23
- ],
24
- exports: [
25
- EnvelopeBuilderService,
26
- MessagePublisherService,
27
- AutoPublishInterceptor,
28
- RabbitMQPublisherService,
29
- ],
30
- })
31
- ], MessagingModule);
32
- export { MessagingModule };
33
- //# sourceMappingURL=messaging.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messaging.module.js","sourceRoot":"","sources":["../../src/messaging/messaging.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAiBtD,IAAM,eAAe,GAArB,MAAM,eAAe;CAAI,CAAA;AAAnB,eAAe;IAf3B,MAAM,CAAC;QACJ,SAAS,EAAE;YACP,oBAAoB;YACpB,wBAAwB;YACxB,sBAAsB;YACtB,uBAAuB;YACvB,sBAAsB;SACzB;QACD,OAAO,EAAE;YACL,sBAAsB;YACtB,uBAAuB;YACvB,sBAAsB;YACtB,wBAAwB;SAC3B;KACJ,CAAC;GACW,eAAe,CAAI"}
@@ -1,9 +0,0 @@
1
- export interface PublishOptions {
2
- eventType: string;
3
- routingKey: string;
4
- exchange?: string;
5
- exchangeType?: 'topic' | 'direct' | 'fanout' | 'headers';
6
- }
7
- export declare const PUBLISH_METADATA_KEY = "publish:options";
8
- export declare const PublishMessage: (options: PublishOptions) => MethodDecorator;
9
- //# sourceMappingURL=publish.decorator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.decorator.d.ts","sourceRoot":"","sources":["../../src/messaging/publish.decorator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC1D;AAED,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,cAAc,GAAI,SAAS,cAAc,KAAG,eAA6D,CAAC"}
@@ -1,4 +0,0 @@
1
- import { SetMetadata } from '@nestjs/common';
2
- export const PUBLISH_METADATA_KEY = 'publish:options';
3
- export const PublishMessage = (options) => SetMetadata(PUBLISH_METADATA_KEY, options);
4
- //# sourceMappingURL=publish.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.decorator.js","sourceRoot":"","sources":["../../src/messaging/publish.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAmB,EAAE,CAAC,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC"}