@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,6 +1,24 @@
1
1
  import { ScaledJobOptions } from '../types';
2
+ /**
3
+ * Opções para execução de ScaledJobs com AWS SQS.
4
+ */
2
5
  export interface SQSScaledJobOptions extends ScaledJobOptions {
6
+ /**
7
+ * Região AWS onde a fila SQS está localizada.
8
+ *
9
+ * Ex.: `us-east-1`.
10
+ */
3
11
  sqsRegion: string;
12
+ /**
13
+ * Tempo máximo (em segundos) que o job pode executar antes de encerrar.
14
+ *
15
+ * Quando definido, o runner disputa o processamento com um timeout global.
16
+ */
4
17
  processTimeoutSeconds?: number;
18
+ /**
19
+ * Tempo de long polling (em segundos) usado no ReceiveMessage.
20
+ *
21
+ * Valores maiores reduzem custo e aumentam eficiência de consumo.
22
+ */
5
23
  waitMessagesTimeSeconds?: number;
6
24
  }
@@ -1,2 +1,7 @@
1
+ /**
2
+ * Marcador para opções compartilhadas entre runners de ScaledJob.
3
+ *
4
+ * Hoje está vazio, mas serve como ponto de extensão comum.
5
+ */
1
6
  export interface ScaledJobOptions {
2
7
  }
