@seidor-cloud-produtos/orbit-backend-lib 2.0.136 → 2.0.138
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.
- package/dist/clean-arch/application/cache/cache.d.ts +0 -32
- package/dist/clean-arch/application/cache/cache.js +0 -24
- package/dist/clean-arch/application/cache/client.d.ts +0 -23
- package/dist/clean-arch/application/cache/client.js +0 -11
- package/dist/clean-arch/application/logger/index.d.ts +6 -94
- package/dist/clean-arch/application/logger/index.js +7 -69
- package/dist/clean-arch/application/queue/handler.d.ts +0 -28
- package/dist/clean-arch/application/queue/handler.js +0 -23
- package/dist/clean-arch/application/queue/messages-in-memory.d.ts +0 -6
- package/dist/clean-arch/application/queue/queue-connection.d.ts +0 -22
- package/dist/clean-arch/application/queue/queue.d.ts +0 -39
- package/dist/clean-arch/domain/entities/entity.d.ts +0 -3
- package/dist/clean-arch/domain/entities/entity.js +0 -35
- package/dist/clean-arch/domain/entities/watched-list.d.ts +0 -1
- package/dist/clean-arch/domain/entities/watched-list.js +0 -9
- package/dist/clean-arch/domain/events/domain-event.d.ts +0 -5
- package/dist/clean-arch/domain/interfaces/country.d.ts +0 -1
- package/dist/clean-arch/infra/authorizations/authorizer.spec.js +0 -43
- package/dist/clean-arch/infra/cache/cache-in-memory.d.ts +0 -5
- package/dist/clean-arch/infra/cache/cache-in-memory.js +0 -6
- package/dist/clean-arch/infra/cache/clients/node-cache.d.ts +0 -17
- package/dist/clean-arch/infra/cache/clients/node-cache.js +2 -20
- package/dist/clean-arch/infra/cache/clients/redis.d.ts +0 -15
- package/dist/clean-arch/infra/cache/clients/redis.js +0 -11
- package/dist/clean-arch/infra/http/controller.spec.js +51 -170
- package/dist/clean-arch/infra/http/handle-user-headers.d.ts +0 -5
- package/dist/clean-arch/infra/http/handle-user-headers.js +0 -2
- package/dist/clean-arch/infra/logger/logger-in-memory.d.ts +2 -31
- package/dist/clean-arch/infra/logger/logger-in-memory.js +2 -21
- package/dist/clean-arch/infra/logger/logger-orbit.d.ts +5 -81
- package/dist/clean-arch/infra/logger/logger-orbit.js +6 -63
- package/dist/clean-arch/infra/queue/create-consumers.d.ts +0 -18
- package/dist/clean-arch/infra/queue/create-consumers.js +0 -15
- package/dist/clean-arch/infra/queue/in-memory/in-memory-queue.d.ts +0 -16
- package/dist/clean-arch/infra/queue/in-memory/in-memory-queue.js +0 -19
- package/dist/clean-arch/infra/queue/queue-controller.d.ts +0 -14
- package/dist/clean-arch/infra/queue/queue-controller.js +0 -8
- package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.d.ts +1 -5
- package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.js +12 -23
- package/dist/clean-arch/infra/queue/rabbitmq/amqp-lib.spec.js +89 -504
- package/dist/clean-arch/infra/queue/rabbitmq/types.d.ts +1 -7
- package/dist/clean-arch/infra/queue/worker.d.ts +0 -9
- package/dist/clean-arch/infra/queue/worker.js +0 -9
- package/dist/clean-arch/infra/scaledjob/amqp/runner.d.ts +2 -35
- package/dist/clean-arch/infra/scaledjob/amqp/runner.js +3 -38
- package/dist/clean-arch/infra/scaledjob/amqp/runner.spec.js +84 -74
- package/dist/clean-arch/infra/scaledjob/amqp/types.d.ts +0 -19
- package/dist/clean-arch/infra/scaledjob/sqs/runner.d.ts +0 -23
- package/dist/clean-arch/infra/scaledjob/sqs/runner.js +2 -26
- package/dist/clean-arch/infra/scaledjob/sqs/types.d.ts +0 -18
- package/dist/clean-arch/infra/scaledjob/types/index.d.ts +0 -5
- package/dist/clean-arch/infra/validations/zod/schemas/common-validation.d.ts +0 -159
- package/dist/clean-arch/infra/validations/zod/schemas/common-validation.js +2 -53
- package/dist/clean-arch/infra/validations/zod/validation-zod.d.ts +1 -1
- package/dist/clean-arch/infra/validations/zod/validation-zod.spec.js +0 -23
- package/dist/clean-arch/shared/timeout.d.ts +0 -8
- package/dist/clean-arch/shared/timeout.js +0 -8
- package/dist/frameworks/express/api-gateway/mapping-model.spec.js +0 -58
- package/dist/frameworks/express/authorizations/authorization-express.spec.js +0 -9
- package/dist/infra/http/api-gateway/mapping-model.spec.js +0 -42
- package/dist/static/countries.js +0 -241
- package/package.json +1 -5
- package/dist/clean-arch/application/cache/cache.spec.d.ts +0 -1
- package/dist/clean-arch/application/cache/cache.spec.js +0 -178
- package/dist/clean-arch/application/consistency-event-dispatcher/consistency-event-dispatcher.d.ts +0 -9
- package/dist/clean-arch/application/consistency-event-dispatcher/consistency-event-dispatcher.js +0 -26
- package/dist/clean-arch/application/logger/base-audit-logger.d.ts +0 -10
- package/dist/clean-arch/application/logger/base-audit-logger.js +0 -28
- package/dist/clean-arch/application/logger/logger.spec.d.ts +0 -1
- package/dist/clean-arch/application/logger/logger.spec.js +0 -204
- package/dist/clean-arch/domain/entities/entity.spec.d.ts +0 -1
- package/dist/clean-arch/domain/entities/entity.spec.js +0 -130
- package/dist/clean-arch/domain/events/consistency-event/consistency-event.d.ts +0 -15
- package/dist/clean-arch/domain/events/consistency-event/consistency-event.js +0 -15
- package/dist/clean-arch/domain/events/consistency-event/consistency-event.spec.d.ts +0 -1
- package/dist/clean-arch/domain/events/consistency-event/consistency-event.spec.js +0 -99
- package/dist/clean-arch/domain/events/consistency-event/events-enum.d.ts +0 -94
- package/dist/clean-arch/domain/events/consistency-event/events-enum.js +0 -145
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-entity-event.d.ts +0 -30
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/address/address-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-associated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-associated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-entity-event.d.ts +0 -38
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/branch/branch-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-entity-event.d.ts +0 -26
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/contact/contact-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-entity-event.d.ts +0 -10
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/customer/customer-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-entity-event.d.ts +0 -37
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/partner/partner-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-associated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-associated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-entity-event.d.ts +0 -13
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/role/role-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-entity-event.d.ts +0 -5
- package/dist/clean-arch/domain/events/consistency-event/types/partner-service/supplier/supplier-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-entity-event.d.ts +0 -11
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/authorization/authorization-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-entity-event.d.ts +0 -14
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/external-provider/external-provider-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-entity-event.d.ts +0 -13
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/role/role-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-entity-event.d.ts +0 -50
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant/tenant-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-entity-event.d.ts +0 -8
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-role/tenant-role-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-entity-event.d.ts +0 -10
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/tenant-user/tenant-user-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-entity-event.d.ts +0 -10
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-forgot-password.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-forgot-password.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-temporary-password-generated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user/user-temporary-password-generated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-role-entity-event.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-role-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/portal-admin/user-tenant-role/user-tenant-roles-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-entity-event.d.ts +0 -8
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/branch/branch-upserted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-deleted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-deleted.js +0 -2
- 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 +0 -11
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/brazilian-federal-revenue-api-credential/brazilian-federal-revenue-api-credential-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-deleted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-deleted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-entity-event.d.ts +0 -37
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-entity-event.js +0 -8
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/certificate/certificate-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-event.d.ts +0 -21
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-event.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-updated.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-created.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-deleted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-deleted.js +0 -2
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-entity-event.d.ts +0 -27
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-entity-event.js +0 -8
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-updated.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/external-provider/external-provider-updated.js +0 -2
- package/dist/clean-arch/domain/value-objects/password.spec.d.ts +0 -1
- package/dist/clean-arch/domain/value-objects/password.spec.js +0 -90
- package/dist/clean-arch/infra/adapters/http-adapters.spec.d.ts +0 -1
- package/dist/clean-arch/infra/adapters/http-adapters.spec.js +0 -318
- package/dist/clean-arch/infra/cache/cache-clients.spec.d.ts +0 -1
- package/dist/clean-arch/infra/cache/cache-clients.spec.js +0 -161
- package/dist/clean-arch/infra/consistency-event-dispatcher/amqp-consistency-event-dispatcher.d.ts +0 -8
- package/dist/clean-arch/infra/consistency-event-dispatcher/amqp-consistency-event-dispatcher.js +0 -18
- package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.d.ts +0 -48
- package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.js +0 -56
- package/dist/clean-arch/infra/consistency-event-dispatcher/in-memory-consistency-event-dispatcher.d.ts +0 -7
- package/dist/clean-arch/infra/consistency-event-dispatcher/in-memory-consistency-event-dispatcher.js +0 -15
- package/dist/clean-arch/infra/http/handle-authorizer-headers.d.ts +0 -25
- package/dist/clean-arch/infra/http/handle-authorizer-headers.js +0 -29
- package/dist/clean-arch/infra/http/helpers.spec.d.ts +0 -1
- package/dist/clean-arch/infra/http/helpers.spec.js +0 -136
- package/dist/clean-arch/infra/http/net.spec.d.ts +0 -1
- package/dist/clean-arch/infra/http/net.spec.js +0 -46
- package/dist/clean-arch/infra/logger/logger-orbit.spec.d.ts +0 -1
- package/dist/clean-arch/infra/logger/logger-orbit.spec.js +0 -122
- package/dist/clean-arch/infra/orbit-http-client/orbit-axios-client/orbit-axios-client.spec.d.ts +0 -1
- package/dist/clean-arch/infra/orbit-http-client/orbit-axios-client/orbit-axios-client.spec.js +0 -143
- package/dist/clean-arch/infra/orbit-notification-client/discord-client.spec.d.ts +0 -1
- package/dist/clean-arch/infra/orbit-notification-client/discord-client.spec.js +0 -58
- package/dist/clean-arch/infra/queue/create-queues.d.ts +0 -11
- package/dist/clean-arch/infra/queue/create-queues.js +0 -19
- package/dist/clean-arch/infra/queue/queue-utils.spec.d.ts +0 -1
- package/dist/clean-arch/infra/queue/queue-utils.spec.js +0 -170
- package/dist/clean-arch/infra/queue/rabbitmq/create-queues.d.ts +0 -10
- package/dist/clean-arch/infra/queue/rabbitmq/create-queues.js +0 -7
- package/dist/clean-arch/infra/scaledjob/sqs/runner.spec.d.ts +0 -1
- package/dist/clean-arch/infra/scaledjob/sqs/runner.spec.js +0 -150
- package/dist/clean-arch/infra/tracing/start-tracing.d.ts +0 -10
- package/dist/clean-arch/infra/tracing/start-tracing.js +0 -78
- package/dist/clean-arch/shared/pagination/get-take-and-skip.spec.d.ts +0 -1
- package/dist/clean-arch/shared/pagination/get-take-and-skip.spec.js +0 -16
- package/dist/frameworks/express/middleware-express.spec.d.ts +0 -1
- package/dist/frameworks/express/middleware-express.spec.js +0 -51
- package/dist/frameworks/nest/nest.spec.d.ts +0 -1
- package/dist/frameworks/nest/nest.spec.js +0 -122
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const child_process_1 = require("child_process");
|
|
4
|
-
/**
|
|
5
|
-
* Executor simples de worker em processo separado com auto-restart.
|
|
6
|
-
*
|
|
7
|
-
* Útil para subir consumidores/filas em um script dedicado, mantendo
|
|
8
|
-
* o processo principal mais estável.
|
|
9
|
-
*/
|
|
10
4
|
class ForkWorker {
|
|
11
5
|
attemptCount = 0;
|
|
12
6
|
maxAttempts = 5;
|
|
@@ -15,9 +9,6 @@ class ForkWorker {
|
|
|
15
9
|
constructor(workerPath) {
|
|
16
10
|
this.workerPath = workerPath;
|
|
17
11
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Inicia o worker e aplica a política de reinício em caso de erro/exit.
|
|
20
|
-
*/
|
|
21
12
|
fWorker() {
|
|
22
13
|
const child = (0, child_process_1.fork)(this.workerPath);
|
|
23
14
|
child.on('error', err => {
|
|
@@ -6,52 +6,19 @@ import { RabbitMQScaledJobOptions } from './types';
|
|
|
6
6
|
import { Logger } from '../../../application/logger';
|
|
7
7
|
export interface IRunnerOptions extends Partial<RabbitMQScaledJobOptions> {
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
* Runner de ScaledJob para RabbitMQ/AMQP baseado em polling (`get`).
|
|
11
|
-
*
|
|
12
|
-
* Fluxo geral por execução:
|
|
13
|
-
* - Conecta no broker.
|
|
14
|
-
* - Faz polling da fila até atingir o limite configurado.
|
|
15
|
-
* - Processa cada mensagem com o `Handler`.
|
|
16
|
-
* - Faz `ack` em sucesso e `nack` em erro (quando `manualAck` está ativo).
|
|
17
|
-
* - Fecha a conexão ao final.
|
|
18
|
-
*/
|
|
19
|
-
export declare class RabbitMQScaledJobRunner {
|
|
9
|
+
export declare class RabbitMQScaledJobRunner<T = any> {
|
|
20
10
|
private readonly amqpQueue;
|
|
21
11
|
private readonly queueName;
|
|
22
12
|
private readonly handler;
|
|
23
13
|
protected logger: Logger;
|
|
24
14
|
private options;
|
|
25
15
|
constructor(amqpQueue: AmqpQueue, queueName: string, handler: Handler, options?: IRunnerOptions, logger?: Logger);
|
|
26
|
-
/**
|
|
27
|
-
* Normaliza opções com defaults seguros.
|
|
28
|
-
*/
|
|
29
16
|
private setOptions;
|
|
30
|
-
/**
|
|
31
|
-
* Aplica a estratégia de erro quando há uma mensagem em contexto.
|
|
32
|
-
*/
|
|
33
17
|
private handleError;
|
|
34
|
-
/**
|
|
35
|
-
* Executa a estratégia de erro escolhida (`nack-dlq` ou `nack-requeue`).
|
|
36
|
-
*/
|
|
37
18
|
protected errorStrategy(getResult: AmqpQueueGetResult): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Desserializa a mensagem AMQP assumindo JSON no `content`.
|
|
40
|
-
*/
|
|
41
19
|
protected parse(raw: {
|
|
42
20
|
content: Buffer;
|
|
43
21
|
}): any;
|
|
44
|
-
|
|
45
|
-
* Hook final simples para logs quando o processo termina.
|
|
46
|
-
*/
|
|
47
|
-
private finishProcess;
|
|
48
|
-
/**
|
|
49
|
-
* Executa o ciclo completo do job.
|
|
50
|
-
*
|
|
51
|
-
* O número de mensagens por execução segue esta ordem:
|
|
52
|
-
* - `options.numberOfMessagesToGet` (deprecated).
|
|
53
|
-
* - `handler.getSimultaneity()`.
|
|
54
|
-
* - fallback para `1`.
|
|
55
|
-
*/
|
|
22
|
+
protected finishProcess(): Promise<never>;
|
|
56
23
|
run(): Promise<void>;
|
|
57
24
|
}
|
|
@@ -2,16 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RabbitMQScaledJobRunner = void 0;
|
|
4
4
|
const timeout_1 = require("../../../shared/timeout");
|
|
5
|
-
/**
|
|
6
|
-
* Runner de ScaledJob para RabbitMQ/AMQP baseado em polling (`get`).
|
|
7
|
-
*
|
|
8
|
-
* Fluxo geral por execução:
|
|
9
|
-
* - Conecta no broker.
|
|
10
|
-
* - Faz polling da fila até atingir o limite configurado.
|
|
11
|
-
* - Processa cada mensagem com o `Handler`.
|
|
12
|
-
* - Faz `ack` em sucesso e `nack` em erro (quando `manualAck` está ativo).
|
|
13
|
-
* - Fecha a conexão ao final.
|
|
14
|
-
*/
|
|
15
5
|
class RabbitMQScaledJobRunner {
|
|
16
6
|
amqpQueue;
|
|
17
7
|
queueName;
|
|
@@ -25,27 +15,18 @@ class RabbitMQScaledJobRunner {
|
|
|
25
15
|
this.logger = logger;
|
|
26
16
|
this.setOptions(options);
|
|
27
17
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Normaliza opções com defaults seguros.
|
|
30
|
-
*/
|
|
31
18
|
setOptions(options) {
|
|
32
19
|
this.options = {
|
|
33
20
|
errorStrategy: options?.errorStrategy || 'nack-dlq',
|
|
34
|
-
manualAck: options?.manualAck
|
|
21
|
+
manualAck: options?.manualAck || true,
|
|
35
22
|
};
|
|
36
23
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Aplica a estratégia de erro quando há uma mensagem em contexto.
|
|
39
|
-
*/
|
|
40
24
|
async handleError(error, getResult) {
|
|
41
25
|
if (!getResult) {
|
|
42
26
|
return;
|
|
43
27
|
}
|
|
44
28
|
return await this.errorStrategy(getResult);
|
|
45
29
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Executa a estratégia de erro escolhida (`nack-dlq` ou `nack-requeue`).
|
|
48
|
-
*/
|
|
49
30
|
async errorStrategy(getResult) {
|
|
50
31
|
const { channel, rawMessage } = getResult;
|
|
51
32
|
try {
|
|
@@ -58,35 +39,19 @@ class RabbitMQScaledJobRunner {
|
|
|
58
39
|
this.logger.info('[RabbitMQScaledJobRunner] Falha ao aplicar estratégia de erro');
|
|
59
40
|
}
|
|
60
41
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Desserializa a mensagem AMQP assumindo JSON no `content`.
|
|
63
|
-
*/
|
|
64
42
|
parse(raw) {
|
|
65
43
|
return JSON.parse(raw.content.toString());
|
|
66
44
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Hook final simples para logs quando o processo termina.
|
|
69
|
-
*/
|
|
70
45
|
async finishProcess() {
|
|
71
46
|
this.logger.info('[RabbitMQScaledJobRunner] Finished process');
|
|
72
47
|
return process.exit(0);
|
|
73
48
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Executa o ciclo completo do job.
|
|
76
|
-
*
|
|
77
|
-
* O número de mensagens por execução segue esta ordem:
|
|
78
|
-
* - `options.numberOfMessagesToGet` (deprecated).
|
|
79
|
-
* - `handler.getSimultaneity()`.
|
|
80
|
-
* - fallback para `1`.
|
|
81
|
-
*/
|
|
82
49
|
async run() {
|
|
83
50
|
let getResult = null;
|
|
84
51
|
let consumedMessages = 0;
|
|
85
|
-
|
|
86
|
-
|
|
52
|
+
const timeoutPerMessageSeconds = this.handler.getTimeoutPerMessageSeconds();
|
|
53
|
+
const messagesToGet = this.handler.getSimultaneity();
|
|
87
54
|
try {
|
|
88
|
-
timeoutPerMessageSeconds = this.handler.getTimeoutPerMessageSeconds();
|
|
89
|
-
messagesToGet = this.handler.getSimultaneity();
|
|
90
55
|
while (consumedMessages < messagesToGet) {
|
|
91
56
|
try {
|
|
92
57
|
getResult = await this.amqpQueue.get(this.queueName, {
|
|
@@ -5,113 +5,123 @@ const runner_1 = require("./runner");
|
|
|
5
5
|
(0, vitest_1.describe)('RabbitMQScaledJobRunner', () => {
|
|
6
6
|
let amqpQueue;
|
|
7
7
|
let handler;
|
|
8
|
-
let
|
|
8
|
+
let options;
|
|
9
|
+
let onFinally;
|
|
10
|
+
let runner;
|
|
9
11
|
(0, vitest_1.beforeEach)(() => {
|
|
10
12
|
amqpQueue = {
|
|
11
|
-
|
|
13
|
+
connect: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
14
|
+
get: vitest_1.vi.fn().mockResolvedValue(null),
|
|
12
15
|
ack: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
13
16
|
nack: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
14
17
|
close: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
15
18
|
};
|
|
16
|
-
handler = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
handler = { handle: vitest_1.vi.fn().mockResolvedValue(undefined) };
|
|
20
|
+
options = {
|
|
21
|
+
manualAck: true,
|
|
22
|
+
timeoutMs: 1000,
|
|
23
|
+
errorStrategy: 'nack-dlq',
|
|
24
|
+
parse: vitest_1.vi.fn((raw) => ({ ok: true, msg: 'parsed' })),
|
|
20
25
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
warn: vitest_1.vi.fn(),
|
|
24
|
-
error: vitest_1.vi.fn(),
|
|
25
|
-
debug: vitest_1.vi.fn(),
|
|
26
|
-
};
|
|
27
|
-
vitest_1.vi.spyOn(process, 'exit').mockImplementation((() => undefined));
|
|
28
|
-
});
|
|
29
|
-
(0, vitest_1.afterEach)(() => {
|
|
30
|
-
vitest_1.vi.useRealTimers();
|
|
31
|
-
vitest_1.vi.restoreAllMocks();
|
|
26
|
+
onFinally = vitest_1.vi.fn();
|
|
27
|
+
runner = new runner_1.RabbitMQScaledJobRunner(amqpQueue, 'queue', handler, options);
|
|
32
28
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const rawMessage = { content: Buffer.from(JSON.stringify({ id: '1' })) };
|
|
29
|
+
(0, vitest_1.it)('should connect, get, handle, ack and close (happy path)', async () => {
|
|
30
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
36
31
|
const channel = {};
|
|
37
|
-
const runner = makeRunner();
|
|
38
32
|
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
39
33
|
await runner.run();
|
|
34
|
+
(0, vitest_1.expect)(amqpQueue.connect).toHaveBeenCalledWith('vhost');
|
|
40
35
|
(0, vitest_1.expect)(amqpQueue.get).toHaveBeenCalledWith('queue', { noAck: false });
|
|
41
|
-
(0, vitest_1.expect)(
|
|
36
|
+
(0, vitest_1.expect)(options.parse).toHaveBeenCalledWith(rawMessage);
|
|
37
|
+
(0, vitest_1.expect)(handler.handle).toHaveBeenCalledWith({ ok: true, msg: 'parsed' });
|
|
42
38
|
(0, vitest_1.expect)(amqpQueue.ack).toHaveBeenCalledWith(channel, rawMessage);
|
|
43
|
-
(0, vitest_1.expect)(amqpQueue.close).
|
|
44
|
-
(0, vitest_1.expect)(process.exit).toHaveBeenCalledWith(0);
|
|
39
|
+
(0, vitest_1.expect)(amqpQueue.close).toHaveBeenCalled();
|
|
45
40
|
});
|
|
46
|
-
(0, vitest_1.it)('should
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
41
|
+
(0, vitest_1.it)('should not ack if manualAck is false', async () => {
|
|
42
|
+
options.manualAck = false;
|
|
43
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
44
|
+
const channel = {};
|
|
45
|
+
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
50
46
|
await runner.run();
|
|
51
|
-
(0, vitest_1.expect)(amqpQueue.get).toHaveBeenCalledWith('queue', { noAck: true });
|
|
52
47
|
(0, vitest_1.expect)(amqpQueue.ack).not.toHaveBeenCalled();
|
|
53
|
-
(0, vitest_1.expect)(amqpQueue.nack).not.toHaveBeenCalled();
|
|
54
48
|
});
|
|
55
|
-
(0, vitest_1.it)('should
|
|
56
|
-
|
|
49
|
+
(0, vitest_1.it)('should nack with correct strategy', async () => {
|
|
50
|
+
options.errorStrategy = 'nack-requeue';
|
|
51
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
57
52
|
const channel = {};
|
|
58
|
-
const runner = makeRunner({ errorStrategy: 'nack-requeue' });
|
|
59
53
|
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
60
|
-
handler.handle.
|
|
54
|
+
handler.handle = vitest_1.vi.fn(() => {
|
|
55
|
+
throw new Error('fail');
|
|
56
|
+
});
|
|
61
57
|
await runner.run();
|
|
62
58
|
(0, vitest_1.expect)(amqpQueue.nack).toHaveBeenCalledWith(channel, rawMessage, true);
|
|
63
|
-
(0, vitest_1.expect)(amqpQueue.ack).not.toHaveBeenCalled();
|
|
64
59
|
});
|
|
65
|
-
(0, vitest_1.it)('should
|
|
66
|
-
|
|
60
|
+
(0, vitest_1.it)('should nack with default strategy', async () => {
|
|
61
|
+
options.errorStrategy = 'nack-dlq';
|
|
62
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
63
|
+
const channel = {};
|
|
64
|
+
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
65
|
+
handler.handle = vitest_1.vi.fn(() => {
|
|
66
|
+
throw new Error('fail');
|
|
67
|
+
});
|
|
68
|
+
await runner.run();
|
|
69
|
+
(0, vitest_1.expect)(amqpQueue.nack).toHaveBeenCalledWith(channel, rawMessage, false);
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.it)('should log and return if no message is available', async () => {
|
|
67
72
|
amqpQueue.get.mockResolvedValue(null);
|
|
68
73
|
await runner.run();
|
|
69
74
|
(0, vitest_1.expect)(handler.handle).not.toHaveBeenCalled();
|
|
70
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('[RabbitMQScaledJobRunner] Nenhuma mensagem disponível.');
|
|
71
75
|
});
|
|
72
|
-
(0, vitest_1.it)('should
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
(0, vitest_1.it)('should log error if amqpQueue.connect throws', async () => {
|
|
77
|
+
amqpQueue.connect.mockRejectedValue(new Error('fail'));
|
|
78
|
+
await runner.run();
|
|
79
|
+
(0, vitest_1.expect)(amqpQueue.connect).toHaveBeenCalledWith('vhost');
|
|
80
|
+
});
|
|
81
|
+
(0, vitest_1.it)('should log error if amqpQueue.close throws', async () => {
|
|
82
|
+
amqpQueue.close.mockRejectedValue(new Error('fail'));
|
|
83
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
75
84
|
const channel = {};
|
|
76
|
-
const runner = makeRunner();
|
|
77
85
|
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const runPromise = runner.run();
|
|
81
|
-
await vitest_1.vi.advanceTimersByTimeAsync(1000);
|
|
82
|
-
await runPromise;
|
|
83
|
-
(0, vitest_1.expect)(amqpQueue.nack).toHaveBeenCalledWith(channel, rawMessage, false);
|
|
84
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('[RabbitMQScaledJobRunner] Erro: Timeout');
|
|
85
|
-
});
|
|
86
|
-
(0, vitest_1.it)('should ignore errors when nack strategy fails', async () => {
|
|
87
|
-
const runner = makeRunner({ errorStrategy: 'nack-dlq' });
|
|
88
|
-
amqpQueue.nack.mockRejectedValue(new Error('nack failed'));
|
|
89
|
-
await (0, vitest_1.expect)(runner['errorStrategy']({
|
|
90
|
-
channel: {},
|
|
91
|
-
rawMessage: { content: Buffer.from('{}') },
|
|
92
|
-
})).resolves.toBeUndefined();
|
|
93
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('[RabbitMQScaledJobRunner] Falha ao aplicar estratégia de erro');
|
|
86
|
+
await runner.run();
|
|
87
|
+
(0, vitest_1.expect)(amqpQueue.close).toHaveBeenCalled();
|
|
94
88
|
});
|
|
95
|
-
(0, vitest_1.it)('should
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
89
|
+
(0, vitest_1.it)('should call onFinally if close fails', async () => {
|
|
90
|
+
amqpQueue.close.mockRejectedValue(new Error('fail'));
|
|
91
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
92
|
+
const channel = {};
|
|
93
|
+
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
94
|
+
await runner.run();
|
|
95
|
+
// onFinally is called inside finishProcess
|
|
96
|
+
// No assertion needed for logger, just ensure no throw
|
|
99
97
|
});
|
|
100
|
-
(0, vitest_1.it)('should
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
(0, vitest_1.it)('should handle timeout and call nack', async () => {
|
|
99
|
+
options.timeoutMs = 10;
|
|
100
|
+
handler.handle = vitest_1.vi.fn(() => new Promise(() => { }));
|
|
101
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
102
|
+
const channel = {};
|
|
103
|
+
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
104
104
|
await runner.run();
|
|
105
|
-
(0, vitest_1.expect)(
|
|
106
|
-
(0, vitest_1.expect)(process.exit).toHaveBeenCalledWith(0);
|
|
105
|
+
(0, vitest_1.expect)(amqpQueue.nack).toHaveBeenCalledWith(channel, rawMessage, false);
|
|
107
106
|
});
|
|
108
|
-
(0, vitest_1.it)('should handle
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
(0, vitest_1.it)('should handle error in nack gracefully', async () => {
|
|
108
|
+
amqpQueue.nack.mockRejectedValue(new Error('fail'));
|
|
109
|
+
options.errorStrategy = 'nack-dlq';
|
|
110
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
111
|
+
const channel = {};
|
|
112
|
+
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
113
|
+
handler.handle = vitest_1.vi.fn(() => {
|
|
114
|
+
throw new Error('fail');
|
|
112
115
|
});
|
|
113
116
|
await runner.run();
|
|
114
|
-
(0, vitest_1.expect)(
|
|
115
|
-
|
|
117
|
+
(0, vitest_1.expect)(amqpQueue.nack).toHaveBeenCalledWith(channel, rawMessage, false);
|
|
118
|
+
});
|
|
119
|
+
(0, vitest_1.it)('should handle error in ack gracefully', async () => {
|
|
120
|
+
amqpQueue.ack.mockRejectedValue(new Error('fail'));
|
|
121
|
+
const rawMessage = { content: Buffer.from('msg') };
|
|
122
|
+
const channel = {};
|
|
123
|
+
amqpQueue.get.mockResolvedValue({ channel, rawMessage });
|
|
124
|
+
await runner.run();
|
|
125
|
+
(0, vitest_1.expect)(amqpQueue.ack).toHaveBeenCalledWith(channel, rawMessage);
|
|
116
126
|
});
|
|
117
127
|
});
|
|
@@ -1,25 +1,6 @@
|
|
|
1
1
|
import { ScaledJobOptions } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Estratégia de erro aplicada quando o handler falha.
|
|
4
|
-
*/
|
|
5
2
|
export type ErrorStrategy = 'nack-dlq' | 'nack-requeue';
|
|
6
|
-
/**
|
|
7
|
-
* Opções para execução de ScaledJobs com RabbitMQ/AMQP.
|
|
8
|
-
*/
|
|
9
3
|
export interface RabbitMQScaledJobOptions extends ScaledJobOptions {
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated Use the simultaneity attribute on Handler.
|
|
12
|
-
*/
|
|
13
|
-
numberOfMessagesToGet?: number;
|
|
14
|
-
/**
|
|
15
|
-
* Define se o runner deve confirmar manualmente as mensagens.
|
|
16
|
-
*
|
|
17
|
-
* Quando `true`, o runner usa `ack` em caso de sucesso e `nack` em erro.
|
|
18
|
-
* Quando `false`, o polling é feito com `noAck: true`.
|
|
19
|
-
*/
|
|
20
4
|
manualAck: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Define o que fazer quando ocorre erro no processamento.
|
|
23
|
-
*/
|
|
24
5
|
errorStrategy: ErrorStrategy;
|
|
25
6
|
}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import Handler from '../../../../clean-arch/application/queue/handler';
|
|
2
2
|
import { SQSScaledJobOptions } from './types';
|
|
3
3
|
import { Logger } from '../../../../clean-arch/application/logger';
|
|
4
|
-
/**
|
|
5
|
-
* Runner de ScaledJob para AWS SQS baseado em polling.
|
|
6
|
-
*
|
|
7
|
-
* Fluxo geral por execução:
|
|
8
|
-
* - Faz polling com `ReceiveMessageCommand`.
|
|
9
|
-
* - Processa a mensagem com o `Handler`.
|
|
10
|
-
* - Em sucesso, deleta com `DeleteMessageCommand`.
|
|
11
|
-
* - Respeita simultaneidade e timeout configurados no `Handler`.
|
|
12
|
-
*/
|
|
13
4
|
export declare class SQSScaledJobRunner {
|
|
14
5
|
private readonly handler;
|
|
15
6
|
private readonly queueUrl;
|
|
@@ -18,22 +9,8 @@ export declare class SQSScaledJobRunner {
|
|
|
18
9
|
private sqs;
|
|
19
10
|
private timedOut;
|
|
20
11
|
constructor(handler: Handler, queueUrl: string, options: SQSScaledJobOptions, logger?: Logger);
|
|
21
|
-
/**
|
|
22
|
-
* Desserializa a mensagem do SQS.
|
|
23
|
-
*
|
|
24
|
-
* O SQS entrega o corpo como string e este método garante que seja JSON.
|
|
25
|
-
*/
|
|
26
12
|
private static parseMessage;
|
|
27
|
-
/**
|
|
28
|
-
* Processa mensagens até atingir o limite de simultaneidade ou timeout.
|
|
29
|
-
*/
|
|
30
13
|
process(): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Marca o runner como expirado após um timeout global.
|
|
33
|
-
*/
|
|
34
14
|
private timeout;
|
|
35
|
-
/**
|
|
36
|
-
* Executa o job concorrendo com um timeout global (quando configurado).
|
|
37
|
-
*/
|
|
38
15
|
run(): Promise<void>;
|
|
39
16
|
}
|
|
@@ -3,15 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SQSScaledJobRunner = void 0;
|
|
4
4
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
5
5
|
const timeout_1 = require("../../../../clean-arch/shared/timeout");
|
|
6
|
-
/**
|
|
7
|
-
* Runner de ScaledJob para AWS SQS baseado em polling.
|
|
8
|
-
*
|
|
9
|
-
* Fluxo geral por execução:
|
|
10
|
-
* - Faz polling com `ReceiveMessageCommand`.
|
|
11
|
-
* - Processa a mensagem com o `Handler`.
|
|
12
|
-
* - Em sucesso, deleta com `DeleteMessageCommand`.
|
|
13
|
-
* - Respeita simultaneidade e timeout configurados no `Handler`.
|
|
14
|
-
*/
|
|
15
6
|
class SQSScaledJobRunner {
|
|
16
7
|
handler;
|
|
17
8
|
queueUrl;
|
|
@@ -26,11 +17,6 @@ class SQSScaledJobRunner {
|
|
|
26
17
|
this.logger = logger;
|
|
27
18
|
this.sqs = new client_sqs_1.SQSClient({ region: this.options.sqsRegion });
|
|
28
19
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Desserializa a mensagem do SQS.
|
|
31
|
-
*
|
|
32
|
-
* O SQS entrega o corpo como string e este método garante que seja JSON.
|
|
33
|
-
*/
|
|
34
20
|
static parseMessage(rawMessage) {
|
|
35
21
|
if (rawMessage === null || rawMessage === undefined) {
|
|
36
22
|
throw new Error('[SQSScaledJobRunner] Mensagem inválida.');
|
|
@@ -40,9 +26,6 @@ class SQSScaledJobRunner {
|
|
|
40
26
|
}
|
|
41
27
|
return JSON.parse(rawMessage);
|
|
42
28
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Processa mensagens até atingir o limite de simultaneidade ou timeout.
|
|
45
|
-
*/
|
|
46
29
|
async process() {
|
|
47
30
|
let consumedMessages = 0;
|
|
48
31
|
const simultaneity = this.handler.getSimultaneity();
|
|
@@ -83,22 +66,15 @@ class SQSScaledJobRunner {
|
|
|
83
66
|
}
|
|
84
67
|
}
|
|
85
68
|
}
|
|
86
|
-
/**
|
|
87
|
-
* Marca o runner como expirado após um timeout global.
|
|
88
|
-
*/
|
|
89
69
|
async timeout(timeoutSeconds) {
|
|
90
70
|
await (0, timeout_1.sleep)(timeoutSeconds * 1000);
|
|
91
71
|
this.timedOut = true;
|
|
92
72
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Executa o job concorrendo com um timeout global (quando configurado).
|
|
95
|
-
*/
|
|
96
73
|
async run() {
|
|
97
|
-
const promises = [this.process()];
|
|
98
74
|
if (this.options.processTimeoutSeconds) {
|
|
99
|
-
|
|
75
|
+
this.timeout(this.options.processTimeoutSeconds);
|
|
100
76
|
}
|
|
101
|
-
await
|
|
77
|
+
await this.process();
|
|
102
78
|
}
|
|
103
79
|
}
|
|
104
80
|
exports.SQSScaledJobRunner = SQSScaledJobRunner;
|
|
@@ -1,24 +1,6 @@
|
|
|
1
1
|
import { ScaledJobOptions } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Opções para execução de ScaledJobs com AWS SQS.
|
|
4
|
-
*/
|
|
5
2
|
export interface SQSScaledJobOptions extends ScaledJobOptions {
|
|
6
|
-
/**
|
|
7
|
-
* Região AWS onde a fila SQS está localizada.
|
|
8
|
-
*
|
|
9
|
-
* Ex.: `us-east-1`.
|
|
10
|
-
*/
|
|
11
3
|
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
|
-
*/
|
|
17
4
|
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
|
-
*/
|
|
23
5
|
waitMessagesTimeSeconds?: number;
|
|
24
6
|
}
|