@serve.zone/dcrouter 2.12.4
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/.dockerignore +1 -0
- package/.gitea/workflows/docker_nottags.yaml +71 -0
- package/.gitea/workflows/docker_tags.yaml +106 -0
- package/.vscode/launch.json +11 -0
- package/.vscode/settings.json +26 -0
- package/Dockerfile +46 -0
- package/changelog.md +247 -0
- package/cli.child.js +4 -0
- package/cli.child.ts +4 -0
- package/cli.js +4 -0
- package/cli.ts.js +5 -0
- package/dist_ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/classes.dcrouter.d.ts +238 -0
- package/dist_ts/classes.dcrouter.js +1008 -0
- package/dist_ts/config/index.d.ts +1 -0
- package/dist_ts/config/index.js +3 -0
- package/dist_ts/config/validator.d.ts +104 -0
- package/dist_ts/config/validator.js +152 -0
- package/dist_ts/deliverability/classes.ipwarmupmanager.d.ts +253 -0
- package/dist_ts/deliverability/classes.ipwarmupmanager.js +639 -0
- package/dist_ts/deliverability/classes.senderreputationmonitor.d.ts +300 -0
- package/dist_ts/deliverability/classes.senderreputationmonitor.js +961 -0
- package/dist_ts/deliverability/index.d.ts +2 -0
- package/dist_ts/deliverability/index.js +3 -0
- package/dist_ts/errors/base.errors.d.ts +224 -0
- package/dist_ts/errors/base.errors.js +310 -0
- package/dist_ts/errors/email.errors.d.ts +175 -0
- package/dist_ts/errors/email.errors.js +265 -0
- package/dist_ts/errors/error-handler.d.ts +98 -0
- package/dist_ts/errors/error-handler.js +282 -0
- package/dist_ts/errors/error.codes.d.ts +115 -0
- package/dist_ts/errors/error.codes.js +136 -0
- package/dist_ts/errors/index.d.ts +56 -0
- package/dist_ts/errors/index.js +138 -0
- package/dist_ts/errors/mta.errors.d.ts +259 -0
- package/dist_ts/errors/mta.errors.js +472 -0
- package/dist_ts/errors/reputation.errors.d.ts +183 -0
- package/dist_ts/errors/reputation.errors.js +292 -0
- package/dist_ts/index.d.ts +4 -0
- package/dist_ts/index.js +6 -0
- package/dist_ts/logger.d.ts +17 -0
- package/dist_ts/logger.js +77 -0
- package/dist_ts/mail/core/classes.bouncemanager.d.ts +200 -0
- package/dist_ts/mail/core/classes.bouncemanager.js +778 -0
- package/dist_ts/mail/core/classes.email.d.ts +291 -0
- package/dist_ts/mail/core/classes.email.js +780 -0
- package/dist_ts/mail/core/classes.emailvalidator.d.ts +61 -0
- package/dist_ts/mail/core/classes.emailvalidator.js +182 -0
- package/dist_ts/mail/core/classes.templatemanager.d.ts +95 -0
- package/dist_ts/mail/core/classes.templatemanager.js +239 -0
- package/dist_ts/mail/core/index.d.ts +4 -0
- package/dist_ts/mail/core/index.js +6 -0
- package/dist_ts/mail/delivery/classes.delivery.queue.d.ts +163 -0
- package/dist_ts/mail/delivery/classes.delivery.queue.js +485 -0
- package/dist_ts/mail/delivery/classes.delivery.system.d.ts +186 -0
- package/dist_ts/mail/delivery/classes.delivery.system.js +846 -0
- package/dist_ts/mail/delivery/classes.emailsendjob.d.ts +84 -0
- package/dist_ts/mail/delivery/classes.emailsendjob.js +362 -0
- package/dist_ts/mail/delivery/classes.emailsignjob.d.ts +18 -0
- package/dist_ts/mail/delivery/classes.emailsignjob.js +44 -0
- package/dist_ts/mail/delivery/classes.mta.config.d.ts +22 -0
- package/dist_ts/mail/delivery/classes.mta.config.js +51 -0
- package/dist_ts/mail/delivery/classes.ratelimiter.d.ts +98 -0
- package/dist_ts/mail/delivery/classes.ratelimiter.js +205 -0
- package/dist_ts/mail/delivery/classes.smtp.client.legacy.d.ts +275 -0
- package/dist_ts/mail/delivery/classes.smtp.client.legacy.js +973 -0
- package/dist_ts/mail/delivery/classes.unified.rate.limiter.d.ts +200 -0
- package/dist_ts/mail/delivery/classes.unified.rate.limiter.js +817 -0
- package/dist_ts/mail/delivery/index.d.ts +12 -0
- package/dist_ts/mail/delivery/index.js +18 -0
- package/dist_ts/mail/delivery/interfaces.d.ts +243 -0
- package/dist_ts/mail/delivery/interfaces.js +17 -0
- package/dist_ts/mail/delivery/smtpclient/auth-handler.d.ts +43 -0
- package/dist_ts/mail/delivery/smtpclient/auth-handler.js +188 -0
- package/dist_ts/mail/delivery/smtpclient/command-handler.d.ts +67 -0
- package/dist_ts/mail/delivery/smtpclient/command-handler.js +276 -0
- package/dist_ts/mail/delivery/smtpclient/connection-manager.d.ts +48 -0
- package/dist_ts/mail/delivery/smtpclient/connection-manager.js +238 -0
- package/dist_ts/mail/delivery/smtpclient/constants.d.ts +129 -0
- package/dist_ts/mail/delivery/smtpclient/constants.js +135 -0
- package/dist_ts/mail/delivery/smtpclient/create-client.d.ts +22 -0
- package/dist_ts/mail/delivery/smtpclient/create-client.js +86 -0
- package/dist_ts/mail/delivery/smtpclient/error-handler.d.ts +28 -0
- package/dist_ts/mail/delivery/smtpclient/error-handler.js +110 -0
- package/dist_ts/mail/delivery/smtpclient/index.d.ts +16 -0
- package/dist_ts/mail/delivery/smtpclient/index.js +21 -0
- package/dist_ts/mail/delivery/smtpclient/interfaces.d.ts +183 -0
- package/dist_ts/mail/delivery/smtpclient/interfaces.js +19 -0
- package/dist_ts/mail/delivery/smtpclient/smtp-client.d.ts +58 -0
- package/dist_ts/mail/delivery/smtpclient/smtp-client.js +279 -0
- package/dist_ts/mail/delivery/smtpclient/tls-handler.d.ts +33 -0
- package/dist_ts/mail/delivery/smtpclient/tls-handler.js +202 -0
- package/dist_ts/mail/delivery/smtpclient/utils/helpers.d.ts +77 -0
- package/dist_ts/mail/delivery/smtpclient/utils/helpers.js +196 -0
- package/dist_ts/mail/delivery/smtpclient/utils/logging.d.ts +46 -0
- package/dist_ts/mail/delivery/smtpclient/utils/logging.js +153 -0
- package/dist_ts/mail/delivery/smtpclient/utils/validation.d.ts +38 -0
- package/dist_ts/mail/delivery/smtpclient/utils/validation.js +139 -0
- package/dist_ts/mail/delivery/smtpserver/certificate-utils.d.ts +45 -0
- package/dist_ts/mail/delivery/smtpserver/certificate-utils.js +345 -0
- package/dist_ts/mail/delivery/smtpserver/command-handler.d.ts +156 -0
- package/dist_ts/mail/delivery/smtpserver/command-handler.js +1159 -0
- package/dist_ts/mail/delivery/smtpserver/connection-manager.d.ts +159 -0
- package/dist_ts/mail/delivery/smtpserver/connection-manager.js +894 -0
- package/dist_ts/mail/delivery/smtpserver/constants.d.ts +130 -0
- package/dist_ts/mail/delivery/smtpserver/constants.js +162 -0
- package/dist_ts/mail/delivery/smtpserver/create-server.d.ts +14 -0
- package/dist_ts/mail/delivery/smtpserver/create-server.js +28 -0
- package/dist_ts/mail/delivery/smtpserver/data-handler.d.ts +123 -0
- package/dist_ts/mail/delivery/smtpserver/data-handler.js +1148 -0
- package/dist_ts/mail/delivery/smtpserver/index.d.ts +20 -0
- package/dist_ts/mail/delivery/smtpserver/index.js +27 -0
- package/dist_ts/mail/delivery/smtpserver/interfaces.d.ts +530 -0
- package/dist_ts/mail/delivery/smtpserver/interfaces.js +10 -0
- package/dist_ts/mail/delivery/smtpserver/secure-server.d.ts +15 -0
- package/dist_ts/mail/delivery/smtpserver/secure-server.js +79 -0
- package/dist_ts/mail/delivery/smtpserver/security-handler.d.ts +86 -0
- package/dist_ts/mail/delivery/smtpserver/security-handler.js +234 -0
- package/dist_ts/mail/delivery/smtpserver/session-manager.d.ts +140 -0
- package/dist_ts/mail/delivery/smtpserver/session-manager.js +469 -0
- package/dist_ts/mail/delivery/smtpserver/smtp-server.d.ts +137 -0
- package/dist_ts/mail/delivery/smtpserver/smtp-server.js +666 -0
- package/dist_ts/mail/delivery/smtpserver/starttls-handler.d.ts +21 -0
- package/dist_ts/mail/delivery/smtpserver/starttls-handler.js +207 -0
- package/dist_ts/mail/delivery/smtpserver/tls-handler.d.ts +66 -0
- package/dist_ts/mail/delivery/smtpserver/tls-handler.js +261 -0
- package/dist_ts/mail/delivery/smtpserver/utils/adaptive-logging.d.ts +117 -0
- package/dist_ts/mail/delivery/smtpserver/utils/adaptive-logging.js +411 -0
- package/dist_ts/mail/delivery/smtpserver/utils/helpers.d.ts +78 -0
- package/dist_ts/mail/delivery/smtpserver/utils/helpers.js +208 -0
- package/dist_ts/mail/delivery/smtpserver/utils/logging.d.ts +106 -0
- package/dist_ts/mail/delivery/smtpserver/utils/logging.js +181 -0
- package/dist_ts/mail/delivery/smtpserver/utils/validation.d.ts +69 -0
- package/dist_ts/mail/delivery/smtpserver/utils/validation.js +360 -0
- package/dist_ts/mail/index.d.ts +8 -0
- package/dist_ts/mail/index.js +13 -0
- package/dist_ts/mail/routing/classes.dns.manager.d.ts +65 -0
- package/dist_ts/mail/routing/classes.dns.manager.js +413 -0
- package/dist_ts/mail/routing/classes.dnsmanager.d.ts +165 -0
- package/dist_ts/mail/routing/classes.dnsmanager.js +430 -0
- package/dist_ts/mail/routing/classes.domain.registry.d.ts +54 -0
- package/dist_ts/mail/routing/classes.domain.registry.js +118 -0
- package/dist_ts/mail/routing/classes.email.config.d.ts +64 -0
- package/dist_ts/mail/routing/classes.email.config.js +2 -0
- package/dist_ts/mail/routing/classes.email.router.d.ts +171 -0
- package/dist_ts/mail/routing/classes.email.router.js +491 -0
- package/dist_ts/mail/routing/classes.unified.email.server.d.ts +426 -0
- package/dist_ts/mail/routing/classes.unified.email.server.js +1454 -0
- package/dist_ts/mail/routing/index.d.ts +5 -0
- package/dist_ts/mail/routing/index.js +7 -0
- package/dist_ts/mail/routing/interfaces.d.ts +187 -0
- package/dist_ts/mail/routing/interfaces.js +2 -0
- package/dist_ts/mail/security/classes.dkimcreator.d.ts +68 -0
- package/dist_ts/mail/security/classes.dkimcreator.js +346 -0
- package/dist_ts/mail/security/classes.dkimverifier.d.ts +46 -0
- package/dist_ts/mail/security/classes.dkimverifier.js +317 -0
- package/dist_ts/mail/security/classes.dmarcverifier.d.ts +123 -0
- package/dist_ts/mail/security/classes.dmarcverifier.js +365 -0
- package/dist_ts/mail/security/classes.spfverifier.d.ts +103 -0
- package/dist_ts/mail/security/classes.spfverifier.js +492 -0
- package/dist_ts/mail/security/index.d.ts +4 -0
- package/dist_ts/mail/security/index.js +6 -0
- package/dist_ts/opsserver/classes.opsserver.d.ts +14 -0
- package/dist_ts/opsserver/classes.opsserver.js +37 -0
- package/dist_ts/opsserver/index.d.ts +1 -0
- package/dist_ts/opsserver/index.js +2 -0
- package/dist_ts/paths.d.ts +14 -0
- package/dist_ts/paths.js +39 -0
- package/dist_ts/plugins.d.ts +43 -0
- package/dist_ts/plugins.js +50 -0
- package/dist_ts/security/classes.contentscanner.d.ts +160 -0
- package/dist_ts/security/classes.contentscanner.js +634 -0
- package/dist_ts/security/classes.ipreputationchecker.d.ts +150 -0
- package/dist_ts/security/classes.ipreputationchecker.js +508 -0
- package/dist_ts/security/classes.securitylogger.d.ts +140 -0
- package/dist_ts/security/classes.securitylogger.js +232 -0
- package/dist_ts/security/index.d.ts +3 -0
- package/dist_ts/security/index.js +4 -0
- package/dist_ts/sms/classes.smsservice.d.ts +15 -0
- package/dist_ts/sms/classes.smsservice.js +72 -0
- package/dist_ts/sms/config/sms.config.d.ts +93 -0
- package/dist_ts/sms/config/sms.config.js +2 -0
- package/dist_ts/sms/config/sms.schema.d.ts +5 -0
- package/dist_ts/sms/config/sms.schema.js +121 -0
- package/dist_ts/sms/index.d.ts +1 -0
- package/dist_ts/sms/index.js +2 -0
- package/dist_ts/storage/classes.storagemanager.d.ts +82 -0
- package/dist_ts/storage/classes.storagemanager.js +341 -0
- package/dist_ts/storage/index.d.ts +1 -0
- package/dist_ts/storage/index.js +3 -0
- package/dist_ts/ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/ts/00_commitinfo_data.js +9 -0
- package/dist_ts/ts/classes.dcrouter.d.ts +238 -0
- package/dist_ts/ts/classes.dcrouter.js +1008 -0
- package/dist_ts/ts/config/index.d.ts +1 -0
- package/dist_ts/ts/config/index.js +3 -0
- package/dist_ts/ts/config/validator.d.ts +104 -0
- package/dist_ts/ts/config/validator.js +152 -0
- package/dist_ts/ts/deliverability/classes.ipwarmupmanager.d.ts +253 -0
- package/dist_ts/ts/deliverability/classes.ipwarmupmanager.js +639 -0
- package/dist_ts/ts/deliverability/classes.senderreputationmonitor.d.ts +300 -0
- package/dist_ts/ts/deliverability/classes.senderreputationmonitor.js +961 -0
- package/dist_ts/ts/deliverability/index.d.ts +2 -0
- package/dist_ts/ts/deliverability/index.js +3 -0
- package/dist_ts/ts/errors/base.errors.d.ts +224 -0
- package/dist_ts/ts/errors/base.errors.js +310 -0
- package/dist_ts/ts/errors/email.errors.d.ts +175 -0
- package/dist_ts/ts/errors/email.errors.js +265 -0
- package/dist_ts/ts/errors/error-handler.d.ts +98 -0
- package/dist_ts/ts/errors/error-handler.js +282 -0
- package/dist_ts/ts/errors/error.codes.d.ts +115 -0
- package/dist_ts/ts/errors/error.codes.js +136 -0
- package/dist_ts/ts/errors/index.d.ts +56 -0
- package/dist_ts/ts/errors/index.js +138 -0
- package/dist_ts/ts/errors/mta.errors.d.ts +259 -0
- package/dist_ts/ts/errors/mta.errors.js +472 -0
- package/dist_ts/ts/errors/reputation.errors.d.ts +183 -0
- package/dist_ts/ts/errors/reputation.errors.js +292 -0
- package/dist_ts/ts/index.d.ts +4 -0
- package/dist_ts/ts/index.js +6 -0
- package/dist_ts/ts/logger.d.ts +17 -0
- package/dist_ts/ts/logger.js +77 -0
- package/dist_ts/ts/mail/core/classes.bouncemanager.d.ts +200 -0
- package/dist_ts/ts/mail/core/classes.bouncemanager.js +778 -0
- package/dist_ts/ts/mail/core/classes.email.d.ts +291 -0
- package/dist_ts/ts/mail/core/classes.email.js +780 -0
- package/dist_ts/ts/mail/core/classes.emailvalidator.d.ts +61 -0
- package/dist_ts/ts/mail/core/classes.emailvalidator.js +182 -0
- package/dist_ts/ts/mail/core/classes.templatemanager.d.ts +95 -0
- package/dist_ts/ts/mail/core/classes.templatemanager.js +239 -0
- package/dist_ts/ts/mail/core/index.d.ts +4 -0
- package/dist_ts/ts/mail/core/index.js +6 -0
- package/dist_ts/ts/mail/delivery/classes.delivery.queue.d.ts +163 -0
- package/dist_ts/ts/mail/delivery/classes.delivery.queue.js +485 -0
- package/dist_ts/ts/mail/delivery/classes.delivery.system.d.ts +186 -0
- package/dist_ts/ts/mail/delivery/classes.delivery.system.js +846 -0
- package/dist_ts/ts/mail/delivery/classes.emailsendjob.d.ts +84 -0
- package/dist_ts/ts/mail/delivery/classes.emailsendjob.js +362 -0
- package/dist_ts/ts/mail/delivery/classes.emailsignjob.d.ts +18 -0
- package/dist_ts/ts/mail/delivery/classes.emailsignjob.js +44 -0
- package/dist_ts/ts/mail/delivery/classes.mta.config.d.ts +22 -0
- package/dist_ts/ts/mail/delivery/classes.mta.config.js +51 -0
- package/dist_ts/ts/mail/delivery/classes.ratelimiter.d.ts +98 -0
- package/dist_ts/ts/mail/delivery/classes.ratelimiter.js +205 -0
- package/dist_ts/ts/mail/delivery/classes.smtp.client.legacy.d.ts +275 -0
- package/dist_ts/ts/mail/delivery/classes.smtp.client.legacy.js +973 -0
- package/dist_ts/ts/mail/delivery/classes.unified.rate.limiter.d.ts +200 -0
- package/dist_ts/ts/mail/delivery/classes.unified.rate.limiter.js +817 -0
- package/dist_ts/ts/mail/delivery/index.d.ts +12 -0
- package/dist_ts/ts/mail/delivery/index.js +18 -0
- package/dist_ts/ts/mail/delivery/interfaces.d.ts +243 -0
- package/dist_ts/ts/mail/delivery/interfaces.js +17 -0
- package/dist_ts/ts/mail/delivery/smtpclient/auth-handler.d.ts +43 -0
- package/dist_ts/ts/mail/delivery/smtpclient/auth-handler.js +188 -0
- package/dist_ts/ts/mail/delivery/smtpclient/command-handler.d.ts +67 -0
- package/dist_ts/ts/mail/delivery/smtpclient/command-handler.js +276 -0
- package/dist_ts/ts/mail/delivery/smtpclient/connection-manager.d.ts +48 -0
- package/dist_ts/ts/mail/delivery/smtpclient/connection-manager.js +238 -0
- package/dist_ts/ts/mail/delivery/smtpclient/constants.d.ts +129 -0
- package/dist_ts/ts/mail/delivery/smtpclient/constants.js +135 -0
- package/dist_ts/ts/mail/delivery/smtpclient/create-client.d.ts +22 -0
- package/dist_ts/ts/mail/delivery/smtpclient/create-client.js +86 -0
- package/dist_ts/ts/mail/delivery/smtpclient/error-handler.d.ts +28 -0
- package/dist_ts/ts/mail/delivery/smtpclient/error-handler.js +110 -0
- package/dist_ts/ts/mail/delivery/smtpclient/index.d.ts +16 -0
- package/dist_ts/ts/mail/delivery/smtpclient/index.js +21 -0
- package/dist_ts/ts/mail/delivery/smtpclient/interfaces.d.ts +183 -0
- package/dist_ts/ts/mail/delivery/smtpclient/interfaces.js +19 -0
- package/dist_ts/ts/mail/delivery/smtpclient/smtp-client.d.ts +58 -0
- package/dist_ts/ts/mail/delivery/smtpclient/smtp-client.js +279 -0
- package/dist_ts/ts/mail/delivery/smtpclient/tls-handler.d.ts +33 -0
- package/dist_ts/ts/mail/delivery/smtpclient/tls-handler.js +202 -0
- package/dist_ts/ts/mail/delivery/smtpclient/utils/helpers.d.ts +77 -0
- package/dist_ts/ts/mail/delivery/smtpclient/utils/helpers.js +196 -0
- package/dist_ts/ts/mail/delivery/smtpclient/utils/logging.d.ts +46 -0
- package/dist_ts/ts/mail/delivery/smtpclient/utils/logging.js +153 -0
- package/dist_ts/ts/mail/delivery/smtpclient/utils/validation.d.ts +38 -0
- package/dist_ts/ts/mail/delivery/smtpclient/utils/validation.js +139 -0
- package/dist_ts/ts/mail/delivery/smtpserver/certificate-utils.d.ts +45 -0
- package/dist_ts/ts/mail/delivery/smtpserver/certificate-utils.js +345 -0
- package/dist_ts/ts/mail/delivery/smtpserver/command-handler.d.ts +156 -0
- package/dist_ts/ts/mail/delivery/smtpserver/command-handler.js +1159 -0
- package/dist_ts/ts/mail/delivery/smtpserver/connection-manager.d.ts +159 -0
- package/dist_ts/ts/mail/delivery/smtpserver/connection-manager.js +894 -0
- package/dist_ts/ts/mail/delivery/smtpserver/constants.d.ts +130 -0
- package/dist_ts/ts/mail/delivery/smtpserver/constants.js +162 -0
- package/dist_ts/ts/mail/delivery/smtpserver/create-server.d.ts +14 -0
- package/dist_ts/ts/mail/delivery/smtpserver/create-server.js +28 -0
- package/dist_ts/ts/mail/delivery/smtpserver/data-handler.d.ts +123 -0
- package/dist_ts/ts/mail/delivery/smtpserver/data-handler.js +1148 -0
- package/dist_ts/ts/mail/delivery/smtpserver/index.d.ts +20 -0
- package/dist_ts/ts/mail/delivery/smtpserver/index.js +27 -0
- package/dist_ts/ts/mail/delivery/smtpserver/interfaces.d.ts +530 -0
- package/dist_ts/ts/mail/delivery/smtpserver/interfaces.js +10 -0
- package/dist_ts/ts/mail/delivery/smtpserver/secure-server.d.ts +15 -0
- package/dist_ts/ts/mail/delivery/smtpserver/secure-server.js +79 -0
- package/dist_ts/ts/mail/delivery/smtpserver/security-handler.d.ts +86 -0
- package/dist_ts/ts/mail/delivery/smtpserver/security-handler.js +234 -0
- package/dist_ts/ts/mail/delivery/smtpserver/session-manager.d.ts +140 -0
- package/dist_ts/ts/mail/delivery/smtpserver/session-manager.js +469 -0
- package/dist_ts/ts/mail/delivery/smtpserver/smtp-server.d.ts +137 -0
- package/dist_ts/ts/mail/delivery/smtpserver/smtp-server.js +666 -0
- package/dist_ts/ts/mail/delivery/smtpserver/starttls-handler.d.ts +21 -0
- package/dist_ts/ts/mail/delivery/smtpserver/starttls-handler.js +207 -0
- package/dist_ts/ts/mail/delivery/smtpserver/tls-handler.d.ts +66 -0
- package/dist_ts/ts/mail/delivery/smtpserver/tls-handler.js +261 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/adaptive-logging.d.ts +117 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/adaptive-logging.js +411 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/helpers.d.ts +78 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/helpers.js +208 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/logging.d.ts +106 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/logging.js +181 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/validation.d.ts +69 -0
- package/dist_ts/ts/mail/delivery/smtpserver/utils/validation.js +360 -0
- package/dist_ts/ts/mail/index.d.ts +8 -0
- package/dist_ts/ts/mail/index.js +13 -0
- package/dist_ts/ts/mail/routing/classes.dns.manager.d.ts +65 -0
- package/dist_ts/ts/mail/routing/classes.dns.manager.js +413 -0
- package/dist_ts/ts/mail/routing/classes.dnsmanager.d.ts +165 -0
- package/dist_ts/ts/mail/routing/classes.dnsmanager.js +430 -0
- package/dist_ts/ts/mail/routing/classes.domain.registry.d.ts +54 -0
- package/dist_ts/ts/mail/routing/classes.domain.registry.js +118 -0
- package/dist_ts/ts/mail/routing/classes.email.config.d.ts +64 -0
- package/dist_ts/ts/mail/routing/classes.email.config.js +2 -0
- package/dist_ts/ts/mail/routing/classes.email.router.d.ts +171 -0
- package/dist_ts/ts/mail/routing/classes.email.router.js +491 -0
- package/dist_ts/ts/mail/routing/classes.unified.email.server.d.ts +426 -0
- package/dist_ts/ts/mail/routing/classes.unified.email.server.js +1454 -0
- package/dist_ts/ts/mail/routing/index.d.ts +5 -0
- package/dist_ts/ts/mail/routing/index.js +7 -0
- package/dist_ts/ts/mail/routing/interfaces.d.ts +187 -0
- package/dist_ts/ts/mail/routing/interfaces.js +2 -0
- package/dist_ts/ts/mail/security/classes.dkimcreator.d.ts +68 -0
- package/dist_ts/ts/mail/security/classes.dkimcreator.js +346 -0
- package/dist_ts/ts/mail/security/classes.dkimverifier.d.ts +46 -0
- package/dist_ts/ts/mail/security/classes.dkimverifier.js +317 -0
- package/dist_ts/ts/mail/security/classes.dmarcverifier.d.ts +123 -0
- package/dist_ts/ts/mail/security/classes.dmarcverifier.js +365 -0
- package/dist_ts/ts/mail/security/classes.spfverifier.d.ts +103 -0
- package/dist_ts/ts/mail/security/classes.spfverifier.js +492 -0
- package/dist_ts/ts/mail/security/index.d.ts +4 -0
- package/dist_ts/ts/mail/security/index.js +6 -0
- package/dist_ts/ts/opsserver/classes.opsserver.d.ts +20 -0
- package/dist_ts/ts/opsserver/classes.opsserver.js +44 -0
- package/dist_ts/ts/opsserver/handlers/admin.handler.d.ts +31 -0
- package/dist_ts/ts/opsserver/handlers/admin.handler.js +177 -0
- package/dist_ts/ts/opsserver/handlers/config.handler.d.ts +10 -0
- package/dist_ts/ts/opsserver/handlers/config.handler.js +100 -0
- package/dist_ts/ts/opsserver/handlers/index.d.ts +5 -0
- package/dist_ts/ts/opsserver/handlers/index.js +6 -0
- package/dist_ts/ts/opsserver/handlers/logs.handler.d.ts +10 -0
- package/dist_ts/ts/opsserver/handlers/logs.handler.js +121 -0
- package/dist_ts/ts/opsserver/handlers/security.handler.d.ts +11 -0
- package/dist_ts/ts/opsserver/handlers/security.handler.js +118 -0
- package/dist_ts/ts/opsserver/handlers/stats.handler.d.ts +13 -0
- package/dist_ts/ts/opsserver/handlers/stats.handler.js +233 -0
- package/dist_ts/ts/opsserver/helpers/guards.d.ts +25 -0
- package/dist_ts/ts/opsserver/helpers/guards.js +41 -0
- package/dist_ts/ts/opsserver/index.d.ts +1 -0
- package/dist_ts/ts/opsserver/index.js +2 -0
- package/dist_ts/ts/paths.d.ts +14 -0
- package/dist_ts/ts/paths.js +39 -0
- package/dist_ts/ts/plugins.d.ts +46 -0
- package/dist_ts/ts/plugins.js +53 -0
- package/dist_ts/ts/security/classes.contentscanner.d.ts +160 -0
- package/dist_ts/ts/security/classes.contentscanner.js +634 -0
- package/dist_ts/ts/security/classes.ipreputationchecker.d.ts +150 -0
- package/dist_ts/ts/security/classes.ipreputationchecker.js +508 -0
- package/dist_ts/ts/security/classes.securitylogger.d.ts +140 -0
- package/dist_ts/ts/security/classes.securitylogger.js +232 -0
- package/dist_ts/ts/security/index.d.ts +3 -0
- package/dist_ts/ts/security/index.js +4 -0
- package/dist_ts/ts/sms/classes.smsservice.d.ts +15 -0
- package/dist_ts/ts/sms/classes.smsservice.js +72 -0
- package/dist_ts/ts/sms/config/sms.config.d.ts +93 -0
- package/dist_ts/ts/sms/config/sms.config.js +2 -0
- package/dist_ts/ts/sms/config/sms.schema.d.ts +5 -0
- package/dist_ts/ts/sms/config/sms.schema.js +121 -0
- package/dist_ts/ts/sms/index.d.ts +1 -0
- package/dist_ts/ts/sms/index.js +2 -0
- package/dist_ts/ts/storage/classes.storagemanager.d.ts +82 -0
- package/dist_ts/ts/storage/classes.storagemanager.js +341 -0
- package/dist_ts/ts/storage/index.d.ts +1 -0
- package/dist_ts/ts/storage/index.js +3 -0
- package/dist_ts/ts_interfaces/data/auth.d.ts +8 -0
- package/dist_ts/ts_interfaces/data/auth.js +2 -0
- package/dist_ts/ts_interfaces/data/index.d.ts +2 -0
- package/dist_ts/ts_interfaces/data/index.js +3 -0
- package/dist_ts/ts_interfaces/data/stats.d.ts +93 -0
- package/dist_ts/ts_interfaces/data/stats.js +2 -0
- package/dist_ts/ts_interfaces/index.d.ts +5 -0
- package/dist_ts/ts_interfaces/index.js +8 -0
- package/dist_ts/ts_interfaces/plugins.d.ts +2 -0
- package/dist_ts/ts_interfaces/plugins.js +4 -0
- package/dist_ts/ts_interfaces/requests/admin.d.ts +31 -0
- package/dist_ts/ts_interfaces/requests/admin.js +3 -0
- package/dist_ts/ts_interfaces/requests/config.d.ts +25 -0
- package/dist_ts/ts_interfaces/requests/config.js +3 -0
- package/dist_ts/ts_interfaces/requests/index.d.ts +4 -0
- package/dist_ts/ts_interfaces/requests/index.js +5 -0
- package/dist_ts/ts_interfaces/requests/logs.d.ts +34 -0
- package/dist_ts/ts_interfaces/requests/logs.js +4 -0
- package/dist_ts/ts_interfaces/requests/stats.d.ts +131 -0
- package/dist_ts/ts_interfaces/requests/stats.js +4 -0
- package/html/index.html +121 -0
- package/npmextra.json +45 -0
- package/package.json +83 -0
- package/readme.hints.md +906 -0
- package/readme.md +1253 -0
- package/readme.opsserver.md +351 -0
- package/test/helpers/server.loader.ts +347 -0
- package/test/helpers/smtp.client.ts +209 -0
- package/test/helpers/utils.ts +311 -0
- package/test/readme.md +443 -0
- package/test/suite/smtpclient_commands/test.ccmd-01.ehlo-helo-sending.ts +168 -0
- package/test/suite/smtpclient_commands/test.ccmd-02.mail-from-parameters.ts +277 -0
- package/test/suite/smtpclient_commands/test.ccmd-03.rcpt-to-multiple.ts +283 -0
- package/test/suite/smtpclient_commands/test.ccmd-04.data-transmission.ts +274 -0
- package/test/suite/smtpclient_commands/test.ccmd-05.auth-mechanisms.ts +306 -0
- package/test/suite/smtpclient_commands/test.ccmd-06.command-pipelining.ts +233 -0
- package/test/suite/smtpclient_commands/test.ccmd-07.response-parsing.ts +243 -0
- package/test/suite/smtpclient_commands/test.ccmd-08.rset-command.ts +333 -0
- package/test/suite/smtpclient_commands/test.ccmd-09.noop-command.ts +339 -0
- package/test/suite/smtpclient_commands/test.ccmd-10.vrfy-expn.ts +457 -0
- package/test/suite/smtpclient_commands/test.ccmd-11.help-command.ts +409 -0
- package/test/suite/smtpclient_connection/test.ccm-01.basic-tcp-connection.ts +150 -0
- package/test/suite/smtpclient_connection/test.ccm-02.tls-connection.ts +140 -0
- package/test/suite/smtpclient_connection/test.ccm-03.starttls-upgrade.ts +208 -0
- package/test/suite/smtpclient_connection/test.ccm-04.connection-pooling.ts +250 -0
- package/test/suite/smtpclient_connection/test.ccm-05.connection-reuse.ts +288 -0
- package/test/suite/smtpclient_connection/test.ccm-06.connection-timeout.ts +267 -0
- package/test/suite/smtpclient_connection/test.ccm-07.automatic-reconnection.ts +324 -0
- package/test/suite/smtpclient_connection/test.ccm-08.dns-resolution.ts +139 -0
- package/test/suite/smtpclient_connection/test.ccm-09.ipv6-dual-stack.ts +167 -0
- package/test/suite/smtpclient_connection/test.ccm-10.proxy-support.ts +305 -0
- package/test/suite/smtpclient_connection/test.ccm-11.keepalive.ts +299 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-01.unusual-server-responses.ts +529 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-02.malformed-commands.ts +438 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-03.protocol-violations.ts +446 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-04.resource-constraints.ts +530 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-05.encoding-issues.ts +145 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-06.large-headers.ts +180 -0
- package/test/suite/smtpclient_edge-cases/test.cedge-07.concurrent-operations.ts +204 -0
- package/test/suite/smtpclient_email-composition/test.cep-01.basic-headers.ts +245 -0
- package/test/suite/smtpclient_email-composition/test.cep-02.mime-multipart.ts +321 -0
- package/test/suite/smtpclient_email-composition/test.cep-03.attachment-encoding.ts +334 -0
- package/test/suite/smtpclient_email-composition/test.cep-04.bcc-handling.ts +187 -0
- package/test/suite/smtpclient_email-composition/test.cep-05.reply-to-return-path.ts +277 -0
- package/test/suite/smtpclient_email-composition/test.cep-06.utf8-international.ts +235 -0
- package/test/suite/smtpclient_email-composition/test.cep-07.html-inline-images.ts +489 -0
- package/test/suite/smtpclient_email-composition/test.cep-08.custom-headers.ts +293 -0
- package/test/suite/smtpclient_email-composition/test.cep-09.priority-importance.ts +314 -0
- package/test/suite/smtpclient_email-composition/test.cep-10.receipts-dsn.ts +411 -0
- package/test/suite/smtpclient_error-handling/test.cerr-01.4xx-errors.ts +232 -0
- package/test/suite/smtpclient_error-handling/test.cerr-02.5xx-errors.ts +309 -0
- package/test/suite/smtpclient_error-handling/test.cerr-03.network-failures.ts +299 -0
- package/test/suite/smtpclient_error-handling/test.cerr-04.greylisting-handling.ts +255 -0
- package/test/suite/smtpclient_error-handling/test.cerr-05.quota-exceeded.ts +273 -0
- package/test/suite/smtpclient_error-handling/test.cerr-06.invalid-recipients.ts +320 -0
- package/test/suite/smtpclient_error-handling/test.cerr-07.message-size-limits.ts +320 -0
- package/test/suite/smtpclient_error-handling/test.cerr-08.rate-limiting.ts +261 -0
- package/test/suite/smtpclient_error-handling/test.cerr-09.connection-pool-errors.ts +299 -0
- package/test/suite/smtpclient_error-handling/test.cerr-10.partial-failure.ts +373 -0
- package/test/suite/smtpclient_performance/test.cperf-01.bulk-sending.ts +332 -0
- package/test/suite/smtpclient_performance/test.cperf-02.message-throughput.ts +304 -0
- package/test/suite/smtpclient_performance/test.cperf-03.memory-usage.ts +332 -0
- package/test/suite/smtpclient_performance/test.cperf-04.cpu-utilization.ts +373 -0
- package/test/suite/smtpclient_performance/test.cperf-05.network-efficiency.ts +181 -0
- package/test/suite/smtpclient_performance/test.cperf-06.caching-strategies.ts +190 -0
- package/test/suite/smtpclient_performance/test.cperf-07.queue-management.ts +171 -0
- package/test/suite/smtpclient_performance/test.cperf-08.dns-caching.ts +50 -0
- package/test/suite/smtpclient_reliability/test.crel-01.reconnection-logic.ts +305 -0
- package/test/suite/smtpclient_reliability/test.crel-02.network-interruption.ts +207 -0
- package/test/suite/smtpclient_reliability/test.crel-03.queue-persistence.ts +469 -0
- package/test/suite/smtpclient_reliability/test.crel-04.crash-recovery.ts +520 -0
- package/test/suite/smtpclient_reliability/test.crel-05.memory-leaks.ts +503 -0
- package/test/suite/smtpclient_reliability/test.crel-06.concurrency-safety.ts +558 -0
- package/test/suite/smtpclient_reliability/test.crel-07.resource-cleanup.ts +52 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-01.rfc5321-client.ts +283 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-02.esmtp-compliance.ts +77 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-03.command-syntax.ts +67 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-04.response-codes.ts +54 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-05.state-machine.ts +703 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-06.protocol-negotiation.ts +688 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-07.interoperability.ts +728 -0
- package/test/suite/smtpclient_rfc-compliance/test.crfc-08.smtp-extensions.ts +656 -0
- package/test/suite/smtpclient_security/test.csec-01.tls-verification.ts +88 -0
- package/test/suite/smtpclient_security/test.csec-02.oauth2-authentication.ts +132 -0
- package/test/suite/smtpclient_security/test.csec-03.dkim-signing.ts +138 -0
- package/test/suite/smtpclient_security/test.csec-04.spf-compliance.ts +163 -0
- package/test/suite/smtpclient_security/test.csec-05.dmarc-policy.ts +200 -0
- package/test/suite/smtpclient_security/test.csec-06.certificate-validation.ts +145 -0
- package/test/suite/smtpclient_security/test.csec-07.cipher-suites.ts +153 -0
- package/test/suite/smtpclient_security/test.csec-08.authentication-fallback.ts +154 -0
- package/test/suite/smtpclient_security/test.csec-09.relay-restrictions.ts +166 -0
- package/test/suite/smtpclient_security/test.csec-10.anti-spam-measures.ts +196 -0
- package/test/suite/smtpserver_commands/test.cmd-01.ehlo-command.ts +193 -0
- package/test/suite/smtpserver_commands/test.cmd-02.mail-from.ts +330 -0
- package/test/suite/smtpserver_commands/test.cmd-03.rcpt-to.ts +296 -0
- package/test/suite/smtpserver_commands/test.cmd-04.data-command.ts +395 -0
- package/test/suite/smtpserver_commands/test.cmd-05.noop-command.ts +320 -0
- package/test/suite/smtpserver_commands/test.cmd-06.rset-command.ts +399 -0
- package/test/suite/smtpserver_commands/test.cmd-07.vrfy-command.ts +391 -0
- package/test/suite/smtpserver_commands/test.cmd-08.expn-command.ts +450 -0
- package/test/suite/smtpserver_commands/test.cmd-09.size-extension.ts +465 -0
- package/test/suite/smtpserver_commands/test.cmd-10.help-command.ts +454 -0
- package/test/suite/smtpserver_commands/test.cmd-11.command-pipelining.ts +334 -0
- package/test/suite/smtpserver_commands/test.cmd-12.helo-command.ts +420 -0
- package/test/suite/smtpserver_commands/test.cmd-13.quit-command.ts +384 -0
- package/test/suite/smtpserver_connection/test.cm-01.tls-connection.ts +61 -0
- package/test/suite/smtpserver_connection/test.cm-02.multiple-connections.ts +112 -0
- package/test/suite/smtpserver_connection/test.cm-03.connection-timeout.ts +134 -0
- package/test/suite/smtpserver_connection/test.cm-04.connection-limits.ts +374 -0
- package/test/suite/smtpserver_connection/test.cm-05.connection-rejection.ts +296 -0
- package/test/suite/smtpserver_connection/test.cm-06.starttls-upgrade.ts +468 -0
- package/test/suite/smtpserver_connection/test.cm-07.abrupt-disconnection.ts +321 -0
- package/test/suite/smtpserver_connection/test.cm-08.tls-versions.ts +361 -0
- package/test/suite/smtpserver_connection/test.cm-09.tls-ciphers.ts +556 -0
- package/test/suite/smtpserver_connection/test.cm-10.plain-connection.ts +293 -0
- package/test/suite/smtpserver_connection/test.cm-11.keepalive.ts +382 -0
- package/test/suite/smtpserver_edge-cases/test.edge-01.very-large-email.ts +239 -0
- package/test/suite/smtpserver_edge-cases/test.edge-02.very-small-email.ts +389 -0
- package/test/suite/smtpserver_edge-cases/test.edge-03.invalid-character-handling.ts +479 -0
- package/test/suite/smtpserver_edge-cases/test.edge-04.empty-commands.ts +430 -0
- package/test/suite/smtpserver_edge-cases/test.edge-05.extremely-long-lines.ts +425 -0
- package/test/suite/smtpserver_edge-cases/test.edge-06.extremely-long-headers.ts +404 -0
- package/test/suite/smtpserver_edge-cases/test.edge-07.unusual-mime-types.ts +333 -0
- package/test/suite/smtpserver_edge-cases/test.edge-08.nested-mime-structures.ts +379 -0
- package/test/suite/smtpserver_email-processing/test.ep-01.basic-email-sending.ts +338 -0
- package/test/suite/smtpserver_email-processing/test.ep-02.invalid-email-addresses.ts +315 -0
- package/test/suite/smtpserver_email-processing/test.ep-03.multiple-recipients.ts +493 -0
- package/test/suite/smtpserver_email-processing/test.ep-04.large-email.ts +528 -0
- package/test/suite/smtpserver_email-processing/test.ep-05.mime-handling.ts +515 -0
- package/test/suite/smtpserver_email-processing/test.ep-06.attachment-handling.ts +629 -0
- package/test/suite/smtpserver_email-processing/test.ep-07.special-character-handling.ts +462 -0
- package/test/suite/smtpserver_email-processing/test.ep-08.email-routing.ts +527 -0
- package/test/suite/smtpserver_email-processing/test.ep-09.delivery-status-notifications.ts +486 -0
- package/test/suite/smtpserver_error-handling/test.err-01.syntax-errors.ts +475 -0
- package/test/suite/smtpserver_error-handling/test.err-02.invalid-sequence.ts +450 -0
- package/test/suite/smtpserver_error-handling/test.err-03.temporary-failures.ts +453 -0
- package/test/suite/smtpserver_error-handling/test.err-04.permanent-failures.ts +325 -0
- package/test/suite/smtpserver_error-handling/test.err-05.resource-exhaustion.ts +302 -0
- package/test/suite/smtpserver_error-handling/test.err-06.malformed-mime.ts +374 -0
- package/test/suite/smtpserver_error-handling/test.err-07.exception-handling.ts +333 -0
- package/test/suite/smtpserver_error-handling/test.err-08.error-logging.ts +324 -0
- package/test/suite/smtpserver_performance/test.perf-01.throughput.ts +183 -0
- package/test/suite/smtpserver_performance/test.perf-02.concurrency.ts +388 -0
- package/test/suite/smtpserver_performance/test.perf-03.cpu-utilization.ts +245 -0
- package/test/suite/smtpserver_performance/test.perf-04.memory-usage.ts +238 -0
- package/test/suite/smtpserver_performance/test.perf-05.connection-processing-time.ts +363 -0
- package/test/suite/smtpserver_performance/test.perf-06.message-processing-time.ts +252 -0
- package/test/suite/smtpserver_performance/test.perf-07.resource-cleanup.ts +317 -0
- package/test/suite/smtpserver_reliability/test.rel-01.long-running-operation.ts +344 -0
- package/test/suite/smtpserver_reliability/test.rel-02.restart-recovery.ts +328 -0
- package/test/suite/smtpserver_reliability/test.rel-03.resource-leak-detection.ts +394 -0
- package/test/suite/smtpserver_reliability/test.rel-04.error-recovery.ts +401 -0
- package/test/suite/smtpserver_reliability/test.rel-05.dns-resolution-failure.ts +335 -0
- package/test/suite/smtpserver_reliability/test.rel-06.network-interruption.ts +410 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-01.rfc5321-compliance.ts +382 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-02.rfc5322-compliance.ts +428 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-03.rfc7208-spf-compliance.ts +330 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-04.rfc6376-dkim-compliance.ts +450 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-05.rfc7489-dmarc-compliance.ts +408 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-06.rfc8314-tls-compliance.ts +366 -0
- package/test/suite/smtpserver_rfc-compliance/test.rfc-07.rfc3461-dsn-compliance.ts +399 -0
- package/test/suite/smtpserver_security/test.sec-01.authentication.ts +218 -0
- package/test/suite/smtpserver_security/test.sec-02.authorization.ts +286 -0
- package/test/suite/smtpserver_security/test.sec-03.dkim-processing.ts +414 -0
- package/test/suite/smtpserver_security/test.sec-04.spf-checking.ts +280 -0
- package/test/suite/smtpserver_security/test.sec-05.dmarc-policy.ts +374 -0
- package/test/suite/smtpserver_security/test.sec-06.ip-reputation.ts +303 -0
- package/test/suite/smtpserver_security/test.sec-07.content-scanning.ts +409 -0
- package/test/suite/smtpserver_security/test.sec-08.rate-limiting.ts +324 -0
- package/test/suite/smtpserver_security/test.sec-09.tls-certificate-validation.ts +312 -0
- package/test/suite/smtpserver_security/test.sec-10.header-injection-prevention.ts +332 -0
- package/test/suite/smtpserver_security/test.sec-11.bounce-management.ts +363 -0
- package/test/test.base.ts +65 -0
- package/test/test.bouncemanager.ts +196 -0
- package/test/test.config.md +175 -0
- package/test/test.contentscanner.ts +265 -0
- package/test/test.dcrouter.email.ts +201 -0
- package/test/test.deliverability.ts +55 -0
- package/test/test.dns-manager-creation.ts +141 -0
- package/test/test.dns-mode-switching.ts +257 -0
- package/test/test.dns-server-config.ts +140 -0
- package/test/test.dns-socket-handler.ts +169 -0
- package/test/test.dns-validation.ts +283 -0
- package/test/test.email-socket-handler.ts +228 -0
- package/test/test.email.integration.ts +377 -0
- package/test/test.email.router.ts +283 -0
- package/test/test.emailauth.ts +195 -0
- package/test/test.errors.ts +408 -0
- package/test/test.integration.storage.ts +313 -0
- package/test/test.integration.ts +75 -0
- package/test/test.ipreputationchecker.ts +179 -0
- package/test/test.ipwarmupmanager.ts +323 -0
- package/test/test.jwt-auth.ts +130 -0
- package/test/test.minimal.ts +66 -0
- package/test/test.opsserver-api.ts +83 -0
- package/test/test.protected-endpoint.ts +115 -0
- package/test/test.rate-limiting-integration.ts +236 -0
- package/test/test.ratelimiter.ts +141 -0
- package/test/test.reputationmonitor.ts +262 -0
- package/test/test.smartmail.ts +248 -0
- package/test/test.smtp.client.compatibility.ts +154 -0
- package/test/test.smtp.client.ts +191 -0
- package/test/test.smtp.server.ts +180 -0
- package/test/test.socket-handler-integration.ts +240 -0
- package/test/test.socket-handler-unit.ts +198 -0
- package/test/test.storagemanager.ts +289 -0
- package/ts/00_commitinfo_data.ts +8 -0
- package/ts/classes.dcrouter.ts +1310 -0
- package/ts/config/index.ts +2 -0
- package/ts/config/validator.ts +266 -0
- package/ts/deliverability/classes.ipwarmupmanager.ts +896 -0
- package/ts/deliverability/classes.senderreputationmonitor.ts +1244 -0
- package/ts/deliverability/index.ts +13 -0
- package/ts/errors/base.errors.ts +525 -0
- package/ts/errors/email.errors.ts +383 -0
- package/ts/errors/error-handler.ts +412 -0
- package/ts/errors/error.codes.ts +165 -0
- package/ts/errors/index.ts +195 -0
- package/ts/errors/mta.errors.ts +681 -0
- package/ts/errors/reputation.errors.ts +422 -0
- package/ts/index.ts +7 -0
- package/ts/logger.ts +91 -0
- package/ts/mail/core/classes.bouncemanager.ts +965 -0
- package/ts/mail/core/classes.email.ts +941 -0
- package/ts/mail/core/classes.emailvalidator.ts +239 -0
- package/ts/mail/core/classes.templatemanager.ts +320 -0
- package/ts/mail/core/index.ts +5 -0
- package/ts/mail/delivery/classes.delivery.queue.ts +645 -0
- package/ts/mail/delivery/classes.delivery.system.ts +1089 -0
- package/ts/mail/delivery/classes.emailsendjob.ts +447 -0
- package/ts/mail/delivery/classes.emailsendjob.ts.backup +691 -0
- package/ts/mail/delivery/classes.emailsignjob.ts +67 -0
- package/ts/mail/delivery/classes.mta.config.ts +73 -0
- package/ts/mail/delivery/classes.ratelimiter.ts +281 -0
- package/ts/mail/delivery/classes.smtp.client.legacy.ts +1422 -0
- package/ts/mail/delivery/classes.unified.rate.limiter.ts +1053 -0
- package/ts/mail/delivery/index.ts +24 -0
- package/ts/mail/delivery/interfaces.ts +291 -0
- package/ts/mail/delivery/smtpclient/auth-handler.ts +232 -0
- package/ts/mail/delivery/smtpclient/command-handler.ts +343 -0
- package/ts/mail/delivery/smtpclient/connection-manager.ts +289 -0
- package/ts/mail/delivery/smtpclient/constants.ts +145 -0
- package/ts/mail/delivery/smtpclient/create-client.ts +94 -0
- package/ts/mail/delivery/smtpclient/error-handler.ts +141 -0
- package/ts/mail/delivery/smtpclient/index.ts +24 -0
- package/ts/mail/delivery/smtpclient/interfaces.ts +242 -0
- package/ts/mail/delivery/smtpclient/smtp-client.ts +357 -0
- package/ts/mail/delivery/smtpclient/tls-handler.ts +254 -0
- package/ts/mail/delivery/smtpclient/utils/helpers.ts +224 -0
- package/ts/mail/delivery/smtpclient/utils/logging.ts +212 -0
- package/ts/mail/delivery/smtpclient/utils/validation.ts +170 -0
- package/ts/mail/delivery/smtpserver/certificate-utils.ts +398 -0
- package/ts/mail/delivery/smtpserver/command-handler.ts +1340 -0
- package/ts/mail/delivery/smtpserver/connection-manager.ts +1045 -0
- package/ts/mail/delivery/smtpserver/constants.ts +181 -0
- package/ts/mail/delivery/smtpserver/create-server.ts +31 -0
- package/ts/mail/delivery/smtpserver/data-handler.ts +1283 -0
- package/ts/mail/delivery/smtpserver/index.ts +32 -0
- package/ts/mail/delivery/smtpserver/interfaces.ts +655 -0
- package/ts/mail/delivery/smtpserver/secure-server.ts +97 -0
- package/ts/mail/delivery/smtpserver/security-handler.ts +345 -0
- package/ts/mail/delivery/smtpserver/session-manager.ts +557 -0
- package/ts/mail/delivery/smtpserver/smtp-server.ts +804 -0
- package/ts/mail/delivery/smtpserver/starttls-handler.ts +262 -0
- package/ts/mail/delivery/smtpserver/tls-handler.ts +346 -0
- package/ts/mail/delivery/smtpserver/utils/adaptive-logging.ts +514 -0
- package/ts/mail/delivery/smtpserver/utils/helpers.ts +246 -0
- package/ts/mail/delivery/smtpserver/utils/logging.ts +246 -0
- package/ts/mail/delivery/smtpserver/utils/validation.ts +436 -0
- package/ts/mail/index.ts +19 -0
- package/ts/mail/routing/classes.dns.manager.ts +563 -0
- package/ts/mail/routing/classes.dnsmanager.ts +559 -0
- package/ts/mail/routing/classes.domain.registry.ts +139 -0
- package/ts/mail/routing/classes.email.config.ts +82 -0
- package/ts/mail/routing/classes.email.router.ts +575 -0
- package/ts/mail/routing/classes.unified.email.server.ts +1873 -0
- package/ts/mail/routing/index.ts +6 -0
- package/ts/mail/routing/interfaces.ts +202 -0
- package/ts/mail/security/classes.dkimcreator.ts +431 -0
- package/ts/mail/security/classes.dkimverifier.ts +382 -0
- package/ts/mail/security/classes.dmarcverifier.ts +478 -0
- package/ts/mail/security/classes.spfverifier.ts +606 -0
- package/ts/mail/security/index.ts +5 -0
- package/ts/opsserver/classes.opsserver.ts +65 -0
- package/ts/opsserver/handlers/admin.handler.ts +240 -0
- package/ts/opsserver/handlers/config.handler.ts +150 -0
- package/ts/opsserver/handlers/index.ts +5 -0
- package/ts/opsserver/handlers/logs.handler.ts +195 -0
- package/ts/opsserver/handlers/security.handler.ts +208 -0
- package/ts/opsserver/handlers/stats.handler.ts +344 -0
- package/ts/opsserver/helpers/guards.ts +56 -0
- package/ts/opsserver/index.ts +1 -0
- package/ts/paths.ts +48 -0
- package/ts/plugins.ts +94 -0
- package/ts/security/classes.contentscanner.ts +739 -0
- package/ts/security/classes.ipreputationchecker.ts +592 -0
- package/ts/security/classes.securitylogger.ts +299 -0
- package/ts/security/index.ts +21 -0
- package/ts/sms/classes.smsservice.ts +98 -0
- package/ts/sms/config/sms.config.ts +109 -0
- package/ts/sms/config/sms.schema.ts +122 -0
- package/ts/sms/index.ts +1 -0
- package/ts/storage/classes.storagemanager.ts +400 -0
- package/ts/storage/index.ts +2 -0
- package/ts/tspublish.json +3 -0
- package/ts_interfaces/data/auth.ts +8 -0
- package/ts_interfaces/data/index.ts +2 -0
- package/ts_interfaces/data/stats.ts +101 -0
- package/ts_interfaces/index.ts +9 -0
- package/ts_interfaces/plugins.ts +6 -0
- package/ts_interfaces/requests/admin.ts +46 -0
- package/ts_interfaces/requests/config.ts +35 -0
- package/ts_interfaces/requests/index.ts +4 -0
- package/ts_interfaces/requests/logs.ts +44 -0
- package/ts_interfaces/requests/stats.ts +162 -0
- package/ts_interfaces/tspublish.json +3 -0
- package/ts_web/00_commitinfo_data.ts +8 -0
- package/ts_web/appstate.ts +361 -0
- package/ts_web/elements/index.ts +7 -0
- package/ts_web/elements/ops-dashboard.ts +165 -0
- package/ts_web/elements/ops-view-config.ts +268 -0
- package/ts_web/elements/ops-view-logs.ts +207 -0
- package/ts_web/elements/ops-view-overview.ts +222 -0
- package/ts_web/elements/ops-view-security.ts +471 -0
- package/ts_web/elements/ops-view-stats.ts +299 -0
- package/ts_web/elements/shared/css.ts +10 -0
- package/ts_web/elements/shared/index.ts +2 -0
- package/ts_web/elements/shared/ops-sectionheading.ts +42 -0
- package/ts_web/index.ts +9 -0
- package/ts_web/plugins.ts +11 -0
- package/ts_web/tspublish.json +3 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { PlatformError, ValidationError, ResourceError, OperationError } from './base.errors.js';
|
|
2
|
+
import type { IErrorContext } from './base.errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for all email service related errors
|
|
5
|
+
*/
|
|
6
|
+
export declare class EmailServiceError extends OperationError {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new email service error
|
|
9
|
+
*
|
|
10
|
+
* @param message Error message
|
|
11
|
+
* @param context Additional context
|
|
12
|
+
*/
|
|
13
|
+
constructor(message: string, context?: IErrorContext);
|
|
14
|
+
/**
|
|
15
|
+
* Creates a new instance with updated context
|
|
16
|
+
*/
|
|
17
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error class for email template errors
|
|
21
|
+
*/
|
|
22
|
+
export declare class EmailTemplateError extends OperationError {
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new email template error
|
|
25
|
+
*
|
|
26
|
+
* @param message Error message
|
|
27
|
+
* @param context Additional context
|
|
28
|
+
*/
|
|
29
|
+
constructor(message: string, context?: IErrorContext);
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new instance with updated context
|
|
32
|
+
*/
|
|
33
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Error class for email validation errors
|
|
37
|
+
*/
|
|
38
|
+
export declare class EmailValidationError extends ValidationError {
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new email validation error
|
|
41
|
+
*
|
|
42
|
+
* @param message Error message
|
|
43
|
+
* @param context Additional context
|
|
44
|
+
*/
|
|
45
|
+
constructor(message: string, context?: IErrorContext);
|
|
46
|
+
/**
|
|
47
|
+
* Creates a new instance with updated context
|
|
48
|
+
*/
|
|
49
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Error class for email sending errors
|
|
53
|
+
*/
|
|
54
|
+
export declare class EmailSendError extends OperationError {
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new email send error
|
|
57
|
+
*
|
|
58
|
+
* @param message Error message
|
|
59
|
+
* @param context Additional context
|
|
60
|
+
*/
|
|
61
|
+
constructor(message: string, context?: IErrorContext);
|
|
62
|
+
/**
|
|
63
|
+
* Creates a new instance with updated context
|
|
64
|
+
*/
|
|
65
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
66
|
+
/**
|
|
67
|
+
* Creates an instance for a permanently failed send
|
|
68
|
+
*
|
|
69
|
+
* @param message Error message
|
|
70
|
+
* @param context Additional context
|
|
71
|
+
*/
|
|
72
|
+
static permanent(message: string, context?: IErrorContext): EmailSendError;
|
|
73
|
+
/**
|
|
74
|
+
* Creates an instance for a temporary failed send
|
|
75
|
+
*
|
|
76
|
+
* @param message Error message
|
|
77
|
+
* @param maxRetries Maximum number of retries
|
|
78
|
+
* @param currentRetry Current retry count
|
|
79
|
+
* @param retryDelay Delay between retries in ms
|
|
80
|
+
* @param context Additional context
|
|
81
|
+
*/
|
|
82
|
+
static temporary(message: string, maxRetries?: number, currentRetry?: number, retryDelay?: number, context?: IErrorContext): EmailSendError;
|
|
83
|
+
/**
|
|
84
|
+
* Check if this is a permanent send failure
|
|
85
|
+
*/
|
|
86
|
+
isPermanent(): boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Error class for email receiving errors
|
|
90
|
+
*/
|
|
91
|
+
export declare class EmailReceiveError extends OperationError {
|
|
92
|
+
/**
|
|
93
|
+
* Creates a new email receive error
|
|
94
|
+
*
|
|
95
|
+
* @param message Error message
|
|
96
|
+
* @param context Additional context
|
|
97
|
+
*/
|
|
98
|
+
constructor(message: string, context?: IErrorContext);
|
|
99
|
+
/**
|
|
100
|
+
* Creates a new instance with updated context
|
|
101
|
+
*/
|
|
102
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Error class for email attachment errors
|
|
106
|
+
*/
|
|
107
|
+
export declare class EmailAttachmentError extends ValidationError {
|
|
108
|
+
/**
|
|
109
|
+
* Creates a new email attachment error
|
|
110
|
+
*
|
|
111
|
+
* @param message Error message
|
|
112
|
+
* @param context Additional context
|
|
113
|
+
*/
|
|
114
|
+
constructor(message: string, context?: IErrorContext);
|
|
115
|
+
/**
|
|
116
|
+
* Creates an instance for an attachment too large error
|
|
117
|
+
*
|
|
118
|
+
* @param size Attachment size in bytes
|
|
119
|
+
* @param maxSize Maximum allowed size in bytes
|
|
120
|
+
* @param filename Attachment filename
|
|
121
|
+
* @param context Additional context
|
|
122
|
+
*/
|
|
123
|
+
static tooLarge(size: number, maxSize: number, filename?: string, context?: IErrorContext): EmailAttachmentError;
|
|
124
|
+
/**
|
|
125
|
+
* Creates an instance for an invalid attachment type error
|
|
126
|
+
*
|
|
127
|
+
* @param contentType Attachment content type
|
|
128
|
+
* @param filename Attachment filename
|
|
129
|
+
* @param allowedTypes List of allowed content types
|
|
130
|
+
* @param context Additional context
|
|
131
|
+
*/
|
|
132
|
+
static invalidType(contentType: string, filename: string, allowedTypes: string[], context?: IErrorContext): EmailAttachmentError;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Error class for email parsing errors
|
|
136
|
+
*/
|
|
137
|
+
export declare class EmailParseError extends OperationError {
|
|
138
|
+
/**
|
|
139
|
+
* Creates a new email parse error
|
|
140
|
+
*
|
|
141
|
+
* @param message Error message
|
|
142
|
+
* @param context Additional context
|
|
143
|
+
*/
|
|
144
|
+
constructor(message: string, context?: IErrorContext);
|
|
145
|
+
/**
|
|
146
|
+
* Creates a new instance with updated context
|
|
147
|
+
*/
|
|
148
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Error class for email rate limit exceeded errors
|
|
152
|
+
*/
|
|
153
|
+
export declare class EmailRateLimitError extends ResourceError {
|
|
154
|
+
/**
|
|
155
|
+
* Creates a new email rate limit error
|
|
156
|
+
*
|
|
157
|
+
* @param message Error message
|
|
158
|
+
* @param context Additional context
|
|
159
|
+
*/
|
|
160
|
+
constructor(message: string, context?: IErrorContext);
|
|
161
|
+
/**
|
|
162
|
+
* Creates a new instance with updated context
|
|
163
|
+
*/
|
|
164
|
+
protected createWithContext(context: IErrorContext): PlatformError;
|
|
165
|
+
/**
|
|
166
|
+
* Creates an instance with rate limit information
|
|
167
|
+
*
|
|
168
|
+
* @param limit Rate limit
|
|
169
|
+
* @param remaining Remaining quota
|
|
170
|
+
* @param resetAt Time when the quota resets
|
|
171
|
+
* @param scope Rate limit scope (global, domain, user, etc.)
|
|
172
|
+
* @param context Additional context
|
|
173
|
+
*/
|
|
174
|
+
static withLimitInfo(limit: number, remaining: number, resetAt: Date | number, scope?: string, context?: IErrorContext): EmailRateLimitError;
|
|
175
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { PlatformError, ValidationError, NetworkError, ResourceError, OperationError } from './base.errors.js';
|
|
2
|
+
import { EMAIL_SERVICE_ERROR, EMAIL_TEMPLATE_ERROR, EMAIL_VALIDATION_ERROR, EMAIL_SEND_ERROR, EMAIL_RECEIVE_ERROR, EMAIL_ATTACHMENT_ERROR, EMAIL_PARSE_ERROR, EMAIL_RATE_LIMIT_EXCEEDED } from './error.codes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for all email service related errors
|
|
5
|
+
*/
|
|
6
|
+
export class EmailServiceError extends OperationError {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new email service error
|
|
9
|
+
*
|
|
10
|
+
* @param message Error message
|
|
11
|
+
* @param context Additional context
|
|
12
|
+
*/
|
|
13
|
+
constructor(message, context = {}) {
|
|
14
|
+
super(message, EMAIL_SERVICE_ERROR, context);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new instance with updated context
|
|
18
|
+
*/
|
|
19
|
+
createWithContext(context) {
|
|
20
|
+
return new this.constructor(this.message, context);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error class for email template errors
|
|
25
|
+
*/
|
|
26
|
+
export class EmailTemplateError extends OperationError {
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new email template error
|
|
29
|
+
*
|
|
30
|
+
* @param message Error message
|
|
31
|
+
* @param context Additional context
|
|
32
|
+
*/
|
|
33
|
+
constructor(message, context = {}) {
|
|
34
|
+
super(message, EMAIL_TEMPLATE_ERROR, context);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new instance with updated context
|
|
38
|
+
*/
|
|
39
|
+
createWithContext(context) {
|
|
40
|
+
return new this.constructor(this.message, context);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Error class for email validation errors
|
|
45
|
+
*/
|
|
46
|
+
export class EmailValidationError extends ValidationError {
|
|
47
|
+
/**
|
|
48
|
+
* Creates a new email validation error
|
|
49
|
+
*
|
|
50
|
+
* @param message Error message
|
|
51
|
+
* @param context Additional context
|
|
52
|
+
*/
|
|
53
|
+
constructor(message, context = {}) {
|
|
54
|
+
super(message, EMAIL_VALIDATION_ERROR, context);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a new instance with updated context
|
|
58
|
+
*/
|
|
59
|
+
createWithContext(context) {
|
|
60
|
+
return new this.constructor(this.message, context);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Error class for email sending errors
|
|
65
|
+
*/
|
|
66
|
+
export class EmailSendError extends OperationError {
|
|
67
|
+
/**
|
|
68
|
+
* Creates a new email send error
|
|
69
|
+
*
|
|
70
|
+
* @param message Error message
|
|
71
|
+
* @param context Additional context
|
|
72
|
+
*/
|
|
73
|
+
constructor(message, context = {}) {
|
|
74
|
+
super(message, EMAIL_SEND_ERROR, context);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new instance with updated context
|
|
78
|
+
*/
|
|
79
|
+
createWithContext(context) {
|
|
80
|
+
return new this.constructor(this.message, context);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Creates an instance for a permanently failed send
|
|
84
|
+
*
|
|
85
|
+
* @param message Error message
|
|
86
|
+
* @param context Additional context
|
|
87
|
+
*/
|
|
88
|
+
static permanent(message, context = {}) {
|
|
89
|
+
return new EmailSendError(`Permanent send failure: ${message}`, {
|
|
90
|
+
...context,
|
|
91
|
+
data: {
|
|
92
|
+
...context.data,
|
|
93
|
+
permanent: true
|
|
94
|
+
},
|
|
95
|
+
userMessage: 'The email could not be delivered due to a permanent failure.'
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Creates an instance for a temporary failed send
|
|
100
|
+
*
|
|
101
|
+
* @param message Error message
|
|
102
|
+
* @param maxRetries Maximum number of retries
|
|
103
|
+
* @param currentRetry Current retry count
|
|
104
|
+
* @param retryDelay Delay between retries in ms
|
|
105
|
+
* @param context Additional context
|
|
106
|
+
*/
|
|
107
|
+
static temporary(message, maxRetries = 3, currentRetry = 0, retryDelay = 60000, context = {}) {
|
|
108
|
+
const error = new EmailSendError(`Temporary send failure: ${message}`, {
|
|
109
|
+
...context,
|
|
110
|
+
data: {
|
|
111
|
+
...context.data,
|
|
112
|
+
permanent: false
|
|
113
|
+
},
|
|
114
|
+
userMessage: 'The email delivery failed temporarily. It will be retried.'
|
|
115
|
+
});
|
|
116
|
+
return error.withRetry(maxRetries, currentRetry, retryDelay);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if this is a permanent send failure
|
|
120
|
+
*/
|
|
121
|
+
isPermanent() {
|
|
122
|
+
return !!this.context.data?.permanent;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Error class for email receiving errors
|
|
127
|
+
*/
|
|
128
|
+
export class EmailReceiveError extends OperationError {
|
|
129
|
+
/**
|
|
130
|
+
* Creates a new email receive error
|
|
131
|
+
*
|
|
132
|
+
* @param message Error message
|
|
133
|
+
* @param context Additional context
|
|
134
|
+
*/
|
|
135
|
+
constructor(message, context = {}) {
|
|
136
|
+
super(message, EMAIL_RECEIVE_ERROR, context);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Creates a new instance with updated context
|
|
140
|
+
*/
|
|
141
|
+
createWithContext(context) {
|
|
142
|
+
return new this.constructor(this.message, context);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Error class for email attachment errors
|
|
147
|
+
*/
|
|
148
|
+
export class EmailAttachmentError extends ValidationError {
|
|
149
|
+
/**
|
|
150
|
+
* Creates a new email attachment error
|
|
151
|
+
*
|
|
152
|
+
* @param message Error message
|
|
153
|
+
* @param context Additional context
|
|
154
|
+
*/
|
|
155
|
+
constructor(message, context = {}) {
|
|
156
|
+
super(message, EMAIL_ATTACHMENT_ERROR, context);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Creates an instance for an attachment too large error
|
|
160
|
+
*
|
|
161
|
+
* @param size Attachment size in bytes
|
|
162
|
+
* @param maxSize Maximum allowed size in bytes
|
|
163
|
+
* @param filename Attachment filename
|
|
164
|
+
* @param context Additional context
|
|
165
|
+
*/
|
|
166
|
+
static tooLarge(size, maxSize, filename, context = {}) {
|
|
167
|
+
const filenameText = filename ? ` (${filename})` : '';
|
|
168
|
+
return new EmailAttachmentError(`Attachment${filenameText} size ${size} bytes exceeds maximum allowed size of ${maxSize} bytes`, {
|
|
169
|
+
...context,
|
|
170
|
+
data: {
|
|
171
|
+
...context.data,
|
|
172
|
+
size,
|
|
173
|
+
maxSize,
|
|
174
|
+
filename
|
|
175
|
+
},
|
|
176
|
+
userMessage: `The attachment${filenameText} is too large. Maximum size is ${Math.round(maxSize / 1024 / 1024)} MB.`
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Creates an instance for an invalid attachment type error
|
|
181
|
+
*
|
|
182
|
+
* @param contentType Attachment content type
|
|
183
|
+
* @param filename Attachment filename
|
|
184
|
+
* @param allowedTypes List of allowed content types
|
|
185
|
+
* @param context Additional context
|
|
186
|
+
*/
|
|
187
|
+
static invalidType(contentType, filename, allowedTypes, context = {}) {
|
|
188
|
+
return new EmailAttachmentError(`Attachment '${filename}' with content type '${contentType}' is not allowed. Allowed types: ${allowedTypes.join(', ')}`, {
|
|
189
|
+
...context,
|
|
190
|
+
data: {
|
|
191
|
+
...context.data,
|
|
192
|
+
contentType,
|
|
193
|
+
filename,
|
|
194
|
+
allowedTypes
|
|
195
|
+
},
|
|
196
|
+
userMessage: `The attachment type ${contentType} is not allowed.`
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Error class for email parsing errors
|
|
202
|
+
*/
|
|
203
|
+
export class EmailParseError extends OperationError {
|
|
204
|
+
/**
|
|
205
|
+
* Creates a new email parse error
|
|
206
|
+
*
|
|
207
|
+
* @param message Error message
|
|
208
|
+
* @param context Additional context
|
|
209
|
+
*/
|
|
210
|
+
constructor(message, context = {}) {
|
|
211
|
+
super(message, EMAIL_PARSE_ERROR, context);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Creates a new instance with updated context
|
|
215
|
+
*/
|
|
216
|
+
createWithContext(context) {
|
|
217
|
+
return new this.constructor(this.message, context);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Error class for email rate limit exceeded errors
|
|
222
|
+
*/
|
|
223
|
+
export class EmailRateLimitError extends ResourceError {
|
|
224
|
+
/**
|
|
225
|
+
* Creates a new email rate limit error
|
|
226
|
+
*
|
|
227
|
+
* @param message Error message
|
|
228
|
+
* @param context Additional context
|
|
229
|
+
*/
|
|
230
|
+
constructor(message, context = {}) {
|
|
231
|
+
super(message, EMAIL_RATE_LIMIT_EXCEEDED, context);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Creates a new instance with updated context
|
|
235
|
+
*/
|
|
236
|
+
createWithContext(context) {
|
|
237
|
+
return new this.constructor(this.message, context);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Creates an instance with rate limit information
|
|
241
|
+
*
|
|
242
|
+
* @param limit Rate limit
|
|
243
|
+
* @param remaining Remaining quota
|
|
244
|
+
* @param resetAt Time when the quota resets
|
|
245
|
+
* @param scope Rate limit scope (global, domain, user, etc.)
|
|
246
|
+
* @param context Additional context
|
|
247
|
+
*/
|
|
248
|
+
static withLimitInfo(limit, remaining, resetAt, scope = 'global', context = {}) {
|
|
249
|
+
const resetTime = typeof resetAt === 'number' ? new Date(resetAt) : resetAt;
|
|
250
|
+
const resetTimeStr = resetTime.toISOString();
|
|
251
|
+
return new EmailRateLimitError(`Email rate limit exceeded: ${remaining}/${limit} remaining in ${scope} scope, resets at ${resetTimeStr}`, {
|
|
252
|
+
...context,
|
|
253
|
+
data: {
|
|
254
|
+
...context.data,
|
|
255
|
+
limit,
|
|
256
|
+
remaining,
|
|
257
|
+
resetAt: resetTime.getTime(),
|
|
258
|
+
resetTimeStr,
|
|
259
|
+
scope
|
|
260
|
+
},
|
|
261
|
+
userMessage: `You've reached the email sending limit. Please try again later.`
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZXJyb3JzL2VtYWlsLmVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFDZixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIseUJBQXlCLEVBQzFCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsY0FBYztJQUNuRDs7Ozs7T0FLRztJQUNILFlBQ0UsT0FBZSxFQUNmLFVBQXlCLEVBQUU7UUFFM0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxpQkFBaUIsQ0FBQyxPQUFzQjtRQUNoRCxPQUFPLElBQUssSUFBSSxDQUFDLFdBQXdDLENBQ3ZELElBQUksQ0FBQyxPQUFPLEVBQ1osT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBQ3BEOzs7OztPQUtHO0lBQ0gsWUFDRSxPQUFlLEVBQ2YsVUFBeUIsRUFBRTtRQUUzQixLQUFLLENBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNPLGlCQUFpQixDQUFDLE9BQXNCO1FBQ2hELE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBeUMsQ0FDeEQsSUFBSSxDQUFDLE9BQU8sRUFDWixPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOztH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
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { PlatformError } from './base.errors.js';
|
|
2
|
+
import type { IErrorContext } from './base.errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Error handler configuration
|
|
5
|
+
*/
|
|
6
|
+
export interface IErrorHandlerConfig {
|
|
7
|
+
/** Whether to log errors automatically */
|
|
8
|
+
logErrors: boolean;
|
|
9
|
+
/** Whether to include stack traces in prod environment */
|
|
10
|
+
includeStacksInProd: boolean;
|
|
11
|
+
/** Default retry options */
|
|
12
|
+
retry: {
|
|
13
|
+
/** Maximum retry attempts */
|
|
14
|
+
maxAttempts: number;
|
|
15
|
+
/** Base delay between retries in ms */
|
|
16
|
+
baseDelay: number;
|
|
17
|
+
/** Maximum delay between retries in ms */
|
|
18
|
+
maxDelay: number;
|
|
19
|
+
/** Backoff factor for exponential backoff */
|
|
20
|
+
backoffFactor: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error handler utility
|
|
25
|
+
* Provides methods for consistent error handling across the platform
|
|
26
|
+
*/
|
|
27
|
+
export declare class ErrorHandler {
|
|
28
|
+
/**
|
|
29
|
+
* Current configuration
|
|
30
|
+
*/
|
|
31
|
+
static config: IErrorHandlerConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Update error handler configuration
|
|
34
|
+
*
|
|
35
|
+
* @param newConfig New configuration (partial)
|
|
36
|
+
*/
|
|
37
|
+
static configure(newConfig: Partial<IErrorHandlerConfig>): void;
|
|
38
|
+
/**
|
|
39
|
+
* Convert any error to a PlatformError
|
|
40
|
+
*
|
|
41
|
+
* @param error Error to convert
|
|
42
|
+
* @param defaultCode Default error code if not a PlatformError
|
|
43
|
+
* @param context Additional context
|
|
44
|
+
* @returns PlatformError instance
|
|
45
|
+
*/
|
|
46
|
+
static toPlatformError(error: any, defaultCode: string, context?: IErrorContext): PlatformError;
|
|
47
|
+
/**
|
|
48
|
+
* Format an error for API responses
|
|
49
|
+
* Sanitizes errors for safe external exposure
|
|
50
|
+
*
|
|
51
|
+
* @param error Error to format
|
|
52
|
+
* @param includeDetails Whether to include detailed information
|
|
53
|
+
* @returns Formatted error object
|
|
54
|
+
*/
|
|
55
|
+
static formatErrorForResponse(error: any, includeDetails?: boolean): Record<string, any>;
|
|
56
|
+
/**
|
|
57
|
+
* Handle an error with consistent logging and formatting
|
|
58
|
+
*
|
|
59
|
+
* @param error Error to handle
|
|
60
|
+
* @param defaultCode Default error code if not a PlatformError
|
|
61
|
+
* @param context Additional context
|
|
62
|
+
* @returns Formatted error for response
|
|
63
|
+
*/
|
|
64
|
+
static handleError(error: any, defaultCode: string, context?: IErrorContext): Record<string, any>;
|
|
65
|
+
/**
|
|
66
|
+
* Execute a function with error handling
|
|
67
|
+
*
|
|
68
|
+
* @param fn Function to execute
|
|
69
|
+
* @param defaultCode Default error code if the function throws
|
|
70
|
+
* @param context Additional context
|
|
71
|
+
* @returns Function result or error
|
|
72
|
+
*/
|
|
73
|
+
static execute<T>(fn: () => Promise<T>, defaultCode: string, context?: IErrorContext): Promise<T>;
|
|
74
|
+
/**
|
|
75
|
+
* Execute a function with retries and exponential backoff
|
|
76
|
+
*
|
|
77
|
+
* @param fn Function to execute
|
|
78
|
+
* @param defaultCode Default error code if the function throws
|
|
79
|
+
* @param options Retry options
|
|
80
|
+
* @param context Additional context
|
|
81
|
+
* @returns Function result or error after max retries
|
|
82
|
+
*/
|
|
83
|
+
static executeWithRetry<T>(fn: () => Promise<T>, defaultCode: string, options?: {
|
|
84
|
+
maxAttempts?: number;
|
|
85
|
+
baseDelay?: number;
|
|
86
|
+
maxDelay?: number;
|
|
87
|
+
backoffFactor?: number;
|
|
88
|
+
retryableErrorCodes?: string[];
|
|
89
|
+
retryableErrorPatterns?: RegExp[];
|
|
90
|
+
onRetry?: (error: PlatformError, attempt: number, delay: number) => void;
|
|
91
|
+
}, context?: IErrorContext): Promise<T>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create a middleware for handling errors in HTTP requests
|
|
95
|
+
*
|
|
96
|
+
* @returns Middleware function
|
|
97
|
+
*/
|
|
98
|
+
export declare function createErrorHandlerMiddleware(): (error: any, req: any, res: any, next: any) => void;
|