@@ -0,0 +1,10 @@
1
+ type TracingResourceAttribute = string | number | boolean | undefined;
2
+ interface IStartTracingOptions {
3
+ serviceName?: string;
4
+ serviceVersion?: string;
5
+ disabledInstrumentations?: string[];
6
+ extraResourceAttributes?: Record<string, TracingResourceAttribute>;
7
+ }
8
+ export declare function shutdownTracing(): Promise<void>;
9
+ export declare function startTracing(options?: IStartTracingOptions): void;
10
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startTracing = exports.shutdownTracing = void 0;
4
+ const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
5
+ const resources_1 = require("@opentelemetry/resources");
6
+ const sdk_node_1 = require("@opentelemetry/sdk-node");
7
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
8
+ const DEFAULT_DISABLED_INSTRUMENTATIONS = ['@opentelemetry/instrumentation-fs'];
9
+ let sdk = null;
10
+ let isShutdownHookRegistered = false;
11
+ let shutdownPromise = null;
12
+ function makeDisabledInstrumentationMap(disabledInstrumentations) {
13
+ return disabledInstrumentations.reduce((accumulator, instrumentationName) => {
14
+ accumulator[instrumentationName] = { enabled: false };
15
+ return accumulator;
16
+ }, {});
17
+ }
18
+ function shutdownTracing() {
19
+ if (sdk === null) {
20
+ return Promise.resolve();
21
+ }
22
+ if (shutdownPromise !== null) {
23
+ return shutdownPromise;
24
+ }
25
+ const currentShutdownPromise = sdk
26
+ .shutdown()
27
+ .then(() => {
28
+ console.log('Tracing terminated');
29
+ sdk = null;
30
+ })
31
+ .catch((error) => {
32
+ console.log('Error terminating tracing', error);
33
+ throw error;
34
+ })
35
+ .finally(() => {
36
+ shutdownPromise = null;
37
+ });
38
+ shutdownPromise = currentShutdownPromise;
39
+ return currentShutdownPromise;
40
+ }
41
+ exports.shutdownTracing = shutdownTracing;
42
+ function registerShutdownHook() {
43
+ if (isShutdownHookRegistered) {
44
+ return;
45
+ }
46
+ process.on('SIGTERM', () => {
47
+ void shutdownTracing();
48
+ });
49
+ isShutdownHookRegistered = true;
50
+ }
51
+ function startTracing(options = {}) {
52
+ if (sdk !== null) {
53
+ return;
54
+ }
55
+ const serviceName = options.serviceName;
56
+ const serviceVersion = options.serviceVersion;
57
+ const disabledInstrumentations = [
58
+ ...new Set([
59
+ ...DEFAULT_DISABLED_INSTRUMENTATIONS,
60
+ ...(options.disabledInstrumentations ?? []),
61
+ ]),
62
+ ];
63
+ const resourceAttributes = {
64
+ [semantic_conventions_1.ATTR_SERVICE_NAME]: serviceName,
65
+ [semantic_conventions_1.ATTR_SERVICE_VERSION]: serviceVersion,
66
+ ...(options.extraResourceAttributes ?? {}),
67
+ };
68
+ sdk = new sdk_node_1.NodeSDK({
69
+ resource: (0, resources_1.resourceFromAttributes)(resourceAttributes),
70
+ instrumentations: [
71
+ (0, auto_instrumentations_node_1.getNodeAutoInstrumentations)(makeDisabledInstrumentationMap(disabledInstrumentations)),
72
+ ],
73
+ });
74
+ sdk.start();
75
+ console.log('OpenTelemetry tracing started');
76
+ registerShutdownHook();
77
+ }
78
+ exports.startTracing = startTracing;
@@ -1,4 +1,8 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ *
4
+ * @deprecated Use authorizerHeaders.
5
+ */
2
6
  export declare const headersDefault: z.ZodObject<{
3
7
  tenantid: z.ZodString;
4
8
  username: z.ZodString;
@@ -12,6 +16,10 @@ export declare const headersDefault: z.ZodObject<{
12
16
  tenantid: string;
13
17
  useremail: string;
14
18
  }>;
19
+ /**
20
+ *
21
+ * @deprecated Use authorizerHeaders.
22
+ */
15
23
  export declare const headersDefaultWithUserId: z.ZodObject<{
16
24
  tenantid: z.ZodString;
17
25
  username: z.ZodString;
@@ -28,6 +36,157 @@ export declare const headersDefaultWithUserId: z.ZodObject<{
28
36
  useremail: string;
29
37
  userid: string;
30
38
  }>;
39
+ export declare const tenantIdSchema: z.ZodObject<{
40
+ tenantid: z.ZodString;
41
+ }, "strip", z.ZodTypeAny, {
42
+ tenantid: string;
43
+ }, {
44
+ tenantid: string;
45
+ }>;
46
+ export declare const userSchema: z.ZodObject<{
47
+ username: z.ZodString;
48
+ useremail: z.ZodString;
49
+ userid: z.ZodOptional<z.ZodString>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ username: string;
52
+ useremail: string;
53
+ userid?: string | undefined;
54
+ }, {
55
+ username: string;
56
+ useremail: string;
57
+ userid?: string | undefined;
58
+ }>;
59
+ export declare const appSchema: z.ZodObject<{
60
+ "app-name": z.ZodString;
61
+ "app-id": z.ZodString;
62
+ }, "strip", z.ZodTypeAny, {
63
+ "app-id": string;
64
+ "app-name": string;
65
+ }, {
66
+ "app-id": string;
67
+ "app-name": string;
68
+ }>;
69
+ export declare const traceSchema: z.ZodObject<{
70
+ "x-trace-id": z.ZodDefault<z.ZodString>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ "x-trace-id": string;
73
+ }, {
74
+ "x-trace-id"?: string | undefined;
75
+ }>;
76
+ export declare const tenantSchema: z.ZodObject<{
77
+ tenantname: z.ZodOptional<z.ZodString>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ tenantname?: string | undefined;
80
+ }, {
81
+ tenantname?: string | undefined;
82
+ }>;
83
+ export declare const integrationHeaders: z.ZodObject<z.objectUtil.extendShape<{
84
+ tenantid: z.ZodString;
85
+ }, {
86
+ "x-trace-id": z.ZodDefault<z.ZodString>;
87
+ }>, "strip", z.ZodTypeAny, {
88
+ "x-trace-id": string;
89
+ tenantid: string;
90
+ }, {
91
+ tenantid: string;
92
+ "x-trace-id"?: string | undefined;
93
+ }>;
94
+ export declare const authorizerHeaders: z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
95
+ username: z.ZodString;
96
+ useremail: z.ZodString;
97
+ userid: z.ZodOptional<z.ZodString>;
98
+ }, z.objectUtil.extendShape<{
99
+ tenantid: z.ZodString;
100
+ }, {
101
+ "x-trace-id": z.ZodDefault<z.ZodString>;
102
+ }>>, {
103
+ tenantname: z.ZodOptional<z.ZodString>;
104
+ }>, "strip", z.ZodTypeAny, {
105
+ "x-trace-id": string;
106
+ username: string;
107
+ tenantid: string;
108
+ useremail: string;
109
+ userid?: string | undefined;
110
+ tenantname?: string | undefined;
111
+ }, {
112
+ username: string;
113
+ tenantid: string;
114
+ useremail: string;
115
+ "x-trace-id"?: string | undefined;
116
+ userid?: string | undefined;
117
+ tenantname?: string | undefined;
118
+ }>, z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
119
+ "app-name": z.ZodString;
120
+ "app-id": z.ZodString;
121
+ }, z.objectUtil.extendShape<{
122
+ tenantid: z.ZodString;
123
+ }, {
124
+ "x-trace-id": z.ZodDefault<z.ZodString>;
125
+ }>>, {
126
+ tenantname: z.ZodOptional<z.ZodString>;
127
+ }>, "strip", z.ZodTypeAny, {
128
+ "app-id": string;
129
+ "app-name": string;
130
+ "x-trace-id": string;
131
+ tenantid: string;
132
+ tenantname?: string | undefined;
133
+ }, {
134
+ "app-id": string;
135
+ "app-name": string;
136
+ tenantid: string;
137
+ "x-trace-id"?: string | undefined;
138
+ tenantname?: string | undefined;
139
+ }>]>;
140
+ export declare const authorizerHeadersWithFiscalIds: z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
141
+ username: z.ZodString;
142
+ useremail: z.ZodString;
143
+ userid: z.ZodOptional<z.ZodString>;
144
+ }, {
145
+ fiscalidsfromtenant: z.ZodString;
146
+ }>, z.objectUtil.extendShape<{
147
+ tenantid: z.ZodString;
148
+ }, {
149
+ "x-trace-id": z.ZodDefault<z.ZodString>;
150
+ }>>, "strip", z.ZodTypeAny, {
151
+ "x-trace-id": string;
152
+ fiscalidsfromtenant: string;
153
+ username: string;
154
+ tenantid: string;
155
+ useremail: string;
156
+ userid?: string | undefined;
157
+ }, {
158
+ fiscalidsfromtenant: string;
159
+ username: string;
160
+ tenantid: string;
161
+ useremail: string;
162
+ "x-trace-id"?: string | undefined;
163
+ userid?: string | undefined;
164
+ }>, z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
165
+ "app-name": z.ZodString;
166
+ "app-id": z.ZodString;
167
+ }, {
168
+ fiscalidsfromtenant: z.ZodString;
169
+ }>, z.objectUtil.extendShape<{
170
+ tenantid: z.ZodString;
171
+ }, {
172
+ "x-trace-id": z.ZodDefault<z.ZodString>;
173
+ }>>, "strip", z.ZodTypeAny, {
174
+ "app-id": string;
175
+ "app-name": string;
176
+ "x-trace-id": string;
177
+ fiscalidsfromtenant: string;
178
+ tenantid: string;
179
+ }, {
180
+ "app-id": string;
181
+ "app-name": string;
182
+ fiscalidsfromtenant: string;
183
+ tenantid: string;
184
+ "x-trace-id"?: string | undefined;
185
+ }>]>;
186
+ /**
187
+ *
188
+ * @deprecated Use authorizerHeadersWithFiscalIds.
189
+ */
31
190
  export declare const headersDefaultWithFiscalIds: z.ZodObject<{
32
191
  tenantid: z.ZodString;
33
192
  username: z.ZodString;
@@ -1,18 +1,69 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.headersDefaultWithFiscalIds = exports.headersDefaultWithUserId = exports.headersDefault = void 0;
3
+ exports.headersDefaultWithFiscalIds = exports.authorizerHeadersWithFiscalIds = exports.authorizerHeaders = exports.integrationHeaders = exports.tenantSchema = exports.traceSchema = exports.appSchema = exports.userSchema = exports.tenantIdSchema = exports.headersDefaultWithUserId = exports.headersDefault = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const zod_1 = require("zod");
6
+ const crypto_1 = tslib_1.__importDefault(require("crypto"));
7
+ /**
8
+ *
9
+ * @deprecated Use authorizerHeaders.
10
+ */
5
11
  exports.headersDefault = zod_1.z.object({
6
12
  tenantid: zod_1.z.string().uuid(),
7
13
  username: zod_1.z.string(),
8
14
  useremail: zod_1.z.string(),
9
15
  });
16
+ /**
17
+ *
18
+ * @deprecated Use authorizerHeaders.
19
+ */
10
20
  exports.headersDefaultWithUserId = zod_1.z.object({
11
21
  tenantid: zod_1.z.string().uuid(),
12
22
  username: zod_1.z.string(),
13
23
  useremail: zod_1.z.string(),
14
- userid: zod_1.z.string().uuid(),
24
+ userid: zod_1.z.string(),
15
25
  });
26
+ exports.tenantIdSchema = zod_1.z.object({
27
+ tenantid: zod_1.z.string().uuid(),
28
+ });
29
+ exports.userSchema = zod_1.z.object({
30
+ username: zod_1.z.string(),
31
+ useremail: zod_1.z.string().email(),
32
+ userid: zod_1.z.string().optional(),
33
+ });
34
+ exports.appSchema = zod_1.z.object({
35
+ ['app-name']: zod_1.z.string(),
36
+ ['app-id']: zod_1.z.string().uuid(),
37
+ });
38
+ exports.traceSchema = zod_1.z.object({
39
+ ['x-trace-id']: zod_1.z
40
+ .string()
41
+ .uuid()
42
+ .default(() => crypto_1.default.randomUUID()),
43
+ });
44
+ const fiscalIdsSchema = zod_1.z.object({
45
+ fiscalidsfromtenant: zod_1.z.string(zod_1.z.array(zod_1.z.object({
46
+ value: zod_1.z.string(),
47
+ type: zod_1.z.string(),
48
+ countryCode: zod_1.z.string(),
49
+ }))),
50
+ });
51
+ exports.tenantSchema = zod_1.z.object({
52
+ tenantname: zod_1.z.string().optional(),
53
+ });
54
+ exports.integrationHeaders = exports.tenantIdSchema.merge(exports.traceSchema);
55
+ exports.authorizerHeaders = zod_1.z.union([
56
+ exports.userSchema.merge(exports.integrationHeaders).merge(exports.tenantSchema),
57
+ exports.appSchema.merge(exports.integrationHeaders).merge(exports.tenantSchema),
58
+ ]);
59
+ exports.authorizerHeadersWithFiscalIds = zod_1.z.union([
60
+ exports.userSchema.merge(fiscalIdsSchema).merge(exports.integrationHeaders),
61
+ exports.appSchema.merge(fiscalIdsSchema).merge(exports.integrationHeaders),
62
+ ]);
63
+ /**
64
+ *
65
+ * @deprecated Use authorizerHeadersWithFiscalIds.
66
+ */
16
67
  exports.headersDefaultWithFiscalIds = zod_1.z.object({
17
68
  tenantid: zod_1.z.string().uuid(),
18
69
  username: zod_1.z.string(),
@@ -6,7 +6,7 @@ type SchemaDefinition = {
6
6
  query: ZodObject<Record<string, any>> | ZodEffects<ZodObject<Record<string, any>>>;
7
7
  body: ZodObject<Record<string, any>> | ZodEffects<ZodObject<Record<string, any>>>;
8
8
  };
9
- type ZodSchemaObject = ZodObject<SchemaDefinition>;
9
+ export type ZodSchemaObject = ZodObject<SchemaDefinition>;
10
10
  export default class ValidationZod implements ValidationHTTP {
11
11
  private zodSchema;
12
12
  constructor(zodSchema: ZodSchemaObject);
@@ -433,4 +433,27 @@ describe('Validation zod', () => {
433
433
  }));
434
434
  }
435
435
  });
