@push.rocks/smartmta 7.0.0 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/changelog.md +36 -0
  2. package/dist_rust/mailer-bin_linux_amd64 +0 -0
  3. package/dist_rust/mailer-bin_linux_arm64 +0 -0
  4. package/dist_ts/00_commitinfo_data.js +1 -1
  5. package/dist_ts/functions.errors.d.ts +3 -0
  6. package/dist_ts/functions.errors.js +8 -0
  7. package/dist_ts/index.d.ts +3 -0
  8. package/dist_ts/index.js +4 -1
  9. package/dist_ts/mail/core/classes.bouncemanager.d.ts +11 -0
  10. package/dist_ts/mail/core/classes.bouncemanager.js +120 -38
  11. package/dist_ts/mail/core/classes.email.js +14 -12
  12. package/dist_ts/mail/core/classes.emailvalidator.d.ts +3 -3
  13. package/dist_ts/mail/core/classes.emailvalidator.js +7 -5
  14. package/dist_ts/mail/delivery/classes.delivery.queue.d.ts +77 -2
  15. package/dist_ts/mail/delivery/classes.delivery.queue.js +551 -46
  16. package/dist_ts/mail/delivery/classes.delivery.system.d.ts +13 -7
  17. package/dist_ts/mail/delivery/classes.delivery.system.js +458 -145
  18. package/dist_ts/mail/delivery/classes.unified.rate.limiter.js +9 -8
  19. package/dist_ts/mail/delivery/functions.safe-observers.d.ts +10 -0
  20. package/dist_ts/mail/delivery/functions.safe-observers.js +37 -0
  21. package/dist_ts/mail/delivery/index.d.ts +1 -0
  22. package/dist_ts/mail/delivery/index.js +2 -1
  23. package/dist_ts/mail/delivery/interfaces.d.ts +21 -0
  24. package/dist_ts/mail/delivery/interfaces.js +1 -1
  25. package/dist_ts/mail/index.d.ts +1 -0
  26. package/dist_ts/mail/index.js +1 -1
  27. package/dist_ts/mail/routing/classes.dkim.manager.d.ts +8 -4
  28. package/dist_ts/mail/routing/classes.dkim.manager.js +46 -29
  29. package/dist_ts/mail/routing/classes.dns.manager.d.ts +5 -3
  30. package/dist_ts/mail/routing/classes.dns.manager.js +22 -11
  31. package/dist_ts/mail/routing/classes.email.action.executor.d.ts +2 -1
  32. package/dist_ts/mail/routing/classes.email.action.executor.js +45 -16
  33. package/dist_ts/mail/routing/classes.email.router.d.ts +3 -0
  34. package/dist_ts/mail/routing/classes.email.router.js +15 -9
  35. package/dist_ts/mail/routing/classes.unified.email.server.d.ts +4 -0
  36. package/dist_ts/mail/routing/classes.unified.email.server.js +61 -40
  37. package/dist_ts/mail/security/classes.dkimcreator.d.ts +7 -0
  38. package/dist_ts/mail/security/classes.dkimcreator.js +33 -8
  39. package/dist_ts/mail/security/classes.spfverifier.js +5 -3
  40. package/dist_ts/security/classes.contentscanner.js +14 -11
  41. package/dist_ts/security/classes.ipreputationchecker.d.ts +3 -0
  42. package/dist_ts/security/classes.ipreputationchecker.js +20 -11
  43. package/dist_ts/security/classes.rustsecuritybridge.d.ts +49 -1
  44. package/dist_ts/security/classes.rustsecuritybridge.js +201 -4
  45. package/dist_ts/security/classes.securitylogger.js +7 -5
  46. package/dist_ts/security/index.d.ts +1 -1
  47. package/dist_ts/security/index.js +2 -2
  48. package/package.json +8 -8
  49. package/readme.hints.md +4 -3
  50. package/readme.md +41 -13
  51. package/readme.plan.md +6 -0
  52. package/ts/00_commitinfo_data.ts +1 -1
  53. package/ts/functions.errors.ts +8 -0
  54. package/ts/index.ts +3 -0
  55. package/ts/mail/core/classes.bouncemanager.ts +157 -45
  56. package/ts/mail/core/classes.email.ts +19 -13
  57. package/ts/mail/core/classes.emailvalidator.ts +9 -7
  58. package/ts/mail/delivery/classes.delivery.queue.ts +740 -58
  59. package/ts/mail/delivery/classes.delivery.system.ts +583 -170
  60. package/ts/mail/delivery/classes.unified.rate.limiter.ts +9 -8
  61. package/ts/mail/delivery/functions.safe-observers.ts +45 -0
  62. package/ts/mail/delivery/index.ts +1 -0
  63. package/ts/mail/delivery/interfaces.ts +27 -1
  64. package/ts/mail/index.ts +1 -0
  65. package/ts/mail/routing/classes.dkim.manager.ts +62 -37
  66. package/ts/mail/routing/classes.dns.manager.ts +36 -13
  67. package/ts/mail/routing/classes.email.action.executor.ts +64 -17
  68. package/ts/mail/routing/classes.email.router.ts +15 -8
  69. package/ts/mail/routing/classes.unified.email.server.ts +90 -44
  70. package/ts/mail/security/classes.dkimcreator.ts +50 -7
  71. package/ts/mail/security/classes.spfverifier.ts +4 -2
  72. package/ts/security/classes.contentscanner.ts +14 -11
  73. package/ts/security/classes.ipreputationchecker.ts +21 -10
  74. package/ts/security/classes.rustsecuritybridge.ts +269 -3
  75. package/ts/security/classes.securitylogger.ts +6 -4
  76. package/ts/security/index.ts +6 -1
