@seidor-cloud-produtos/orbit-backend-lib 2.0.111 → 2.0.114

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 (83) hide show
  1. package/dist/clean-arch/application/queue/queue.d.ts +8 -0
  2. package/dist/clean-arch/domain/events/consistency-event/events-enum.d.ts +27 -1
  3. package/dist/clean-arch/domain/events/consistency-event/events-enum.js +27 -1
  4. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-created.d.ts +9 -0
  5. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-created.js +2 -0
  6. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-entity-event.d.ts +30 -0
  7. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-entity-event.js +2 -0
  8. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-upserted.d.ts +9 -0
  9. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-upserted.js +2 -0
  10. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-created.d.ts +9 -0
  11. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-created.js +2 -0
  12. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-entity-event.d.ts +8 -8
  13. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-upserted.d.ts +9 -0
  14. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-upserted.js +2 -0
  15. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-created.d.ts +9 -0
  16. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-created.js +2 -0
  17. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-entity-event.d.ts +26 -0
  18. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-entity-event.js +2 -0
  19. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-upserted.d.ts +9 -0
  20. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-upserted.js +2 -0
  21. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-created.d.ts +9 -0
  22. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-created.js +2 -0
  23. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-entity-event.d.ts +10 -0
  24. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-entity-event.js +2 -0
  25. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-upserted.d.ts +9 -0
  26. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-upserted.js +2 -0
  27. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-entity-event.d.ts +24 -50
  28. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-associated.d.ts +1 -1
  29. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-entity-event.d.ts +9 -1
  30. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-upserted.d.ts +9 -0
  31. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-upserted.js +2 -0
  32. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-created.d.ts +9 -0
  33. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-created.js +2 -0
  34. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-entity-event.d.ts +5 -0
  35. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-entity-event.js +2 -0
  36. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-created.d.ts +9 -0
  37. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-created.js +2 -0
  38. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-entity-event.d.ts +11 -0
  39. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-entity-event.js +2 -0
  40. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-updated.d.ts +9 -0
  41. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-updated.js +2 -0
  42. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-created.d.ts +9 -0
  43. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-created.js +2 -0
  44. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-entity-event.d.ts +14 -0
  45. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-entity-event.js +2 -0
  46. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-created.d.ts +9 -0
  47. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-created.js +2 -0
  48. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-entity-event.d.ts +13 -0
  49. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-entity-event.js +2 -0
  50. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-updated.d.ts +9 -0
  51. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-updated.js +2 -0
  52. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-created.d.ts +9 -0
  53. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-created.js +2 -0
  54. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-entity-event.d.ts +14 -0
  55. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-entity-event.js +2 -0
  56. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-updated.d.ts +9 -0
  57. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-updated.js +2 -0
  58. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-entity-event.d.ts +8 -0
  59. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-entity-event.js +2 -0
  60. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-updated.d.ts +9 -0
  61. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-updated.js +2 -0
  62. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-entity-event.d.ts +10 -0
  63. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-entity-event.js +2 -0
  64. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-updated.d.ts +9 -0
  65. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-updated.js +2 -0
  66. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-forgot-password.d.ts +9 -0
  67. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-forgot-password.js +2 -0
  68. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-role-entity-event.d.ts +9 -0
  69. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-role-entity-event.js +2 -0
  70. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-created.d.ts +9 -0
  71. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-created.js +2 -0
  72. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-updated.d.ts +9 -0
  73. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-updated.js +2 -0
  74. package/dist/clean-arch/domain/interfaces/country.d.ts +1 -0
  75. package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.d.ts +27 -1
  76. package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.js +28 -0
  77. package/dist/clean-arch/infra/queue/in-memory/in-memory-queue.d.ts +4 -0
  78. package/dist/clean-arch/infra/queue/in-memory/in-memory-queue.js +7 -0
  79. package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.d.ts +10 -0
  80. package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.js +45 -0
  81. package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.spec.js +38 -0
  82. package/dist/static/countries.js +241 -0
  83. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ export interface TenantEntityPayload {
2
+ id: string;
3
+ name: {
4
+ value: string;
5
+ };
6
+ pk: {
7
+ value: string;
8
+ };
9
+ description: string;
10
+ whiteLabel?: string | null;
11
+ createdAt: string;
12
+ updatedAt: string;
13
+ inactiveAt?: string | null;
14
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../../../consistency-event';
3
+ import { EventsName } from '../../../events-enum';
4
+ import { TenantEntityPayload } from './tenant-entity-event';
5
+ export interface TenantUpdatedMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.TENANT_UPDATED;
7
+ origin: AuthorizerHeaders;
8
+ payload: TenantEntityPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ export interface TenantRoleEntityPayload {
2
+ id: string;
3
+ tenantId: string;
4
+ roleId: string;
5
+ createdAt: string;
6
+ updatedAt: string;
7
+ inactiveAt?: string | null;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../../../consistency-event';
3
+ import { EventsName } from '../../../events-enum';
4
+ import { TenantRoleEntityPayload } from './tenant-role-entity-event';
5
+ export interface TenantRoleUpdatedMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.TENANT_ROLE_UPDATED;
7
+ origin: AuthorizerHeaders;
8
+ payload: TenantRoleEntityPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ export interface TenantUserEntityPayload {
2
+ id: string;
3
+ tenantId: string;
4
+ userId: string;
5
+ main?: boolean;
6
+ isFavorite?: boolean;
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ inactiveAt?: string | null;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../../../consistency-event';
3
+ import { EventsName } from '../../../events-enum';
4
+ import { TenantUserEntityPayload } from './tenant-user-entity-event';
5
+ export interface TenantUserUpdatedMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.TENANT_USER_UPDATED;
7
+ origin: AuthorizerHeaders;
8
+ payload: TenantUserEntityPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../../../consistency-event';
3
+ import { EventsName } from '../../../events-enum';
4
+ import { UserEntityPayload } from './user-entity-event';
5
+ export interface UserForgotPasswordMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.USER_FORGOT_PASSWORD;
7
+ origin: AuthorizerHeaders;
8
+ payload: UserEntityPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ export interface UserTenantRoleEntityPayload {
2
+ id: string;
3
+ userId: string;
4
+ roleId: string;
5
+ tenantId: string;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ inactiveAt?: string | null;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../../../consistency-event';
3
+ import { EventsName } from '../../../events-enum';
4
+ import { UserTenantRoleEntityPayload } from './user-tenant-role-entity-event';
5
+ export interface UserTenantRolesCreatedMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.USER_TENANT_ROLES_CREATED;
7
+ origin: AuthorizerHeaders;
8
+ payload: UserTenantRoleEntityPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../../../consistency-event';
3
+ import { EventsName } from '../../../events-enum';
4
+ import { UserTenantRoleEntityPayload } from './user-tenant-role-entity-event';
5
+ export interface UserTenantRolesUpdatedMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.USER_TENANT_ROLES_UPDATED;
7
+ origin: AuthorizerHeaders;
8
+ payload: UserTenantRoleEntityPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,5 @@
1
1
  export interface Country {
2
2
  code: string;
3
+ alpha2?: string;
3
4
  name: string;
4
5
  }
@@ -1,10 +1,36 @@
1
1
  export declare const PREFIX = "consistency";
2
2
  export declare const TYPE = "fanout";
3
3
  export declare enum ExchangesEnum {
4
+ CONSISTENCY_ROLE_UPDATED = "consistency.portal-admin.role-updated.fanout",
5
+ CONSISTENCY_ROLE_CREATED = "consistency.portal-admin.role-created.fanout",
4
6
  CONSISTENCY_USER_TEMPORARY_PASSWORD_GENERATED = "consistency.user-temporary-password-generated.fanout",
7
+ CONSISTENCY_USER_CREATED = "consistency.portal-admin.user-created.fanout",
8
+ CONSISTENCY_USER_ROLES_ASSOCIATED = "consistency.portal-admin.user-roles-associated.fanout",
9
+ CONSISTENCY_USER_ROLES_DISSOCIATED = "consistency.portal-admin.user-roles-dissociated.fanout",
10
+ CONSISTENCY_USER_UPDATED = "consistency.portal-admin.user-updated.fanout",
11
+ CONSISTENCY_USER_TENANT_ROLES_UPDATED = "consistency.portal-admin.user-tenant-roles-updated.fanout",
12
+ CONSISTENCY_USER_TENANT_ROLES_CREATED = "consistency.portal-admin.user-tenant-roles-created.fanout",
13
+ CONSISTENCY_USER_FORGOT_PASSWORD = "consistency.portal-admin.user-forgot-password.fanout",
14
+ CONSISTENCY_TENANT_CREATED = "consistency.portal-admin.tenant-created.fanout",
15
+ CONSISTENCY_TENANT_UPDATED = "consistency.portal-admin.tenant-updated.fanout",
16
+ CONSISTENCY_TENANT_ROLE_UPDATED = "consistency.portal-admin.tenant-role-updated.fanout",
17
+ CONSISTENCY_TENANT_USER_UPDATED = "consistency.portal-admin.tenant-user-updated.fanout",
18
+ CONSISTENCY_AUTHORIZATION_CREATED = "consistency.portal-admin.authorization-created.fanout",
19
+ CONSISTENCY_AUTHORIZATION_UPDATED = "consistency.portal-admin.authorization-updated.fanout",
20
+ CONSISTENCY_EXTERNAL_PROVIDER_CREATED = "consistency.portal-admin.external-provider-created.fanout",
21
+ CONSISTENCY_ADDRESS_CREATED = "consistency.partner-service.address-created.fanout",
22
+ CONSISTENCY_ADDRESS_UPSERTED = "consistency.partner-service.address-upserted.fanout",
23
+ CONSISTENCY_BRANCH_CREATED = "consistency.partner-service.branch-created.fanout",
24
+ CONSISTENCY_BRANCH_UPSERTED = "consistency.partner-service.branch-upserted.fanout",
5
25
  CONSISTENCY_BRANCH_UPDATED = "consistency.partner-service.branch-updated.fanout",
26
+ CONSISTENCY_CONTACT_CREATED = "consistency.partner-service.contact-created.fanout",
27
+ CONSISTENCY_CONTACT_UPSERTED = "consistency.partner-service.contact-upserted.fanout",
28
+ CONSISTENCY_CUSTOMER_CREATED = "consistency.partner-service.customer-created.fanout",
29
+ CONSISTENCY_CUSTOMER_UPSERTED = "consistency.partner-service.customer-upserted.fanout",
6
30
  CONSISTENCY_PARTNER_UPDATED = "consistency.partner-service.partner-updated.fanout",
7
31
  CONSISTENCY_PARTNER_CREATED = "consistency.partner-service.partner-created.fanout",
8
32
  CONSISTENCY_PARTNER_UPSERTED = "consistency.partner-service.partner-upserted.fanout",
9
- CONSISTENCY_ROLE_ASSOCIATED = "consistency.partner-service.role-associated-to-partner.fanout"
33
+ CONSISTENCY_ROLE_ASSOCIATED = "consistency.partner-service.role-associated-to-partner.fanout",
34
+ CONSISTENCY_SUPPLIER_CREATED = "consistency.partner-service.supplier-created.fanout",
35
+ CONSISTENCY_ROLE_UPSERTED = "consistency.partner-service.role-upserted.fanout"
10
36
  }
@@ -6,10 +6,38 @@ exports.PREFIX = 'consistency';
6
6
  exports.TYPE = 'fanout';
7
7
  var ExchangesEnum;
8
8
  (function (ExchangesEnum) {
9
+ // portal-admin
10
+ ExchangesEnum["CONSISTENCY_ROLE_UPDATED"] = "consistency.portal-admin.role-updated.fanout";
11
+ ExchangesEnum["CONSISTENCY_ROLE_CREATED"] = "consistency.portal-admin.role-created.fanout";
9
12
  ExchangesEnum["CONSISTENCY_USER_TEMPORARY_PASSWORD_GENERATED"] = "consistency.user-temporary-password-generated.fanout";
13
+ ExchangesEnum["CONSISTENCY_USER_CREATED"] = "consistency.portal-admin.user-created.fanout";
14
+ ExchangesEnum["CONSISTENCY_USER_ROLES_ASSOCIATED"] = "consistency.portal-admin.user-roles-associated.fanout";
15
+ ExchangesEnum["CONSISTENCY_USER_ROLES_DISSOCIATED"] = "consistency.portal-admin.user-roles-dissociated.fanout";
16
+ ExchangesEnum["CONSISTENCY_USER_UPDATED"] = "consistency.portal-admin.user-updated.fanout";
17
+ ExchangesEnum["CONSISTENCY_USER_TENANT_ROLES_UPDATED"] = "consistency.portal-admin.user-tenant-roles-updated.fanout";
18
+ ExchangesEnum["CONSISTENCY_USER_TENANT_ROLES_CREATED"] = "consistency.portal-admin.user-tenant-roles-created.fanout";
19
+ ExchangesEnum["CONSISTENCY_USER_FORGOT_PASSWORD"] = "consistency.portal-admin.user-forgot-password.fanout";
20
+ ExchangesEnum["CONSISTENCY_TENANT_CREATED"] = "consistency.portal-admin.tenant-created.fanout";
21
+ ExchangesEnum["CONSISTENCY_TENANT_UPDATED"] = "consistency.portal-admin.tenant-updated.fanout";
22
+ ExchangesEnum["CONSISTENCY_TENANT_ROLE_UPDATED"] = "consistency.portal-admin.tenant-role-updated.fanout";
23
+ ExchangesEnum["CONSISTENCY_TENANT_USER_UPDATED"] = "consistency.portal-admin.tenant-user-updated.fanout";
24
+ ExchangesEnum["CONSISTENCY_AUTHORIZATION_CREATED"] = "consistency.portal-admin.authorization-created.fanout";
25
+ ExchangesEnum["CONSISTENCY_AUTHORIZATION_UPDATED"] = "consistency.portal-admin.authorization-updated.fanout";
26
+ ExchangesEnum["CONSISTENCY_EXTERNAL_PROVIDER_CREATED"] = "consistency.portal-admin.external-provider-created.fanout";
27
+ // partner-service
28
+ ExchangesEnum["CONSISTENCY_ADDRESS_CREATED"] = "consistency.partner-service.address-created.fanout";
29
+ ExchangesEnum["CONSISTENCY_ADDRESS_UPSERTED"] = "consistency.partner-service.address-upserted.fanout";
30
+ ExchangesEnum["CONSISTENCY_BRANCH_CREATED"] = "consistency.partner-service.branch-created.fanout";
31
+ ExchangesEnum["CONSISTENCY_BRANCH_UPSERTED"] = "consistency.partner-service.branch-upserted.fanout";
10
32
  ExchangesEnum["CONSISTENCY_BRANCH_UPDATED"] = "consistency.partner-service.branch-updated.fanout";
33
+ ExchangesEnum["CONSISTENCY_CONTACT_CREATED"] = "consistency.partner-service.contact-created.fanout";
34
+ ExchangesEnum["CONSISTENCY_CONTACT_UPSERTED"] = "consistency.partner-service.contact-upserted.fanout";
35
+ ExchangesEnum["CONSISTENCY_CUSTOMER_CREATED"] = "consistency.partner-service.customer-created.fanout";
36
+ ExchangesEnum["CONSISTENCY_CUSTOMER_UPSERTED"] = "consistency.partner-service.customer-upserted.fanout";
11
37
  ExchangesEnum["CONSISTENCY_PARTNER_UPDATED"] = "consistency.partner-service.partner-updated.fanout";
12
38
  ExchangesEnum["CONSISTENCY_PARTNER_CREATED"] = "consistency.partner-service.partner-created.fanout";
13
39
  ExchangesEnum["CONSISTENCY_PARTNER_UPSERTED"] = "consistency.partner-service.partner-upserted.fanout";
14
40
  ExchangesEnum["CONSISTENCY_ROLE_ASSOCIATED"] = "consistency.partner-service.role-associated-to-partner.fanout";
41
+ ExchangesEnum["CONSISTENCY_SUPPLIER_CREATED"] = "consistency.partner-service.supplier-created.fanout";
42
+ ExchangesEnum["CONSISTENCY_ROLE_UPSERTED"] = "consistency.partner-service.role-upserted.fanout";
15
43
  })(ExchangesEnum || (exports.ExchangesEnum = ExchangesEnum = {}));
@@ -18,6 +18,10 @@ export default class QueueInMemory implements Queue {
18
18
  * Armazena o evento na lista interna.
19
19
  */
20
20
  publish(exchangeName: string, domainEvent: DomainEvent): Promise<void>;
21
+ /**
22
+ * Armazena o evento na lista interna e retorna sucesso.
23
+ */
24
+ publishWaitForConfirms(exchangeName: string, domainEvent: DomainEvent): Promise<boolean>;
21
25
  }
22
26
  type PropsQueue = {
23
27
  exchangeName: string;
@@ -27,5 +27,12 @@ class QueueInMemory {
27
27
  async publish(exchangeName, domainEvent) {
28
28
  this.queues.push({ exchangeName, domainEvent });
29
29
  }
30
+ /**
31
+ * Armazena o evento na lista interna e retorna sucesso.
32
+ */
33
+ async publishWaitForConfirms(exchangeName, domainEvent) {
34
+ this.queues.push({ exchangeName, domainEvent });
35
+ return true;
36
+ }
30
37
  }
31
38
  exports.default = QueueInMemory;
@@ -87,6 +87,16 @@ export default class AmqpQueue implements QueueConnection {
87
87
  * tentar reenvio após reconexão.
88
88
  */
89
89
  publish(exchangeName: string, domainEvent: DomainEvent, configs?: Record<string, any>): Promise<void>;
90
+ /**
91
+ * Convenções aplicadas:
92
+ * - Routing key = `domainEvent.name`.
93
+ * - `persistent: true`.
94
+ * - TTL padrão de 14 dias quando `configs.expiration` é inválido.
95
+ *
96
+ * Se a publicação falhar retorna false. Não armazena mensagens em memória.
97
+ */
98
+ publishWaitForConfirms(exchangeName: string, domainEvent: DomainEvent, configs?: Record<string, any>): Promise<boolean>;
99
+ private publishToServerWaitForConfirms;
90
100
  private publishToServer;
91
101
  private static delayOperation;
92
102
  /**
@@ -213,6 +213,51 @@ class AmqpQueue {
213
213
  });
214
214
  }
215
215
  }
216
+ /**
217
+ * Convenções aplicadas:
218
+ * - Routing key = `domainEvent.name`.
219
+ * - `persistent: true`.
220
+ * - TTL padrão de 14 dias quando `configs.expiration` é inválido.
221
+ *
222
+ * Se a publicação falhar retorna false. Não armazena mensagens em memória.
223
+ */
224
+ async publishWaitForConfirms(exchangeName, domainEvent, configs) {
225
+ const buildedConfigs = configs || {};
226
+ const isValidExpiration = configs?.expiration === null || typeof configs?.expiration === 'number';
227
+ if (!isValidExpiration) {
228
+ const fourTeenDaysExpiration = 14 * 24 * 60 * 60 * 1000;
229
+ buildedConfigs.expiration = fourTeenDaysExpiration;
230
+ }
231
+ try {
232
+ const promises = [
233
+ this.publishToServerWaitForConfirms(exchangeName, domainEvent, buildedConfigs)
234
+ ];
235
+ if (this.socketOptions?.timeoutSeconds) {
236
+ promises.push(AmqpQueue.delayOperation(this.socketOptions.timeoutSeconds));
237
+ }
238
+ const result = await Promise.race(promises);
239
+ if (result instanceof Error) {
240
+ throw result;
241
+ }
242
+ return true;
243
+ }
244
+ catch (err) {
245
+ this.logger.info({
246
+ message: `⛔ Error to publish messages to: ${domainEvent.name}.`,
247
+ error: err,
248
+ });
249
+ return false;
250
+ }
251
+ }
252
+ async publishToServerWaitForConfirms(exchangeName, domainEvent, buildedConfigs) {
253
+ const channel = await this.connection.createConfirmChannel();
254
+ channel.publish(exchangeName, domainEvent.name || '', Buffer.from(JSON.stringify(domainEvent)), {
255
+ persistent: true,
256
+ ...buildedConfigs,
257
+ });
258
+ await channel.waitForConfirms();
259
+ await channel.close();
260
+ }
216
261
  async publishToServer(exchangeName, domainEvent, buildedConfigs) {
217
262
  const channel = await this.connection.createChannel();
218
263
  channel.publish(exchangeName, domainEvent.name || '', Buffer.from(JSON.stringify(domainEvent)), {
@@ -24,10 +24,12 @@ const createChannel = () => ({
24
24
  prefetch: vitest_1.vi.fn().mockResolvedValue(undefined),
25
25
  publish: vitest_1.vi.fn(),
26
26
  reject: vitest_1.vi.fn(),
27
+ waitForConfirms: vitest_1.vi.fn().mockResolvedValue(undefined),
27
28
  });
28
29
  const createConnection = (channel = createChannel()) => ({
29
30
  close: vitest_1.vi.fn().mockResolvedValue(undefined),
30
31
  createChannel: vitest_1.vi.fn().mockResolvedValue(channel),
32
+ createConfirmChannel: vitest_1.vi.fn().mockResolvedValue(channel),
31
33
  on: vitest_1.vi.fn(),
32
34
  removeAllListeners: vitest_1.vi.fn(),
33
35
  });
@@ -353,6 +355,42 @@ const createLogger = () => ({
353
355
  (0, vitest_1.expect)(queue['messagesInMemory']).toHaveLength(1);
354
356
  });
355
357
  });
358
+ (0, vitest_1.describe)('publishWaitForConfirms', () => {
359
+ (0, vitest_1.it)('should publish, wait for confirms and return true on success', async () => {
360
+ const channel = createChannel();
361
+ const connection = createConnection(channel);
362
+ const queue = new amqp_lib_1.default(undefined, 'amqp://broker', createLogger());
363
+ const event = { name: 'domain.event', payload: { id: '1' } };
364
+ queue['connection'] = connection;
365
+ const result = await queue.publishWaitForConfirms('exchange', event, {
366
+ expiration: 'invalid',
367
+ headers: { source: 'spec' },
368
+ });
369
+ (0, vitest_1.expect)(channel.publish).toHaveBeenCalledWith('exchange', 'domain.event', Buffer.from(JSON.stringify(event)), {
370
+ persistent: true,
371
+ expiration: FOURTEEN_DAYS_IN_MS,
372
+ headers: { source: 'spec' },
373
+ });
374
+ (0, vitest_1.expect)(channel.waitForConfirms).toHaveBeenCalledTimes(1);
375
+ (0, vitest_1.expect)(channel.close).toHaveBeenCalledTimes(1);
376
+ (0, vitest_1.expect)(result).toBe(true);
377
+ });
378
+ (0, vitest_1.it)('should catch error, log it and return false if publishToServerWaitForConfirms fails', async () => {
379
+ const logger = createLogger();
380
+ const channel = createChannel();
381
+ const connection = createConnection(channel);
382
+ const queue = new amqp_lib_1.default(undefined, 'amqp://broker', logger);
383
+ const event = { name: 'domain.event' };
384
+ channel.waitForConfirms.mockRejectedValue(new Error('Broker nacked or channel closed'));
385
+ queue['connection'] = connection;
386
+ const result = await queue.publishWaitForConfirms('exchange', event);
387
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith({
388
+ message: '⛔ Error to publish messages to: domain.event.',
389
+ error: vitest_1.expect.any(Error),
390
+ });
391
+ (0, vitest_1.expect)(result).toBe(false);
392
+ });
393
+ });
356
394
  (0, vitest_1.describe)('createConsumers', () => {
357
395
  (0, vitest_1.it)('should create exchanges, queues and bindings', async () => {
358
396
  const channel = createChannel();