436
+ test('should return empty sections when the request omits them', async () => {
437
+ const schema = zod_1.z.object({
438
+ body: zod_1.z.object({
439
+ name: zod_1.z.string().optional(),
440
+ }),
441
+ headers: zod_1.z.object({
442
+ tenantid: zod_1.z.string().optional(),
443
+ }),
444
+ query: zod_1.z.object({
445
+ page: zod_1.z.string().optional(),
446
+ }),
447
+ params: zod_1.z.object({
448
+ id: zod_1.z.string().optional(),
449
+ }),
450
+ });
451
+ const validation = new validation_zod_1.default(schema);
452
+ await expect(validation.validate({})).resolves.toEqual({
453
+ body: {},
454
+ headers: {},
455
+ params: {},
456
+ query: {},
457
+ });
458
+ });
436
459
  });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const get_take_and_skip_1 = require("./get-take-and-skip");
5
+ (0, vitest_1.describe)('getTakeAndSkip', () => {
6
+ (0, vitest_1.it)('should parse pagination values and apply defaults', () => {
7
+ (0, vitest_1.expect)((0, get_take_and_skip_1.getTakeAndSkip)('10', '2')).toEqual({
8
+ take: 10,
9
+ skip: 2,
10
+ });
11
+ (0, vitest_1.expect)((0, get_take_and_skip_1.getTakeAndSkip)('', '')).toEqual({
12
+ take: 20,
13
+ skip: 1,
14
+ });
15
+ });
16
+ });
@@ -1,2 +1,10 @@
1
+ /**
2
+ * Rejeita a promise após o tempo informado.
3
+ *
4
+ * Útil para competir com tarefas via `Promise.race`.
5
+ */
1
6
  export declare function rejectTimeout(timeoutMs: number): Promise<void>;
