@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
@@ -1,31 +1,63 @@
1
1
  import { Logger } from '../logger';
2
2
  import { CacheClient } from './client';
3
+ /**
4
+ * Opcoes por metodo (sobrescrevem CacheOptions).
5
+ */
3
6
  export type MethodOptions = {
4
7
  throwOnError?: boolean;
5
8
  };
9
+ /**
10
+ * Opcoes globais do cache.
11
+ * - throwOnError: quando true, propaga erros.
12
+ * - contingencyClients: lista de clientes alternativos para fallback.
13
+ */
6
14
  export type CacheOptions = {
7
15
  throwOnError?: boolean;
8
16
  contingencyClients?: CacheClient[];
9
17
  };
18
+ /**
19
+ * Camada de cache padrao da lib.
20
+ * Responsavel por:
21
+ * - controlar TTL padrao
22
+ * - serializacao JSON
23
+ * - fallback entre clientes
24
+ */
10
25
  export declare abstract class Cache {
11
26
  protected logger: Logger;
12
27
  protected abstract client: CacheClient;
13
28
  protected elegibleClients: CacheClient[];
29
+ /** TTL padrao (segundos). */
14
30
  protected DEFAULT_EXPIRATION_SECONDS: number;
15
31
  private options?;
16
32
  constructor(options?: CacheOptions, logger?: Logger);
17
33
  private setElegibleClients;
18
34
  private setOptions;
19
35
  private setRunningClient;
36
+ /** Inicia o cliente de cache. */
20
37
  start(options?: MethodOptions): Promise<void>;
38
+ /** Busca um valor do cache. */
21
39
  get(keyCache: string, options?: MethodOptions): Promise<any>;
40
+ /** Grava um valor no cache com TTL (segundos). */
22
41
  set(keyCache: string, data: any, expiration?: number, options?: MethodOptions): Promise<void>;
42
+ /** Remove uma chave do cache. */
23
43
  del(keyCache: string, options?: MethodOptions): Promise<void>;
44
+ /** Lista chaves; o pattern varia por cliente. */
24
45
  getKeys(pattern?: string, options?: MethodOptions): Promise<string[] | null>;
46
+ /** Remove varias chaves de uma vez. */
25
47
  delBatch(patterns: string[], options?: MethodOptions): Promise<void>;
48
+ /** Limpa o banco/instancia de cache. */
26
49
  flush(): Promise<void>;
50
+ /**
51
+ * Health-check do cache.
52
+ * - se falhar, tenta alternar para um cliente elegivel
53
+ */
27
54
  isRunning(options?: MethodOptions, isContingency?: boolean): Promise<boolean>;
55
+ /** Encerra o cliente de cache. */
28
56
  close(options?: MethodOptions): Promise<void>;
57
+ /** Padroniza o log/propagacao de erros. */
29
58
  protected handleException(e: Error): Promise<void>;
59
+ /**
60
+ * Busca do cache e, se nao existir, executa a promise e grava o resultado.
61
+ */
30
62
  getOrFetchAndCache<T>(keyCache: string, expiration: number | undefined, promise: () => Promise<T>, options?: MethodOptions): Promise<T | undefined>;
31
63
  }
@@ -2,9 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Cache = void 0;
4
4
  const env_1 = require("../../infra/environment/env");
