@imaginamossas/farmabien-common 1.0.0 → 1.0.2

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 (177) hide show
  1. package/dist/decorators/current-user.decorator.d.ts +9 -0
  2. package/dist/decorators/current-user.decorator.js +34 -0
  3. package/dist/decorators/current-user.decorator.js.map +1 -0
  4. package/dist/decorators/index.d.ts +4 -0
  5. package/dist/decorators/index.js +21 -0
  6. package/dist/decorators/index.js.map +1 -0
  7. package/dist/decorators/public.decorator.d.ts +2 -0
  8. package/dist/decorators/public.decorator.js +8 -0
  9. package/dist/decorators/public.decorator.js.map +1 -0
  10. package/dist/decorators/query-runner.decorator.d.ts +1 -0
  11. package/dist/decorators/query-runner.decorator.js +13 -0
  12. package/dist/decorators/query-runner.decorator.js.map +1 -0
  13. package/dist/decorators/request-id.decorator.d.ts +8 -0
  14. package/dist/decorators/request-id.decorator.js +15 -0
  15. package/dist/decorators/request-id.decorator.js.map +1 -0
  16. package/dist/dto/commons.dto.d.ts +5 -0
  17. package/dist/dto/commons.dto.js +10 -0
  18. package/dist/dto/commons.dto.js.map +1 -0
  19. package/dist/dto/index.d.ts +3 -0
  20. package/dist/dto/index.js +20 -0
  21. package/dist/dto/index.js.map +1 -0
  22. package/dist/dto/profile.dto.d.ts +28 -0
  23. package/dist/dto/profile.dto.js +171 -0
  24. package/dist/dto/profile.dto.js.map +1 -0
  25. package/dist/dto/response-data.dto.d.ts +5 -0
  26. package/dist/dto/response-data.dto.js +37 -0
  27. package/dist/dto/response-data.dto.js.map +1 -0
  28. package/dist/entities/base.entity.d.ts +5 -0
  29. package/dist/entities/base.entity.js +43 -0
  30. package/dist/entities/base.entity.js.map +1 -0
  31. package/dist/entities/customer.entity.d.ts +21 -0
  32. package/dist/entities/customer.entity.js +111 -0
  33. package/dist/entities/customer.entity.js.map +1 -0
  34. package/dist/entities/customers.providers.entity.d.ts +11 -0
  35. package/dist/entities/customers.providers.entity.js +61 -0
  36. package/dist/entities/customers.providers.entity.js.map +1 -0
  37. package/dist/entities/email-verification-token.entity.d.ts +14 -0
  38. package/dist/entities/email-verification-token.entity.js +69 -0
  39. package/dist/entities/email-verification-token.entity.js.map +1 -0
  40. package/dist/entities/index.d.ts +4 -0
  41. package/dist/entities/index.js +21 -0
  42. package/dist/entities/index.js.map +1 -0
  43. package/dist/entities/providers.code.entity.d.ts +5 -0
  44. package/dist/entities/providers.code.entity.js +31 -0
  45. package/dist/entities/providers.code.entity.js.map +1 -0
  46. package/dist/enums/gender.enum.d.ts +5 -0
  47. package/dist/enums/gender.enum.js +10 -0
  48. package/dist/enums/gender.enum.js.map +1 -0
  49. package/dist/enums/id-type.enum.d.ts +6 -0
  50. package/dist/enums/id-type.enum.js +11 -0
  51. package/dist/enums/id-type.enum.js.map +1 -0
  52. package/dist/enums/index.d.ts +2 -0
  53. package/dist/enums/index.js +19 -0
  54. package/dist/enums/index.js.map +1 -0
  55. package/dist/filters/app.exception.d.ts +7 -0
  56. package/dist/filters/app.exception.js +35 -0
  57. package/dist/filters/app.exception.js.map +1 -0
  58. package/dist/filters/custom.exception.filter.d.ts +8 -0
  59. package/dist/filters/custom.exception.filter.js +95 -0
  60. package/dist/filters/custom.exception.filter.js.map +1 -0
  61. package/dist/filters/index.d.ts +2 -0
  62. package/dist/filters/index.js +19 -0
  63. package/dist/filters/index.js.map +1 -0
  64. package/dist/guards/api-key.guard.d.ts +8 -0
  65. package/dist/guards/api-key.guard.js +58 -0
  66. package/dist/guards/api-key.guard.js.map +1 -0
  67. package/dist/guards/index.d.ts +2 -0
  68. package/dist/guards/index.js +19 -0
  69. package/dist/guards/index.js.map +1 -0
  70. package/dist/guards/jwt-auth.guard.d.ts +17 -0
  71. package/dist/guards/jwt-auth.guard.js +97 -0
  72. package/dist/guards/jwt-auth.guard.js.map +1 -0
  73. package/dist/index.d.ts +11 -0
  74. package/dist/index.js +28 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/interceptors/index.d.ts +1 -0
  77. package/dist/interceptors/index.js +18 -0
  78. package/dist/interceptors/index.js.map +1 -0
  79. package/dist/interceptors/logging.interceptor.d.ts +13 -0
  80. package/dist/interceptors/logging.interceptor.js +91 -0
  81. package/dist/interceptors/logging.interceptor.js.map +1 -0
  82. package/dist/middlewares/index.d.ts +1 -0
  83. package/dist/middlewares/index.js +18 -0
  84. package/dist/middlewares/index.js.map +1 -0
  85. package/dist/middlewares/request-id.middleware.d.ts +9 -0
  86. package/dist/middlewares/request-id.middleware.js +37 -0
  87. package/dist/middlewares/request-id.middleware.js.map +1 -0
  88. package/dist/queues/commons/src/commons.module.d.ts +2 -0
  89. package/dist/queues/commons/src/commons.module.js +26 -0
  90. package/dist/queues/commons/src/commons.module.js.map +1 -0
  91. package/dist/queues/commons/src/commons.service.d.ts +2 -0
  92. package/dist/queues/commons/src/commons.service.js +17 -0
  93. package/dist/queues/commons/src/commons.service.js.map +1 -0
  94. package/dist/queues/commons/src/index.d.ts +2 -0
  95. package/dist/queues/commons/src/index.js +19 -0
  96. package/dist/queues/commons/src/index.js.map +1 -0
  97. package/dist/queues/index.d.ts +4 -0
  98. package/dist/queues/index.js +21 -0
  99. package/dist/queues/index.js.map +1 -0
  100. package/dist/queues/outbox/src/index.d.ts +5 -0
  101. package/dist/queues/outbox/src/index.js +22 -0
  102. package/dist/queues/outbox/src/index.js.map +1 -0
  103. package/dist/queues/outbox/src/outbox-event.entity.d.ts +17 -0
  104. package/dist/queues/outbox/src/outbox-event.entity.js +76 -0
  105. package/dist/queues/outbox/src/outbox-event.entity.js.map +1 -0
  106. package/dist/queues/outbox/src/outbox.dispatcher.d.ts +10 -0
  107. package/dist/queues/outbox/src/outbox.dispatcher.js +52 -0
  108. package/dist/queues/outbox/src/outbox.dispatcher.js.map +1 -0
  109. package/dist/queues/outbox/src/outbox.interfaces.d.ts +8 -0
  110. package/dist/queues/outbox/src/outbox.interfaces.js +3 -0
  111. package/dist/queues/outbox/src/outbox.interfaces.js.map +1 -0
  112. package/dist/queues/outbox/src/outbox.module.d.ts +2 -0
  113. package/dist/queues/outbox/src/outbox.module.js +24 -0
  114. package/dist/queues/outbox/src/outbox.module.js.map +1 -0
  115. package/dist/queues/outbox/src/outbox.service.d.ts +12 -0
  116. package/dist/queues/outbox/src/outbox.service.js +73 -0
  117. package/dist/queues/outbox/src/outbox.service.js.map +1 -0
  118. package/dist/queues/sns-publisher/src/index.d.ts +3 -0
  119. package/dist/queues/sns-publisher/src/index.js +20 -0
  120. package/dist/queues/sns-publisher/src/index.js.map +1 -0
  121. package/dist/queues/sns-publisher/src/sns-publisher.module.d.ts +5 -0
  122. package/dist/queues/sns-publisher/src/sns-publisher.module.js +43 -0
  123. package/dist/queues/sns-publisher/src/sns-publisher.module.js.map +1 -0
  124. package/dist/queues/sns-publisher/src/sns-publisher.service.d.ts +10 -0
  125. package/dist/queues/sns-publisher/src/sns-publisher.service.js +88 -0
  126. package/dist/queues/sns-publisher/src/sns-publisher.service.js.map +1 -0
  127. package/dist/queues/sns-publisher/src/sns.catalog.d.ts +22 -0
  128. package/dist/queues/sns-publisher/src/sns.catalog.js +28 -0
  129. package/dist/queues/sns-publisher/src/sns.catalog.js.map +1 -0
  130. package/dist/queues/sns-publisher/src/sns.constants.d.ts +2 -0
  131. package/dist/queues/sns-publisher/src/sns.constants.js +6 -0
  132. package/dist/queues/sns-publisher/src/sns.constants.js.map +1 -0
  133. package/dist/queues/sns-publisher/src/sns.interfaces.d.ts +28 -0
  134. package/dist/queues/sns-publisher/src/sns.interfaces.js +3 -0
  135. package/dist/queues/sns-publisher/src/sns.interfaces.js.map +1 -0
  136. package/dist/queues/sqs-consumer/src/index.d.ts +6 -0
  137. package/dist/queues/sqs-consumer/src/index.js +19 -0
  138. package/dist/queues/sqs-consumer/src/index.js.map +1 -0
  139. package/dist/queues/sqs-consumer/src/interfaces/message-handler.interface.d.ts +10 -0
  140. package/dist/queues/sqs-consumer/src/interfaces/message-handler.interface.js +5 -0
  141. package/dist/queues/sqs-consumer/src/interfaces/message-handler.interface.js.map +1 -0
  142. package/dist/queues/sqs-consumer/src/interfaces/sqs-consumer.interfaces.d.ts +48 -0
  143. package/dist/queues/sqs-consumer/src/interfaces/sqs-consumer.interfaces.js +11 -0
  144. package/dist/queues/sqs-consumer/src/interfaces/sqs-consumer.interfaces.js.map +1 -0
  145. package/dist/queues/sqs-consumer/src/services/sqs-message-validator.service.d.ts +16 -0
  146. package/dist/queues/sqs-consumer/src/services/sqs-message-validator.service.js +123 -0
  147. package/dist/queues/sqs-consumer/src/services/sqs-message-validator.service.js.map +1 -0
  148. package/dist/queues/sqs-consumer/src/services/sqs-polling.service.d.ts +37 -0
  149. package/dist/queues/sqs-consumer/src/services/sqs-polling.service.js +259 -0
  150. package/dist/queues/sqs-consumer/src/services/sqs-polling.service.js.map +1 -0
  151. package/dist/queues/sqs-consumer/src/sqs-consumer.constants.d.ts +5 -0
  152. package/dist/queues/sqs-consumer/src/sqs-consumer.constants.js +9 -0
  153. package/dist/queues/sqs-consumer/src/sqs-consumer.constants.js.map +1 -0
  154. package/dist/queues/sqs-consumer/src/sqs-consumer.module.d.ts +11 -0
  155. package/dist/queues/sqs-consumer/src/sqs-consumer.module.js +126 -0
  156. package/dist/queues/sqs-consumer/src/sqs-consumer.module.js.map +1 -0
  157. package/dist/services/contextual-logger.service.d.ts +15 -0
  158. package/dist/services/contextual-logger.service.js +69 -0
  159. package/dist/services/contextual-logger.service.js.map +1 -0
  160. package/dist/services/index.d.ts +3 -0
  161. package/dist/services/index.js +20 -0
  162. package/dist/services/index.js.map +1 -0
  163. package/dist/services/password.service.d.ts +10 -0
  164. package/dist/services/password.service.js +54 -0
  165. package/dist/services/password.service.js.map +1 -0
  166. package/dist/services/uuid.service.d.ts +6 -0
  167. package/dist/services/uuid.service.js +47 -0
  168. package/dist/services/uuid.service.js.map +1 -0
  169. package/dist/tsconfig.tsbuildinfo +1 -0
  170. package/dist/utils/index.d.ts +1 -0
  171. package/dist/utils/index.js +18 -0
  172. package/dist/utils/index.js.map +1 -0
  173. package/dist/utils/safe-date.transformer.d.ts +1 -0
  174. package/dist/utils/safe-date.transformer.js +59 -0
  175. package/dist/utils/safe-date.transformer.js.map +1 -0
  176. package/package.json +51 -12
  177. package/src/index.js +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/queues/outbox/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,wDAAsC;AACtC,sDAAoC;AACpC,sDAAoC;AACpC,kDAAgC"}
