@seidor-cloud-produtos/orbit-backend-lib 2.0.137 → 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 -98
- package/dist/clean-arch/domain/events/consistency-event/events-enum.js +0 -151
- 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 -9
- 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 -10
- 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 -38
- 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-created.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-created.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/entity/entity-upserted.d.ts +0 -9
- package/dist/clean-arch/domain/events/consistency-event/types/security-service/entity/entity-upserted.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 -50
- package/dist/clean-arch/infra/consistency-event-dispatcher/exchanges-enum.js +0 -58
- 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,170 +0,0 @@
|
|
|
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('child_process', () => ({
|
|
6
|
-
fork: vitest_1.vi.fn(),
|
|
7
|
-
}));
|
|
8
|
-
const child_process_1 = require("child_process");
|
|
9
|
-
const handler_1 = tslib_1.__importDefault(require("../../application/queue/handler"));
|
|
10
|
-
const create_consumers_1 = tslib_1.__importDefault(require("./create-consumers"));
|
|
11
|
-
const create_queues_1 = tslib_1.__importDefault(require("./create-queues"));
|
|
12
|
-
const in_memory_queue_1 = tslib_1.__importDefault(require("./in-memory/in-memory-queue"));
|
|
13
|
-
const queue_controller_1 = tslib_1.__importDefault(require("./queue-controller"));
|
|
14
|
-
const worker_1 = tslib_1.__importDefault(require("./worker"));
|
|
15
|
-
class TestHandler extends handler_1.default {
|
|
16
|
-
handleMock = vitest_1.vi.fn().mockResolvedValue(undefined);
|
|
17
|
-
constructor(simultaneity = 1, timeoutPerMessageSeconds) {
|
|
18
|
-
super();
|
|
19
|
-
this.simultaneity = simultaneity;
|
|
20
|
-
this.timeoutPerMessageSeconds = timeoutPerMessageSeconds;
|
|
21
|
-
}
|
|
22
|
-
async handle(message) {
|
|
23
|
-
await this.handleMock(message);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
class TestQueueController extends queue_controller_1.default {
|
|
27
|
-
eventHandlers = [
|
|
28
|
-
{
|
|
29
|
-
queueName: 'queue-1',
|
|
30
|
-
callback: Promise.resolve(new TestHandler()),
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
queueName: 'queue-2',
|
|
34
|
-
callback: Promise.resolve(new TestHandler()),
|
|
35
|
-
},
|
|
36
|
-
];
|
|
37
|
-
}
|
|
38
|
-
class TestCreateConsumers extends create_consumers_1.default {
|
|
39
|
-
consumers = [
|
|
40
|
-
{
|
|
41
|
-
queueName: 'queue-1',
|
|
42
|
-
configs: { durable: true },
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
queueName: 'queue-2',
|
|
46
|
-
configs: { durable: false },
|
|
47
|
-
},
|
|
48
|
-
];
|
|
49
|
-
}
|
|
50
|
-
class TestCreateQueues extends create_queues_1.default {
|
|
51
|
-
}
|
|
52
|
-
(0, vitest_1.describe)('Queue helpers', () => {
|
|
53
|
-
(0, vitest_1.beforeEach)(() => {
|
|
54
|
-
vitest_1.vi.useFakeTimers();
|
|
55
|
-
});
|
|
56
|
-
(0, vitest_1.afterEach)(() => {
|
|
57
|
-
vitest_1.vi.useRealTimers();
|
|
58
|
-
vitest_1.vi.restoreAllMocks();
|
|
59
|
-
});
|
|
60
|
-
(0, vitest_1.it)('should expose simultaneity and timeout from handlers', () => {
|
|
61
|
-
const handler = new TestHandler(3, 10);
|
|
62
|
-
(0, vitest_1.expect)(handler.getSimultaneity()).toBe(3);
|
|
63
|
-
(0, vitest_1.expect)(handler.getTimeoutPerMessageSeconds()).toBe(10);
|
|
64
|
-
});
|
|
65
|
-
(0, vitest_1.it)('should publish and consume matching in-memory queue messages', async () => {
|
|
66
|
-
const queue = new in_memory_queue_1.default();
|
|
67
|
-
const event = {
|
|
68
|
-
name: 'queue-1',
|
|
69
|
-
eventDate: new Date(),
|
|
70
|
-
};
|
|
71
|
-
const otherEvent = {
|
|
72
|
-
name: 'queue-2',
|
|
73
|
-
eventDate: new Date(),
|
|
74
|
-
};
|
|
75
|
-
const handler = new TestHandler();
|
|
76
|
-
await queue.publish('exchange', event);
|
|
77
|
-
await queue.publish('exchange', otherEvent);
|
|
78
|
-
await queue.on('queue-1', handler);
|
|
79
|
-
(0, vitest_1.expect)(handler.handleMock).toHaveBeenCalledTimes(1);
|
|
80
|
-
(0, vitest_1.expect)(handler.handleMock).toHaveBeenCalledWith({
|
|
81
|
-
exchangeName: 'exchange',
|
|
82
|
-
domainEvent: event,
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
(0, vitest_1.it)('should register all queue consumers', async () => {
|
|
86
|
-
const queue = {
|
|
87
|
-
on: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
88
|
-
};
|
|
89
|
-
const controller = new TestQueueController(queue);
|
|
90
|
-
await controller.runConsumers();
|
|
91
|
-
(0, vitest_1.expect)(queue.on).toHaveBeenCalledTimes(2);
|
|
92
|
-
(0, vitest_1.expect)(queue.on).toHaveBeenNthCalledWith(1, 'queue-1', vitest_1.expect.any(TestHandler));
|
|
93
|
-
(0, vitest_1.expect)(queue.on).toHaveBeenNthCalledWith(2, 'queue-2', vitest_1.expect.any(TestHandler));
|
|
94
|
-
});
|
|
95
|
-
(0, vitest_1.it)('should create consumer topology when supported', async () => {
|
|
96
|
-
const queue = {
|
|
97
|
-
createConsumers: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
98
|
-
};
|
|
99
|
-
const controller = new TestCreateConsumers(queue);
|
|
100
|
-
await controller.createConsumers();
|
|
101
|
-
(0, vitest_1.expect)(queue.createConsumers).toHaveBeenCalledTimes(2);
|
|
102
|
-
(0, vitest_1.expect)(queue.createConsumers).toHaveBeenNthCalledWith(1, 'queue-1', {
|
|
103
|
-
durable: true,
|
|
104
|
-
});
|
|
105
|
-
(0, vitest_1.expect)(queue.createConsumers).toHaveBeenNthCalledWith(2, 'queue-2', {
|
|
106
|
-
durable: false,
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
(0, vitest_1.it)('should skip consumer topology when not supported', async () => {
|
|
110
|
-
const queue = {};
|
|
111
|
-
const controller = new TestCreateConsumers(queue);
|
|
112
|
-
await (0, vitest_1.expect)(controller.createConsumers()).resolves.toBeUndefined();
|
|
113
|
-
});
|
|
114
|
-
(0, vitest_1.it)('should create queues when supported', async () => {
|
|
115
|
-
const queue = {
|
|
116
|
-
createQueues: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
117
|
-
};
|
|
118
|
-
const controller = new TestCreateQueues(queue, [
|
|
119
|
-
{ name: 'queue-1', configs: { durable: true } },
|
|
120
|
-
{ name: 'queue-2', configs: { durable: false } },
|
|
121
|
-
]);
|
|
122
|
-
await controller.createQueues();
|
|
123
|
-
(0, vitest_1.expect)(queue.createQueues).toHaveBeenCalledTimes(2);
|
|
124
|
-
(0, vitest_1.expect)(queue.createQueues).toHaveBeenNthCalledWith(1, 'queue-1', {
|
|
125
|
-
durable: true,
|
|
126
|
-
});
|
|
127
|
-
(0, vitest_1.expect)(queue.createQueues).toHaveBeenNthCalledWith(2, 'queue-2', {
|
|
128
|
-
durable: false,
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
(0, vitest_1.it)('should skip queue creation when not supported', async () => {
|
|
132
|
-
const queue = {};
|
|
133
|
-
const controller = new TestCreateQueues(queue, [
|
|
134
|
-
{ name: 'queue-1', configs: { durable: true } },
|
|
135
|
-
]);
|
|
136
|
-
await (0, vitest_1.expect)(controller.createQueues()).resolves.toBeUndefined();
|
|
137
|
-
});
|
|
138
|
-
(0, vitest_1.it)('should restart forked workers until the retry limit', async () => {
|
|
139
|
-
const on = vitest_1.vi.fn();
|
|
140
|
-
const child = {
|
|
141
|
-
on,
|
|
142
|
-
pid: 321,
|
|
143
|
-
};
|
|
144
|
-
const consoleLog = vitest_1.vi
|
|
145
|
-
.spyOn(console, 'log')
|
|
146
|
-
.mockImplementation(() => undefined);
|
|
147
|
-
const consoleError = vitest_1.vi
|
|
148
|
-
.spyOn(console, 'error')
|
|
149
|
-
.mockImplementation(() => undefined);
|
|
150
|
-
vitest_1.vi.mocked(child_process_1.fork).mockReturnValue(child);
|
|
151
|
-
const worker = new worker_1.default('/tmp/worker.js');
|
|
152
|
-
worker.fWorker();
|
|
153
|
-
(0, vitest_1.expect)(child_process_1.fork).toHaveBeenCalledWith('/tmp/worker.js');
|
|
154
|
-
const onError = on.mock.calls.find(([event]) => event === 'error')?.[1];
|
|
155
|
-
const onExit = on.mock.calls.find(([event]) => event === 'exit')?.[1];
|
|
156
|
-
onError?.(new Error('boom'));
|
|
157
|
-
(0, vitest_1.expect)(consoleError).toHaveBeenCalledWith('⛔ Child process 321 error :', vitest_1.expect.any(Error));
|
|
158
|
-
onExit?.(1);
|
|
159
|
-
await vitest_1.vi.runOnlyPendingTimersAsync();
|
|
160
|
-
(0, vitest_1.expect)(child_process_1.fork).toHaveBeenCalledTimes(2);
|
|
161
|
-
for (let attempt = 2; attempt <= 6; attempt++) {
|
|
162
|
-
const currentChild = vitest_1.vi.mocked(child_process_1.fork).mock.results[attempt - 2]?.value || child;
|
|
163
|
-
const exitHandler = currentChild.on.mock.calls.find(([event]) => event === 'exit')?.[1];
|
|
164
|
-
exitHandler?.(1);
|
|
165
|
-
await vitest_1.vi.runOnlyPendingTimersAsync();
|
|
166
|
-
}
|
|
167
|
-
(0, vitest_1.expect)(consoleLog).toHaveBeenCalledWith('🔄 Restarting worker process... Attempt 1 of 5');
|
|
168
|
-
(0, vitest_1.expect)(consoleError).toHaveBeenCalledWith('⛔ Max restart attempts reached. Not restarting worker process 321. Container restart required!');
|
|
169
|
-
});
|
|
170
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import CreateQueues, { IQueueProps } from '../create-queues';
|
|
2
|
-
export interface IRabbitMQQueue extends IQueueProps {
|
|
3
|
-
configs: {
|
|
4
|
-
exchangeName: string;
|
|
5
|
-
exchangeType: string;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
export default class RabbitMQCreateQueues extends CreateQueues {
|
|
9
|
-
queues: IRabbitMQQueue[];
|
|
10
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const create_queues_1 = tslib_1.__importDefault(require("../create-queues"));
|
|
5
|
-
class RabbitMQCreateQueues extends create_queues_1.default {
|
|
6
|
-
}
|
|
7
|
-
exports.default = RabbitMQCreateQueues;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const vitest_1 = require("vitest");
|
|
5
|
-
const { sendMock } = vitest_1.vi.hoisted(() => ({
|
|
6
|
-
sendMock: vitest_1.vi.fn(),
|
|
7
|
-
}));
|
|
8
|
-
vitest_1.vi.mock('@aws-sdk/client-sqs', () => ({
|
|
9
|
-
ReceiveMessageCommand: class ReceiveMessageCommand {
|
|
10
|
-
input;
|
|
11
|
-
constructor(input) {
|
|
12
|
-
this.input = input;
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
DeleteMessageCommand: class DeleteMessageCommand {
|
|
16
|
-
input;
|
|
17
|
-
constructor(input) {
|
|
18
|
-
this.input = input;
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
SQSClient: class SQSClient {
|
|
22
|
-
config;
|
|
23
|
-
send = sendMock;
|
|
24
|
-
constructor(config) {
|
|
25
|
-
this.config = config;
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
}));
|
|
29
|
-
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
30
|
-
const handler_1 = tslib_1.__importDefault(require("../../../application/queue/handler"));
|
|
31
|
-
const runner_1 = require("./runner");
|
|
32
|
-
class TestHandler extends handler_1.default {
|
|
33
|
-
handleMock = vitest_1.vi.fn().mockResolvedValue(undefined);
|
|
34
|
-
constructor(simultaneity = 1, timeoutPerMessageSeconds) {
|
|
35
|
-
super();
|
|
36
|
-
this.simultaneity = simultaneity;
|
|
37
|
-
this.timeoutPerMessageSeconds = timeoutPerMessageSeconds;
|
|
38
|
-
}
|
|
39
|
-
async handle(message) {
|
|
40
|
-
await this.handleMock(message);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
const createLogger = () => ({
|
|
44
|
-
info: vitest_1.vi.fn(),
|
|
45
|
-
warn: vitest_1.vi.fn(),
|
|
46
|
-
error: vitest_1.vi.fn(),
|
|
47
|
-
debug: vitest_1.vi.fn(),
|
|
48
|
-
});
|
|
49
|
-
(0, vitest_1.describe)('SQSScaledJobRunner', () => {
|
|
50
|
-
(0, vitest_1.beforeEach)(() => {
|
|
51
|
-
sendMock.mockReset();
|
|
52
|
-
});
|
|
53
|
-
(0, vitest_1.afterEach)(() => {
|
|
54
|
-
vitest_1.vi.useRealTimers();
|
|
55
|
-
vitest_1.vi.restoreAllMocks();
|
|
56
|
-
});
|
|
57
|
-
(0, vitest_1.it)('should receive, process and delete messages from SQS', async () => {
|
|
58
|
-
vitest_1.vi.useFakeTimers();
|
|
59
|
-
const handler = new TestHandler(1, 1);
|
|
60
|
-
const logger = createLogger();
|
|
61
|
-
const runner = new runner_1.SQSScaledJobRunner(handler, 'queue-url', {
|
|
62
|
-
sqsRegion: 'us-east-1',
|
|
63
|
-
waitMessagesTimeSeconds: 5,
|
|
64
|
-
}, logger);
|
|
65
|
-
sendMock
|
|
66
|
-
.mockResolvedValueOnce({
|
|
67
|
-
Messages: [
|
|
68
|
-
{
|
|
69
|
-
Body: JSON.stringify({ id: '1' }),
|
|
70
|
-
ReceiptHandle: 'receipt-handle',
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
})
|
|
74
|
-
.mockResolvedValueOnce({});
|
|
75
|
-
const processPromise = runner.process();
|
|
76
|
-
await vitest_1.vi.runAllTimersAsync();
|
|
77
|
-
await processPromise;
|
|
78
|
-
(0, vitest_1.expect)(sendMock).toHaveBeenNthCalledWith(1, vitest_1.expect.any(client_sqs_1.ReceiveMessageCommand));
|
|
79
|
-
(0, vitest_1.expect)(sendMock.mock.calls[0][0].input).toEqual({
|
|
80
|
-
QueueUrl: 'queue-url',
|
|
81
|
-
MaxNumberOfMessages: 1,
|
|
82
|
-
WaitTimeSeconds: 5,
|
|
83
|
-
});
|
|
84
|
-
(0, vitest_1.expect)(handler.handleMock).toHaveBeenCalledWith({ id: '1' });
|
|
85
|
-
(0, vitest_1.expect)(sendMock).toHaveBeenNthCalledWith(2, vitest_1.expect.any(client_sqs_1.DeleteMessageCommand));
|
|
86
|
-
(0, vitest_1.expect)(sendMock.mock.calls[1][0].input).toEqual({
|
|
87
|
-
QueueUrl: 'queue-url',
|
|
88
|
-
ReceiptHandle: 'receipt-handle',
|
|
89
|
-
});
|
|
90
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('[SQSScaledJobRunner] Mensagem processada com sucesso');
|
|
91
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('[SQSScaledJobRunner] Mensagem deletada');
|
|
92
|
-
});
|
|
93
|
-
(0, vitest_1.it)('should keep polling until simultaneity is reached when there are no messages', async () => {
|
|
94
|
-
const handler = new TestHandler(2);
|
|
95
|
-
const logger = createLogger();
|
|
96
|
-
const runner = new runner_1.SQSScaledJobRunner(handler, 'queue-url', {
|
|
97
|
-
sqsRegion: 'us-east-1',
|
|
98
|
-
}, logger);
|
|
99
|
-
sendMock.mockResolvedValue({
|
|
100
|
-
Messages: [],
|
|
101
|
-
});
|
|
102
|
-
await runner.process();
|
|
103
|
-
(0, vitest_1.expect)(sendMock).toHaveBeenCalledTimes(2);
|
|
104
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('[SQSScaledJobRunner] Nenhuma mensagem disponível.');
|
|
105
|
-
(0, vitest_1.expect)(handler.handleMock).not.toHaveBeenCalled();
|
|
106
|
-
});
|
|
107
|
-
(0, vitest_1.it)('should log invalid messages and guard the parser against unsupported inputs', async () => {
|
|
108
|
-
const handler = new TestHandler();
|
|
109
|
-
const logger = createLogger();
|
|
110
|
-
const runner = new runner_1.SQSScaledJobRunner(handler, 'queue-url', {
|
|
111
|
-
sqsRegion: 'us-east-1',
|
|
112
|
-
}, logger);
|
|
113
|
-
sendMock.mockResolvedValueOnce({
|
|
114
|
-
Messages: [
|
|
115
|
-
{
|
|
116
|
-
Body: null,
|
|
117
|
-
ReceiptHandle: 'receipt-handle',
|
|
118
|
-
},
|
|
119
|
-
],
|
|
120
|
-
});
|
|
121
|
-
await runner.process();
|
|
122
|
-
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith(vitest_1.expect.stringContaining('[SQSScaledJobRunner] Erro:'));
|
|
123
|
-
(0, vitest_1.expect)(handler.handleMock).not.toHaveBeenCalled();
|
|
124
|
-
(0, vitest_1.expect)(() => runner_1.SQSScaledJobRunner.parseMessage(undefined)).toThrow('[SQSScaledJobRunner] Mensagem inválida.');
|
|
125
|
-
(0, vitest_1.expect)(() => runner_1.SQSScaledJobRunner.parseMessage(123)).toThrow('[SQSScaledJobRunner] Mensagem deve ser uma string.');
|
|
126
|
-
});
|
|
127
|
-
(0, vitest_1.it)('should race processing with the global timeout when configured', async () => {
|
|
128
|
-
const runner = new runner_1.SQSScaledJobRunner(new TestHandler(), 'queue-url', {
|
|
129
|
-
sqsRegion: 'us-east-1',
|
|
130
|
-
processTimeoutSeconds: 3,
|
|
131
|
-
}, createLogger());
|
|
132
|
-
const processSpy = vitest_1.vi
|
|
133
|
-
.spyOn(runner, 'process')
|
|
134
|
-
.mockImplementation(() => new Promise(() => undefined));
|
|
135
|
-
const timeoutSpy = vitest_1.vi
|
|
136
|
-
.spyOn(runner, 'timeout')
|
|
137
|
-
.mockResolvedValue(undefined);
|
|
138
|
-
await runner.run();
|
|
139
|
-
(0, vitest_1.expect)(processSpy).toHaveBeenCalledTimes(1);
|
|
140
|
-
(0, vitest_1.expect)(timeoutSpy).toHaveBeenCalledWith(3);
|
|
141
|
-
});
|
|
142
|
-
(0, vitest_1.it)('should run processing directly when no global timeout is configured', async () => {
|
|
143
|
-
const runner = new runner_1.SQSScaledJobRunner(new TestHandler(), 'queue-url', {
|
|
144
|
-
sqsRegion: 'us-east-1',
|
|
145
|
-
}, createLogger());
|
|
146
|
-
const processSpy = vitest_1.vi.spyOn(runner, 'process').mockResolvedValue(undefined);
|
|
147
|
-
await runner.run();
|
|
148
|
-
(0, vitest_1.expect)(processSpy).toHaveBeenCalledTimes(1);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,78 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,16 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
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
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const authorization_nest_1 = tslib_1.__importDefault(require("./authorizations/authorization-nest"));
|
|
5
|
-
const guard_nest_1 = tslib_1.__importDefault(require("./authorizations/guard-nest"));
|
|
6
|
-
const not_allowed_nest_1 = require("./authorizations/not-allowed-nest");
|
|
7
|
-
const orbit_error_1 = require("./errors/orbit-error");
|
|
8
|
-
const orbit_exception_filter_1 = require("./exception-filters/orbit-exception-filter");
|
|
9
|
-
describe('Nest integrations', () => {
|
|
10
|
-
afterEach(() => {
|
|
11
|
-
vi.restoreAllMocks();
|
|
12
|
-
});
|
|
13
|
-
it('should expose orbit errors as HTTP exceptions', () => {
|
|
14
|
-
const error = new orbit_error_1.OrbitError('Forbidden', 403);
|
|
15
|
-
expect(error.getStatus()).toBe(403);
|
|
16
|
-
expect(error.message).toBe('Forbidden');
|
|
17
|
-
});
|
|
18
|
-
it('should expose the not allowed payload for Nest', () => {
|
|
19
|
-
const timestamp = new Date('2024-01-01T00:00:00.000Z');
|
|
20
|
-
const error = new not_allowed_nest_1.NestNotAllowedError({
|
|
21
|
-
status: 401,
|
|
22
|
-
body: {
|
|
23
|
-
code: 401,
|
|
24
|
-
message: 'Unauthorized',
|
|
25
|
-
timestamp,
|
|
26
|
-
errors: [
|
|
27
|
-
{
|
|
28
|
-
code_error: '401',
|
|
29
|
-
location: 'authorization',
|
|
30
|
-
msg: 'Unauthorized',
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
headers: {},
|
|
35
|
-
});
|
|
36
|
-
expect(error.getStatus()).toBe(403);
|
|
37
|
-
expect(error.getResponse()).toEqual({
|
|
38
|
-
code: 401,
|
|
39
|
-
message: 'Unauthorized',
|
|
40
|
-
timestamp,
|
|
41
|
-
errors: [
|
|
42
|
-
{
|
|
43
|
-
code_error: '401',
|
|
44
|
-
location: 'authorization',
|
|
45
|
-
msg: 'Unauthorized',
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
});
|
|
49
|
-
expect(error.message).toBe('Unauthorized');
|
|
50
|
-
});
|
|
51
|
-
it('should translate orbit errors in the exception filter', () => {
|
|
52
|
-
const response = {
|
|
53
|
-
status: vi.fn().mockReturnThis(),
|
|
54
|
-
json: vi.fn().mockReturnThis(),
|
|
55
|
-
};
|
|
56
|
-
const host = {
|
|
57
|
-
switchToHttp: () => ({
|
|
58
|
-
getResponse: () => response,
|
|
59
|
-
}),
|
|
60
|
-
};
|
|
61
|
-
const exception = new not_allowed_nest_1.NestNotAllowedError({
|
|
62
|
-
status: 403,
|
|
63
|
-
body: {
|
|
64
|
-
code: 403,
|
|
65
|
-
message: 'Forbidden',
|
|
66
|
-
timestamp: new Date('2024-01-01T00:00:00.000Z'),
|
|
67
|
-
errors: [],
|
|
68
|
-
},
|
|
69
|
-
headers: {},
|
|
70
|
-
});
|
|
71
|
-
const filter = new orbit_exception_filter_1.OrbitExceptionFilter();
|
|
72
|
-
filter.catch(exception, host);
|
|
73
|
-
expect(response.status).toHaveBeenCalledWith(403);
|
|
74
|
-
expect(response.json).toHaveBeenCalledWith(exception.getResponse());
|
|
75
|
-
});
|
|
76
|
-
it('should authorize or throw on Nest authorization wrappers', async () => {
|
|
77
|
-
const query = { $and: ['auth.read'] };
|
|
78
|
-
const request = {
|
|
79
|
-
headers: {
|
|
80
|
-
authorizations: '["auth.read"]',
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
const response = {};
|
|
84
|
-
const next = vi.fn();
|
|
85
|
-
const instance = (await authorization_nest_1.default.create(query, {
|
|
86
|
-
request,
|
|
87
|
-
response,
|
|
88
|
-
next,
|
|
89
|
-
}));
|
|
90
|
-
await expect(instance['handleAuthorized']()).resolves.toBe(true);
|
|
91
|
-
await expect(instance['unauthorize']({
|
|
92
|
-
status: 403,
|
|
93
|
-
body: {
|
|
94
|
-
code: 403,
|
|
95
|
-
message: 'Forbidden',
|
|
96
|
-
timestamp: new Date('2024-01-01T00:00:00.000Z'),
|
|
97
|
-
errors: [],
|
|
98
|
-
},
|
|
99
|
-
headers: {},
|
|
100
|
-
})).rejects.toBeInstanceOf(not_allowed_nest_1.NestNotAllowedError);
|
|
101
|
-
});
|
|
102
|
-
it('should validate requests through the Nest guard', async () => {
|
|
103
|
-
const validate = vi.fn().mockResolvedValue(true);
|
|
104
|
-
const createSpy = vi
|
|
105
|
-
.spyOn(authorization_nest_1.default, 'create')
|
|
106
|
-
.mockResolvedValue({ validate });
|
|
107
|
-
const request = {};
|
|
108
|
-
const response = {};
|
|
109
|
-
const next = vi.fn();
|
|
110
|
-
const guard = new guard_nest_1.default({ $or: ['auth.read'] });
|
|
111
|
-
const context = {
|
|
112
|
-
switchToHttp: () => ({
|
|
113
|
-
getRequest: () => request,
|
|
114
|
-
getResponse: () => response,
|
|
115
|
-
getNext: () => next,
|
|
116
|
-
}),
|
|
117
|
-
};
|
|
118
|
-
await expect(guard.canActivate(context)).resolves.toBe(true);
|
|
119
|
-
expect(createSpy).toHaveBeenCalledWith({ $or: ['auth.read'] }, { request, response, next });
|
|
120
|
-
expect(validate).toHaveBeenCalledTimes(1);
|
|
121
|
-
});
|
|
122
|
-
});
|