@seidor-cloud-produtos/orbit-backend-lib 2.0.138 → 2.1.0

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 (242) hide show
  1. package/dist/clean-arch/application/cache/cache.d.ts +32 -0
  2. package/dist/clean-arch/application/cache/cache.js +24 -0
  3. package/dist/clean-arch/application/cache/cache.spec.d.ts +1 -0
  4. package/dist/clean-arch/application/cache/cache.spec.js +178 -0
  5. package/dist/clean-arch/application/cache/client.d.ts +23 -0
  6. package/dist/clean-arch/application/cache/client.js +11 -0
  7. package/dist/clean-arch/application/consistency-event-dispatcher/consistency-event-dispatcher.d.ts +9 -0
  8. package/dist/clean-arch/application/consistency-event-dispatcher/consistency-event-dispatcher.js +26 -0
  9. package/dist/clean-arch/application/logger/base-audit-logger.d.ts +10 -0
  10. package/dist/clean-arch/application/logger/base-audit-logger.js +28 -0
  11. package/dist/clean-arch/application/logger/index.d.ts +94 -6
  12. package/dist/clean-arch/application/logger/index.js +69 -7
  13. package/dist/clean-arch/application/logger/logger.spec.d.ts +1 -0
  14. package/dist/clean-arch/application/logger/logger.spec.js +204 -0
  15. package/dist/clean-arch/application/queue/handler.d.ts +28 -0
  16. package/dist/clean-arch/application/queue/handler.js +23 -0
  17. package/dist/clean-arch/application/queue/messages-in-memory.d.ts +6 -0
  18. package/dist/clean-arch/application/queue/queue-connection.d.ts +22 -0
  19. package/dist/clean-arch/application/queue/queue.d.ts +39 -0
  20. package/dist/clean-arch/domain/entities/entity.d.ts +3 -0
  21. package/dist/clean-arch/domain/entities/entity.js +35 -0
  22. package/dist/clean-arch/domain/entities/entity.spec.d.ts +1 -0
  23. package/dist/clean-arch/domain/entities/entity.spec.js +130 -0
  24. package/dist/clean-arch/domain/entities/watched-list.d.ts +1 -0
  25. package/dist/clean-arch/domain/entities/watched-list.js +9 -0
  26. package/dist/clean-arch/domain/events/consistency-event/consistency-event.d.ts +15 -0
  27. package/dist/clean-arch/domain/events/consistency-event/consistency-event.js +15 -0
  28. package/dist/clean-arch/domain/events/consistency-event/consistency-event.spec.d.ts +1 -0
  29. package/dist/clean-arch/domain/events/consistency-event/consistency-event.spec.js +99 -0
  30. package/dist/clean-arch/domain/events/consistency-event/events-enum.d.ts +98 -0
  31. package/dist/clean-arch/domain/events/consistency-event/events-enum.js +151 -0
  32. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-created.d.ts +9 -0
  33. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-created.js +2 -0
  34. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-entity-event.d.ts +30 -0
  35. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-entity-event.js +2 -0
  36. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-upserted.d.ts +9 -0
  37. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-upserted.js +2 -0
  38. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-associated.d.ts +9 -0
  39. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-associated.js +2 -0
  40. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-created.d.ts +9 -0
  41. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-created.js +2 -0
  42. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-entity-event.d.ts +38 -0
  43. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-entity-event.js +2 -0
  44. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-upserted.d.ts +9 -0
  45. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-upserted.js +2 -0
  46. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-created.d.ts +9 -0
  47. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-created.js +2 -0
  48. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-entity-event.d.ts +26 -0
  49. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-entity-event.js +2 -0
  50. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-upserted.d.ts +9 -0
  51. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-upserted.js +2 -0
  52. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-created.d.ts +9 -0
  53. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-created.js +2 -0
  54. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-entity-event.d.ts +10 -0
  55. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-entity-event.js +2 -0
  56. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-upserted.d.ts +9 -0
  57. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-upserted.js +2 -0
  58. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-created.d.ts +9 -0
  59. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-created.js +2 -0
  60. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-entity-event.d.ts +37 -0
  61. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-entity-event.js +2 -0
  62. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-updated.d.ts +9 -0
  63. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-updated.js +2 -0
  64. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-upserted.d.ts +9 -0
  65. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-upserted.js +2 -0
  66. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-associated.d.ts +9 -0
  67. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-associated.js +2 -0
  68. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-entity-event.d.ts +13 -0
  69. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-entity-event.js +2 -0
  70. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-upserted.d.ts +9 -0
  71. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-upserted.js +2 -0
  72. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-created.d.ts +9 -0
  73. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-created.js +2 -0
  74. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-entity-event.d.ts +5 -0
  75. package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-entity-event.js +2 -0
  76. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-created.d.ts +9 -0
  77. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-created.js +2 -0
  78. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-entity-event.d.ts +11 -0
  79. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-entity-event.js +2 -0
  80. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-updated.d.ts +9 -0
  81. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-updated.js +2 -0
  82. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-created.d.ts +9 -0
  83. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-created.js +2 -0
  84. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-entity-event.d.ts +14 -0
  85. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-entity-event.js +2 -0
  86. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-created.d.ts +9 -0
  87. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-created.js +2 -0
  88. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-entity-event.d.ts +13 -0
  89. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-entity-event.js +2 -0
  90. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-updated.d.ts +9 -0
  91. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-updated.js +2 -0
  92. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-created.d.ts +9 -0
  93. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-created.js +2 -0
  94. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-entity-event.d.ts +50 -0
  95. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-entity-event.js +2 -0
  96. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-updated.d.ts +9 -0
  97. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-updated.js +2 -0
  98. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-entity-event.d.ts +8 -0
  99. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-entity-event.js +2 -0
  100. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-updated.d.ts +9 -0
  101. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-updated.js +2 -0
  102. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-entity-event.d.ts +10 -0
  103. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-entity-event.js +2 -0
  104. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-updated.d.ts +9 -0
  105. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-updated.js +2 -0
  106. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-entity-event.d.ts +10 -0
  107. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-entity-event.js +2 -0
  108. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-forgot-password.d.ts +9 -0
  109. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-forgot-password.js +2 -0
  110. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-temporary-password-generated.d.ts +9 -0
  111. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-temporary-password-generated.js +2 -0
  112. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-role-entity-event.d.ts +9 -0
  113. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-role-entity-event.js +2 -0
  114. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-created.d.ts +9 -0
  115. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-created.js +2 -0
  116. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-updated.d.ts +9 -0
  117. package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-updated.js +2 -0
  118. package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-created.d.ts +9 -0
  119. package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-created.js +2 -0
  120. package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-entity-event.d.ts +9 -0
  121. package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-entity-event.js +2 -0
  122. package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-upserted.d.ts +9 -0
  123. package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-upserted.js +2 -0
  124. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-created.d.ts +9 -0
  125. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-created.js +2 -0
  126. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-deleted.d.ts +9 -0
  127. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-deleted.js +2 -0
  128. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-entity-event.d.ts +10 -0
  129. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-entity-event.js +2 -0
  130. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-updated.d.ts +9 -0
  131. package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-updated.js +2 -0
  132. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-created.d.ts +9 -0
  133. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-created.js +2 -0
  134. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-deleted.d.ts +9 -0
  135. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-deleted.js +2 -0
  136. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-entity-event.d.ts +38 -0
  137. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-entity-event.js +8 -0
  138. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-updated.d.ts +9 -0
  139. package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-updated.js +2 -0
  140. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-created.d.ts +9 -0
  141. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-created.js +2 -0
  142. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-event.d.ts +21 -0
  143. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-event.js +2 -0
  144. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-updated.d.ts +9 -0
  145. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-updated.js +2 -0
  146. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-upserted.d.ts +9 -0
  147. package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-upserted.js +2 -0
  148. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-created.d.ts +9 -0
  149. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-created.js +2 -0
  150. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-deleted.d.ts +9 -0
  151. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-deleted.js +2 -0
  152. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-entity-event.d.ts +27 -0
  153. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-entity-event.js +8 -0
  154. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-updated.d.ts +9 -0
  155. package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-updated.js +2 -0
  156. package/dist/clean-arch/domain/events/domain-event.d.ts +5 -0
  157. package/dist/clean-arch/domain/interfaces/country.d.ts +1 -0
  158. package/dist/clean-arch/domain/value-objects/password.spec.d.ts +1 -0
  159. package/dist/clean-arch/domain/value-objects/password.spec.js +90 -0
  160. package/dist/clean-arch/infra/adapters/http-adapters.spec.d.ts +1 -0
  161. package/dist/clean-arch/infra/adapters/http-adapters.spec.js +318 -0
  162. package/dist/clean-arch/infra/authorizations/authorizer.spec.js +43 -0
  163. package/dist/clean-arch/infra/cache/cache-clients.spec.d.ts +1 -0
  164. package/dist/clean-arch/infra/cache/cache-clients.spec.js +161 -0
  165. package/dist/clean-arch/infra/cache/cache-in-memory.d.ts +5 -0
  166. package/dist/clean-arch/infra/cache/cache-in-memory.js +6 -0
  167. package/dist/clean-arch/infra/cache/clients/node-cache.d.ts +17 -0
  168. package/dist/clean-arch/infra/cache/clients/node-cache.js +20 -2
  169. package/dist/clean-arch/infra/cache/clients/redis.d.ts +15 -0
  170. package/dist/clean-arch/infra/cache/clients/redis.js +11 -0
  171. package/dist/clean-arch/infra/consistency-event-dispatcher/amqp-consistency-event-dispatcher.d.ts +8 -0
  172. package/dist/clean-arch/infra/consistency-event-dispatcher/amqp-consistency-event-dispatcher.js +18 -0
  173. package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.d.ts +50 -0
  174. package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.js +58 -0
  175. package/dist/clean-arch/infra/consistency-event-dispatcher/in-memory-consistency-event-dispatcher.d.ts +7 -0
  176. package/dist/clean-arch/infra/consistency-event-dispatcher/in-memory-consistency-event-dispatcher.js +15 -0
  177. package/dist/clean-arch/infra/http/controller.spec.js +170 -51
  178. package/dist/clean-arch/infra/http/handle-authorizer-headers.d.ts +25 -0
  179. package/dist/clean-arch/infra/http/handle-authorizer-headers.js +29 -0
  180. package/dist/clean-arch/infra/http/handle-user-headers.d.ts +5 -0
  181. package/dist/clean-arch/infra/http/handle-user-headers.js +2 -0
  182. package/dist/clean-arch/infra/http/helpers.spec.d.ts +1 -0
  183. package/dist/clean-arch/infra/http/helpers.spec.js +136 -0
  184. package/dist/clean-arch/infra/http/net.spec.d.ts +1 -0
  185. package/dist/clean-arch/infra/http/net.spec.js +46 -0
  186. package/dist/clean-arch/infra/logger/logger-in-memory.d.ts +31 -2
  187. package/dist/clean-arch/infra/logger/logger-in-memory.js +21 -2
  188. package/dist/clean-arch/infra/logger/logger-orbit.d.ts +81 -5
  189. package/dist/clean-arch/infra/logger/logger-orbit.js +63 -6
  190. package/dist/clean-arch/infra/logger/logger-orbit.spec.d.ts +1 -0
  191. package/dist/clean-arch/infra/logger/logger-orbit.spec.js +122 -0
  192. package/dist/clean-arch/infra/orbit-http-client/orbit-axios-client/orbit-axios-client.spec.d.ts +1 -0
  193. package/dist/clean-arch/infra/orbit-http-client/orbit-axios-client/orbit-axios-client.spec.js +143 -0
  194. package/dist/clean-arch/infra/orbit-notification-client/discord-client.spec.d.ts +1 -0
  195. package/dist/clean-arch/infra/orbit-notification-client/discord-client.spec.js +58 -0
  196. package/dist/clean-arch/infra/queue/create-consumers.d.ts +18 -0
  197. package/dist/clean-arch/infra/queue/create-consumers.js +15 -0
  198. package/dist/clean-arch/infra/queue/create-queues.d.ts +11 -0
  199. package/dist/clean-arch/infra/queue/create-queues.js +19 -0
  200. package/dist/clean-arch/infra/queue/in-memory/in-memory-queue.d.ts +16 -0
  201. package/dist/clean-arch/infra/queue/in-memory/in-memory-queue.js +19 -0
  202. package/dist/clean-arch/infra/queue/queue-controller.d.ts +14 -0
  203. package/dist/clean-arch/infra/queue/queue-controller.js +8 -0
  204. package/dist/clean-arch/infra/queue/queue-utils.spec.d.ts +1 -0
  205. package/dist/clean-arch/infra/queue/queue-utils.spec.js +170 -0
  206. package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.d.ts +5 -1
  207. package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.js +23 -12
  208. package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.spec.js +504 -89
  209. package/dist/clean-arch/infra/queue/rabbitmq/create-queues.d.ts +10 -0
  210. package/dist/clean-arch/infra/queue/rabbitmq/create-queues.js +7 -0
  211. package/dist/clean-arch/infra/queue/rabbitmq/types.d.ts +7 -1
  212. package/dist/clean-arch/infra/queue/worker.d.ts +9 -0
  213. package/dist/clean-arch/infra/queue/worker.js +9 -0
  214. package/dist/clean-arch/infra/scaledjob/amqp/runner.d.ts +35 -2
  215. package/dist/clean-arch/infra/scaledjob/amqp/runner.js +38 -3
  216. package/dist/clean-arch/infra/scaledjob/amqp/runner.spec.js +74 -84
  217. package/dist/clean-arch/infra/scaledjob/amqp/types.d.ts +19 -0
  218. package/dist/clean-arch/infra/scaledjob/sqs/runner.d.ts +23 -0
  219. package/dist/clean-arch/infra/scaledjob/sqs/runner.js +26 -2
  220. package/dist/clean-arch/infra/scaledjob/sqs/runner.spec.d.ts +1 -0
  221. package/dist/clean-arch/infra/scaledjob/sqs/runner.spec.js +150 -0
  222. package/dist/clean-arch/infra/scaledjob/sqs/types.d.ts +18 -0
  223. package/dist/clean-arch/infra/scaledjob/types/index.d.ts +5 -0
  224. package/dist/clean-arch/infra/tracing/start-tracing.d.ts +10 -0
  225. package/dist/clean-arch/infra/tracing/start-tracing.js +78 -0
  226. package/dist/clean-arch/infra/validations/zod/schemas/common-validation.d.ts +159 -0
  227. package/dist/clean-arch/infra/validations/zod/schemas/common-validation.js +53 -2
  228. package/dist/clean-arch/infra/validations/zod/validation-zod.d.ts +1 -1
  229. package/dist/clean-arch/infra/validations/zod/validation-zod.spec.js +23 -0
  230. package/dist/clean-arch/shared/pagination/get-take-and-skip.spec.d.ts +1 -0
  231. package/dist/clean-arch/shared/pagination/get-take-and-skip.spec.js +16 -0
  232. package/dist/clean-arch/shared/timeout.d.ts +8 -0
  233. package/dist/clean-arch/shared/timeout.js +8 -0
  234. package/dist/frameworks/express/api-gateway/mapping-model.spec.js +58 -0
  235. package/dist/frameworks/express/authorizations/authorization-express.spec.js +9 -0
  236. package/dist/frameworks/express/middleware-express.spec.d.ts +1 -0
  237. package/dist/frameworks/express/middleware-express.spec.js +51 -0
  238. package/dist/frameworks/nest/nest.spec.d.ts +1 -0
  239. package/dist/frameworks/nest/nest.spec.js +122 -0
  240. package/dist/infra/http/api-gateway/mapping-model.spec.js +42 -0
  241. package/dist/static/countries.js +241 -0
  242. package/package.json +5 -1