@@ -0,0 +1,17 @@
1
+ import { BaseEntity } from '../../../entities/base.entity';
2
+ export declare enum OutboxStatus {
3
+ PENDING = "PENDING",
4
+ SENT = "SENT",
5
+ FAILED = "FAILED"
6
+ }
7
+ export declare class OutboxEvent extends BaseEntity {
8
+ id: string;
9
+ aggregateType: string;
10
+ aggregateId: string;
11
+ eventType: string;
12
+ topicArn: string;
13
+ payload: unknown;
14
+ status: OutboxStatus;
15
+ attempts: number;
16
+ processedAt?: Date | null;
17
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OutboxEvent = exports.OutboxStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const base_entity_1 = require("../../../entities/base.entity");
15
+ var OutboxStatus;
16
+ (function (OutboxStatus) {
17
+ OutboxStatus["PENDING"] = "PENDING";
18
+ OutboxStatus["SENT"] = "SENT";
19
+ OutboxStatus["FAILED"] = "FAILED";
20
+ })(OutboxStatus || (exports.OutboxStatus = OutboxStatus = {}));
21
+ let OutboxEvent = class OutboxEvent extends base_entity_1.BaseEntity {
22
+ id;
23
+ aggregateType;
24
+ aggregateId;
25
+ eventType;
26
+ topicArn;
27
+ payload;
28
+ status;
29
+ attempts;
30
+ processedAt;
31
+ };
32
+ exports.OutboxEvent = OutboxEvent;
33
+ __decorate([
34
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
35
+ __metadata("design:type", String)
36
+ ], OutboxEvent.prototype, "id", void 0);
37
+ __decorate([
38
+ (0, typeorm_1.Column)(),
39
+ __metadata("design:type", String)
40
+ ], OutboxEvent.prototype, "aggregateType", void 0);
41
+ __decorate([
42
+ (0, typeorm_1.Column)(),
43
+ __metadata("design:type", String)
44
+ ], OutboxEvent.prototype, "aggregateId", void 0);
45
+ __decorate([
46
+ (0, typeorm_1.Column)(),
47
+ __metadata("design:type", String)
48
+ ], OutboxEvent.prototype, "eventType", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.Column)(),
51
+ __metadata("design:type", String)
52
+ ], OutboxEvent.prototype, "topicArn", void 0);
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ type: 'jsonb' }),
55
+ __metadata("design:type", Object)
56
+ ], OutboxEvent.prototype, "payload", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.Column)({
59
+ type: 'enum',
60
+ enum: OutboxStatus,
61
+ default: OutboxStatus.PENDING,
62
+ }),
63
+ __metadata("design:type", String)
64
+ ], OutboxEvent.prototype, "status", void 0);
65
+ __decorate([
66
+ (0, typeorm_1.Column)({ type: 'int', default: 0 }),
67
+ __metadata("design:type", Number)
68
+ ], OutboxEvent.prototype, "attempts", void 0);
69
+ __decorate([
70
+ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true }),
71
+ __metadata("design:type", Object)
72
+ ], OutboxEvent.prototype, "processedAt", void 0);
73
+ exports.OutboxEvent = OutboxEvent = __decorate([
74
+ (0, typeorm_1.Entity)('outbox_events')
75
+ ], OutboxEvent);
76
+ //# sourceMappingURL=outbox-event.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox-event.entity.js","sourceRoot":"","sources":["../../../../src/queues/outbox/src/outbox-event.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAiE;AACjE,+DAA2D;AAE3D,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wBAAU;IAEzC,EAAE,CAAS;IAGX,aAAa,CAAS;IAGtB,WAAW,CAAS;IAGpB,SAAS,CAAS;IAGlB,QAAQ,CAAS;IAGjB,OAAO,CAAU;IAOjB,MAAM,CAAe;IAGrB,QAAQ,CAAS;IAGjB,WAAW,CAAe;CAC3B,CAAA;AA/BY,kCAAW;AAEtB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;uCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;kDACa;AAGtB;IADC,IAAA,gBAAM,GAAE;;gDACW;AAGpB;IADC,IAAA,gBAAM,GAAE;;8CACS;AAGlB;IADC,IAAA,gBAAM,GAAE;;6CACQ;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;4CACT;AAOjB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,YAAY,CAAC,OAAO;KAC9B,CAAC;;2CACmB;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;6CACnB;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACpB;sBA9Bf,WAAW;IADvB,IAAA,gBAAM,EAAC,eAAe,CAAC;GACX,WAAW,CA+BvB"}
@@ -0,0 +1,10 @@
1
+ import { SnsPublisherService } from '../../sns-publisher/src/sns-publisher.service';
2
+ import { OutboxService } from './outbox.service';
3
+ export declare class OutboxDispatcher {
4
+ private readonly outboxService;
5
+ private readonly snsPublisher;
6
+ private readonly logger;
7
+ constructor(outboxService: OutboxService, snsPublisher: SnsPublisherService);
8
+ processPendingEvents(limit?: number): Promise<void>;
9
+ private processSingleEvent;
10
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var OutboxDispatcher_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.OutboxDispatcher = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const sns_publisher_service_1 = require("../../sns-publisher/src/sns-publisher.service");
16
+ const outbox_service_1 = require("./outbox.service");
17
+ let OutboxDispatcher = OutboxDispatcher_1 = class OutboxDispatcher {
18
+ outboxService;
19
+ snsPublisher;
20
+ logger = new common_1.Logger(OutboxDispatcher_1.name);
21
+ constructor(outboxService, snsPublisher) {
22
+ this.outboxService = outboxService;
23
+ this.snsPublisher = snsPublisher;
24
+ }
25
+ async processPendingEvents(limit = 50) {
26
+ const pendingEvents = await this.outboxService.findPending(limit);
27
+ for (const ev of pendingEvents) {
28
+ await this.processSingleEvent(ev);
29
+ }
30
+ }
31
+ async processSingleEvent(ev) {
32
+ try {
33
+ await this.snsPublisher.publish({
34
+ topicArn: ev.topicArn,
35
+ payload: ev.payload,
36
+ });
37
+ await this.outboxService.markAsSent(ev.id);
38
+ this.logger.log(`Outbox event ${ev.id} sent successfully`);
39
+ }
40
+ catch (error) {
41
+ this.logger.error(`Error sending outbox event ${ev.id}: ${error.message}`);
42
+ await this.outboxService.markAsFailed(ev.id);
43
+ }
44
+ }
45
+ };
46
+ exports.OutboxDispatcher = OutboxDispatcher;
47
+ exports.OutboxDispatcher = OutboxDispatcher = OutboxDispatcher_1 = __decorate([
48
+ (0, common_1.Injectable)(),
49
+ __metadata("design:paramtypes", [outbox_service_1.OutboxService,
50
+ sns_publisher_service_1.SnsPublisherService])
51
+ ], OutboxDispatcher);
52
+ //# sourceMappingURL=outbox.dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.dispatcher.js","sourceRoot":"","sources":["../../../../src/queues/outbox/src/outbox.dispatcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,2CAAoD;AACpD,yFAAoF;AACpF,qDAAiD;AAI1C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAIR;IACA;IAJF,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAE5D,YACmB,aAA4B,EAC5B,YAAiC;QADjC,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAqB;IACjD,CAAC;IAEJ,KAAK,CAAC,oBAAoB,CAAC,KAAK,GAAG,EAAE;QACnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAAe;QAC9C,IAAI,CAAC;YAGH,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBAC9B,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,OAAO,EAAE,EAAE,CAAC,OAAO;aACpB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,EAAE,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF,CAAA;AA/BY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAKuB,8BAAa;QACd,2CAAmB;GALzC,gBAAgB,CA+B5B"}
@@ -0,0 +1,8 @@
1
+ import { SnsEventCatalog } from '../../sns-publisher/src/sns.catalog';
2
+ export interface CreateOutboxEventOptions<T = unknown> {
3
+ aggregateType: string;
4
+ aggregateId: string;
5
+ eventType: SnsEventCatalog;
6
+ topicArn: string;
7
+ payload: T;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=outbox.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.interfaces.js","sourceRoot":"","sources":["../../../../src/queues/outbox/src/outbox.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare class OutboxModule {
2
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OutboxModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const typeorm_1 = require("@nestjs/typeorm");
12
+ const outbox_event_entity_1 = require("./outbox-event.entity");
13
+ const outbox_service_1 = require("./outbox.service");
14
+ let OutboxModule = class OutboxModule {
15
+ };
16
+ exports.OutboxModule = OutboxModule;
17
+ exports.OutboxModule = OutboxModule = __decorate([
18
+ (0, common_1.Module)({
19
+ imports: [typeorm_1.TypeOrmModule.forFeature([outbox_event_entity_1.OutboxEvent])],
20
+ providers: [outbox_service_1.OutboxService],
21
+ exports: [outbox_service_1.OutboxService],
22
+ })
23
+ ], OutboxModule);
24
+ //# sourceMappingURL=outbox.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.module.js","sourceRoot":"","sources":["../../../../src/queues/outbox/src/outbox.module.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAAwC;AACxC,6CAAgD;AAChD,+DAAoD;AACpD,qDAAiD;AAO1C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,iCAAW,CAAC,CAAC,CAAC;QAClD,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,12 @@
1
+ import { EntityManager, Repository } from 'typeorm';
2
+ import { CreateOutboxEventOptions } from '../src/outbox.interfaces';
3
+ import { OutboxEvent } from './outbox-event.entity';
4
+ export declare class OutboxService {
5
+ private readonly outboxRepo;
6
+ constructor(outboxRepo: Repository<OutboxEvent>);
7
+ createWithManager<T>(manager: EntityManager, options: CreateOutboxEventOptions<T>): Promise<OutboxEvent>;
8
+ create<T>(options: CreateOutboxEventOptions<T>): Promise<OutboxEvent>;
9
+ findPending(limit?: number): Promise<OutboxEvent[]>;
10
+ markAsSent(id: string): Promise<void>;
11
+ markAsFailed(id: string): Promise<void>;
12
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OutboxService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("typeorm");
18
+ const typeorm_2 = require("@nestjs/typeorm");
19
+ const outbox_event_entity_1 = require("./outbox-event.entity");
20
+ let OutboxService = class OutboxService {
21
+ outboxRepo;
22
+ constructor(outboxRepo) {
23
+ this.outboxRepo = outboxRepo;
24
+ }
25
+ async createWithManager(manager, options) {
26
+ const event = manager.create(outbox_event_entity_1.OutboxEvent, {
27
+ aggregateType: options.aggregateType,
28
+ aggregateId: options.aggregateId,
29
+ eventType: options.eventType,
30
+ topicArn: options.topicArn,
31
+ payload: options.payload,
32
+ status: outbox_event_entity_1.OutboxStatus.PENDING,
33
+ });
34
+ return manager.save(outbox_event_entity_1.OutboxEvent, event);
35
+ }
36
+ async create(options) {
37
+ const event = this.outboxRepo.create({
38
+ aggregateType: options.aggregateType,
39
+ aggregateId: options.aggregateId,
40
+ eventType: options.eventType,
41
+ topicArn: options.topicArn,
42
+ payload: options.payload,
43
+ status: outbox_event_entity_1.OutboxStatus.PENDING,
44
+ });
45
+ return this.outboxRepo.save(event);
46
+ }
47
+ async findPending(limit = 50) {
48
+ return this.outboxRepo.find({
49
+ where: { status: outbox_event_entity_1.OutboxStatus.PENDING },
50
+ order: { createdAt: 'ASC' },
51
+ take: limit,
52
+ });
53
+ }
54
+ async markAsSent(id) {
55
+ await this.outboxRepo.update(id, {
56
+ status: outbox_event_entity_1.OutboxStatus.SENT,
57
+ processedAt: new Date(),
58
+ });
59
+ }
60
+ async markAsFailed(id) {
61
+ await this.outboxRepo.update(id, {
62
+ status: outbox_event_entity_1.OutboxStatus.FAILED,
63
+ attempts: () => 'attempts + 1',
64
+ });
65
+ }
66
+ };
67
+ exports.OutboxService = OutboxService;
68
+ exports.OutboxService = OutboxService = __decorate([
69
+ (0, common_1.Injectable)(),
70
+ __param(0, (0, typeorm_2.InjectRepository)(outbox_event_entity_1.OutboxEvent)),
71
+ __metadata("design:paramtypes", [typeorm_1.Repository])
72
+ ], OutboxService);
73
+ //# sourceMappingURL=outbox.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.service.js","sourceRoot":"","sources":["../../../../src/queues/outbox/src/outbox.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA4C;AAC5C,qCAAoD;AACpD,6CAAmD;AAEnD,+DAAkE;AAG3D,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGL;IAFnB,YAEmB,UAAmC;QAAnC,eAAU,GAAV,UAAU,CAAyB;IACnD,CAAC;IAKJ,KAAK,CAAC,iBAAiB,CACrB,OAAsB,EACtB,OAAoC;QAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,iCAAW,EAAE;YACxC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,kCAAY,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,iCAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAKD,KAAK,CAAC,MAAM,CAAI,OAAoC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACnC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,kCAAY,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,kCAAY,CAAC,OAAO,EAAE;YACvC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC3B,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE;YAC/B,MAAM,EAAE,kCAAY,CAAC,IAAI;YACzB,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE;YAC/B,MAAM,EAAE,kCAAY,CAAC,MAAM;YAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc;SAC/B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjEY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,iCAAW,CAAC,CAAA;qCACD,oBAAU;GAH9B,aAAa,CAiEzB"}
@@ -0,0 +1,3 @@
1
+ export * from './sns-publisher.module';
2
+ export * from './sns-publisher.service';
3
+ export * from './sns.interfaces';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./sns-publisher.module"), exports);
18
+ __exportStar(require("./sns-publisher.service"), exports);
19
+ __exportStar(require("./sns.interfaces"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/queues/sns-publisher/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,yDAAuC;AACvC,0DAAwC;AACxC,mDAAiC"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { SnsModuleOptions } from './sns.interfaces';
3
+ export declare class SnsPublisherModule {
4
+ static register(options: SnsModuleOptions): DynamicModule;
5
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var SnsPublisherModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SnsPublisherModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const client_sns_1 = require("@aws-sdk/client-sns");
13
+ const sns_constants_1 = require("./sns.constants");
14
+ const sns_publisher_service_1 = require("./sns-publisher.service");
15
+ let SnsPublisherModule = SnsPublisherModule_1 = class SnsPublisherModule {
16
+ static register(options) {
17
+ return {
18
+ module: SnsPublisherModule_1,
19
+ providers: [
20
+ {
21
+ provide: sns_constants_1.SNS_MODULE_OPTIONS,
22
+ useValue: options,
23
+ },
24
+ {
25
+ provide: sns_constants_1.SNS_CLIENT,
26
+ useFactory: (opts) => {
27
+ return new client_sns_1.SNSClient({
28
+ region: opts.region,
29
+ });
30
+ },
31
+ inject: [sns_constants_1.SNS_MODULE_OPTIONS],
32
+ },
33
+ sns_publisher_service_1.SnsPublisherService,
34
+ ],
35
+ exports: [sns_publisher_service_1.SnsPublisherService],
36
+ };
37
+ }
38
+ };
39
+ exports.SnsPublisherModule = SnsPublisherModule;
40
+ exports.SnsPublisherModule = SnsPublisherModule = SnsPublisherModule_1 = __decorate([
41
+ (0, common_1.Module)({})
42
+ ], SnsPublisherModule);
43
+ //# sourceMappingURL=sns-publisher.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sns-publisher.module.js","sourceRoot":"","sources":["../../../../src/queues/sns-publisher/src/sns-publisher.module.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,2CAAuD;AACvD,oDAAgD;AAEhD,mDAAiE;AACjE,mEAA8D;AAGvD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,OAAyB;QACvC,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,kCAAkB;oBAC3B,QAAQ,EAAE,OAAO;iBAClB;gBACD;oBACE,OAAO,EAAE,0BAAU;oBACnB,UAAU,EAAE,CAAC,IAAsB,EAAE,EAAE;wBACrC,OAAO,IAAI,sBAAS,CAAC;4BACnB,MAAM,EAAE,IAAI,CAAC,MAAM;yBAEpB,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,EAAE,CAAC,kCAAkB,CAAC;iBAC7B;gBACD,2CAAmB;aACpB;YACD,OAAO,EAAE,CAAC,2CAAmB,CAAC;SAC/B,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,kBAAkB,CAwB9B"}
@@ -0,0 +1,10 @@
1
+ import { SNSClient } from '@aws-sdk/client-sns';
2
+ import { PublishDomainEventOptions, PublishMessageOptions, SnsModuleOptions } from './sns.interfaces';
3
+ export declare class SnsPublisherService {
4
+ private readonly snsClient;
5
+ private readonly options;
6
+ private readonly logger;
7
+ constructor(snsClient: SNSClient, options: SnsModuleOptions);
8
+ publish<T>(options: PublishMessageOptions<T>): Promise<string>;
9
+ publishDomainEvent<T>(options: PublishDomainEventOptions<T>): Promise<string>;
10
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var SnsPublisherService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.SnsPublisherService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const client_sns_1 = require("@aws-sdk/client-sns");
19
+ const sns_constants_1 = require("./sns.constants");
20
+ let SnsPublisherService = SnsPublisherService_1 = class SnsPublisherService {
21
+ snsClient;
22
+ options;
23
+ logger = new common_1.Logger(SnsPublisherService_1.name);
24
+ constructor(snsClient, options) {
25
+ this.snsClient = snsClient;
26
+ this.options = options;
27
+ }
28
+ async publish(options) {
29
+ const topicArn = options.topicArn ?? this.options.defaultTopicArn;
30
+ if (!topicArn) {
31
+ throw new Error('No se especificó topicArn y no hay defaultTopicArn configurado en el módulo.');
32
+ }
33
+ const message = JSON.stringify(options.payload);
34
+ const messageAttributes = options.attributes &&
35
+ Object.entries(options.attributes).reduce((acc, [key, value]) => ({
36
+ ...acc,
37
+ [key]: {
38
+ DataType: 'String',
39
+ StringValue: value,
40
+ },
41
+ }), {});
42
+ try {
43
+ const command = new client_sns_1.PublishCommand({
44
+ TopicArn: topicArn,
45
+ Message: message,
46
+ MessageAttributes: messageAttributes,
47
+ MessageGroupId: options.messageGroupId,
48
+ MessageDeduplicationId: options.messageDeduplicationId,
49
+ });
50
+ const response = await this.snsClient.send(command);
51
+ const messageId = response.MessageId ?? '';
52
+ this.logger.log(`Mensaje publicado en SNS. TopicArn=${topicArn}, MessageId=${messageId}`);
53
+ return messageId;
54
+ }
55
+ catch (error) {
56
+ this.logger.error(`Error publicando mensaje en SNS. TopicArn=${topicArn}`, error.stack);
57
+ throw error;
58
+ }
59
+ }
60
+ async publishDomainEvent(options) {
61
+ const envelope = {
62
+ event: options.event,
63
+ version: options.version ?? '1.0',
64
+ timestamp: options.timestamp ?? new Date().toISOString(),
65
+ data: options.payload,
66
+ };
67
+ const attributes = {
68
+ eventType: envelope.event,
69
+ version: envelope.version,
70
+ ...(options.attributes ?? {}),
71
+ };
72
+ return this.publish({
73
+ topicArn: options.topicArn,
74
+ payload: envelope,
75
+ attributes,
76
+ messageGroupId: options.messageGroupId,
77
+ messageDeduplicationId: options.messageDeduplicationId,
78
+ });
79
+ }
80
+ };
81
+ exports.SnsPublisherService = SnsPublisherService;
82
+ exports.SnsPublisherService = SnsPublisherService = SnsPublisherService_1 = __decorate([
83
+ (0, common_1.Injectable)(),
84
+ __param(0, (0, common_1.Inject)(sns_constants_1.SNS_CLIENT)),
85
+ __param(1, (0, common_1.Inject)(sns_constants_1.SNS_MODULE_OPTIONS)),
86
+ __metadata("design:paramtypes", [client_sns_1.SNSClient, Object])
87
+ ], SnsPublisherService);
88
+ //# sourceMappingURL=sns-publisher.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sns-publisher.service.js","sourceRoot":"","sources":["../../../../src/queues/sns-publisher/src/sns-publisher.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export declare enum SnsTopicCatalog {
2
+ CUSTOMERS = "customers.events",
3
+ ORDERS = "orders.events",
4
+ INVENTORY = "inventory.events",
5
+ NOTIFICATIONS = "notifications.events"
6
+ }
7
+ export declare enum SnsEventCatalog {
8
+ CustomerCreated = "CustomerCreated",
9
+ CustomerUpdated = "CustomerUpdated",
10
+ CustomerOnboarded = "CustomerOnboarded",
11
+ CustomerDeleted = "CustomerDeleted",
12
+ OrderPlaced = "OrderPlaced",
13
+ OrderCancelled = "OrderCancelled",
14
+ OrderCompleted = "OrderCompleted",
15
+ OrderFailed = "OrderFailed",
16
+ StockLowAlert = "StockLowAlert",
17
+ InventoryRebalanced = "InventoryRebalanced",
18
+ InventoryAdjusted = "InventoryAdjusted",
19
+ NotificationSent = "NotificationSent",
20
+ NotificationFailed = "NotificationFailed",
21
+ NotificationDelivered = "NotificationDelivered"
22
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnsEventCatalog = exports.SnsTopicCatalog = void 0;
4
+ var SnsTopicCatalog;
5
+ (function (SnsTopicCatalog) {
6
+ SnsTopicCatalog["CUSTOMERS"] = "customers.events";
7
+ SnsTopicCatalog["ORDERS"] = "orders.events";
8
+ SnsTopicCatalog["INVENTORY"] = "inventory.events";
9
+ SnsTopicCatalog["NOTIFICATIONS"] = "notifications.events";
10
+ })(SnsTopicCatalog || (exports.SnsTopicCatalog = SnsTopicCatalog = {}));
11
+ var SnsEventCatalog;
12
+ (function (SnsEventCatalog) {
13
+ SnsEventCatalog["CustomerCreated"] = "CustomerCreated";
14
+ SnsEventCatalog["CustomerUpdated"] = "CustomerUpdated";
15
+ SnsEventCatalog["CustomerOnboarded"] = "CustomerOnboarded";
16
+ SnsEventCatalog["CustomerDeleted"] = "CustomerDeleted";
17
+ SnsEventCatalog["OrderPlaced"] = "OrderPlaced";
18
+ SnsEventCatalog["OrderCancelled"] = "OrderCancelled";
19
+ SnsEventCatalog["OrderCompleted"] = "OrderCompleted";
20
+ SnsEventCatalog["OrderFailed"] = "OrderFailed";
21
+ SnsEventCatalog["StockLowAlert"] = "StockLowAlert";
22
+ SnsEventCatalog["InventoryRebalanced"] = "InventoryRebalanced";
23
+ SnsEventCatalog["InventoryAdjusted"] = "InventoryAdjusted";
24
+ SnsEventCatalog["NotificationSent"] = "NotificationSent";
25
+ SnsEventCatalog["NotificationFailed"] = "NotificationFailed";
26
+ SnsEventCatalog["NotificationDelivered"] = "NotificationDelivered";
27
+ })(SnsEventCatalog || (exports.SnsEventCatalog = SnsEventCatalog = {}));
28
+ //# sourceMappingURL=sns.catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sns.catalog.js","sourceRoot":"","sources":["../../../../src/queues/sns-publisher/src/sns.catalog.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,iDAA8B,CAAA;IAC9B,2CAAwB,CAAA;IACxB,iDAA8B,CAAA;IAC9B,yDAAsC,CAAA;AACxC,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAED,IAAY,eAsBX;AAtBD,WAAY,eAAe;IAEzB,sDAAmC,CAAA;IACnC,sDAAmC,CAAA;IACnC,0DAAuC,CAAA;IACvC,sDAAmC,CAAA;IAGnC,8CAA2B,CAAA;IAC3B,oDAAiC,CAAA;IACjC,oDAAiC,CAAA;IACjC,8CAA2B,CAAA;IAG3B,kDAA+B,CAAA;IAC/B,8DAA2C,CAAA;IAC3C,0DAAuC,CAAA;IAGvC,wDAAqC,CAAA;IACrC,4DAAyC,CAAA;IACzC,kEAA+C,CAAA;AACjD,CAAC,EAtBW,eAAe,+BAAf,eAAe,QAsB1B"}
@@ -0,0 +1,2 @@
1
+ export declare const SNS_MODULE_OPTIONS = "SNS_MODULE_OPTIONS";
2
+ export declare const SNS_CLIENT = "SNS_CLIENT";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SNS_CLIENT = exports.SNS_MODULE_OPTIONS = void 0;
4
+ exports.SNS_MODULE_OPTIONS = 'SNS_MODULE_OPTIONS';
5
+ exports.SNS_CLIENT = 'SNS_CLIENT';
6
+ //# sourceMappingURL=sns.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sns.constants.js","sourceRoot":"","sources":["../../../../src/queues/sns-publisher/src/sns.constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,UAAU,GAAG,YAAY,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { SnsEventCatalog } from '../../sns-publisher/src/sns.catalog';
2
+ export interface SnsModuleOptions {
3
+ region: string;
4
+ defaultTopicArn?: string;
5
+ }
6
+ export interface PublishMessageOptions<T = unknown> {
7
+ payload: T;
8
+ topicArn?: string;
9
+ attributes?: Record<string, string>;
10
+ messageGroupId?: string;
11
+ messageDeduplicationId?: string;
12
+ }
13
+ export interface SnsMessageEnvelope<T> {
14
+ event: SnsEventCatalog;
15
+ version: string;
16
+ timestamp: string;
17
+ data: T;
18
+ }
19
+ export interface PublishDomainEventOptions<T = unknown> {
20
+ event: SnsEventCatalog;
21
+ payload: T;
22
+ version?: string;
23
+ timestamp?: string;
24
+ topicArn?: string;
25
+ attributes?: Record<string, string>;
26
+ messageGroupId?: string;
27
+ messageDeduplicationId?: string;
28
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=sns.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sns.interfaces.js","sourceRoot":"","sources":["../../../../src/queues/sns-publisher/src/sns.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export { SqsConsumerModule } from './sqs-consumer.module';
2
+ export { SQS_CLIENT, SQS_MODULE_OPTIONS, SQS_MESSAGE_HANDLERS, SQS_QUEUE_URL, SQS_FEATURE_OPTIONS, } from './sqs-consumer.constants';
3
+ export { SqsModuleOptions, SqsFeatureOptions, SqsFeatureAsyncOptions, SqsResolvedOptions, ValidatedSqsMessage, ConsumerStats, DEFAULT_SQS_OPTIONS, } from './interfaces/sqs-consumer.interfaces';
4
+ export { SqsMessageHandler, HandlerResult, } from './interfaces/message-handler.interface';
5
+ export { SqsPollingService } from './services/sqs-polling.service';
6
+ export { SqsMessageValidatorService, SqsValidationError, } from './services/sqs-message-validator.service';