@push.rocks/smartmta 6.5.2 → 8.0.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.
Files changed (84) hide show
  1. package/changelog.md +40 -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 +16 -12
  10. package/dist_ts/mail/core/classes.bouncemanager.js +146 -129
  11. package/dist_ts/mail/core/classes.email.js +15 -13
  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/core/classes.templatemanager.d.ts +10 -6
  15. package/dist_ts/mail/core/classes.templatemanager.js +35 -51
  16. package/dist_ts/mail/delivery/classes.delivery.queue.d.ts +92 -22
  17. package/dist_ts/mail/delivery/classes.delivery.queue.js +738 -151
  18. package/dist_ts/mail/delivery/classes.delivery.system.d.ts +13 -7
  19. package/dist_ts/mail/delivery/classes.delivery.system.js +458 -145
  20. package/dist_ts/mail/delivery/classes.unified.rate.limiter.js +9 -8
  21. package/dist_ts/mail/delivery/functions.safe-observers.d.ts +10 -0
  22. package/dist_ts/mail/delivery/functions.safe-observers.js +37 -0
  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/interfaces.storage.d.ts +37 -6
  26. package/dist_ts/mail/interfaces.storage.js +33 -3
  27. package/dist_ts/mail/routing/classes.dkim.manager.d.ts +10 -6
  28. package/dist_ts/mail/routing/classes.dkim.manager.js +47 -31
  29. package/dist_ts/mail/routing/classes.dns.manager.d.ts +7 -5
  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 +5 -2
  34. package/dist_ts/mail/routing/classes.email.router.js +17 -12
  35. package/dist_ts/mail/routing/classes.unified.email.server.d.ts +12 -6
  36. package/dist_ts/mail/routing/classes.unified.email.server.js +69 -78
  37. package/dist_ts/mail/routing/interfaces.d.ts +0 -2
  38. package/dist_ts/mail/security/classes.dkimcreator.d.ts +22 -45
  39. package/dist_ts/mail/security/classes.dkimcreator.js +93 -296
  40. package/dist_ts/mail/security/classes.spfverifier.js +5 -3
  41. package/dist_ts/paths.d.ts +0 -12
  42. package/dist_ts/paths.js +3 -36
  43. package/dist_ts/plugins.d.ts +2 -5
  44. package/dist_ts/plugins.js +3 -6
  45. package/dist_ts/security/classes.contentscanner.js +14 -12
  46. package/dist_ts/security/classes.ipreputationchecker.d.ts +9 -6
  47. package/dist_ts/security/classes.ipreputationchecker.js +42 -93
  48. package/dist_ts/security/classes.rustsecuritybridge.d.ts +52 -4
  49. package/dist_ts/security/classes.rustsecuritybridge.js +201 -4
  50. package/dist_ts/security/classes.securitylogger.js +7 -5
  51. package/dist_ts/security/index.d.ts +1 -1
  52. package/dist_ts/security/index.js +2 -2
  53. package/package.json +8 -9
  54. package/readme.hints.md +4 -3
  55. package/readme.md +50 -18
  56. package/readme.plan.md +6 -0
  57. package/ts/00_commitinfo_data.ts +1 -1
  58. package/ts/functions.errors.ts +8 -0
  59. package/ts/index.ts +3 -0
  60. package/ts/mail/core/classes.bouncemanager.ts +188 -155
  61. package/ts/mail/core/classes.email.ts +20 -14
  62. package/ts/mail/core/classes.emailvalidator.ts +9 -7
  63. package/ts/mail/core/classes.templatemanager.ts +42 -57
  64. package/ts/mail/delivery/classes.delivery.queue.ts +996 -185
  65. package/ts/mail/delivery/classes.delivery.system.ts +583 -170
  66. package/ts/mail/delivery/classes.unified.rate.limiter.ts +9 -8
  67. package/ts/mail/delivery/functions.safe-observers.ts +45 -0
  68. package/ts/mail/delivery/interfaces.ts +27 -1
  69. package/ts/mail/interfaces.storage.ts +64 -10
  70. package/ts/mail/routing/classes.dkim.manager.ts +65 -40
  71. package/ts/mail/routing/classes.dns.manager.ts +39 -16
  72. package/ts/mail/routing/classes.email.action.executor.ts +64 -17
  73. package/ts/mail/routing/classes.email.router.ts +20 -13
  74. package/ts/mail/routing/classes.unified.email.server.ts +107 -86
  75. package/ts/mail/routing/interfaces.ts +0 -2
  76. package/ts/mail/security/classes.dkimcreator.ts +150 -355
  77. package/ts/mail/security/classes.spfverifier.ts +4 -2
  78. package/ts/paths.ts +2 -41
  79. package/ts/plugins.ts +1 -6
  80. package/ts/security/classes.contentscanner.ts +14 -12
  81. package/ts/security/classes.ipreputationchecker.ts +46 -99
  82. package/ts/security/classes.rustsecuritybridge.ts +272 -6
  83. package/ts/security/classes.securitylogger.ts +6 -4
  84. package/ts/security/index.ts +5 -1
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { DKIMCreator } from '../security/classes.dkimcreator.js';
3
- import { type IStorageManagerLike } from '../interfaces.storage.js';
3
+ import type { IStorageManager } from '../interfaces.storage.js';
4
4
  import type { IEmailRoute, IEmailDomainConfig } from './interfaces.js';
