@venizia/ignis 0.2.0-9 → 0.2.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +0 -1
- package/README.md +118 -158
- package/dist/base/applications/base.d.ts +19 -13
- package/dist/base/applications/base.d.ts.map +1 -1
- package/dist/base/applications/base.js +95 -74
- package/dist/base/applications/base.js.map +1 -1
- package/dist/base/applications/boot-steps.d.ts +13 -0
- package/dist/base/applications/boot-steps.d.ts.map +1 -0
- package/dist/base/applications/boot-steps.js +23 -0
- package/dist/base/applications/boot-steps.js.map +1 -0
- package/dist/base/applications/common/index.d.ts +2 -0
- package/dist/base/applications/common/index.d.ts.map +1 -0
- package/dist/base/applications/common/index.js +18 -0
- package/dist/base/applications/common/index.js.map +1 -0
- package/dist/base/applications/{types.d.ts → common/types.d.ts} +11 -0
- package/dist/base/applications/common/types.d.ts.map +1 -0
- package/dist/base/applications/common/types.js.map +1 -0
- package/dist/base/applications/index.d.ts +2 -1
- package/dist/base/applications/index.d.ts.map +1 -1
- package/dist/base/applications/index.js +2 -1
- package/dist/base/applications/index.js.map +1 -1
- package/dist/base/applications/server.d.ts +6 -2
- package/dist/base/applications/server.d.ts.map +1 -1
- package/dist/base/applications/server.js +34 -2
- package/dist/base/applications/server.js.map +1 -1
- package/dist/base/controllers/grpc/adapter.js +2 -2
- package/dist/base/controllers/grpc/adapter.js.map +1 -1
- package/dist/base/middlewares/app-error/app-error.middleware.d.ts +3 -2
- package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/app-error.middleware.js +4 -3
- package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
- package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts +2 -2
- package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/request-spy/request-spy.middleware.js +20 -6
- package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +2 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/environments.d.ts +31 -10
- package/dist/common/environments.d.ts.map +1 -1
- package/dist/common/environments.js +33 -10
- package/dist/common/environments.js.map +1 -1
- package/dist/components/api-reference/component.d.ts.map +1 -1
- package/dist/components/api-reference/component.js +4 -3
- package/dist/components/api-reference/component.js.map +1 -1
- package/dist/components/api-reference/index.d.ts +1 -1
- package/dist/components/api-reference/index.d.ts.map +1 -1
- package/dist/components/api-reference/index.js +1 -1
- package/dist/components/api-reference/index.js.map +1 -1
- package/dist/components/api-reference/ui/factory.d.ts +14 -0
- package/dist/components/api-reference/ui/factory.d.ts.map +1 -0
- package/dist/components/api-reference/ui/factory.js +54 -0
- package/dist/components/api-reference/ui/factory.js.map +1 -0
- package/dist/components/api-reference/ui/index.d.ts +4 -0
- package/dist/components/api-reference/ui/index.d.ts.map +1 -0
- package/dist/components/api-reference/ui/index.js +20 -0
- package/dist/components/api-reference/ui/index.js.map +1 -0
- package/dist/components/api-reference/ui/scalar.d.ts +8 -0
- package/dist/components/api-reference/ui/scalar.d.ts.map +1 -0
- package/dist/components/api-reference/ui/scalar.js +28 -0
- package/dist/components/api-reference/ui/scalar.js.map +1 -0
- package/dist/components/api-reference/ui/swagger.d.ts +8 -0
- package/dist/components/api-reference/ui/swagger.d.ts.map +1 -0
- package/dist/components/api-reference/ui/swagger.js +28 -0
- package/dist/components/api-reference/ui/swagger.js.map +1 -0
- package/dist/components/auth/authenticate/component.d.ts +5 -0
- package/dist/components/auth/authenticate/component.d.ts.map +1 -1
- package/dist/components/auth/authenticate/component.js +23 -0
- package/dist/components/auth/authenticate/component.js.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.d.ts +35 -3
- package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts +40 -20
- package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts +40 -20
- package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts +2 -2
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js +12 -8
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js +5 -3
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts +1 -2
- package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jws.service.js +5 -3
- package/dist/components/auth/authenticate/services/bearer/jws.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/jose-loader.d.ts +16 -0
- package/dist/components/auth/authenticate/services/jose-loader.d.ts.map +1 -0
- package/dist/components/auth/authenticate/services/jose-loader.js +25 -0
- package/dist/components/auth/authenticate/services/jose-loader.js.map +1 -0
- package/dist/components/auth/authenticate/services/service/signer.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/service/signer.service.js +8 -5
- package/dist/components/auth/authenticate/services/service/signer.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/service/verifier.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/service/verifier.service.js +10 -9
- package/dist/components/auth/authenticate/services/service/verifier.service.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/index.d.ts +1 -1
- package/dist/components/auth/authenticate/strategies/index.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/index.js +1 -1
- package/dist/components/auth/authenticate/strategies/index.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/jwks/index.d.ts +3 -0
- package/dist/components/auth/authenticate/strategies/jwks/index.d.ts.map +1 -0
- package/dist/components/auth/authenticate/strategies/jwks/index.js +19 -0
- package/dist/components/auth/authenticate/strategies/jwks/index.js.map +1 -0
- package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts +13 -0
- package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts.map +1 -0
- package/dist/components/auth/authenticate/strategies/{jwks.strategy.js → jwks/issuer.js} +4 -27
- package/dist/components/auth/authenticate/strategies/jwks/issuer.js.map +1 -0
- package/dist/components/auth/authenticate/strategies/{jwks.strategy.d.ts → jwks/verifier.d.ts} +2 -10
- package/dist/components/auth/authenticate/strategies/jwks/verifier.d.ts.map +1 -0
- package/dist/components/auth/authenticate/strategies/jwks/verifier.js +45 -0
- package/dist/components/auth/authenticate/strategies/jwks/verifier.js.map +1 -0
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/common/index.d.ts +2 -0
- package/dist/components/auth/authorize/adapters/common/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/common/index.js +18 -0
- package/dist/components/auth/authorize/adapters/common/index.js.map +1 -0
- package/dist/components/auth/authorize/adapters/{types.d.ts → common/types.d.ts} +1 -1
- package/dist/components/auth/authorize/adapters/common/types.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/common/types.js.map +1 -0
- package/dist/components/auth/authorize/adapters/connector.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/connector.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/index.d.ts +2 -2
- package/dist/components/auth/authorize/adapters/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/index.js +2 -2
- package/dist/components/auth/authorize/adapters/index.js.map +1 -1
- package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.d.ts → scoped-casbin/adapter.d.ts} +11 -55
- package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.js → scoped-casbin/adapter.js} +27 -22
- package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts +2 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js +5 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts +3 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js +19 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts +50 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js +3 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts +4 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.js +19 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts +17 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js +11 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/policy-line-codec.js +4 -2
- package/dist/components/auth/authorize/enforcers/policy-line-codec.js.map +1 -1
- package/dist/components/auth/authorize/role-managers/base.d.ts.map +1 -1
- package/dist/components/auth/authorize/role-managers/base.js +2 -1
- package/dist/components/auth/authorize/role-managers/base.js.map +1 -1
- package/dist/components/auth/models/entities/policy-definition.model.d.ts +30 -9
- package/dist/components/auth/models/entities/policy-definition.model.d.ts.map +1 -1
- package/dist/components/auth/models/entities/policy-definition.model.js +36 -10
- package/dist/components/auth/models/entities/policy-definition.model.js.map +1 -1
- package/dist/components/auth/models/entities/user.model.d.ts +2 -2
- package/dist/components/controller/grpc/grpc.component.d.ts.map +1 -1
- package/dist/components/controller/grpc/grpc.component.js +1 -5
- package/dist/components/controller/grpc/grpc.component.js.map +1 -1
- package/dist/components/health-check/common/constants.d.ts +5 -0
- package/dist/components/health-check/common/constants.d.ts.map +1 -0
- package/dist/components/health-check/common/constants.js +9 -0
- package/dist/components/health-check/common/constants.js.map +1 -0
- package/dist/components/health-check/common/index.d.ts +1 -0
- package/dist/components/health-check/common/index.d.ts.map +1 -1
- package/dist/components/health-check/common/index.js +1 -0
- package/dist/components/health-check/common/index.js.map +1 -1
- package/dist/components/health-check/common/keys.d.ts +2 -0
- package/dist/components/health-check/common/keys.d.ts.map +1 -1
- package/dist/components/health-check/common/keys.js +2 -0
- package/dist/components/health-check/common/keys.js.map +1 -1
- package/dist/components/health-check/common/rest-paths.d.ts +1 -0
- package/dist/components/health-check/common/rest-paths.d.ts.map +1 -1
- package/dist/components/health-check/common/rest-paths.js +1 -0
- package/dist/components/health-check/common/rest-paths.js.map +1 -1
- package/dist/components/health-check/common/types.d.ts +22 -0
- package/dist/components/health-check/common/types.d.ts.map +1 -1
- package/dist/components/health-check/component.d.ts +9 -3
- package/dist/components/health-check/component.d.ts.map +1 -1
- package/dist/components/health-check/component.js +38 -1
- package/dist/components/health-check/component.js.map +1 -1
- package/dist/components/health-check/controller.d.ts +10 -2
- package/dist/components/health-check/controller.d.ts.map +1 -1
- package/dist/components/health-check/controller.js +79 -13
- package/dist/components/health-check/controller.js.map +1 -1
- package/dist/components/health-check/index.d.ts +1 -0
- package/dist/components/health-check/index.d.ts.map +1 -1
- package/dist/components/health-check/index.js +1 -0
- package/dist/components/health-check/index.js.map +1 -1
- package/dist/components/health-check/reporter.d.ts +98 -0
- package/dist/components/health-check/reporter.d.ts.map +1 -0
- package/dist/components/health-check/reporter.js +138 -0
- package/dist/components/health-check/reporter.js.map +1 -0
- package/dist/components/mail/common/constants.d.ts +13 -0
- package/dist/components/mail/common/constants.d.ts.map +1 -1
- package/dist/components/mail/common/constants.js +20 -1
- package/dist/components/mail/common/constants.js.map +1 -1
- package/dist/components/mail/common/errors.d.ts +25 -0
- package/dist/components/mail/common/errors.d.ts.map +1 -1
- package/dist/components/mail/common/errors.js +22 -0
- package/dist/components/mail/common/errors.js.map +1 -1
- package/dist/components/mail/common/types/index.d.ts +6 -0
- package/dist/components/mail/common/types/index.d.ts.map +1 -0
- package/dist/components/mail/common/types/index.js +22 -0
- package/dist/components/mail/common/types/index.js.map +1 -0
- package/dist/components/mail/common/types/message.d.ts +50 -0
- package/dist/components/mail/common/types/message.d.ts.map +1 -0
- package/dist/components/mail/common/types/message.js +3 -0
- package/dist/components/mail/common/types/message.js.map +1 -0
- package/dist/components/mail/common/types/options.d.ts +72 -0
- package/dist/components/mail/common/types/options.d.ts.map +1 -0
- package/dist/components/mail/common/types/options.js +3 -0
- package/dist/components/mail/common/types/options.js.map +1 -0
- package/dist/components/mail/common/types/queue.d.ts +56 -0
- package/dist/components/mail/common/types/queue.d.ts.map +1 -0
- package/dist/components/mail/common/types/queue.js +3 -0
- package/dist/components/mail/common/types/queue.js.map +1 -0
- package/dist/components/mail/common/types/template.d.ts +33 -0
- package/dist/components/mail/common/types/template.d.ts.map +1 -0
- package/dist/components/mail/common/types/template.js +3 -0
- package/dist/components/mail/common/types/template.js.map +1 -0
- package/dist/components/mail/common/types/verification.d.ts +26 -0
- package/dist/components/mail/common/types/verification.d.ts.map +1 -0
- package/dist/components/mail/common/types/verification.js +3 -0
- package/dist/components/mail/common/types/verification.js.map +1 -0
- package/dist/components/mail/component.d.ts +6 -1
- package/dist/components/mail/component.d.ts.map +1 -1
- package/dist/components/mail/component.js +68 -16
- package/dist/components/mail/component.js.map +1 -1
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts +1 -0
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js +3 -0
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js.map +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js +2 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -1
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts +19 -0
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts.map +1 -0
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js +114 -0
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js.map +1 -0
- package/dist/components/mail/helpers/transporters/index.d.ts +2 -1
- package/dist/components/mail/helpers/transporters/index.d.ts.map +1 -1
- package/dist/components/mail/helpers/transporters/index.js +2 -1
- package/dist/components/mail/helpers/transporters/index.js.map +1 -1
- package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js +10 -9
- package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js.map +1 -1
- package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js +12 -1
- package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js.map +1 -1
- package/dist/components/mail/providers/mail-transporter.provider.d.ts +2 -0
- package/dist/components/mail/providers/mail-transporter.provider.d.ts.map +1 -1
- package/dist/components/mail/providers/mail-transporter.provider.js +35 -17
- package/dist/components/mail/providers/mail-transporter.provider.js.map +1 -1
- package/dist/components/mail/services/generators/index.d.ts +4 -0
- package/dist/components/mail/services/generators/index.d.ts.map +1 -0
- package/dist/components/mail/services/generators/index.js +20 -0
- package/dist/components/mail/services/generators/index.js.map +1 -0
- package/dist/components/mail/services/generators/numeric-code.d.ts +7 -0
- package/dist/components/mail/services/generators/numeric-code.d.ts.map +1 -0
- package/dist/components/mail/services/generators/numeric-code.js +20 -0
- package/dist/components/mail/services/generators/numeric-code.js.map +1 -0
- package/dist/components/mail/services/generators/random-token.d.ts +7 -0
- package/dist/components/mail/services/generators/random-token.d.ts.map +1 -0
- package/dist/components/mail/services/generators/random-token.js +18 -0
- package/dist/components/mail/services/generators/random-token.js.map +1 -0
- package/dist/components/mail/services/{generator.service.d.ts → generators/verification-data.d.ts} +2 -10
- package/dist/components/mail/services/generators/verification-data.d.ts.map +1 -0
- package/dist/components/mail/services/{generator.service.js → generators/verification-data.js} +5 -29
- package/dist/components/mail/services/generators/verification-data.js.map +1 -0
- package/dist/components/mail/services/index.d.ts +1 -1
- package/dist/components/mail/services/index.d.ts.map +1 -1
- package/dist/components/mail/services/index.js +1 -1
- package/dist/components/mail/services/index.js.map +1 -1
- package/dist/components/mail/services/mail.service.d.ts.map +1 -1
- package/dist/components/mail/services/mail.service.js +37 -20
- package/dist/components/mail/services/mail.service.js.map +1 -1
- package/dist/components/mail/utilities/address.utility.d.ts +9 -0
- package/dist/components/mail/utilities/address.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/address.utility.js +36 -0
- package/dist/components/mail/utilities/address.utility.js.map +1 -0
- package/dist/components/mail/utilities/attachment.utility.d.ts +31 -0
- package/dist/components/mail/utilities/attachment.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/attachment.utility.js +214 -0
- package/dist/components/mail/utilities/attachment.utility.js.map +1 -0
- package/dist/components/mail/utilities/body.utility.d.ts +6 -0
- package/dist/components/mail/utilities/body.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/body.utility.js +20 -0
- package/dist/components/mail/utilities/body.utility.js.map +1 -0
- package/dist/components/mail/utilities/index.d.ts +2 -0
- package/dist/components/mail/utilities/index.d.ts.map +1 -1
- package/dist/components/mail/utilities/index.js +2 -0
- package/dist/components/mail/utilities/index.js.map +1 -1
- package/dist/components/mail/utilities/mime.utility.d.ts +19 -0
- package/dist/components/mail/utilities/mime.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/mime.utility.js +390 -0
- package/dist/components/mail/utilities/mime.utility.js.map +1 -0
- package/dist/components/static-asset/common/commit-token.d.ts +23 -0
- package/dist/components/static-asset/common/commit-token.d.ts.map +1 -0
- package/dist/components/static-asset/common/commit-token.js +40 -0
- package/dist/components/static-asset/common/commit-token.js.map +1 -0
- package/dist/components/static-asset/common/constants.d.ts +21 -1
- package/dist/components/static-asset/common/constants.d.ts.map +1 -1
- package/dist/components/static-asset/common/constants.js +39 -2
- package/dist/components/static-asset/common/constants.js.map +1 -1
- package/dist/components/static-asset/common/errors.d.ts +52 -0
- package/dist/components/static-asset/common/errors.d.ts.map +1 -1
- package/dist/components/static-asset/common/errors.js +46 -0
- package/dist/components/static-asset/common/errors.js.map +1 -1
- package/dist/components/static-asset/common/index.d.ts +1 -0
- package/dist/components/static-asset/common/index.d.ts.map +1 -1
- package/dist/components/static-asset/common/index.js +1 -0
- package/dist/components/static-asset/common/index.js.map +1 -1
- package/dist/components/static-asset/common/keys.d.ts +1 -0
- package/dist/components/static-asset/common/keys.d.ts.map +1 -1
- package/dist/components/static-asset/common/keys.js +1 -0
- package/dist/components/static-asset/common/keys.js.map +1 -1
- package/dist/components/static-asset/common/types.d.ts +100 -30
- package/dist/components/static-asset/common/types.d.ts.map +1 -1
- package/dist/components/static-asset/component.d.ts +4 -1
- package/dist/components/static-asset/component.d.ts.map +1 -1
- package/dist/components/static-asset/component.js +21 -10
- package/dist/components/static-asset/component.js.map +1 -1
- package/dist/components/static-asset/controller/base.definition.d.ts +27 -554
- package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
- package/dist/components/static-asset/controller/base.definition.js +259 -286
- package/dist/components/static-asset/controller/base.definition.js.map +1 -1
- package/dist/components/static-asset/controller/factory.d.ts +76 -7
- package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
- package/dist/components/static-asset/controller/factory.js +810 -328
- package/dist/components/static-asset/controller/factory.js.map +1 -1
- package/dist/components/static-asset/controller/key-scope.d.ts +28 -0
- package/dist/components/static-asset/controller/key-scope.d.ts.map +1 -0
- package/dist/components/static-asset/controller/key-scope.js +44 -0
- package/dist/components/static-asset/controller/key-scope.js.map +1 -0
- package/dist/components/static-asset/controller/meta-link.d.ts +37 -0
- package/dist/components/static-asset/controller/meta-link.d.ts.map +1 -0
- package/dist/components/static-asset/controller/meta-link.js +95 -0
- package/dist/components/static-asset/controller/meta-link.js.map +1 -0
- package/dist/components/static-asset/controller/route-options.d.ts +18 -0
- package/dist/components/static-asset/controller/route-options.d.ts.map +1 -0
- package/dist/components/static-asset/controller/route-options.js +37 -0
- package/dist/components/static-asset/controller/route-options.js.map +1 -0
- package/dist/components/static-asset/index.d.ts +1 -0
- package/dist/components/static-asset/index.d.ts.map +1 -1
- package/dist/components/static-asset/index.js +1 -0
- package/dist/components/static-asset/index.js.map +1 -1
- package/dist/components/static-asset/ingest.d.ts +58 -0
- package/dist/components/static-asset/ingest.d.ts.map +1 -0
- package/dist/components/static-asset/ingest.js +82 -0
- package/dist/components/static-asset/ingest.js.map +1 -0
- package/dist/components/static-asset/models/base.model.d.ts +44 -6
- package/dist/components/static-asset/models/base.model.d.ts.map +1 -1
- package/dist/components/static-asset/models/base.model.js +7 -1
- package/dist/components/static-asset/models/base.model.js.map +1 -1
- package/dist/components/websocket/handlers/bun.handler.d.ts.map +1 -1
- package/dist/components/websocket/handlers/bun.handler.js +2 -1
- package/dist/components/websocket/handlers/bun.handler.js.map +1 -1
- package/dist/connectors/postgres/drivers/postgres-js.d.mts +3 -0
- package/dist/connectors/postgres/drivers/postgres-js.d.mts.map +1 -0
- package/dist/connectors/postgres/drivers/postgres-js.mjs +3 -0
- package/dist/connectors/postgres/drivers/postgres-js.mjs.map +1 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +19 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +33 -26
- package/dist/base/applications/types.d.ts.map +0 -1
- package/dist/base/applications/types.js.map +0 -1
- package/dist/components/api-reference/ui-factory.d.ts +0 -24
- package/dist/components/api-reference/ui-factory.d.ts.map +0 -1
- package/dist/components/api-reference/ui-factory.js +0 -97
- package/dist/components/api-reference/ui-factory.js.map +0 -1
- package/dist/components/auth/authenticate/strategies/jwks.strategy.d.ts.map +0 -1
- package/dist/components/auth/authenticate/strategies/jwks.strategy.js.map +0 -1
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +0 -1
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +0 -1
- package/dist/components/auth/authorize/adapters/types.d.ts.map +0 -1
- package/dist/components/auth/authorize/adapters/types.js.map +0 -1
- package/dist/components/mail/common/types.d.ts +0 -201
- package/dist/components/mail/common/types.d.ts.map +0 -1
- package/dist/components/mail/common/types.js +0 -10
- package/dist/components/mail/common/types.js.map +0 -1
- package/dist/components/mail/services/generator.service.d.ts.map +0 -1
- package/dist/components/mail/services/generator.service.js.map +0 -1
- /package/dist/base/applications/{types.js → common/types.js} +0 -0
- /package/dist/components/auth/authorize/adapters/{types.js → common/types.js} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./message"), exports);
|
|
18
|
+
__exportStar(require("./options"), exports);
|
|
19
|
+
__exportStar(require("./queue"), exports);
|
|
20
|
+
__exportStar(require("./template"), exports);
|
|
21
|
+
__exportStar(require("./verification"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,iDAA+B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
|
+
export interface IMailAttachment {
|
|
3
|
+
filename?: string;
|
|
4
|
+
contentType?: string;
|
|
5
|
+
/** A file under the mail options' `attachmentRoot`; refused when no root is set. */
|
|
6
|
+
path?: string;
|
|
7
|
+
content?: string | Buffer | Uint8Array | Readable | ReadableStream<Uint8Array>;
|
|
8
|
+
encoding?: BufferEncoding;
|
|
9
|
+
cid?: string;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}
|
|
12
|
+
export interface IMailMessage {
|
|
13
|
+
from?: string;
|
|
14
|
+
to: string | string[];
|
|
15
|
+
cc?: string | string[];
|
|
16
|
+
bcc?: string | string[];
|
|
17
|
+
replyTo?: string;
|
|
18
|
+
subject: string;
|
|
19
|
+
text?: string;
|
|
20
|
+
html?: string;
|
|
21
|
+
attachments?: IMailAttachment[];
|
|
22
|
+
headers?: Record<string, string>;
|
|
23
|
+
requireValidate?: boolean;
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}
|
|
26
|
+
export interface IMailSendResult {
|
|
27
|
+
success: boolean;
|
|
28
|
+
messageId?: string;
|
|
29
|
+
response?: any;
|
|
30
|
+
error?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface IMailTransport {
|
|
33
|
+
send(message: IMailMessage): Promise<IMailSendResult>;
|
|
34
|
+
verify(): Promise<boolean>;
|
|
35
|
+
close?(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export interface IMailService {
|
|
38
|
+
send(message: IMailMessage): Promise<IMailSendResult>;
|
|
39
|
+
sendBatch(messages: IMailMessage[], options?: {
|
|
40
|
+
concurrency?: number;
|
|
41
|
+
}): Promise<IMailSendResult[]>;
|
|
42
|
+
sendTemplate(opts: {
|
|
43
|
+
templateName: string;
|
|
44
|
+
data: Record<string, any>;
|
|
45
|
+
recipients: string | string[];
|
|
46
|
+
options?: Partial<IMailMessage>;
|
|
47
|
+
}): Promise<IMailSendResult>;
|
|
48
|
+
verify(): Promise<boolean>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC/E,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,SAAS,CACP,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/message.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { AnyType } from '@venizia/ignis-helpers/common';
|
|
2
|
+
import type SMTPTransport from 'nodemailer/lib/smtp-transport';
|
|
3
|
+
import type { IMailTransport } from './message';
|
|
4
|
+
export interface IBaseMailOptions {
|
|
5
|
+
from?: string;
|
|
6
|
+
fromName?: string;
|
|
7
|
+
/**
|
|
8
|
+
* The only directory an `attachment.path` may be read from; `path` is resolved against it and
|
|
9
|
+
* refused if it lands outside, symlinks included. Unset, every `path` is refused.
|
|
10
|
+
*/
|
|
11
|
+
attachmentRoot?: string;
|
|
12
|
+
/** Bytes of attachment content one message may carry, all attachments together. Default 25 MB. */
|
|
13
|
+
maxAttachmentBytes?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface INodemailerMailOptions extends IBaseMailOptions {
|
|
16
|
+
provider: 'nodemailer';
|
|
17
|
+
config: TNodemailerConfig;
|
|
18
|
+
module?: TNodemailerModule;
|
|
19
|
+
}
|
|
20
|
+
export interface IMailgunMailOptions extends IBaseMailOptions {
|
|
21
|
+
provider: 'mailgun';
|
|
22
|
+
config: TMailgunConfig;
|
|
23
|
+
module?: TMailgunModule;
|
|
24
|
+
}
|
|
25
|
+
export interface IAmazonSesMailOptions extends IBaseMailOptions {
|
|
26
|
+
provider: 'amazon-ses';
|
|
27
|
+
config: TAmazonSesConfig;
|
|
28
|
+
module?: TAmazonSesModule;
|
|
29
|
+
}
|
|
30
|
+
export interface ICustomMailOptions extends IBaseMailOptions {
|
|
31
|
+
provider: 'custom';
|
|
32
|
+
config: IMailTransport;
|
|
33
|
+
}
|
|
34
|
+
export interface IGenericMailOptions extends IBaseMailOptions {
|
|
35
|
+
provider: string;
|
|
36
|
+
config: Record<string, AnyType>;
|
|
37
|
+
}
|
|
38
|
+
export type TMailOptions = INodemailerMailOptions | IAmazonSesMailOptions | IMailgunMailOptions | ICustomMailOptions | IGenericMailOptions;
|
|
39
|
+
export type TNodemailerConfig = SMTPTransport | SMTPTransport.Options | string;
|
|
40
|
+
export type TMailgunConfig = AnyType & {
|
|
41
|
+
domain: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The peer module itself, handed over by an application that already holds it. A `bun build
|
|
45
|
+
* --compile` binary carries no `node_modules`, so the runtime lookup these transports fall back to
|
|
46
|
+
* has nothing to resolve against - passing the module through the options is what a compiled
|
|
47
|
+
* application does instead. Typed as the shape each transport actually uses, so a wrong module is
|
|
48
|
+
* a compile error rather than a boot crash.
|
|
49
|
+
*/
|
|
50
|
+
export type TNodemailerModule = {
|
|
51
|
+
createTransport: (config: AnyType, defaults?: AnyType) => AnyType;
|
|
52
|
+
};
|
|
53
|
+
export type TMailgunModule = new (formData: AnyType) => AnyType;
|
|
54
|
+
export type TAmazonSesConfig = {
|
|
55
|
+
region: string;
|
|
56
|
+
credentials?: {
|
|
57
|
+
accessKeyId: string;
|
|
58
|
+
secretAccessKey: string;
|
|
59
|
+
sessionToken?: string;
|
|
60
|
+
};
|
|
61
|
+
endpoint?: string;
|
|
62
|
+
};
|
|
63
|
+
/** Same story as {@link TNodemailerModule} - a compiled binary hands this over explicitly since there is no `node_modules` to resolve `@aws-sdk/client-sesv2` against. */
|
|
64
|
+
export type TAmazonSesModule<TConfig extends AnyType = AnyType, TClient extends AnyType = AnyType> = {
|
|
65
|
+
SESv2Client: new (config: TConfig) => TClient;
|
|
66
|
+
SendEmailCommand: new (input: AnyType) => AnyType;
|
|
67
|
+
GetAccountCommand: new (input?: AnyType) => AnyType;
|
|
68
|
+
};
|
|
69
|
+
export type TAmazonSesClient = Pick<TAmazonSesModule, 'SendEmailCommand' | 'GetAccountCommand'> & {
|
|
70
|
+
client: AnyType;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,aAAa,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,YAAY,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,mBAAmB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC;AAG/E,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,KAAK,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,0KAA0K;AAC1K,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,OAAO,GAAG,OAAO,EACjC,OAAO,SAAS,OAAO,GAAG,OAAO,IAC/B;IACF,WAAW,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAC9C,gBAAgB,EAAE,KAAK,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAClD,iBAAiB,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,GAAG;IAChG,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { TConstValue } from '@venizia/ignis-helpers/common';
|
|
2
|
+
import type { IRedisSingleHelperOptions } from '@venizia/ignis-helpers';
|
|
3
|
+
import type { BullMQExecutorModes, MailQueueExecutorTypes } from '../constants';
|
|
4
|
+
export interface IMailQueueOptions {
|
|
5
|
+
priority?: number;
|
|
6
|
+
delay?: number;
|
|
7
|
+
attempts?: number;
|
|
8
|
+
backoff?: {
|
|
9
|
+
type: 'fixed' | 'exponential';
|
|
10
|
+
delay: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export interface IMailProcessorResult {
|
|
14
|
+
success: boolean;
|
|
15
|
+
message: string;
|
|
16
|
+
expiresInMinutes: number;
|
|
17
|
+
nextResendAt?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface IMailQueueResult {
|
|
20
|
+
jobId?: string;
|
|
21
|
+
queued: boolean;
|
|
22
|
+
message: string;
|
|
23
|
+
result?: IMailProcessorResult;
|
|
24
|
+
}
|
|
25
|
+
export interface IMailQueueExecutor {
|
|
26
|
+
enqueueVerificationEmail(email: string, options?: IMailQueueOptions): Promise<IMailQueueResult>;
|
|
27
|
+
setProcessor(processor: (email: string) => Promise<IMailProcessorResult>): void;
|
|
28
|
+
}
|
|
29
|
+
/** Envelope every queue-backed executor stores for one pending verification email. */
|
|
30
|
+
export interface IQueueJobPayload {
|
|
31
|
+
id: string;
|
|
32
|
+
email: string;
|
|
33
|
+
options?: IMailQueueOptions;
|
|
34
|
+
attempts: number;
|
|
35
|
+
scheduledAt: number;
|
|
36
|
+
}
|
|
37
|
+
export interface IInternalQueueMailExecutorOpts {
|
|
38
|
+
identifier: string;
|
|
39
|
+
}
|
|
40
|
+
export interface IBullMQMailExecutorOpts {
|
|
41
|
+
/** `redis.module` passes `ioredis` itself - see `module` below for why. */
|
|
42
|
+
redis: IRedisSingleHelperOptions;
|
|
43
|
+
queue: {
|
|
44
|
+
identifier: string;
|
|
45
|
+
name: string;
|
|
46
|
+
};
|
|
47
|
+
mode: TConstValue<typeof BullMQExecutorModes>;
|
|
48
|
+
/** `bullmq` itself, for a `bun build --compile` binary that has no `node_modules` to load it from. */
|
|
49
|
+
module?: typeof import('bullmq');
|
|
50
|
+
}
|
|
51
|
+
export interface IMailQueueExecutorConfig {
|
|
52
|
+
type: TConstValue<typeof MailQueueExecutorTypes>;
|
|
53
|
+
internalQueue?: IInternalQueueMailExecutorOpts;
|
|
54
|
+
bullmq?: IBullMQMailExecutorOpts;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,OAAO,GAAG,aAAa,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChG,YAAY,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;CACjF;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,2EAA2E;IAC3E,KAAK,EAAE,yBAAyB,CAAC;IACjC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,EAAE,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC9C,sGAAsG;IACtG,MAAM,CAAC,EAAE,cAAc,QAAQ,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,8BAA8B,CAAC;IAC/C,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/queue.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AnyType } from '@venizia/ignis-helpers/common';
|
|
2
|
+
export interface ITemplate {
|
|
3
|
+
name: string;
|
|
4
|
+
content?: string;
|
|
5
|
+
render?: (data: Record<string, AnyType>) => string;
|
|
6
|
+
subject?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IMailTemplateEngine {
|
|
10
|
+
render(opts: {
|
|
11
|
+
templateData?: string;
|
|
12
|
+
templateName?: string;
|
|
13
|
+
data: Record<string, any>;
|
|
14
|
+
requireValidate?: boolean;
|
|
15
|
+
}): string;
|
|
16
|
+
registerTemplate(opts: {
|
|
17
|
+
name: string;
|
|
18
|
+
content: string;
|
|
19
|
+
}): void;
|
|
20
|
+
validateTemplateData(opts: {
|
|
21
|
+
template: string;
|
|
22
|
+
data: Record<string, any>;
|
|
23
|
+
}): {
|
|
24
|
+
isValid: boolean;
|
|
25
|
+
missingKeys: string[];
|
|
26
|
+
allKeys: string[];
|
|
27
|
+
};
|
|
28
|
+
getTemplate(name: string): ITemplate | undefined;
|
|
29
|
+
listTemplates(): ITemplate[];
|
|
30
|
+
hasTemplate(name: string): boolean;
|
|
31
|
+
removeTemplate(name: string): boolean;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,IAAI,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,MAAM,CAAC;IACX,gBAAgB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChE,oBAAoB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG;QAC3E,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACjD,aAAa,IAAI,SAAS,EAAE,CAAC;IAC7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/template.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface IVerificationGenerationOptions {
|
|
2
|
+
codeLength: number;
|
|
3
|
+
tokenBytes: number;
|
|
4
|
+
codeExpiryMinutes: number;
|
|
5
|
+
tokenExpiryHours: number;
|
|
6
|
+
}
|
|
7
|
+
export interface IVerificationData {
|
|
8
|
+
verificationCode: string;
|
|
9
|
+
codeGeneratedAt: string;
|
|
10
|
+
codeExpiresAt: string;
|
|
11
|
+
codeAttempts: number;
|
|
12
|
+
verificationToken: string;
|
|
13
|
+
tokenGeneratedAt: string;
|
|
14
|
+
tokenExpiresAt: string;
|
|
15
|
+
lastCodeSentAt: string;
|
|
16
|
+
}
|
|
17
|
+
export interface IVerificationCodeGenerator {
|
|
18
|
+
generateCode(length: number): string;
|
|
19
|
+
}
|
|
20
|
+
export interface IVerificationTokenGenerator {
|
|
21
|
+
generateToken(bytes: number): string;
|
|
22
|
+
}
|
|
23
|
+
export interface IVerificationDataGenerator {
|
|
24
|
+
generateVerificationData(options: IVerificationGenerationOptions): IVerificationData;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/verification.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IAErB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IAEvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,wBAAwB,CAAC,OAAO,EAAE,8BAA8B,GAAG,iBAAiB,CAAC;CACtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../../../src/components/mail/common/types/verification.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { BaseApplication } from '../../base/applications';
|
|
2
2
|
import { BaseComponent } from '@venizia/ignis-kernel';
|
|
3
|
-
|
|
3
|
+
import type { TMailOptions } from './common';
|
|
4
|
+
export declare class MailComponent extends BaseComponent<TMailOptions> {
|
|
4
5
|
private application;
|
|
5
6
|
constructor(application: BaseApplication);
|
|
7
|
+
/** `application.component(MailComponent, { options })` lands here; the call site outranks a key bound earlier. */
|
|
8
|
+
configure(opts?: TMailOptions): Promise<void>;
|
|
6
9
|
binding(): void | Promise<void>;
|
|
7
10
|
initGenerators(): void;
|
|
8
11
|
initProviders(): void;
|
|
9
12
|
initServices(): void;
|
|
13
|
+
/** A bad limit or root would otherwise surface on every send, as a 400 that blames the caller. */
|
|
14
|
+
private validateAttachmentOptions;
|
|
10
15
|
createAndBindInstances(): void;
|
|
11
16
|
}
|
|
12
17
|
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/mail/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/mail/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,KAAK,EAA4B,YAAY,EAAE,MAAM,UAAU,CAAC;AAYvE,qBAAa,aAAc,SAAQ,aAAa,CAAC,YAAY,CAAC;IAEN,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAS1F,kHAAkH;IACnG,SAAS,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnD,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxC,cAAc;IAYd,aAAa;IAWb,YAAY;IAWZ,kGAAkG;IAClG,OAAO,CAAC,yBAAyB;IA2CjC,sBAAsB,IAAI,IAAI;CAqC/B"}
|
|
@@ -19,7 +19,10 @@ const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
|
19
19
|
const metadata_1 = require("../../base/metadata");
|
|
20
20
|
const common_1 = require("../../common");
|
|
21
21
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
22
|
-
const common_2 = require("
|
|
22
|
+
const common_2 = require("@venizia/ignis-helpers/common");
|
|
23
|
+
const node_fs_1 = require("node:fs");
|
|
24
|
+
const node_path_1 = require("node:path");
|
|
25
|
+
const common_3 = require("./common");
|
|
23
26
|
const providers_1 = require("./providers");
|
|
24
27
|
const services_1 = require("./services");
|
|
25
28
|
let MailComponent = MailComponent_1 = class MailComponent extends ignis_kernel_1.BaseComponent {
|
|
@@ -31,8 +34,20 @@ let MailComponent = MailComponent_1 = class MailComponent extends ignis_kernel_1
|
|
|
31
34
|
});
|
|
32
35
|
this.application = application;
|
|
33
36
|
}
|
|
37
|
+
/** `application.component(MailComponent, { options })` lands here; the call site outranks a key bound earlier. */
|
|
38
|
+
async configure(opts) {
|
|
39
|
+
// The base short-circuits a second call; binding before that check would swap the options
|
|
40
|
+
// under a transport that was already built from the first ones.
|
|
41
|
+
if (this.isConfigured) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (opts !== undefined) {
|
|
45
|
+
this.application.bind({ key: common_3.MailKeys.MAIL_OPTIONS }).toValue(opts);
|
|
46
|
+
}
|
|
47
|
+
await super.configure(opts);
|
|
48
|
+
}
|
|
34
49
|
binding() {
|
|
35
|
-
if (!this.application.isBound({ key:
|
|
50
|
+
if (!this.application.isBound({ key: common_3.MailKeys.MAIL_OPTIONS })) {
|
|
36
51
|
this.logger
|
|
37
52
|
.for(this.binding.name)
|
|
38
53
|
.error('Mail options not configured. Please bind MailKeys.MAIL_OPTIONS before adding MailComponent.');
|
|
@@ -48,63 +63,100 @@ let MailComponent = MailComponent_1 = class MailComponent extends ignis_kernel_1
|
|
|
48
63
|
}
|
|
49
64
|
initGenerators() {
|
|
50
65
|
this.application
|
|
51
|
-
.bind({ key:
|
|
66
|
+
.bind({ key: common_3.MailKeys.MAIL_VERIFICATION_CODE_GENERATOR })
|
|
52
67
|
.toClass(services_1.NumericCodeGenerator);
|
|
53
68
|
this.application
|
|
54
|
-
.bind({ key:
|
|
69
|
+
.bind({ key: common_3.MailKeys.MAIL_VERIFICATION_TOKEN_GENERATOR })
|
|
55
70
|
.toClass(services_1.RandomTokenGenerator);
|
|
56
71
|
this.application
|
|
57
|
-
.bind({ key:
|
|
72
|
+
.bind({ key: common_3.MailKeys.MAIL_VERIFICATION_DATA_GENERATOR })
|
|
58
73
|
.toClass(services_1.DefaultVerificationDataGenerator);
|
|
59
74
|
}
|
|
60
75
|
initProviders() {
|
|
61
76
|
this.application
|
|
62
|
-
.bind({ key:
|
|
77
|
+
.bind({ key: common_3.MailKeys.MAIL_TRANSPORT_PROVIDER })
|
|
63
78
|
.toProvider(providers_1.MailTransportProvider)
|
|
64
79
|
.setScope('singleton');
|
|
65
80
|
this.application
|
|
66
|
-
.bind({ key:
|
|
81
|
+
.bind({ key: common_3.MailKeys.MAIL_QUEUE_EXECUTOR_PROVIDER })
|
|
67
82
|
.toProvider(providers_1.MailQueueExecutorProvider)
|
|
68
83
|
.setScope('singleton');
|
|
69
84
|
}
|
|
70
85
|
initServices() {
|
|
71
86
|
this.application
|
|
72
|
-
.bind({ key:
|
|
87
|
+
.bind({ key: common_3.MailKeys.MAIL_SERVICE })
|
|
73
88
|
.toClass(services_1.MailService)
|
|
74
89
|
.setScope('singleton');
|
|
75
90
|
this.application
|
|
76
|
-
.bind({ key:
|
|
91
|
+
.bind({ key: common_3.MailKeys.MAIL_TEMPLATE_ENGINE })
|
|
77
92
|
.toClass(services_1.TemplateEngineService)
|
|
78
93
|
.setScope('singleton');
|
|
79
94
|
}
|
|
95
|
+
/** A bad limit or root would otherwise surface on every send, as a 400 that blames the caller. */
|
|
96
|
+
validateAttachmentOptions(opts) {
|
|
97
|
+
const { attachmentRoot, maxAttachmentBytes } = opts.options;
|
|
98
|
+
const buildOptionError = (details) => {
|
|
99
|
+
return (0, core_1.getError)({
|
|
100
|
+
statusCode: common_2.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
101
|
+
messageCode: common_3.MailErrorCodes.INVALID_CONFIGURATION,
|
|
102
|
+
message: `Invalid mail options | ${details.message}`,
|
|
103
|
+
cause: details.cause,
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const isValidLimit = maxAttachmentBytes === undefined ||
|
|
107
|
+
(Number.isSafeInteger(maxAttachmentBytes) && maxAttachmentBytes > 0);
|
|
108
|
+
if (!isValidLimit) {
|
|
109
|
+
throw buildOptionError({ message: 'maxAttachmentBytes must be a positive integer' });
|
|
110
|
+
}
|
|
111
|
+
if (attachmentRoot === undefined) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (typeof attachmentRoot !== 'string' || !(0, node_path_1.isAbsolute)(attachmentRoot)) {
|
|
115
|
+
throw buildOptionError({ message: 'attachmentRoot must be an absolute path' });
|
|
116
|
+
}
|
|
117
|
+
let isDirectory;
|
|
118
|
+
try {
|
|
119
|
+
isDirectory = (0, node_fs_1.statSync)(attachmentRoot).isDirectory();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
throw buildOptionError({
|
|
123
|
+
message: 'attachmentRoot must be an existing directory',
|
|
124
|
+
cause: error,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (!isDirectory) {
|
|
128
|
+
throw buildOptionError({ message: 'attachmentRoot must be an existing directory' });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
80
131
|
createAndBindInstances() {
|
|
81
132
|
// Transport
|
|
82
133
|
const transportGetter = this.application.get({
|
|
83
|
-
key:
|
|
134
|
+
key: common_3.MailKeys.MAIL_TRANSPORT_PROVIDER,
|
|
84
135
|
});
|
|
85
|
-
const mailOptions = this.application.get({ key:
|
|
136
|
+
const mailOptions = this.application.get({ key: common_3.MailKeys.MAIL_OPTIONS });
|
|
137
|
+
this.validateAttachmentOptions({ options: mailOptions });
|
|
86
138
|
// Only the provider is logged: the options carry SMTP / API credentials, which must never reach a log sink.
|
|
87
139
|
this.logger
|
|
88
140
|
.for(this.createAndBindInstances.name)
|
|
89
141
|
.info('Mail provider: %s', mailOptions.provider);
|
|
90
142
|
const mailTransportInstance = transportGetter(mailOptions);
|
|
91
|
-
this.application.bind({ key:
|
|
143
|
+
this.application.bind({ key: common_3.MailKeys.MAIL_TRANSPORT_INSTANCE }).toValue(mailTransportInstance);
|
|
92
144
|
// Queue
|
|
93
145
|
const queueGetter = this.application.get({
|
|
94
|
-
key:
|
|
146
|
+
key: common_3.MailKeys.MAIL_QUEUE_EXECUTOR_PROVIDER,
|
|
95
147
|
});
|
|
96
148
|
// Queueing is opt-in: with no executor config bound, fall back to the direct (inline) executor instead of a "binding is not bounded" crash at boot.
|
|
97
149
|
const queueConfig = this.application.get({
|
|
98
|
-
key:
|
|
150
|
+
key: common_3.MailKeys.MAIL_QUEUE_EXECUTOR_CONFIG,
|
|
99
151
|
isOptional: true,
|
|
100
|
-
}) ?? { type:
|
|
152
|
+
}) ?? { type: common_3.MailQueueExecutorTypes.DIRECT };
|
|
101
153
|
// Same reason as above: a bullmq config carries the Redis password.
|
|
102
154
|
this.logger
|
|
103
155
|
.for(this.createAndBindInstances.name)
|
|
104
156
|
.info('Mail queue executor type: %s', queueConfig.type);
|
|
105
157
|
const queueExecutorInstance = queueGetter(queueConfig);
|
|
106
158
|
this.application
|
|
107
|
-
.bind({ key:
|
|
159
|
+
.bind({ key: common_3.MailKeys.MAIL_QUEUE_EXECUTOR_INSTANCE })
|
|
108
160
|
.toValue(queueExecutorInstance);
|
|
109
161
|
}
|
|
110
162
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/mail/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,wDAAsD;AACtD,8CAAyC;AACzC,qCAAwC;AACxC,sDAAuD;
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/mail/component.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export declare class BullMQMailExecutorHelper extends BaseHelper implements IMai
|
|
|
9
9
|
private queueHelper?;
|
|
10
10
|
private workerHelpers;
|
|
11
11
|
private redisConnection;
|
|
12
|
+
private readonly bullmqModule?;
|
|
12
13
|
private jobIdCounter;
|
|
13
14
|
private processor?;
|
|
14
15
|
constructor(opts: IBullMQMailExecutorOpts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bull-mq-executor.helper.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/helpers/executors/bull-mq-executor.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAsC,MAAM,cAAc,CAAC;AAGvF,qBAAa,wBAAyB,SAAQ,UAAW,YAAW,kBAAkB;IACpF,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAA0C;IAEtD,OAAO,CAAC,WAAW,CAAC,CAAmD;IACvE,OAAO,CAAC,aAAa,CAA8D;IACnF,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,SAAS,CAAC,CAAmD;gBAEzD,IAAI,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"bull-mq-executor.helper.d.ts","sourceRoot":"","sources":["../../../../../src/components/mail/helpers/executors/bull-mq-executor.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAsC,MAAM,cAAc,CAAC;AAGvF,qBAAa,wBAAyB,SAAQ,UAAW,YAAW,kBAAkB;IACpF,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAA0C;IAEtD,OAAO,CAAC,WAAW,CAAC,CAAmD;IACvE,OAAO,CAAC,aAAa,CAA8D;IACnF,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA0B;IACxD,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,SAAS,CAAC,CAAmD;gBAEzD,IAAI,EAAE,uBAAuB;IAiBzC,SAAS,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAmC/C,YAAY,CAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,EAC3D,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,IAAI,CAAC;IAkChB,SAAS,CAAC,IAAI,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAsG1F,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBnD,6JAA6J;YAC/I,YAAY;IA2BpB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC,sLAAsL;IAChL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC5B,cAAc,IAAI,MAAM;IAIxB,OAAO,IAAI,WAAW,CAAC,OAAO,mBAAmB,CAAC;IAI5C,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC;CAqD7B"}
|
|
@@ -15,6 +15,7 @@ class BullMQMailExecutorHelper extends core_1.BaseHelper {
|
|
|
15
15
|
...opts.redis,
|
|
16
16
|
maxRetry: undefined,
|
|
17
17
|
});
|
|
18
|
+
this.bullmqModule = opts.module;
|
|
18
19
|
this.queueIdentifier = opts.queue.identifier;
|
|
19
20
|
this.queueName = opts.queue.name;
|
|
20
21
|
this.initQueue(opts.queue);
|
|
@@ -28,6 +29,7 @@ class BullMQMailExecutorHelper extends core_1.BaseHelper {
|
|
|
28
29
|
queueName: queue.name,
|
|
29
30
|
redisConnection: this.redisConnection,
|
|
30
31
|
role: 'queue',
|
|
32
|
+
module: this.bullmqModule,
|
|
31
33
|
});
|
|
32
34
|
this.logger
|
|
33
35
|
.for(this.constructor.name)
|
|
@@ -77,6 +79,7 @@ class BullMQMailExecutorHelper extends core_1.BaseHelper {
|
|
|
77
79
|
queueName: this.queueName,
|
|
78
80
|
redisConnection: this.redisConnection,
|
|
79
81
|
role: 'worker',
|
|
82
|
+
module: this.bullmqModule,
|
|
80
83
|
numberOfWorker: concurrency,
|
|
81
84
|
lockDuration,
|
|
82
85
|
onWorkerData: async (job) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bull-mq-executor.helper.js","sourceRoot":"","sources":["../../../../../src/components/mail/helpers/executors/bull-mq-executor.helper.ts"],"names":[],"mappings":";;;AAAA,sDAAmE;AACnE,0DAA2D;AAE3D,0DAA6D;AAS7D,yCAAuF;AAGvF,MAAa,wBAAyB,SAAQ,iBAAU;
|
|
1
|
+
{"version":3,"file":"bull-mq-executor.helper.js","sourceRoot":"","sources":["../../../../../src/components/mail/helpers/executors/bull-mq-executor.helper.ts"],"names":[],"mappings":"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"}
|