5
+ /**
6
+ * Camada de cache padrao da lib.
7
+ * Responsavel por:
8
+ * - controlar TTL padrao
9
+ * - serializacao JSON
10
+ * - fallback entre clientes
11
+ */
5
12
  class Cache {
6
13
  logger;
7
14
  elegibleClients;
15
+ /** TTL padrao (segundos). */
8
16
  DEFAULT_EXPIRATION_SECONDS = env_1.env?.DEFAULT_CACHE_EXPIRATION || 360;
9
17
  options;
10
18
  constructor(options, logger = console) {
@@ -51,6 +59,7 @@ class Cache {
51
59
  this.logger.warn(`Changed cache client to ${this.client.constructor.name}`);
52
60
  return this;
53
61
  }
62
+ /** Inicia o cliente de cache. */
54
63
  async start(options) {
55
64
  try {
56
65
  await this.client.start();
@@ -66,6 +75,7 @@ class Cache {
66
75
  }
67
76
  this.logger.info('💾 Cache Connected');
68
77
  }
78
+ /** Busca um valor do cache. */
69
79
  async get(keyCache, options) {
70
80
  try {
71
81
  const dataFromCache = await this.client.get(keyCache);
@@ -78,6 +88,7 @@ class Cache {
78
88
  return null;
79
89
  }
80
90
  }
91
+ /** Grava um valor no cache com TTL (segundos). */
81
92
  async set(keyCache, data, expiration = this.DEFAULT_EXPIRATION_SECONDS, options) {
82
93
  try {
83
94
  return await this.client.set(keyCache, JSON.stringify(data), expiration);
@@ -89,6 +100,7 @@ class Cache {
89
100
  return;
90
101
  }
91
102
  }
103
+ /** Remove uma chave do cache. */
92
104
  async del(keyCache, options) {
93
105
  try {
94
106
  return await this.client.del(keyCache);
@@ -100,6 +112,7 @@ class Cache {
100
112
  return;
101
113
  }
102
114
  }
115
+ /** Lista chaves; o pattern varia por cliente. */
103
116
  async getKeys(pattern, options) {
104
117
  try {
105
118
  return await this.client.getKeys(pattern);
@@ -111,6 +124,7 @@ class Cache {
111
124
  return null;
112
125
  }
113
126
  }
127
+ /** Remove varias chaves de uma vez. */
114
128
  async delBatch(patterns, options) {
115
129
  try {
116
130
  return await this.client.delBatch(patterns);
@@ -122,6 +136,7 @@ class Cache {
122
136
  return;
123
137
  }
124
138
  }
139
+ /** Limpa o banco/instancia de cache. */
125
140
  async flush() {
126
141
  try {
127
142
  return await this.client.flush();
@@ -130,6 +145,10 @@ class Cache {
130
145
  await this.handleException(e);
131
146
  }
132
147
  }
148
+ /**
149
+ * Health-check do cache.
150
+ * - se falhar, tenta alternar para um cliente elegivel
151
+ */
133
152
  async isRunning(options, isContingency = false) {
134
153
  let isRunning = false;
135
154
  try {
@@ -146,6 +165,7 @@ class Cache {
146
165
  }
147
166
  return isRunning;
148
167
  }
168
+ /** Encerra o cliente de cache. */
149
169
  async close(options) {
150
170
  this.logger.info('💾 Cache closed');
151
171
  try {
@@ -158,10 +178,14 @@ class Cache {
158
178
  return;
159
179
  }
160
180
  }
181
+ /** Padroniza o log/propagacao de erros. */
161
182
  async handleException(e) {
162
183
  this.logger.error(JSON.stringify(e));
163
184
  throw e;
164
185
  }
186
+ /**
187
+ * Busca do cache e, se nao existir, executa a promise e grava o resultado.
188
+ */
165
189
  async getOrFetchAndCache(keyCache, expiration = this.DEFAULT_EXPIRATION_SECONDS, promise, options) {
166
190
  let data = await this.get(keyCache, options);
167
191
  if (!data) {
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cache_1 = require("./cache");
4
+ const client_1 = require("./client");
5
+ class MemoryCacheClient extends client_1.CacheClient {
6
+ startMock = vi.fn().mockResolvedValue(undefined);
7
+ closeMock = vi.fn().mockResolvedValue(undefined);
8
+ getMock = vi.fn();
9
+ setMock = vi.fn().mockResolvedValue(undefined);
10
+ delMock = vi.fn().mockResolvedValue(undefined);
11
+ delBatchMock = vi.fn().mockResolvedValue(undefined);
12
+ getKeysMock = vi.fn().mockResolvedValue([]);
13
+ flushMock = vi.fn().mockResolvedValue(undefined);
14
+ async start() {
15
+ await this.startMock();
16
+ }
17
+ async close() {
18
+ await this.closeMock();
19
+ }
20
+ async get(keyCache) {
21
+ return await this.getMock(keyCache);
22
+ }
23
+ async set(keyCache, data, expiration) {
24
+ await this.setMock(keyCache, data, expiration);
25
+ }
26
+ async del(keyCache) {
27
+ await this.delMock(keyCache);
28
+ }
29
+ async delBatch(keyCache) {
30
+ await this.delBatchMock(keyCache);
31
+ }
32
+ async getKeys(pattern) {
33
+ return await this.getKeysMock(pattern);
34
+ }
35
+ async flush() {
36
+ await this.flushMock();
37
+ }
38
+ }
39
+ class TestCache extends cache_1.Cache {
40
+ client = new MemoryCacheClient();
41
+ get currentClient() {
42
+ return this.client;
43
+ }
44
+ }
45
+ const createLogger = () => ({
46
+ info: vi.fn(),
47
+ warn: vi.fn(),
48
+ error: vi.fn(),
49
+ debug: vi.fn(),
50
+ });
51
+ describe('Cache base', () => {
52
+ it('should perform the happy path operations', async () => {
53
+ const logger = createLogger();
54
+ const cache = new TestCache(undefined, logger);
55
+ cache.currentClient.getMock.mockResolvedValueOnce({ id: '1' });
56
+ cache.currentClient.getKeysMock.mockResolvedValueOnce(['cache:key']);
57
+ await cache.start();
58
+ await expect(cache.get('cache:key')).resolves.toEqual({ id: '1' });
59
+ await expect(cache.set('cache:key', { id: '1' }, 10)).resolves.toBeUndefined();
60
+ await expect(cache.del('cache:key')).resolves.toBeUndefined();
61
+ await expect(cache.getKeys('cache:*')).resolves.toEqual(['cache:key']);
62
+ await expect(cache.delBatch(['cache:key'])).resolves.toBeUndefined();
63
+ await expect(cache.flush()).resolves.toBeUndefined();
64
+ cache.currentClient.getMock.mockResolvedValueOnce({ ping: true });
65
+ await expect(cache.isRunning()).resolves.toBe(true);
66
+ await cache.close();
67
+ expect(cache.currentClient.startMock).toHaveBeenCalledTimes(1);
68
+ expect(cache.currentClient.setMock).toHaveBeenNthCalledWith(1, 'cache:key', JSON.stringify({ id: '1' }), 10);
69
+ expect(cache.currentClient.delMock).toHaveBeenCalledWith('cache:key');
70
+ expect(cache.currentClient.delBatchMock).toHaveBeenCalledWith([
71
+ 'cache:key',
72
+ ]);
73
+ expect(cache.currentClient.flushMock).toHaveBeenCalledTimes(1);
74
+ expect(cache.currentClient.closeMock).toHaveBeenCalledTimes(1);
75
+ expect(logger.info).toHaveBeenCalledWith('💾 Cache Connected');
76
+ expect(logger.info).toHaveBeenCalledWith('💾 Cache closed');
77
+ });
78
+ it('should fetch, cache and reuse values', async () => {
79
+ const cache = new TestCache();
80
+ const promise = vi.fn().mockResolvedValue({ id: '1' });
81
+ cache.currentClient.getMock
82
+ .mockResolvedValueOnce(null)
83
+ .mockResolvedValueOnce({ id: '1' });
84
+ await expect(cache.getOrFetchAndCache('cache:key', 15, promise)).resolves.toEqual({ id: '1' });
85
+ await expect(cache.getOrFetchAndCache('cache:key', 15, promise)).resolves.toEqual({ id: '1' });
86
+ expect(promise).toHaveBeenCalledTimes(1);
87
+ expect(cache.currentClient.setMock).toHaveBeenCalledWith('cache:key', JSON.stringify({ id: '1' }), 15);
88
+ });
89
+ it('should return safe fallbacks when operations fail without throwOnError', async () => {
90
+ const cache = new TestCache();
91
+ cache.currentClient.getMock.mockRejectedValue(new Error('get failed'));
92
+ cache.currentClient.setMock.mockRejectedValue(new Error('set failed'));
93
+ cache.currentClient.delMock.mockRejectedValue(new Error('del failed'));
94
+ cache.currentClient.getKeysMock.mockRejectedValue(new Error('keys failed'));
95
+ cache.currentClient.delBatchMock.mockRejectedValue(new Error('batch failed'));
96
+ cache.currentClient.closeMock.mockRejectedValue(new Error('close failed'));
97
+ cache.currentClient.getMock.mockResolvedValueOnce(false);
98
+ await expect(cache.get('cache:key')).resolves.toBeNull();
99
+ await expect(cache.set('cache:key', { id: '1' })).resolves.toBeUndefined();
100
+ await expect(cache.del('cache:key')).resolves.toBeUndefined();
101
+ await expect(cache.getKeys('cache:*')).resolves.toBeNull();
102
+ await expect(cache.delBatch(['cache:key'])).resolves.toBeUndefined();
103
+ await expect(cache.close()).resolves.toBeUndefined();
104
+ });
105
+ it('should throw when throwOnError is enabled', async () => {
106
+ const logger = createLogger();
107
+ const cache = new TestCache(undefined, logger);
108
+ cache.currentClient.getMock.mockRejectedValue(new Error('get failed'));
109
+ await expect(cache.get('cache:key', { throwOnError: true })).rejects.toThrow('get failed');
110
+ expect(logger.error).toHaveBeenCalledWith(JSON.stringify(new Error('get failed')));
111
+ });
112
+ it('should switch to a running contingency client', async () => {
113
+ const logger = createLogger();
114
+ const cache = new TestCache(undefined, logger);
115
+ const primary = cache.currentClient;
116
+ const contingency = new MemoryCacheClient();
117
+ primary.getMock.mockResolvedValue(false);
118
+ contingency.getMock.mockResolvedValue({ ping: true });
119
+ cache.elegibleClients = [contingency, primary];
120
+ await expect(cache.isRunning()).resolves.toBe(true);
121
+ expect(primary.closeMock).toHaveBeenCalledTimes(1);
122
+ expect(logger.warn).toHaveBeenCalledWith('Changed cache client to MemoryCacheClient');
123
+ expect(cache.client).toBe(contingency);
124
+ });
125
+ it('should tolerate failed start with a single eligible client', async () => {
126
+ const logger = createLogger();
127
+ const cache = new TestCache(undefined, logger);
128
+ cache.options = { throwOnError: false };
129
+ cache.elegibleClients = [cache.currentClient];
130
+ cache.currentClient.startMock.mockRejectedValueOnce(new Error('start failed'));
131
+ await expect(cache.start()).resolves.toBeUndefined();
132
+ expect(logger.warn).not.toHaveBeenCalled();
133
+ });
134
+ it('should ignore contingency discovery errors while switching cache clients', async () => {
135
+ const logger = createLogger();
136
+ const cache = new TestCache(undefined, logger);
137
+ const primary = cache.currentClient;
138
+ const brokenContingency = new MemoryCacheClient();
139
+ const healthyContingency = new MemoryCacheClient();
140
+ cache.options = { throwOnError: false };
141
+ cache.elegibleClients = [
142
+ brokenContingency,
143
+ healthyContingency,
144
+ primary,
145
+ ];
146
+ primary.startMock.mockRejectedValueOnce(new Error('primary start failed'));
147
+ primary.closeMock.mockRejectedValueOnce(new Error('primary close failed'));
148
+ brokenContingency.startMock.mockRejectedValueOnce(new Error('contingency start failed'));
149
+ healthyContingency.getMock.mockResolvedValue({ ping: true });
150
+ await expect(cache.start()).resolves.toBeUndefined();
151
+ expect(cache.client).toBe(healthyContingency);
152
+ expect(brokenContingency.startMock).toHaveBeenCalledTimes(1);
153
+ expect(brokenContingency.closeMock).toHaveBeenCalledTimes(1);
154
+ expect(primary.closeMock).toHaveBeenCalledTimes(1);
155
+ expect(logger.warn).toHaveBeenCalledWith('Changed cache client to MemoryCacheClient');
156
+ });
157
+ it('should return false when health checks fail without throwOnError', async () => {
158
+ const logger = createLogger();
159
+ const cache = new TestCache(undefined, logger);
160
+ cache.options = { throwOnError: false };
161
+ cache.elegibleClients = [cache.currentClient];
162
+ cache.currentClient.setMock.mockRejectedValue(new Error('ping failed'));
163
+ await expect(cache.isRunning()).resolves.toBe(false);
164
+ });
165
+ it('should throw when close fails and throwOnError is enabled', async () => {
166
+ const logger = createLogger();
167
+ const cache = new TestCache(undefined, logger);
168
+ cache.currentClient.closeMock.mockRejectedValue(new Error('close failed'));
169
+ await expect(cache.close({ throwOnError: true })).rejects.toThrowError('close failed');
170
+ expect(logger.error).toHaveBeenCalledWith(JSON.stringify(new Error('close failed')));
171
+ });
172
+ it('should verify if a cache client is running with a ping key', async () => {
173
+ const client = new MemoryCacheClient({ timeout: 5 });
174
+ client.getMock.mockResolvedValue({ ping: true });
175
+ await expect(client.isRunning()).resolves.toBe(true);
176
+ expect(client.setMock).toHaveBeenCalledWith(expect.any(String), JSON.stringify({ ping: true }), 5);
177
+ });
178
+ });
@@ -1,16 +1,39 @@
1
+ /**
2
+ * Opcoes basicas para clientes de cache.
3
+ * - timeout: segundos usados como timeout de operacoes e ping.
4
+ */
1
5
  export interface CacheClientOptions {
2
6
  timeout?: number;
3
7
  }
8
+ /**
9
+ * Contrato minimo de um cliente de cache.
10
+ * Cada implementacao deve cuidar de:
11
+ * - conexao (start/close)
12
+ * - operacoes basicas (get/set/del/getKeys/flush)
13
+ */
4
14
  export declare abstract class CacheClient {
5
15
  protected connection?: CacheClientOptions | undefined;
6
16
  constructor(connection?: CacheClientOptions | undefined);
17
+ /** Inicializa o cliente/conexao. */
7
18
  abstract start(): Promise<void>;
19
+ /** Encerra o cliente/conexao. */
8
20
  abstract close(): Promise<void>;
21
+ /** Recupera um valor pelo nome da chave. */
9
22
  abstract get(keyCache: string): Promise<any>;
23
+ /** Grava um valor com TTL opcional (segundos). */
10
24
  abstract set(keyCache: string, data: any, expiration?: number): Promise<void>;
25
+ /** Remove uma chave. */
11
26
  abstract del(keyCache: string): Promise<void>;
27
+ /** Remove varias chaves. */
12
28
  abstract delBatch(keyCache: string[]): Promise<void>;
29
+ /** Lista chaves; o pattern depende do cliente. */
13
30
  abstract getKeys(pattern?: string): Promise<string[] | null>;
31
+ /** Limpa o banco/instancia. */
14
32
  abstract flush(): Promise<void>;
33
+ /**
34
+ * Health-check simples:
35
+ * - grava um ping
36
+ * - le de volta e valida
37
+ */
15
38
  isRunning(): Promise<any>;
16
39
  }
@@ -2,11 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheClient = void 0;
4
4
  const unique_entity_id_1 = require("../../domain/entities/unique-entity-id");
5
+ /**
6
+ * Contrato minimo de um cliente de cache.
7
+ * Cada implementacao deve cuidar de:
8
+ * - conexao (start/close)
9
+ * - operacoes basicas (get/set/del/getKeys/flush)
10
+ */
5
11
  class CacheClient {
6
12
  connection;
7
13
  constructor(connection) {
8
14
  this.connection = connection;
9
15
  }
16
+ /**
17
+ * Health-check simples:
18
+ * - grava um ping
19
+ * - le de volta e valida
20
+ */
10
21
  async isRunning() {
11
22
  const key = new unique_entity_id_1.UniqueEntityId().toValue();
12
23
  await this.set(key, JSON.stringify({ ping: true }), this.connection?.timeout || 60);
@@ -0,0 +1,9 @@
1
+ import { Entity } from '../../domain/entities/entity';
2
+ import ConsistencyEvent from '../../domain/events/consistency-event/consistency-event';
3
+ import { EventsName } from '../../domain/events/consistency-event/events-enum';
4
+ import { AuthorizerHeaders } from '../../infra/http/handle-authorizer-headers';
5
+ export declare abstract class ConsistencyEventDispatcher {
6
+ dispatch(entity: Entity<any>, authorizerHeaders: AuthorizerHeaders, eventName: EventsName): Promise<void>;
7
+ dispatchBatch(entities: Entity<any>[], authorizerHeaders: AuthorizerHeaders, eventName: EventsName): Promise<void>;
8
+ abstract publish(event: ConsistencyEvent): Promise<void>;
9
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsistencyEventDispatcher = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const consistency_event_1 = tslib_1.__importDefault(require("../../domain/events/consistency-event/consistency-event"));
6
+ class ConsistencyEventDispatcher {
7
+ async dispatch(entity, authorizerHeaders, eventName) {
8
+ try {
9
+ const event = new consistency_event_1.default([entity], authorizerHeaders, eventName);
10
+ await this.publish(event);
11
+ }
12
+ catch (error) {
13
+ console.error(`Failed to dispatch consistency event: ${error}`);
14
+ }
15
+ }
16
+ async dispatchBatch(entities, authorizerHeaders, eventName) {
17
+ try {
18
+ const event = new consistency_event_1.default(entities, authorizerHeaders, eventName);
19
+ await this.publish(event);
20
+ }
21
+ catch (error) {
22
+ console.error(`Failed to dispatch batch consistency events: ${error}`);
23
+ }
24
+ }
25
+ }
26
+ exports.ConsistencyEventDispatcher = ConsistencyEventDispatcher;
@@ -0,0 +1,10 @@
1
+ import { AuthorizerHeaders } from '../../infra/http/handle-authorizer-headers';
2
+ import LoggerGateway, { Trace } from '.';
3
+ import { LogOrbitParams } from '../../infra/logger/logger-orbit';
4
+ export declare abstract class BaseAuditLogger {
5
+ protected readonly gateway: LoggerGateway;
6
+ protected defaultExpirationHours: number;
7
+ constructor(gateway: LoggerGateway);
8
+ protected buildParams(type: string, authorizerHeaders: AuthorizerHeaders, trace: Trace): LogOrbitParams;
9
+ protected info(payload: any, params: LogOrbitParams): Promise<void>;
10
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseAuditLogger = void 0;
4
+ const _1 = require(".");
5
+ const FIVE_YEARS_IN_HOURS = 24 * 365 * 5;
6
+ class BaseAuditLogger {
7
+ gateway;
8
+ defaultExpirationHours = FIVE_YEARS_IN_HOURS;
9
+ constructor(gateway) {
10
+ this.gateway = gateway;
11
+ }
12
+ buildParams(type, authorizerHeaders, trace) {
13
+ trace.ids.push(authorizerHeaders.traceId);
14
+ return {
15
+ type,
16
+ trace,
17
+ actor: authorizerHeaders.entityId,
18
+ tenantId: authorizerHeaders.tenantId,
19
+ actorType: _1.ActorEnum.USER,
20
+ category: _1.CategoryEnum.BUSINESS,
21
+ expirationHours: this.defaultExpirationHours,
22
+ };
23
+ }
24
+ async info(payload, params) {
25
+ return await this.gateway.info({ payload }, params);
26
+ }
27
+ }
28
+ exports.BaseAuditLogger = BaseAuditLogger;
@@ -1,51 +1,139 @@
1
1
  import { LOG_LEVEL } from '../../infra/environment/types';
2
2
  import { Cache } from '../cache/cache';
3
+ export interface Trace {
4
+ mainId?: string;
5
+ ids: string[];
6
+ }
7
+ /**
8
+ * Identifica o tipo de ator que originou o log.
9
+ */
3
10
  export declare enum ActorEnum {
4
11
  SYSTEM = "system",
5
12
  USER = "user"
6
13
  }
14
+ /**
15
+ * Categoriza o log em negócio ou técnico.
16
+ */
7
17
  export declare enum CategoryEnum {
8
18
  BUSINESS = "business",
9
19
  TECHNICAL = "technical"
10
20
  }
21
+ /**
22
+ * Propriedades obrigatórias após a construção do log.
23
+ */
11
24
  export interface LogProperties {
12
25
  level: LOG_LEVEL;
13
26
  actor: string;
14
27
  type: string;
15
28
  dateTime: Date;
16
29
  }
30
+ /**
31
+ * Propriedades mínimas de entrada para logar.
32
+ */
17
33
  export interface LogPropertiesInput {
18
34
  level: LOG_LEVEL;
19
35
  }
36
+ /**
37
+ * Parâmetros padrão usados para construir propriedades de log.
38
+ */
20
39
  export interface LogParams {
21
40
  actor: string;
22
41
  type: string;
23
42
  }
43
+ export type LogParamsInput = Partial<LogParams>;
44
+ /**
45
+ * Opções de comportamento do logger.
46
+ */
24
47
  export interface LogOptions {
48
+ /**
49
+ * Quando `true`, assume que o último argumento do log é `params` adicionais.
50
+ */
25
51
  lastArgIsParams?: boolean;
26
52
  }
53
+ /**
54
+ * Interface mínima de um logger.
55
+ */
27
56
  export interface Logger {
28
57
  info: (...input: any[]) => Promise<void> | void;
29
58
  warn: (...input: any[]) => Promise<void> | void;
30
59
  error: (...input: any[]) => Promise<void> | void;
31
60
  debug: (...input: any[]) => Promise<void> | void;
32
61
  }
62
+ export type LoggerGatewayProps = {
63
+ cache?: Cache;
64
+ options?: LogOptions;
65
+ params?: LogParamsInput;
66
+ };
67
+ /**
68
+ * Classe base para loggers.
69
+ *
70
+ * Responsável por:
71
+ * - Montar propriedades padrão (`actor`, `type`, `level`, `dateTime`).
72
+ * - Aplicar filtros por nível com apoio opcional de cache.
73
+ * - Delegar o envio para a implementação concreta (`register`).
74
+ */
33
75
  export default abstract class LoggerGateway implements Logger {
34
- protected cache?: Cache | undefined;
35
- protected options?: LogOptions | undefined;
36
- protected params?: LogParams | undefined;
37
- constructor(cache?: Cache | undefined, options?: LogOptions | undefined, params?: LogParams | undefined);
76
+ protected cache?: Cache;
77
+ protected options?: LogOptions;
78
+ protected params?: LogParamsInput;
79
+ constructor(props?: LoggerGatewayProps);
38
80
  private static cacheKey;
81
+ /**
82
+ * Loga com nível `info`.
83
+ */
39
84
  info(...input: any[]): Promise<void>;
85
+ /**
86
+ * Loga com nível `warn`.
87
+ */
40
88
  warn(...input: any[]): Promise<void>;
89
+ /**
90
+ * Loga com nível `error`.
91
+ */
41
92
  error(...input: any[]): Promise<void>;
93
+ /**
94
+ * Loga com nível `debug`.
95
+ */
42
96
  debug(...input: any[]): Promise<void>;
97
+ /**
98
+ * Fluxo principal de logging.
99
+ *
100
+ * - Extrai params extras quando `lastArgIsParams` estiver habilitado.
101
+ * - Monta propriedades finais.
102
+ * - Checa se deve logar (nível/cache).
103
+ * - Delegada envio para `register`.
104
+ */
43
105
  log(props: LogPropertiesInput, dataToLog: any): Promise<void>;
106
+ /**
107
+ * Implementação concreta deve persistir/enviar o log.
108
+ */
44
109
  protected abstract register(props: LogProperties, dataToLog: any, params?: LogParams): Promise<void> | void;
110
+ /**
111
+ * Constrói a lista de níveis aceitos com base no nível configurado.
112
+ */
45
113
  private static buildAcceptLogLevelValues;
114
+ /**
115
+ * Decide se o log deve ser emitido.
116
+ *
117
+ * - `error` sempre é emitido.
118
+ * - Sem cache, sempre emite.
119
+ * - Com cache, consulta o nível permitido por tipo/actor.
120
+ */
46
121
  protected isToLog(props: LogProperties, dataToLog: any): Promise<boolean>;
47
- protected buildProps(props?: LogPropertiesInput, params?: LogParams): LogProperties;
48
- protected buildDefaultProps(params?: LogParams): LogProperties;
122
+ /**
123
+ * Monta as propriedades finais do log.
124
+ */
125
+ protected buildProps(props?: LogPropertiesInput, params?: LogParamsInput): LogProperties;
126
+ /**
127
+ * Monta propriedades padrão.
128
+ */
129
+ protected buildDefaultProps(params?: LogParamsInput): LogProperties;
130
+ /**
131
+ * Define o nível de log no cache para um filtro (type/actor).
132
+ *
133
+ * @param level Nível mínimo a ser aceito.
134
+ * @param filter Filtro de log por tipo e ator.
135
+ * @param ttl Tempo em segundos (default 4 dias).
136
+ */
49
137
  setLevel(level: LOG_LEVEL, filter: {
50
138
  logType: string;
51
139
  logActor: string;