5
5
  import { Email } from '../core/classes.email.js';
6
6
  import { DomainRegistry } from './classes.domain.registry.js';
@@ -12,7 +12,7 @@ import { UnifiedRateLimiter, type IHierarchicalRateLimits } from '../delivery/cl
12
12
  import type { EmailProcessingMode, ISmtpSession as IBaseSmtpSession } from '../delivery/interfaces.js';
13
13
  /** External DcRouter interface shape used by UnifiedEmailServer */
14
14
  interface DcRouter {
15
- storageManager: IStorageManagerLike;
15
+ storageManager: IStorageManager;
16
16
  dnsServer?: any;
17
17
  options?: any;
18
18
  }
@@ -79,6 +79,8 @@ export interface IUnifiedEmailServerOptions {
79
79
  domains: IEmailDomainConfig[];
80
80
  banner?: string;
81
81
  debug?: boolean;
82
+ /** Automatic for standalone use; caller-managed keeps DNS/key ownership with the embedding app. */
83
+ dkimKeyProvisioning?: 'automatic' | 'caller-managed';
82
84
  useSocketHandler?: boolean;
83
85
  /** Persist router changes back into storage when a storage manager is available. */
84
86
  persistRoutes?: boolean;
@@ -91,9 +93,9 @@ export interface IUnifiedEmailServerOptions {
91
93
  }>;
92
94
  };
93
95
  tls?: {
94
- certPath?: string;
95
- keyPath?: string;
96
- caPath?: string;
96
+ certPem?: string;
97
+ keyPem?: string;
98
+ caPem?: string;
97
99
  minVersion?: string;
98
100
  ciphers?: string;
99
101
  };
@@ -112,6 +114,8 @@ export interface IUnifiedEmailServerOptions {
112
114
  recipientValidationTimeoutMs?: number;
113
115
  /** Timeout for message acceptance callbacks. Defaults to 30000 ms. */
114
116
  messageAcceptanceTimeoutMs?: number;
117
+ /** Maximum complete messages concurrently held across Rust and TypeScript. */
118
+ maxConcurrentMessages?: number;
115
119
  /** Require trusted PROXY v1 from the backend proxy before SMTP greeting. */
116
120
  proxyProtocol?: {
117
121
  required?: boolean;
@@ -139,7 +143,7 @@ export interface IUnifiedEmailServerOptions {
139
143
  defaultFrom?: string;
140
144
  connectionProxyProvider?: (context: IOutboundConnectionProxyContext) => Promise<IOutboundConnectionProxy | null | undefined>;
141
145
  };
142
- queue?: IQueueOptions;
146
+ queue: IQueueOptions;
143
147
  rateLimits?: IHierarchicalRateLimits;
144
148
  }
145
149
  /**
@@ -238,6 +242,7 @@ export declare class UnifiedEmailServer extends EventEmitter {
238
242
  */
239
243
  start(): Promise<void>;
240
244
  private startDeliveryPipeline;
245
+ private startDeliveryProcessing;
241
246
  private startRustBridge;
242
247
  private initializeDkimAndDns;
243
248
  private startDnsValidation;
@@ -330,6 +335,7 @@ export declare class UnifiedEmailServer extends EventEmitter {
330
335
  }): Promise<string>;
331
336
  processBounceNotification(bounceEmail: Email): Promise<boolean>;
332
337
  processSmtpFailure(recipient: string, smtpResponse: string, options?: {
338
+ operationId?: string;
333
339
  sender?: string;
334
340
  originalEmailId?: string;
335
341
  statusCode?: string;