@@ -3,19 +3,34 @@ import { CacheClient, CacheClientOptions } from '../../../application/cache/clie
3
3
  export type ListenersType = {
4
4
  error?: (error: Error) => void;
5
5
  } | undefined;
6
+ /**
7
+ * Opcoes do cliente Redis.
8
+ * Combina opcoes do ioredis com CacheClientOptions.
9
+ */
6
10
  export interface RedisOptions extends LibRedisOptions, CacheClientOptions {
7
11
  }
12
+ /**
13
+ * Cliente Redis para a camada de cache.
14
+ */
8
15
  export declare class Redis extends CacheClient {
9
16
  protected connection: RedisOptions;
10
17
  private client;
11
18
  constructor(connection: RedisOptions);
12
19
  private delayOperation;
20
+ /** Inicializa o cliente Redis. */
13
21
  start(): Promise<void>;
22
+ /** Busca uma chave e faz JSON.parse do valor. */
14
23
  get(key: string): Promise<any>;
24
+ /** Grava uma chave com TTL em segundos. */
15
25
  set(key: string, data: string, expiration?: number): Promise<void>;
26
+ /** Remove uma chave. */
16
27
  del(keyCache: string): Promise<void>;
28
+ /** Remove varias chaves com pipeline. */
17
29
  delBatch(keyCache: string[]): Promise<void>;
30
+ /** Lista chaves (pattern no formato do Redis). */
18
31
  getKeys(pattern?: string | undefined): Promise<string[] | null>;
32
+ /** Limpa o banco atual do Redis. */
19
33
  flush(): Promise<void>;
34
+ /** Fecha a conexao com o Redis. */
20
35
  close(): Promise<void>;
21
36
  }