@@ -68,9 +68,6 @@ export interface IDeliveryStats {
68
68
  throttled: number;
69
69
  };
70
70
  }
71
- /**
72
- * Handles delivery for all email processing modes
73
- */
74
71
  export declare class MultiModeDeliverySystem extends EventEmitter {
75
72
  private queue;
76
73
  private options;
@@ -83,6 +80,8 @@ export declare class MultiModeDeliverySystem extends EventEmitter {
83
80
  private rateLimitLastCheck;
84
81
  private rateLimitCounter;
85
82
  private emailServer?;
83
+ private bounceDrainTimer?;
84
+ private bounceDrainPromise?;
86
85
  /**
87
86
  * Create a new multi-mode delivery system
88
87
  * @param queue Unified delivery queue
@@ -90,6 +89,16 @@ export declare class MultiModeDeliverySystem extends EventEmitter {
90
89
  * @param emailServer Optional reference to unified email server for outbound delivery
91
90
  */
92
91
  constructor(queue: UnifiedDeliveryQueue, options: IMultiModeDeliveryOptions, emailServer?: UnifiedEmailServer);
92
+ private createEmailForRecipients;
93
+ private contextualizeSmtpError;
94
+ private persistSmtpAttempt;
95
+ private splitRecipientResults;
96
+ private checkpointPermanentRecipientFailures;
97
+ /**
98
+ * Drain durable bounce work with one in-process flight. Custom handlers
99
+ * receive operationId and must use it for their own idempotency.
100
+ */
101
+ drainBounceOutbox(): Promise<void>;
93
102
  /**
94
103
  * Start the delivery system
95
104
  */
@@ -122,6 +131,7 @@ export declare class MultiModeDeliverySystem extends EventEmitter {
122
131
  * Group recipient addresses by their domain part.
123
132
  */
124
133
  private groupRecipientsByDomain;
134
+ private aggregateSmtpFailures;
125
135
  /**
126
136
  * Default handler for MTA mode delivery
127
137
  * @param item Queue item
@@ -136,10 +146,6 @@ export declare class MultiModeDeliverySystem extends EventEmitter {
136
146
  * Get file extension from filename
137
147
  */
138
148
  private getFileExtension;
139
- /**
140
- * Apply DKIM signing to an email
141
- */
142
- private applyDkimSigning;
143
149
  /**
144
150
  * Update delivery time statistics
145
151
  */