@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
@@ -2,44 +2,82 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CategoryEnum = exports.ActorEnum = void 0;
4
4
  const types_1 = require("../../infra/environment/types");
5
+ /**
6
+ * Identifica o tipo de ator que originou o log.
7
+ */
5
8
  var ActorEnum;
6
9
  (function (ActorEnum) {
7
10
  ActorEnum["SYSTEM"] = "system";
8
11
  ActorEnum["USER"] = "user";
9
12
  })(ActorEnum || (exports.ActorEnum = ActorEnum = {}));
13
+ /**
14
+ * Categoriza o log em negócio ou técnico.
15
+ */
10
16
  var CategoryEnum;
11
17
  (function (CategoryEnum) {
12
18
  CategoryEnum["BUSINESS"] = "business";
13
19
  CategoryEnum["TECHNICAL"] = "technical";
14
20
  })(CategoryEnum || (exports.CategoryEnum = CategoryEnum = {}));
21
+ /**
22
+ * Classe base para loggers.
23
+ *
24
+ * Responsável por:
25
+ * - Montar propriedades padrão (`actor`, `type`, `level`, `dateTime`).
26
+ * - Aplicar filtros por nível com apoio opcional de cache.
27
+ * - Delegar o envio para a implementação concreta (`register`).
28
+ */
15
29
  class LoggerGateway {
16
30
  cache;
17
31
  options;
18
32
  params;
19
- constructor(cache, options, params) {
20
- this.cache = cache;
21
- this.options = options;
22
- this.params = params;
33
+ constructor(props) {
34
+ this.cache = props?.cache;
35
+ this.options = props?.options;
36
+ this.params = props?.params;
23
37
  }
24
38
  static cacheKey = 'LOG_LEVEL';
39
+ /**
40
+ * Loga com nível `info`.
41
+ */
25
42
  async info(...input) {
26
43
  return await this.log({ level: types_1.LOG_LEVEL.info }, input);
27
44
  }
45
+ /**
46
+ * Loga com nível `warn`.
47
+ */
28
48
  async warn(...input) {
29
49
  return await this.log({ level: types_1.LOG_LEVEL.warn }, input);
30
50
  }
51
+ /**
52
+ * Loga com nível `error`.
53
+ */
31
54
  async error(...input) {
32
55
  return await this.log({ level: types_1.LOG_LEVEL.error }, input);
33
56
  }
57
+ /**
58
+ * Loga com nível `debug`.
59
+ */
34
60
  async debug(...input) {
35
61
  return await this.log({ level: types_1.LOG_LEVEL.debug }, input);
36
62
  }
63
+ /**
64
+ * Fluxo principal de logging.
65
+ *
66
+ * - Extrai params extras quando `lastArgIsParams` estiver habilitado.
67
+ * - Monta propriedades finais.
68
+ * - Checa se deve logar (nível/cache).
69
+ * - Delegada envio para `register`.
70
+ */
37
71
  async log(props, dataToLog) {
38
72
  try {
39
73
  let params = this.params;
40
74
  if (this.options?.lastArgIsParams && dataToLog instanceof Array) {
41
- params = dataToLog[dataToLog.length - 1];
75
+ params = {
76
+ ...(params || {}),
77
+ ...dataToLog[dataToLog.length - 1],
78
+ };
42
79
  dataToLog = dataToLog.slice(0, dataToLog.length - 1);
80
+ dataToLog = dataToLog.length === 1 ? dataToLog[0] : dataToLog;
43
81
  }
44
82
  const buildedProperties = this.buildProps(props, params);
45
83
  const isToLog = await this.isToLog(buildedProperties, dataToLog);
@@ -53,6 +91,9 @@ class LoggerGateway {
53
91
  console.log('Input', props, dataToLog);
54
92
  }
55
93
  }
94
+ /**
95
+ * Constrói a lista de níveis aceitos com base no nível configurado.
96
+ */
56
97
  static buildAcceptLogLevelValues(level) {
57
98
  const acceptValues = [types_1.LOG_LEVEL.error];
58
99
  if (level === types_1.LOG_LEVEL.warn) {
@@ -66,6 +107,13 @@ class LoggerGateway {
66
107
  }
67
108
  return acceptValues;
68
109
  }
110
+ /**
111
+ * Decide se o log deve ser emitido.
112
+ *
113
+ * - `error` sempre é emitido.
114
+ * - Sem cache, sempre emite.
115
+ * - Com cache, consulta o nível permitido por tipo/actor.
116
+ */
69
117
  async isToLog(props, dataToLog) {
70
118
  if (props.level === types_1.LOG_LEVEL.error || !this.cache) {
71
119
  return true;
@@ -94,6 +142,9 @@ class LoggerGateway {
94
142
  const acceptValues = LoggerGateway.buildAcceptLogLevelValues(cachedValue);
95
143
  return acceptValues.includes(props.level);
96
144
  }
145
+ /**
146
+ * Monta as propriedades finais do log.
147
+ */
97
148
  buildProps(props, params) {
98
149
  const defaultProps = this.buildDefaultProps(params);
99
150
  if (props) {
@@ -104,14 +155,25 @@ class LoggerGateway {
104
155
  }
105
156
  return defaultProps;
106
157
  }
158
+ /**
159
+ * Monta propriedades padrão.
160
+ */
107
161
  buildDefaultProps(params) {
108
162
  return {
109
163
  level: types_1.LOG_LEVEL.info,
110
164
  dateTime: new Date(),
111
- actor: params?.actor || 'default',
112
- type: params?.type || 'default',
165
+ actor: 'default',
166
+ type: 'default',
167
+ ...(params || {}),
113
168
  };
114
169
  }
170
+ /**
171
+ * Define o nível de log no cache para um filtro (type/actor).
172
+ *
173
+ * @param level Nível mínimo a ser aceito.
174
+ * @param filter Filtro de log por tipo e ator.
175
+ * @param ttl Tempo em segundos (default 4 dias).
176
+ */
115
177
  async setLevel(level, filter, ttl) {
116
178
  if (!this.cache) {
117
179
  return;
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const types_1 = require("../../infra/environment/types");
5
+ const logger_in_memory_1 = require("../../infra/logger/logger-in-memory");
6
+ const base_audit_logger_1 = require("./base-audit-logger");
7
+ const index_1 = tslib_1.__importStar(require("./index"));
8
+ class TestLogger extends index_1.default {
9
+ registerMock = vi.fn().mockResolvedValue(undefined);
10
+ register(props, dataToLog) {
11
+ return this.registerMock(props, dataToLog);
12
+ }
13
+ async exposeIsToLog(props, dataToLog) {
14
+ return await this.isToLog(props, dataToLog);
15
+ }
16
+ exposeBuildProps(props, params) {
17
+ return this.buildProps(props, params);
18
+ }
19
+ }
20
+ class TestAuditLogger extends base_audit_logger_1.BaseAuditLogger {
21
+ exposeBuildParams(type, authorizerHeaders, trace) {
22
+ return this.buildParams(type, authorizerHeaders, trace);
23
+ }
24
+ async exposeInfo(payload, params) {
25
+ await this.info(payload, params);
26
+ }
27
+ }
28
+ describe('Logger base', () => {
29
+ afterEach(() => {
30
+ vi.restoreAllMocks();
31
+ });
32
+ it('should build props and split params from the last argument', async () => {
33
+ const logger = new TestLogger({
34
+ options: {
35
+ lastArgIsParams: true,
36
+ },
37
+ params: {
38
+ actor: 'default-actor',
39
+ type: 'default-type',
40
+ },
41
+ });
42
+ await logger.log({ level: types_1.LOG_LEVEL.warn }, [
43
+ 'payload',
44
+ { actor: 'custom-actor', type: 'custom-type' },
45
+ ]);
46
+ expect(logger.registerMock).toHaveBeenCalledWith(expect.objectContaining({
47
+ level: types_1.LOG_LEVEL.warn,
48
+ actor: 'custom-actor',
49
+ type: 'custom-type',
50
+ dateTime: expect.any(Date),
51
+ }), 'payload');
52
+ });
53
+ it('should evaluate log levels using the cache filters', async () => {
54
+ const cache = {
55
+ getKeys: vi
56
+ .fn()
57
+ .mockResolvedValue(['LOG_LEVEL:test-type:*', 'LOG_LEVEL:*:*']),
58
+ get: vi.fn().mockResolvedValue(types_1.LOG_LEVEL.info),
59
+ set: vi.fn(),
60
+ };
61
+ const logger = new TestLogger({
62
+ cache: cache,
63
+ params: {
64
+ actor: 'test-actor',
65
+ type: 'test-type',
66
+ },
67
+ });
68
+ await expect(logger.exposeIsToLog({
69
+ level: types_1.LOG_LEVEL.warn,
70
+ actor: 'test-actor',
71
+ type: 'test-type',
72
+ dateTime: new Date(),
73
+ }, ['payload'])).resolves.toBe(true);
74
+ await expect(logger.exposeIsToLog({
75
+ level: types_1.LOG_LEVEL.debug,
76
+ actor: 'test-actor',
77
+ type: 'test-type',
78
+ dateTime: new Date(),
79
+ }, [])).resolves.toBe(false);
80
+ await logger.setLevel(types_1.LOG_LEVEL.debug, {
81
+ logActor: 'user',
82
+ logType: 'partner',
83
+ });
84
+ expect(cache.set).toHaveBeenCalledWith('LOG_LEVEL:partner:user', types_1.LOG_LEVEL.debug, 345600);
85
+ });
86
+ it('should fallback to default props and swallow logging errors', async () => {
87
+ const consoleError = vi
88
+ .spyOn(console, 'error')
89
+ .mockImplementation(() => undefined);
90
+ const consoleLog = vi
91
+ .spyOn(console, 'log')
92
+ .mockImplementation(() => undefined);
93
+ const logger = new TestLogger();
94
+ logger.registerMock.mockRejectedValue(new Error('register failed'));
95
+ expect(logger.exposeBuildProps(undefined, undefined)).toEqual(expect.objectContaining({
96
+ level: types_1.LOG_LEVEL.info,
97
+ actor: 'default',
98
+ type: 'default',
99
+ dateTime: expect.any(Date),
100
+ }));
101
+ await expect(logger.log({ level: types_1.LOG_LEVEL.info }, 'payload')).resolves.toBeUndefined();
102
+ expect(consoleError).toHaveBeenCalledWith('Error in log', expect.any(Error));
103
+ expect(consoleLog).toHaveBeenCalledWith('Input', { level: types_1.LOG_LEVEL.info }, 'payload');
104
+ });
105
+ it('should prefer exact cached filters and expose the level helpers', async () => {
106
+ const cache = {
107
+ getKeys: vi
108
+ .fn()
109
+ .mockResolvedValue(['LOG_LEVEL:*:*', 'LOG_LEVEL:test-type:test-actor']),
110
+ get: vi.fn().mockImplementation(async (key) => {
111
+ return key === 'LOG_LEVEL:test-type:test-actor'
112
+ ? types_1.LOG_LEVEL.debug
113
+ : types_1.LOG_LEVEL.error;
114
+ }),
115
+ set: vi.fn(),
116
+ };
117
+ const logger = new TestLogger({
118
+ cache: cache,
119
+ params: {
120
+ actor: 'test-actor',
121
+ type: 'test-type',
122
+ },
123
+ });
124
+ await logger.info('info-payload');
125
+ await logger.warn('warn-payload');
126
+ await logger.error('error-payload');
127
+ await logger.debug('debug-payload');
128
+ expect(cache.get).toHaveBeenCalledWith('LOG_LEVEL:test-type:test-actor');
129
+ expect(logger.registerMock).toHaveBeenCalledTimes(4);
130
+ expect(logger.registerMock).toHaveBeenNthCalledWith(1, expect.objectContaining({ level: types_1.LOG_LEVEL.info }), ['info-payload']);
131
+ expect(logger.registerMock).toHaveBeenNthCalledWith(4, expect.objectContaining({ level: types_1.LOG_LEVEL.debug }), ['debug-payload']);
132
+ });
133
+ it('should skip setLevel when no cache is configured', async () => {
134
+ const logger = new TestLogger();
135
+ await expect(logger.setLevel(types_1.LOG_LEVEL.warn, {
136
+ logActor: 'user',
137
+ logType: 'partner',
138
+ })).resolves.toBeUndefined();
139
+ });
140
+ });
141
+ describe('LoggerInMemory', () => {
142
+ afterEach(() => {
143
+ vi.restoreAllMocks();
144
+ });
145
+ it('should dispatch console calls according to the log level', () => {
146
+ const consoleInfo = vi
147
+ .spyOn(console, 'info')
148
+ .mockImplementation(() => undefined);
149
+ const consoleWarn = vi
150
+ .spyOn(console, 'warn')
151
+ .mockImplementation(() => undefined);
152
+ const consoleError = vi
153
+ .spyOn(console, 'error')
154
+ .mockImplementation(() => undefined);
155
+ const consoleDebug = vi
156
+ .spyOn(console, 'debug')
157
+ .mockImplementation(() => undefined);
158
+ const logger = new logger_in_memory_1.LoggerInMemory({
159
+ options: {
160
+ showProps: true,
161
+ },
162
+ });
163
+ logger['register']({ level: types_1.LOG_LEVEL.info }, 'payload');
164
+ logger['register']({ level: types_1.LOG_LEVEL.warn }, ['payload']);
165
+ logger['register']({ level: types_1.LOG_LEVEL.error }, 'payload');
166
+ logger['register']({ level: types_1.LOG_LEVEL.debug }, 'payload');
167
+ expect(consoleInfo).toHaveBeenCalledWith('payload', {
168
+ level: types_1.LOG_LEVEL.info,
169
+ });
170
+ expect(consoleWarn).toHaveBeenCalled();
171
+ expect(consoleError).toHaveBeenCalled();
172
+ expect(consoleDebug).toHaveBeenCalled();
173
+ });
174
+ });
175
+ describe('Audit loggers', () => {
176
+ afterEach(() => {
177
+ vi.restoreAllMocks();
178
+ });
179
+ it('should build audit params and delegate info logs', async () => {
180
+ const gateway = {
181
+ info: vi.fn().mockResolvedValue(undefined),
182
+ };
183
+ const logger = new TestAuditLogger(gateway);
184
+ const trace = { ids: [] };
185
+ const params = logger.exposeBuildParams('partner-created', {
186
+ entityId: 'user-id',
187
+ tenantId: 'tenant-id',
188
+ traceId: 'trace-id',
189
+ }, trace);
190
+ expect(params).toEqual({
191
+ type: 'partner-created',
192
+ trace: {
193
+ ids: ['trace-id'],
194
+ },
195
+ actor: 'user-id',
196
+ tenantId: 'tenant-id',
197
+ actorType: index_1.ActorEnum.USER,
198
+ category: index_1.CategoryEnum.BUSINESS,
199
+ expirationHours: 43800,
200
+ });
201
+ await logger.exposeInfo({ id: '1' }, params);
202
+ expect(gateway.info).toHaveBeenCalledWith({ payload: { id: '1' } }, params);
203
+ });
204
+ });
@@ -1,7 +1,35 @@
1
+ /**
2
+ * Classe base para consumidores de fila.
3
+ *
4
+ * A ideia é estender esta classe e implementar o método `handle`.
5
+ * A lib usa os metadados abaixo para controlar concorrência e timeout.
6
+ */
1
7
  export default abstract class Handler {
8
+ /**
9
+ * Quantas mensagens podem ser processadas em paralelo.
10
+ *
11
+ * No RabbitMQ (`AmqpQueue.on`), este valor é aplicado como `prefetch`.
12
+ * Nos runners de ScaledJob, ele é usado como limite por execução.
13
+ */
2
14
  protected simultaneity: number;
15
+ /**
16
+ * Timeout por mensagem, em segundos.
17
+ *
18
+ * Quando definido, alguns runners competem o `handle` contra um timeout.
19
+ */
3
20
  protected timeoutPerMessageSeconds: number | undefined;
21
+ /**
22
+ * Retorna o nível de concorrência configurado para o handler.
23
+ */
4
24
  getSimultaneity(): number;
25
+ /**
26
+ * Retorna o timeout por mensagem, em segundos, se definido.
27
+ */
5
28
  getTimeoutPerMessageSeconds(): number | undefined;
29
+ /**
30
+ * Processa uma única mensagem.
31
+ *
32
+ * @param message Mensagem já desserializada (normalmente um objeto JSON).
33
+ */
6
34
  abstract handle(message: any): Promise<void>;
7
35
  }
@@ -1,11 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Classe base para consumidores de fila.
5
+ *
6
+ * A ideia é estender esta classe e implementar o método `handle`.
7
+ * A lib usa os metadados abaixo para controlar concorrência e timeout.
8
+ */
3
9
  class Handler {
10
+ /**
11
+ * Quantas mensagens podem ser processadas em paralelo.
12
+ *
13
+ * No RabbitMQ (`AmqpQueue.on`), este valor é aplicado como `prefetch`.
14
+ * Nos runners de ScaledJob, ele é usado como limite por execução.
15
+ */
4
16
  simultaneity = 1;
17
+ /**
18
+ * Timeout por mensagem, em segundos.
19
+ *
20
+ * Quando definido, alguns runners competem o `handle` contra um timeout.
21
+ */
5
22
  timeoutPerMessageSeconds = undefined;
23
+ /**
24
+ * Retorna o nível de concorrência configurado para o handler.
25
+ */
6
26
  getSimultaneity() {
7
27
  return this.simultaneity;
8
28
  }
29
+ /**
30
+ * Retorna o timeout por mensagem, em segundos, se definido.
31
+ */
9
32
  getTimeoutPerMessageSeconds() {
10
33
  return this.timeoutPerMessageSeconds;
11
34
  }
@@ -1,4 +1,10 @@
1
1
  import DomainEvent from '../../domain/events/domain-event';
2
+ /**
3
+ * Representa uma publicação que falhou e foi guardada em memória.
4
+ *
5
+ * A implementação AMQP usa esta estrutura para re-publicar mensagens
6
+ * após reconexões.
7
+ */
2
8
  export type MessagesInMemory = {
3
9
  exchangeName: string;
4
10
  domainEvent: DomainEvent;
@@ -1,6 +1,28 @@
1
1
  import Queue from './queue';
2
+ /**
3
+ * Contrato de conexão com a infraestrutura de filas.
4
+ *
5
+ * Estende o contrato de `Queue` com ciclo de vida (`connect`/`close`)
6
+ * e com a capacidade opcional de declarar topologia (`createConsumers`).
7
+ */
2
8
  export default interface QueueConnection extends Queue {
9
+ /**
10
+ * Abre a conexão com o provedor de fila.
11
+ *
12
+ * @param props Parâmetros de conexão (ex.: vHost no RabbitMQ).
13
+ */
3
14
  connect(props: unknown): Promise<any>;
15
+ /**
16
+ * Encerra a conexão atual.
17
+ */
4
18
  close(): Promise<void>;
19
+ /**
20
+ * Declara a topologia necessária para um consumidor.
21
+ *
22
+ * Este método é opcional porque algumas implementações não precisam
23
+ * (ou não conseguem) declarar topologia programaticamente.
24
+ * @deprecated Use createQueues() instead.
25
+ */
5
26
  createConsumers?<T>(queueName: string, configs: T | any): Promise<void>;
27
+ createQueues?<T>(queueName: string, configs: T | any): Promise<void>;
6
28
  }
@@ -1,7 +1,46 @@
1
1
  import DomainEvent from '../../domain/events/domain-event';
2
2
  import Handler from './handler';
3
+ /**
4
+ * Contrato mínimo de uma implementação de fila.
5
+ *
6
+ * A interface foi pensada para suportar tanto consumo contínuo (`on`)
7
+ * quanto publicação baseada em eventos de domínio (`publish`).
8
+ */
3
9
  export default interface Queue {
10
+ /**
11
+ * Inicia o consumo contínuo de uma fila.
12
+ *
13
+ * @param queueName Nome da fila (e, por convenção, também o routing key).
14
+ * @param callback Handler responsável por processar cada mensagem.
15
+ */
4
16
  on(queueName: string, callback: Handler): Promise<void>;
17
+ /**
18
+ * Publica um evento de domínio em um exchange.
19
+ *
20
+ * Em implementações AMQP, o `domainEvent.name` costuma ser usado como
21
+ * routing key e como nome da fila por convenção.
22
+ *
23
+ * @param exchangeName Nome do exchange de destino.
24
+ * @param domainEvent Evento a ser publicado.
25
+ * @param configs Configurações específicas da implementação (ex.: TTL).
26
+ */
5
27
  publish(exchangeName: string, domainEvent: DomainEvent, configs?: Record<string, any>): Promise<void>;
28
+ /**
29
+ * Publica um evento de domínio em um exchange e aguarda a confirmação do broker.
30
+ *
31
+ * @param exchangeName Nome do exchange de destino.
32
+ * @param domainEvent Evento a ser publicado.
33
+ * @param configs Configurações específicas da implementação.
34
+ */
35
+ publishWaitForConfirms(exchangeName: string, domainEvent: DomainEvent, configs?: Record<string, any>): Promise<boolean>;
36
+ /**
37
+ * Faz polling (pull) de uma mensagem.
38
+ *
39
+ * Este método é opcional porque nem toda implementação precisa suportar
40
+ * o modelo de consumo por polling.
41
+ *
42
+ * @param queueName Nome da fila.
43
+ * @param options Opções específicas da implementação (ex.: `noAck` no AMQP).
44
+ */
6
45
  get?(queueName: string, options?: any): Promise<unknown>;
7
46
  }
@@ -6,4 +6,7 @@ export declare abstract class Entity<Props> {
6
6
  set id(id: UniqueEntityId);
7
7
  protected constructor(props: Props, id?: UniqueEntityId);
8
8
  equals(entity: Entity<any>): boolean;
9
+ private serializeValue;
10
+ toObject(): Record<string, unknown>;
11
+ toEventDispatchObject(): Record<string, unknown>;
9
12
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Entity = void 0;
4
4
  const unique_entity_id_1 = require("./unique-entity-id");
5
+ const watched_list_1 = require("./watched-list");
5
6
  class Entity {
6
7
  _id;
7
8
  props;
@@ -24,5 +25,39 @@ class Entity {
24
25
  }
25
26
  return false;
26
27
  }
28
+ serializeValue(value) {
29
+ if (value instanceof Entity) {
30
+ return value.toObject();
31
+ }
32
+ if (value instanceof Date) {
33
+ return value.toISOString();
34
+ }
35
+ if (value instanceof unique_entity_id_1.UniqueEntityId) {
36
+ return value.toString();
37
+ }
38
+ if (value instanceof watched_list_1.WatchedList) {
39
+ return value.toObject();
40
+ }
41
+ if (Array.isArray(value)) {
42
+ return value.map(item => this.serializeValue(item));
43
+ }
44
+ if (value && typeof value === 'object') {
45
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [
46
+ key,
47
+ this.serializeValue(item),
48
+ ]));
49
+ }
50
+ return value;
51
+ }
52
+ toObject() {
53
+ const object = this.serializeValue(this.props);
54
+ return {
55
+ ...object,
56
+ id: this.id.toString(),
57
+ };
58
+ }
59
+ toEventDispatchObject() {
60
+ return this.toObject();
61
+ }
27
62
  }
28
63
  exports.Entity = Entity;
@@ -0,0 +1 @@
1
+ export {};