@@ -4,6 +4,9 @@ exports.Redis = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
6
6
  const client_1 = require("../../../application/cache/client");
7
+ /**
8
+ * Cliente Redis para a camada de cache.
9
+ */
7
10
  class Redis extends client_1.CacheClient {
8
11
  connection;
9
12
  client;
@@ -19,9 +22,11 @@ class Redis extends client_1.CacheClient {
19
22
  await new Promise(resolve => setTimeout(resolve, timeout || 2500));
20
23
  return null;
21
24
  }
25
+ /** Inicializa o cliente Redis. */
22
26
  async start() {
23
27
  this.client = new ioredis_1.default(this.connection);
24
28
  }
29
+ /** Busca uma chave e faz JSON.parse do valor. */
25
30
  async get(key) {
26
31
  const get = async () => {
27
32
  const data = await this.client.get(key);
@@ -32,6 +37,7 @@ class Redis extends client_1.CacheClient {
32
37
  // If redis not connected the get method never returns
33
38
  return await Promise.race([get(), this.delayOperation()]);
34
39
  }
40
+ /** Grava uma chave com TTL em segundos. */
35
41
  async set(key, data, expiration) {
36
42
  const set = async () => {
37
43
  if (expiration)
@@ -41,9 +47,11 @@ class Redis extends client_1.CacheClient {
41
47
  // If redis not connected the set method never returns
42
48
  await Promise.race([set(), this.delayOperation()]);
43
49
  }
50
+ /** Remove uma chave. */
44
51
  async del(keyCache) {
45
52
  await Promise.race([this.client.del(keyCache), this.delayOperation()]);
46
53
  }
54
+ /** Remove varias chaves com pipeline. */
47
55
  async delBatch(keyCache) {
48
56
  const delBatch = async () => {
49
57
  const pipeline = this.client.pipeline();
@@ -52,15 +60,18 @@ class Redis extends client_1.CacheClient {
52
60
  };
53
61
  await Promise.race([delBatch(), this.delayOperation()]);
54
62
  }
63
+ /** Lista chaves (pattern no formato do Redis). */
55
64
  async getKeys(pattern) {
56
65
  return await Promise.race([
57
66
  this.client.keys(pattern || '*'),
58
67
  this.delayOperation(),
59
68
  ]);
60
69
  }
70
+ /** Limpa o banco atual do Redis. */
61
71
  async flush() {
62
72
  await this.client.flushdb();
63
73
  }
74
+ /** Fecha a conexao com o Redis. */
64
75
  async close() {
65
76
  await Promise.race([this.client.quit(), this.delayOperation()]);
66
77
  }
@@ -0,0 +1,8 @@
1
+ import { ConsistencyEventDispatcher } from '../../application/consistency-event-dispatcher/consistency-event-dispatcher';
2
+ import AmqpQueue from '../queue/rabbitmq/amqp-lib';
3
+ import ConsistencyEvent from '../../domain/events/consistency-event/consistency-event';
4
+ export declare class AmqpConsistencyEventDispatcher extends ConsistencyEventDispatcher {
5
+ protected amqp: AmqpQueue;
6
+ constructor(amqp: AmqpQueue);
7
+ publish(event: ConsistencyEvent): Promise<void>;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmqpConsistencyEventDispatcher = void 0;
4
+ const consistency_event_dispatcher_1 = require("../../application/consistency-event-dispatcher/consistency-event-dispatcher");
5
+ const exchanges_enum_1 = require("./exchanges-enum");
6
+ class AmqpConsistencyEventDispatcher extends consistency_event_dispatcher_1.ConsistencyEventDispatcher {
7
+ amqp;
8
+ constructor(amqp) {
9
+ super();
10
+ this.amqp = amqp;
11
+ }
12
+ async publish(event) {
13
+ await this.amqp.publish(`${exchanges_enum_1.PREFIX}.${event.input.eventName}.${exchanges_enum_1.TYPE}`, event, {
14
+ storeMessageOnError: false,
15
+ });
16
+ }
17
+ }
18
+ exports.AmqpConsistencyEventDispatcher = AmqpConsistencyEventDispatcher;
@@ -0,0 +1,50 @@
1
+ export declare const PREFIX = "consistency";
2
+ export declare const TYPE = "fanout";
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",
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",
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",
30
+ CONSISTENCY_PARTNER_UPDATED = "consistency.partner-service.partner-updated.fanout",
31
+ CONSISTENCY_PARTNER_CREATED = "consistency.partner-service.partner-created.fanout",
32
+ CONSISTENCY_PARTNER_UPSERTED = "consistency.partner-service.partner-upserted.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",
36
+ CONSISTENCY_SECURITY_SERVICE_BRANCH_UPDATED = "consistency.security-service.branch-updated.fanout",
37
+ CONSISTENCY_SECURITY_SERVICE_BRANCH_CREATED = "consistency.security-service.branch-created.fanout",
38
+ CONSISTENCY_SECURITY_SERVICE_CERTIFICATE_CREATED = "consistency.security-service.certificate-created.fanout",
39
+ CONSISTENCY_SECURITY_SERVICE_CERTIFICATE_DELETED = "consistency.security-service.certificate-deleted.fanout",
40
+ CONSISTENCY_SECURITY_SERVICE_CERTIFICATE_UPDATED = "consistency.security-service.certificate-updated.fanout",
41
+ CONSISTENCY_SECURITY_SERVICE_EXTERNAL_PROVIDER_CREATED = "consistency.security-service.external-provider-created.fanout",
42
+ CONSISTENCY_SECURITY_SERVICE_EXTERNAL_PROVIDER_UPDATED = "consistency.security-service.external-provider-updated.fanout",
43
+ CONSISTENCY_SECURITY_SERVICE_EXTERNAL_PROVIDER_DELETED = "consistency.security-service.external-provider-deleted.fanout",
44
+ CONSISTENCY_SECURITY_SERVICE_ENTITY_CREATED = "consistency.security-service.entity-created.fanout",
45
+ CONSISTENCY_SECURITY_SERVICE_ENTITY_UPDATED = "consistency.security-service.entity-updated.fanout",
46
+ CONSISTENCY_SECURITY_SERVICE_ENTITY_UPSERTED = "consistency.security-service.entity-upserted.fanout",
47
+ CONSISTENCY_SECURITY_SERVICE_BRAZILIAN_FEDERAL_REVENUE_API_CREDENTIAL_CREATED = "consistency.security-service.brazilian-federal-revenue-api-credential-created.fanout",
48
+ CONSISTENCY_SECURITY_SERVICE_BRAZILIAN_FEDERAL_REVENUE_API_CREDENTIAL_UPDATED = "consistency.security-service.brazilian-federal-revenue-api-credential-updated.fanout",
49
+ CONSISTENCY_SECURITY_SERVICE_BRAZILIAN_FEDERAL_REVENUE_API_CREDENTIAL_DELETED = "consistency.security-service.brazilian-federal-revenue-api-credential-deleted.fanout"
50
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExchangesEnum = exports.TYPE = exports.PREFIX = void 0;
4
+ const events_enum_1 = require("../../domain/events/consistency-event/events-enum");
5
+ exports.PREFIX = 'consistency';
6
+ exports.TYPE = 'fanout';
7
+ var ExchangesEnum;
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";
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";
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";
37
+ ExchangesEnum["CONSISTENCY_PARTNER_UPDATED"] = "consistency.partner-service.partner-updated.fanout";
38
+ ExchangesEnum["CONSISTENCY_PARTNER_CREATED"] = "consistency.partner-service.partner-created.fanout";
39
+ ExchangesEnum["CONSISTENCY_PARTNER_UPSERTED"] = "consistency.partner-service.partner-upserted.fanout";
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";
43
+ // security-service
44
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_BRANCH_UPDATED"] = "consistency.security-service.branch-updated.fanout";
45
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_BRANCH_CREATED"] = "consistency.security-service.branch-created.fanout";
46
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_CERTIFICATE_CREATED"] = "consistency.security-service.certificate-created.fanout";
47
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_CERTIFICATE_DELETED"] = "consistency.security-service.certificate-deleted.fanout";
48
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_CERTIFICATE_UPDATED"] = "consistency.security-service.certificate-updated.fanout";
49
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_EXTERNAL_PROVIDER_CREATED"] = "consistency.security-service.external-provider-created.fanout";
50
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_EXTERNAL_PROVIDER_UPDATED"] = "consistency.security-service.external-provider-updated.fanout";
51
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_EXTERNAL_PROVIDER_DELETED"] = "consistency.security-service.external-provider-deleted.fanout";
52
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_ENTITY_CREATED"] = "consistency.security-service.entity-created.fanout";
53
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_ENTITY_UPDATED"] = "consistency.security-service.entity-updated.fanout";
54
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_ENTITY_UPSERTED"] = "consistency.security-service.entity-upserted.fanout";
55
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_BRAZILIAN_FEDERAL_REVENUE_API_CREDENTIAL_CREATED"] = "consistency.security-service.brazilian-federal-revenue-api-credential-created.fanout";
56
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_BRAZILIAN_FEDERAL_REVENUE_API_CREDENTIAL_UPDATED"] = "consistency.security-service.brazilian-federal-revenue-api-credential-updated.fanout";
57
+ ExchangesEnum["CONSISTENCY_SECURITY_SERVICE_BRAZILIAN_FEDERAL_REVENUE_API_CREDENTIAL_DELETED"] = "consistency.security-service.brazilian-federal-revenue-api-credential-deleted.fanout";
58
+ })(ExchangesEnum || (exports.ExchangesEnum = ExchangesEnum = {}));
@@ -0,0 +1,7 @@
1
+ import { ConsistencyEventDispatcher } from '../../application/consistency-event-dispatcher/consistency-event-dispatcher';
2
+ import ConsistencyEvent from '../../domain/events/consistency-event/consistency-event';
3
+ export declare class InMemoryConsistencyEventDispatcher extends ConsistencyEventDispatcher {
4
+ protected events: ConsistencyEvent[];
5
+ constructor(events?: ConsistencyEvent[]);
6
+ publish(event: ConsistencyEvent): Promise<void>;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryConsistencyEventDispatcher = void 0;
4
+ const consistency_event_dispatcher_1 = require("../../application/consistency-event-dispatcher/consistency-event-dispatcher");
5
+ class InMemoryConsistencyEventDispatcher extends consistency_event_dispatcher_1.ConsistencyEventDispatcher {
6
+ events;
7
+ constructor(events = []) {
8
+ super();
9
+ this.events = events;
10
+ }
11
+ async publish(event) {
12
+ this.events.push(event);
13
+ }
14
+ }
15
+ exports.InMemoryConsistencyEventDispatcher = InMemoryConsistencyEventDispatcher;
@@ -1,60 +1,179 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ const api_error_1 = require("../../../infra/http/errors/api-error");
5
+ const application_error_1 = tslib_1.__importDefault(require("../../domain/errors/application-error"));
4
6
  const conflict_error_1 = tslib_1.__importDefault(require("../../domain/errors/conflict-error"));
7
+ const domain_error_1 = tslib_1.__importDefault(require("../../domain/errors/domain-error"));
8
+ const validation_error_1 = tslib_1.__importDefault(require("../../domain/errors/validation-error"));
9
+ const not_allowed_1 = tslib_1.__importDefault(require("../authorizations/not-allowed"));
10
+ const infra_error_1 = tslib_1.__importDefault(require("../errors/infra-error"));
5
11
  const controller_1 = tslib_1.__importDefault(require("./controller"));
6
- test('conflict error with one object', async () => {
7
- class ControllerError extends controller_1.default {
8
- async handle() {
9
- try {
10
- throw new conflict_error_1.default({ id: 'ID' });
11
- }
12
- catch (err) {
13
- return this.throw(err);
14
- }
15
- }
12
+ class TestController extends controller_1.default {
13
+ async handle() {
14
+ return this.success({ ok: true });
16
15
  }
17
- const executeController = new ControllerError();
18
- const responseError = await executeController.handle();
19
- expect(responseError).toEqual(expect.objectContaining({
20
- code: 409,
21
- data: {
22
- code: 409,
23
- message: 'Entity already exists.',
24
- items: [
25
- {
26
- id: 'ID',
27
- },
28
- ],
29
- },
30
- }));
31
- });
32
- test('conflict error with array of objects', async () => {
33
- class ControllerError extends controller_1.default {
34
- async handle() {
35
- try {
36
- throw new conflict_error_1.default([{ id: 'ID 1' }, { id: 'ID 2' }]);
37
- }
38
- catch (err) {
39
- return this.throw(err);
40
- }
41
- }
16
+ successResponse(dto) {
17
+ return this.success(dto);
18
+ }
19
+ noContentResponse() {
20
+ return this.noContent();
42
21
  }
43
- const executeController = new ControllerError();
44
- const responseError = await executeController.handle();
45
- expect(responseError).toEqual(expect.objectContaining({
46
- code: 409,
47
- data: {
22
+ createdResponse(dto) {
23
+ return this.created(dto);
24
+ }
25
+ paginatedResponse(dto) {
26
+ return this.paginated(dto);
27
+ }
28
+ }
29
+ describe('Controller', () => {
30
+ it('should build success responses', () => {
31
+ const controller = new TestController();
32
+ expect(controller.successResponse({ id: '1' })).toEqual({
33
+ code: 200,
34
+ data: { data: { id: '1' } },
35
+ });
36
+ expect(controller.noContentResponse()).toEqual({
37
+ code: 204,
38
+ data: undefined,
39
+ });
40
+ expect(controller.createdResponse({ id: '1' })).toEqual({
41
+ code: 201,
42
+ data: { data: { id: '1' } },
43
+ });
44
+ expect(controller.createdResponse()).toEqual({
45
+ code: 201,
46
+ data: undefined,
47
+ });
48
+ expect(controller.paginatedResponse({ items: [1, 2] })).toEqual({
49
+ code: 200,
50
+ data: { items: [1, 2] },
51
+ });
52
+ });
53
+ it('should return conflict error response with one object', () => {
54
+ const controller = new TestController();
55
+ expect(controller.throw(new conflict_error_1.default({ id: 'ID' }))).toEqual({
56
+ code: 409,
57
+ data: {
58
+ code: 409,
59
+ message: 'Entity already exists.',
60
+ items: [{ id: 'ID' }],
61
+ },
62
+ });
63
+ });
64
+ it('should return conflict error response with array of objects', () => {
65
+ const controller = new TestController();
66
+ expect(controller.throw(new conflict_error_1.default([{ id: 'ID 1' }, { id: 'ID 2' }]))).toEqual({
48
67
  code: 409,
49
- message: 'Entity already exists.',
50
- items: [
51
- {
52
- id: 'ID 1',
53
- },
54
- {
55
- id: 'ID 2',
56
- },
57
- ],
58
- },
59
- }));
68
+ data: {
69
+ code: 409,
70
+ message: 'Entity already exists.',
71
+ items: [{ id: 'ID 1' }, { id: 'ID 2' }],
72
+ },
73
+ });
74
+ });
75
+ it.each([
76
+ [new domain_error_1.default('domain failed', 422), 422, 'domain failed'],
77
+ [
78
+ new application_error_1.default('application failed', 401),
79
+ 401,
80
+ 'application failed',
81
+ ],
82
+ [new infra_error_1.default('infra failed', 503), 503, 'infra failed'],
83
+ ])('should map known error types with code and message', (error, code, message) => {
84
+ const controller = new TestController();
85
+ expect(controller.throw(error)).toEqual({
86
+ code,
87
+ data: {
88
+ code,
89
+ message,
90
+ },
91
+ });
92
+ });
93
+ it('should map api errors', () => {
94
+ const controller = new TestController();
95
+ const error = new api_error_1.ApiError({
96
+ status: 401,
97
+ body: {
98
+ code: 401,
99
+ message: 'Unauthorized',
100
+ timestamp: new Date('2024-01-01T00:00:00.000Z'),
101
+ errors: [
102
+ {
103
+ code_error: '401',
104
+ location: 'authorization',
105
+ msg: 'Unauthorized',
106
+ },
107
+ ],
108
+ },
109
+ headers: {},
110
+ });
111
+ expect(controller.throw(error)).toEqual({
112
+ code: 401,
113
+ data: error.error,
114
+ });
115
+ });
116
+ it('should map validation errors', () => {
117
+ const controller = new TestController();
118
+ const error = new validation_error_1.default([
119
+ {
120
+ property: 'email',
121
+ message: 'Required field',
122
+ },
123
+ ]);
124
+ expect(controller.throw(error)).toEqual({
125
+ code: 400,
126
+ data: {
127
+ code: 400,
128
+ message: 'Validation Error',
129
+ errors: [
130
+ {
131
+ property: 'email',
132
+ message: 'Required field',
133
+ },
134
+ ],
135
+ },
136
+ });
137
+ });
138
+ it('should map not allowed errors', () => {
139
+ const controller = new TestController();
140
+ const error = new not_allowed_1.default({
141
+ status: 403,
142
+ body: {
143
+ code: 403,
144
+ message: 'Forbidden',
145
+ timestamp: new Date('2024-02-02T00:00:00.000Z'),
146
+ errors: [
147
+ {
148
+ code_error: '403',
149
+ location: 'authorization',
150
+ msg: 'Forbidden',
151
+ },
152
+ ],
153
+ },
154
+ headers: {
155
+ 'content-type': 'application/json',
156
+ },
157
+ });
158
+ expect(controller.throw(error)).toEqual({
159
+ code: 403,
160
+ data: error.error,
161
+ });
162
+ });
163
+ it('should map unexpected errors to internal server error', () => {
164
+ const controller = new TestController();
165
+ const unexpectedError = new Error('boom');
166
+ const consoleError = vi
167
+ .spyOn(console, 'error')
168
+ .mockImplementation(() => undefined);
169
+ expect(controller.throw(unexpectedError)).toEqual({
170
+ code: 500,
171
+ data: {
172
+ code: 500,
173
+ message: 'Server failed. Contact the administrator!',
174
+ reason: unexpectedError,
175
+ },
176
+ });
177
+ expect(consoleError).toHaveBeenCalledWith(unexpectedError);
178
+ });
60
179
  });
@@ -0,0 +1,25 @@
1
+ import { UserRequestDTO } from '../../domain/entities/common-dto';
2
+ type HeadersProps = {
3
+ username?: string;
4
+ useremail?: string;
5
+ userid?: string;
6
+ ['app-id']?: string;
7
+ ['app-name']?: string;
8
+ tenantid: string;
9
+ ['x-trace-id']: string;
10
+ };
11
+ export type AuthorizerHeaders = {
12
+ userName?: string;
13
+ userEmail?: string;
14
+ appName?: string;
15
+ tenantId: string;
16
+ entityId: string;
17
+ traceId?: string;
18
+ };
19
+ export declare function handleAuthorizerHeaders(headers: HeadersProps): AuthorizerHeaders;
20
+ /**
21
+ *
22
+ * @deprecated E-mail and name not must be recorded as tracing.
23
+ */
24
+ export declare function authorizerToLegacyDefaultHeaders(authorizerHeaders: AuthorizerHeaders): UserRequestDTO;
25
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorizerToLegacyDefaultHeaders = exports.handleAuthorizerHeaders = void 0;
4
+ function handleAuthorizerHeaders(headers) {
5
+ return {
6
+ userName: headers.username,
7
+ userEmail: headers.useremail,
8
+ appName: headers['app-name'],
9
+ entityId: headers['app-id'] || headers.userid || headers.useremail,
10
+ tenantId: headers.tenantid,
11
+ traceId: headers['x-trace-id'],
12
+ };
13
+ }
14
+ exports.handleAuthorizerHeaders = handleAuthorizerHeaders;
15
+ /**
16
+ *
17
+ * @deprecated E-mail and name not must be recorded as tracing.
18
+ */
19
+ function authorizerToLegacyDefaultHeaders(authorizerHeaders) {
20
+ const email = authorizerHeaders.userEmail;
21
+ const name = authorizerHeaders.appName || authorizerHeaders.userName;
22
+ return {
23
+ createdByEmail: email,
24
+ createdByName: name,
25
+ updatedByEmail: email,
26
+ updatedByName: name,
27
+ };
28
+ }
29
+ exports.authorizerToLegacyDefaultHeaders = authorizerToLegacyDefaultHeaders;
@@ -1,11 +1,16 @@
1
1
  type HeadersProps = {
2
2
  username: string;
3
3
  useremail: string;
4
+ userid?: string;
5
+ ['app-id']?: string;
6
+ tenantid: string;
4
7
  };
5
8
  export declare function handleUserHeaders(headers: HeadersProps): {
6
9
  createdByName: string;
7
10
  createdByEmail: string;
8
11
  updatedByEmail: string;
9
12
  updatedByName: string;
13
+ entityId: string | undefined;
14
+ tenantId: string;
10
15
  };
11
16
  export {};
@@ -7,6 +7,8 @@ function handleUserHeaders(headers) {
7
7
  createdByEmail: headers.useremail,
8
8
  updatedByEmail: headers.useremail,
9
9
  updatedByName: headers.username,
10
+ entityId: headers.userid || headers['app-id'],
11
+ tenantId: headers.tenantid,
10
12
  };
11
13
  }
12
14
  exports.handleUserHeaders = handleUserHeaders;
@@ -0,0 +1 @@
1
+ export {};