7
+ /**
8
+ * Aguarda de forma assíncrona pelo tempo informado.
9
+ */
2
10
  export declare function sleep(timeoutMs: any): Promise<void>;
@@ -1,10 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sleep = exports.rejectTimeout = void 0;
4
+ /**
5
+ * Rejeita a promise após o tempo informado.
6
+ *
7
+ * Útil para competir com tarefas via `Promise.race`.
8
+ */
4
9
  function rejectTimeout(timeoutMs) {
5
10
  return new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), timeoutMs));
6
11
  }
7
12
  exports.rejectTimeout = rejectTimeout;
13
+ /**
14
+ * Aguarda de forma assíncrona pelo tempo informado.
15
+ */
8
16
  async function sleep(timeoutMs) {
9
17
  return new Promise(r => setTimeout(r, timeoutMs));
10
18
  }
@@ -40,6 +40,17 @@ describe('ExpressMappingModel', () => {
40
40
  });
41
41
  });
42
42
  describe('setHeader', () => {
43
+ it('should ignore empty header keys', () => {
44
+ const instance = new mapping_model_2.ExpressMappingModel({
45
+ request: {
46
+ headers: { existing: 'existing_value' },
47
+ },
48
+ });
49
+ expect(instance['setHeader']('', 'new_value')).toBe(instance);
50
+ expect(instance['getHeaders']()).toStrictEqual({
51
+ existing: 'existing_value',
52
+ });
53
+ });
43
54
  it('should set a existing header value', () => {
44
55
  const result = new mapping_model_2.ExpressMappingModel({
45
56
  request: {
@@ -136,4 +147,51 @@ describe('ExpressMappingModel', () => {
136
147
  expect(result).toBe('next func');
137
148
  });
138
149
  });
150
+ describe('setBody', () => {
151
+ it('should replace the body with body-json when present', () => {
152
+ const instance = new mapping_model_2.ExpressMappingModel({
153
+ request: {
154
+ body: {
155
+ ['body-json']: { id: '1' },
156
+ },
157
+ },
158
+ });
159
+ instance['setBody']();
160
+ expect(instance['getBody']()).toStrictEqual({ id: '1' });
161
+ });
162
+ it('should keep the original body when body-json is missing', () => {
163
+ const body = { id: '1' };
164
+ const instance = new mapping_model_2.ExpressMappingModel({
165
+ request: {
166
+ body,
167
+ },
168
+ });
169
+ instance['setBody']();
170
+ expect(instance['getBody']()).toBe(body);
171
+ });
172
+ });
173
+ describe('setMethod', () => {
174
+ it('should override request method from header', () => {
175
+ const instance = new mapping_model_2.ExpressMappingModel({
176
+ request: {
177
+ method: 'POST',
178
+ headers: {
179
+ 'x-http-method-override': 'PATCH',
180
+ },
181
+ },
182
+ });
183
+ instance['setMethod']();
184
+ expect(instance['controller'].request.method).toBe('PATCH');
185
+ });
186
+ it('should keep request method when override header is missing', () => {
187
+ const instance = new mapping_model_2.ExpressMappingModel({
188
+ request: {
189
+ method: 'POST',
190
+ headers: {},
191
+ },
192
+ });
193
+ instance['setMethod']();
194
+ expect(instance['controller'].request.method).toBe('POST');
195
+ });
196
+ });
139
197
  });
@@ -36,6 +36,15 @@ describe('Express', () => {
36
36
  const authorizations = await expressInstance['getAuthorizations']();
37
37
  expect(authorizations).toEqual(['auth1', 'auth2']);
38
38
  });
39
+ it('should get authorizations from auths header when needed', async () => {
40
+ request.headers = {
41
+ auths: '["auth1","auth2"]',
42
+ ['X-Amzn-Requestid']: 'request-id',
43
+ };
44
+ const expressInstance = (await authorization_express_1.default.create(query, controllerMetaData));
45
+ expect(expressInstance['getAuthsHeader']()).toBe('["auth1","auth2"]');
46
+ expect(expressInstance.getRequestId()).toBe('request-id');
47
+ });
39
48
  it('should call next function when authorized', async () => {
40
49
  const expressInstance = await authorization_express_1.default.create(query, controllerMetaData);
41
50
  expressInstance['handleAuthorized']();
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const vitest_1 = require("vitest");
5
+ vitest_1.vi.mock('compression', () => ({
6
+ default: vitest_1.vi.fn(options => options),
7
+ }));
8
+ const compression_1 = tslib_1.__importDefault(require("compression"));
9
+ const mapping_model_1 = require("./api-gateway/mapping-model");
10
+ const middleware_express_1 = require("./api-gateway/middleware-express");
11
+ const authorization_express_1 = tslib_1.__importDefault(require("./authorizations/authorization-express"));
12
+ const middleware_express_2 = require("./authorizations/middleware-express");
13
+ const middleware_express_3 = require("./compression/middleware-express");
14
+ describe('Express middlewares', () => {
15
+ it('should map API Gateway requests through the mapping model', () => {
16
+ const parseSpy = vitest_1.vi
17
+ .spyOn(mapping_model_1.ExpressMappingModel.prototype, 'parse')
18
+ .mockReturnValue('mapped');
19
+ const request = {};
20
+ const response = {};
21
+ const next = vitest_1.vi.fn();
22
+ expect((0, middleware_express_1.mapRequestMiddleware)(request, response, next)).toBe('mapped');
23
+ expect(parseSpy).toHaveBeenCalledTimes(1);
24
+ });
25
+ it('should build the authorizer middleware and validate the request', async () => {
26
+ const validate = vitest_1.vi.fn().mockResolvedValue(true);
27
+ const createSpy = vitest_1.vi
28
+ .spyOn(authorization_express_1.default, 'create')
29
+ .mockResolvedValue({ validate });
30
+ const request = {};
31
+ const response = {};
32
+ const next = vitest_1.vi.fn();
33
+ const query = { $and: ['auth.read'] };
34
+ const middleware = (0, middleware_express_2.authorizer)(query);
35
+ await expect(middleware(request, response, next)).resolves.toBe(true);
36
+ expect(createSpy).toHaveBeenCalledWith(query, {
37
+ request,
38
+ response,
39
+ next,
40
+ });
41
+ expect(validate).toHaveBeenCalledTimes(1);
42
+ });
43
+ it('should create a compression middleware with the expected filter', () => {
44
+ expect(compression_1.default).toHaveBeenCalledWith({
45
+ filter: expect.any(Function),
46
+ });
47
+ const filter = middleware_express_3.compressionMiddleware.filter;
48
+ expect(filter({ headers: { 'accept-encoding': 'identity' } })).toBe(true);
49
+ expect(filter({ headers: { 'accept-encoding': 'gzip' } })).toBe(false);
50
+ });
51
+ });
@@ -0,0 +1 @@
1
+ export {};