@brightchain/brightchain-api-lib 0.25.0 → 0.27.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 (130) hide show
  1. package/package.json +4 -3
  2. package/src/lib/appConstants.d.ts +1 -1
  3. package/src/lib/appConstants.js +1 -1
  4. package/src/lib/application.d.ts +3 -14
  5. package/src/lib/application.d.ts.map +1 -1
  6. package/src/lib/application.js +91 -34
  7. package/src/lib/application.js.map +1 -1
  8. package/src/lib/constants.d.ts.map +1 -1
  9. package/src/lib/constants.js +1 -1
  10. package/src/lib/constants.js.map +1 -1
  11. package/src/lib/databaseInit.d.ts +7 -11
  12. package/src/lib/databaseInit.d.ts.map +1 -1
  13. package/src/lib/databaseInit.js +41 -107
  14. package/src/lib/databaseInit.js.map +1 -1
  15. package/src/lib/datastore/block-document-store-factory.d.ts +3 -0
  16. package/src/lib/datastore/block-document-store-factory.d.ts.map +1 -1
  17. package/src/lib/datastore/block-document-store-factory.js +15 -18
  18. package/src/lib/datastore/block-document-store-factory.js.map +1 -1
  19. package/src/lib/datastore/block-document-store.d.ts +2 -191
  20. package/src/lib/datastore/block-document-store.d.ts.map +1 -1
  21. package/src/lib/datastore/block-document-store.js +4 -628
  22. package/src/lib/datastore/block-document-store.js.map +1 -1
  23. package/src/lib/datastore/document-store.d.ts +1 -62
  24. package/src/lib/datastore/document-store.d.ts.map +1 -1
  25. package/src/lib/datastore/memory-document-store.d.ts +1 -8
  26. package/src/lib/datastore/memory-document-store.d.ts.map +1 -1
  27. package/src/lib/datastore/memory-document-store.js +3 -214
  28. package/src/lib/datastore/memory-document-store.js.map +1 -1
  29. package/src/lib/environment.d.ts +4 -47
  30. package/src/lib/environment.d.ts.map +1 -1
  31. package/src/lib/environment.js +2 -136
  32. package/src/lib/environment.js.map +1 -1
  33. package/src/lib/interfaces/environment.d.ts +3 -25
  34. package/src/lib/interfaces/environment.d.ts.map +1 -1
  35. package/src/lib/interfaces/responses/emailGatewayResponses.d.ts +30 -0
  36. package/src/lib/interfaces/responses/emailGatewayResponses.d.ts.map +1 -0
  37. package/src/lib/interfaces/responses/emailGatewayResponses.js +3 -0
  38. package/src/lib/interfaces/responses/emailGatewayResponses.js.map +1 -0
  39. package/src/lib/interfaces/responses/index.d.ts +1 -0
  40. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  41. package/src/lib/middleware/index.d.ts +1 -1
  42. package/src/lib/middleware/index.d.ts.map +1 -1
  43. package/src/lib/middleware/index.js +3 -2
  44. package/src/lib/middleware/index.js.map +1 -1
  45. package/src/lib/middleware/validateBody.d.ts +1 -12
  46. package/src/lib/middleware/validateBody.d.ts.map +1 -1
  47. package/src/lib/middleware/validateBody.js +4 -32
  48. package/src/lib/middleware/validateBody.js.map +1 -1
  49. package/src/lib/middlewares.d.ts.map +1 -1
  50. package/src/lib/middlewares.js +7 -1
  51. package/src/lib/middlewares.js.map +1 -1
  52. package/src/lib/plugins/brightchain-database-plugin.d.ts +27 -79
  53. package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
  54. package/src/lib/plugins/brightchain-database-plugin.js +32 -103
  55. package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
  56. package/src/lib/routers/app.d.ts.map +1 -1
  57. package/src/lib/routers/app.js +1 -0
  58. package/src/lib/routers/app.js.map +1 -1
  59. package/src/lib/services/emailGateway/antiSpamFilter.d.ts +229 -0
  60. package/src/lib/services/emailGateway/antiSpamFilter.d.ts.map +1 -0
  61. package/src/lib/services/emailGateway/antiSpamFilter.js +325 -0
  62. package/src/lib/services/emailGateway/antiSpamFilter.js.map +1 -0
  63. package/src/lib/services/emailGateway/bounceProcessor.d.ts +182 -0
  64. package/src/lib/services/emailGateway/bounceProcessor.d.ts.map +1 -0
  65. package/src/lib/services/emailGateway/bounceProcessor.js +391 -0
  66. package/src/lib/services/emailGateway/bounceProcessor.js.map +1 -0
  67. package/src/lib/services/emailGateway/emailAuthVerifier.d.ts +99 -0
  68. package/src/lib/services/emailGateway/emailAuthVerifier.d.ts.map +1 -0
  69. package/src/lib/services/emailGateway/emailAuthVerifier.js +202 -0
  70. package/src/lib/services/emailGateway/emailAuthVerifier.js.map +1 -0
  71. package/src/lib/services/emailGateway/emailGatewayConfig.d.ts +74 -0
  72. package/src/lib/services/emailGateway/emailGatewayConfig.d.ts.map +1 -0
  73. package/src/lib/services/emailGateway/emailGatewayConfig.js +107 -0
  74. package/src/lib/services/emailGateway/emailGatewayConfig.js.map +1 -0
  75. package/src/lib/services/emailGateway/emailGatewayService.d.ts +209 -0
  76. package/src/lib/services/emailGateway/emailGatewayService.d.ts.map +1 -0
  77. package/src/lib/services/emailGateway/emailGatewayService.js +254 -0
  78. package/src/lib/services/emailGateway/emailGatewayService.js.map +1 -0
  79. package/src/lib/services/emailGateway/gatewayObservability.d.ts +123 -0
  80. package/src/lib/services/emailGateway/gatewayObservability.d.ts.map +1 -0
  81. package/src/lib/services/emailGateway/gatewayObservability.js +186 -0
  82. package/src/lib/services/emailGateway/gatewayObservability.js.map +1 -0
  83. package/src/lib/services/emailGateway/inboundProcessor.d.ts +113 -0
  84. package/src/lib/services/emailGateway/inboundProcessor.d.ts.map +1 -0
  85. package/src/lib/services/emailGateway/inboundProcessor.js +298 -0
  86. package/src/lib/services/emailGateway/inboundProcessor.js.map +1 -0
  87. package/src/lib/services/emailGateway/index.d.ts +23 -0
  88. package/src/lib/services/emailGateway/index.d.ts.map +1 -0
  89. package/src/lib/services/emailGateway/index.js +26 -0
  90. package/src/lib/services/emailGateway/index.js.map +1 -0
  91. package/src/lib/services/emailGateway/outboundDeliveryWorker.d.ts +122 -0
  92. package/src/lib/services/emailGateway/outboundDeliveryWorker.d.ts.map +1 -0
  93. package/src/lib/services/emailGateway/outboundDeliveryWorker.js +110 -0
  94. package/src/lib/services/emailGateway/outboundDeliveryWorker.js.map +1 -0
  95. package/src/lib/services/emailGateway/outboundQueue.d.ts +135 -0
  96. package/src/lib/services/emailGateway/outboundQueue.d.ts.map +1 -0
  97. package/src/lib/services/emailGateway/outboundQueue.js +227 -0
  98. package/src/lib/services/emailGateway/outboundQueue.js.map +1 -0
  99. package/src/lib/services/emailGateway/outboundQueueStore.d.ts +110 -0
  100. package/src/lib/services/emailGateway/outboundQueueStore.d.ts.map +1 -0
  101. package/src/lib/services/emailGateway/outboundQueueStore.js +131 -0
  102. package/src/lib/services/emailGateway/outboundQueueStore.js.map +1 -0
  103. package/src/lib/services/emailGateway/recipientLookupService.d.ts +146 -0
  104. package/src/lib/services/emailGateway/recipientLookupService.d.ts.map +1 -0
  105. package/src/lib/services/emailGateway/recipientLookupService.js +307 -0
  106. package/src/lib/services/emailGateway/recipientLookupService.js.map +1 -0
  107. package/src/lib/services/emailGateway/retryBackoff.d.ts +79 -0
  108. package/src/lib/services/emailGateway/retryBackoff.d.ts.map +1 -0
  109. package/src/lib/services/emailGateway/retryBackoff.js +77 -0
  110. package/src/lib/services/emailGateway/retryBackoff.js.map +1 -0
  111. package/src/lib/services/index.d.ts +1 -0
  112. package/src/lib/services/index.d.ts.map +1 -1
  113. package/src/lib/services/index.js +1 -0
  114. package/src/lib/services/index.js.map +1 -1
  115. package/src/lib/services/quorumDatabaseAdapter.d.ts +7 -1
  116. package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -1
  117. package/src/lib/services/quorumDatabaseAdapter.js +83 -0
  118. package/src/lib/services/quorumDatabaseAdapter.js.map +1 -1
  119. package/src/lib/services/sessionAdapter.d.ts +2 -61
  120. package/src/lib/services/sessionAdapter.d.ts.map +1 -1
  121. package/src/lib/services/sessionAdapter.js +2 -102
  122. package/src/lib/services/sessionAdapter.js.map +1 -1
  123. package/src/lib/shared-types.d.ts +7 -15
  124. package/src/lib/shared-types.d.ts.map +1 -1
  125. package/src/lib/types/backend-id.d.ts +1 -2
  126. package/src/lib/types/backend-id.d.ts.map +1 -1
  127. package/src/lib/validation/userValidation.d.ts +2 -43
  128. package/src/lib/validation/userValidation.d.ts.map +1 -1
  129. package/src/lib/validation/userValidation.js +6 -144
  130. package/src/lib/validation/userValidation.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"brightchain-database-plugin.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/plugins/brightchain-database-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brightchain-database-plugin.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/plugins/brightchain-database-plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,SAAS,IAAI,iBAAiB,EAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;GAKG;AACH,qBAAa,SAAS,CACpB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACjD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiB;gBAE1C,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;IAKrC;;;OAGG;IACI,uBAAuB,IAAI,SAAS,CAAC,GAAG,CAAC;IAIhD;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;OASG;IACa,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI;CA6DR"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,SAAS,IAAI,iBAAiB,EAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;GAKG;AACH,qBAAa,SAAS,CACpB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACjD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiB;gBAE1C,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;IAKrC;;;OAGG;IACI,uBAAuB,IAAI,SAAS,CAAC,GAAG,CAAC;IAIhD;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;;;;;;OASG;IACa,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI;CA8DR"}
@@ -140,6 +140,7 @@ class AppRouter extends node_express_suite_1.AppRouter {
140
140
  // Override fontAwesomeKitId after spread to ensure it's not empty
141
141
  fontAwesomeKitId: environment.fontAwesomeKitId || baseLocals['fontAwesomeKitId'] || '',
142
142
  siteUrl: environment.serverUrl,
143
+ emailDomain: environment.emailDomain,
143
144
  };
144
145
  this.renderTemplate(req, res, next, 'index', locals);
145
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * AntiSpamFilter — milter integration adapter for SpamAssassin/Rspamd
3
+ * score classification of inbound email messages.
4
+ *
5
+ * The filter wraps a configurable spam engine client (SpamAssassin via
6
+ * spamc protocol or Rspamd via HTTP API) and classifies messages as
7
+ * ham, probable-spam, or definite-spam based on configurable score
8
+ * thresholds from `ISpamThresholds`.
9
+ *
10
+ * Integration with Postfix is via the milter protocol (RFC 6008):
11
+ * - Definite-spam → signal rejection (SMFIS_REJECT, 550)
12
+ * - Probable-spam → accept and tag metadata with spam flag and score
13
+ * - Ham → accept without modification
14
+ *
15
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
16
+ * @module antiSpamFilter
17
+ */
18
+ import { type ISpamThresholds, SpamClassification } from '@brightchain/brightchain-lib';
19
+ /**
20
+ * Result returned by a spam engine after scanning a message.
21
+ */
22
+ export interface ISpamScanResult {
23
+ /** Numeric spam score assigned by the engine */
24
+ score: number;
25
+ /** Whether the engine considers the message spam (engine's own threshold) */
26
+ isSpam: boolean;
27
+ /** Optional human-readable details or rule matches */
28
+ details?: string;
29
+ }
30
+ /**
31
+ * Interface for spam engine clients that communicate with external
32
+ * spam detection services.
33
+ *
34
+ * Implementations handle the protocol-specific communication with
35
+ * SpamAssassin (spamc TCP protocol) or Rspamd (HTTP API).
36
+ */
37
+ export interface ISpamEngineClient {
38
+ /**
39
+ * Scan a raw email message for spam.
40
+ *
41
+ * @param rawMessage - The raw RFC 5322 message bytes
42
+ * @returns Scan result with score and spam determination
43
+ */
44
+ scan(rawMessage: Buffer): Promise<ISpamScanResult>;
45
+ }
46
+ /**
47
+ * SpamAssassin engine client — communicates with spamd via the spamc
48
+ * TCP protocol (default port 783).
49
+ *
50
+ * Protocol overview:
51
+ * 1. Connect to spamd TCP socket
52
+ * 2. Send `SYMBOLS SPAMC/1.5\r\nContent-length: <len>\r\n\r\n<message>`
53
+ * 3. Parse response for `Spam: True/False ; <score> / <threshold>` header
54
+ *
55
+ * @see Requirement 7.1
56
+ */
57
+ export declare class SpamAssassinClient implements ISpamEngineClient {
58
+ private readonly host;
59
+ private readonly port;
60
+ private readonly timeoutMs;
61
+ constructor(host?: string, port?: number, timeoutMs?: number);
62
+ scan(rawMessage: Buffer): Promise<ISpamScanResult>;
63
+ /**
64
+ * Parse the spamd response to extract score and spam determination.
65
+ *
66
+ * Expected header line format:
67
+ * `Spam: True ; 15.3 / 5.0`
68
+ * `Spam: False ; 1.2 / 5.0`
69
+ */
70
+ static parseResponse(response: string): ISpamScanResult;
71
+ }
72
+ /**
73
+ * Rspamd engine client — communicates with rspamd via its HTTP API
74
+ * (default port 11333).
75
+ *
76
+ * Protocol overview:
77
+ * 1. POST raw message to `http://<host>:<port>/checkv2`
78
+ * 2. Parse JSON response for `score`, `is_spam`/`action`, and `symbols`
79
+ *
80
+ * @see Requirement 7.1
81
+ */
82
+ export declare class RspamdClient implements ISpamEngineClient {
83
+ private readonly host;
84
+ private readonly port;
85
+ private readonly timeoutMs;
86
+ constructor(host?: string, port?: number, timeoutMs?: number);
87
+ scan(rawMessage: Buffer): Promise<ISpamScanResult>;
88
+ /**
89
+ * Parse the Rspamd JSON response.
90
+ *
91
+ * Expected JSON structure:
92
+ * ```json
93
+ * {
94
+ * "score": 15.3,
95
+ * "required_score": 15.0,
96
+ * "action": "reject" | "add header" | "no action" | ...,
97
+ * "symbols": { ... }
98
+ * }
99
+ * ```
100
+ */
101
+ static parseResponse(body: string): ISpamScanResult;
102
+ }
103
+ /**
104
+ * Result of scanning a message through the anti-spam filter.
105
+ *
106
+ * @see Requirements 7.2, 7.3, 7.4
107
+ */
108
+ export interface IAntiSpamScanResult {
109
+ /** Numeric spam score from the engine */
110
+ score: number;
111
+ /** Classification based on configurable thresholds */
112
+ classification: SpamClassification;
113
+ /** Optional details from the spam engine (rule matches, etc.) */
114
+ details?: string;
115
+ }
116
+ /**
117
+ * Milter protocol actions that the filter can signal to Postfix.
118
+ *
119
+ * Maps to Sendmail milter protocol responses (RFC 6008):
120
+ * - `accept`: SMFIS_ACCEPT — accept the message
121
+ * - `reject`: SMFIS_REJECT — reject with 550
122
+ * - `continue`: SMFIS_CONTINUE — continue processing (accept with modifications)
123
+ *
124
+ * @see Requirement 7.5
125
+ */
126
+ export type MilterAction = 'accept' | 'reject' | 'continue';
127
+ /**
128
+ * Full milter response including the action and any metadata tags
129
+ * to add to the message.
130
+ *
131
+ * @see Requirements 7.3, 7.4, 7.5
132
+ */
133
+ export interface IMilterResponse {
134
+ /** Milter action to signal to Postfix */
135
+ action: MilterAction;
136
+ /** SMTP reply code (e.g. 550 for rejection) */
137
+ replyCode?: number;
138
+ /** SMTP reply text */
139
+ replyText?: string;
140
+ /** Headers to add to the message (for probable-spam tagging) */
141
+ addHeaders?: Record<string, string>;
142
+ /** The scan result that produced this response */
143
+ scanResult: IAntiSpamScanResult;
144
+ }
145
+ /**
146
+ * Interface for the anti-spam filter adapter.
147
+ *
148
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
149
+ */
150
+ export interface IAntiSpamFilter {
151
+ /**
152
+ * Scan a raw email message and return the spam classification result.
153
+ *
154
+ * @param rawMessage - The raw RFC 5322 message bytes
155
+ * @returns Scan result with score, classification, and optional details
156
+ */
157
+ scan(rawMessage: Buffer): Promise<IAntiSpamScanResult>;
158
+ /**
159
+ * Scan a message and return the milter protocol response that should
160
+ * be sent back to Postfix.
161
+ *
162
+ * This is the primary integration point for the Postfix milter protocol.
163
+ *
164
+ * @param rawMessage - The raw RFC 5322 message bytes
165
+ * @returns Milter response with action, optional reply code, and headers
166
+ */
167
+ milterCheck(rawMessage: Buffer): Promise<IMilterResponse>;
168
+ }
169
+ /**
170
+ * Milter integration adapter for SpamAssassin/Rspamd score classification.
171
+ *
172
+ * Wraps a configurable spam engine client and classifies messages based
173
+ * on `ISpamThresholds`:
174
+ * - score < probableSpamScore → Ham (accept)
175
+ * - probableSpamScore ≤ score < definiteSpamScore → ProbableSpam (tag metadata)
176
+ * - score ≥ definiteSpamScore → DefiniteSpam (reject 550)
177
+ *
178
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
179
+ */
180
+ export declare class AntiSpamFilter implements IAntiSpamFilter {
181
+ private readonly engineClient;
182
+ private readonly thresholds;
183
+ /**
184
+ * Create an AntiSpamFilter with the specified engine and thresholds.
185
+ *
186
+ * @param engine - Which spam engine to use: `'spamassassin'` or `'rspamd'`
187
+ * @param thresholds - Score thresholds for classification
188
+ * @param engineClient - Optional pre-configured engine client (for testing / DI)
189
+ * @param engineHost - Host for the spam engine (default: localhost)
190
+ * @param enginePort - Port for the spam engine (default: engine-specific)
191
+ */
192
+ constructor(engine: 'spamassassin' | 'rspamd', thresholds: ISpamThresholds, engineClient?: ISpamEngineClient, engineHost?: string, enginePort?: number);
193
+ /**
194
+ * Classify a spam score against the configured thresholds.
195
+ *
196
+ * @param score - Numeric spam score from the engine
197
+ * @returns The spam classification
198
+ *
199
+ * @see Requirement 7.2
200
+ */
201
+ classify(score: number): SpamClassification;
202
+ /**
203
+ * Scan a raw email message and return the spam classification result.
204
+ *
205
+ * Delegates to the configured spam engine client, then classifies
206
+ * the returned score against the configured thresholds.
207
+ *
208
+ * @param rawMessage - The raw RFC 5322 message bytes
209
+ * @returns Scan result with score, classification, and optional details
210
+ *
211
+ * @see Requirements 7.1, 7.2
212
+ */
213
+ scan(rawMessage: Buffer): Promise<IAntiSpamScanResult>;
214
+ /**
215
+ * Scan a message and return the milter protocol response for Postfix.
216
+ *
217
+ * Maps classification to milter actions:
218
+ * - DefiniteSpam → reject (SMFIS_REJECT, 550)
219
+ * - ProbableSpam → continue with X-Spam-Flag / X-Spam-Score headers
220
+ * - Ham → accept
221
+ *
222
+ * @param rawMessage - The raw RFC 5322 message bytes
223
+ * @returns Milter response with action, optional reply code, and headers
224
+ *
225
+ * @see Requirements 7.3, 7.4, 7.5
226
+ */
227
+ milterCheck(rawMessage: Buffer): Promise<IMilterResponse>;
228
+ }
229
+ //# sourceMappingURL=antiSpamFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antiSpamFilter.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/services/emailGateway/antiSpamFilter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ /**
3
+ * AntiSpamFilter — milter integration adapter for SpamAssassin/Rspamd
4
+ * score classification of inbound email messages.
5
+ *
6
+ * The filter wraps a configurable spam engine client (SpamAssassin via
7
+ * spamc protocol or Rspamd via HTTP API) and classifies messages as
8
+ * ham, probable-spam, or definite-spam based on configurable score
9
+ * thresholds from `ISpamThresholds`.
10
+ *
11
+ * Integration with Postfix is via the milter protocol (RFC 6008):
12
+ * - Definite-spam → signal rejection (SMFIS_REJECT, 550)
13
+ * - Probable-spam → accept and tag metadata with spam flag and score
14
+ * - Ham → accept without modification
15
+ *
16
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
17
+ * @module antiSpamFilter
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.AntiSpamFilter = exports.RspamdClient = exports.SpamAssassinClient = void 0;
21
+ const tslib_1 = require("tslib");
22
+ const http = tslib_1.__importStar(require("http"));
23
+ const net = tslib_1.__importStar(require("net"));
24
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
25
+ // ─── SpamAssassin Client ────────────────────────────────────────────────────
26
+ /**
27
+ * SpamAssassin engine client — communicates with spamd via the spamc
28
+ * TCP protocol (default port 783).
29
+ *
30
+ * Protocol overview:
31
+ * 1. Connect to spamd TCP socket
32
+ * 2. Send `SYMBOLS SPAMC/1.5\r\nContent-length: <len>\r\n\r\n<message>`
33
+ * 3. Parse response for `Spam: True/False ; <score> / <threshold>` header
34
+ *
35
+ * @see Requirement 7.1
36
+ */
37
+ class SpamAssassinClient {
38
+ host;
39
+ port;
40
+ timeoutMs;
41
+ constructor(host = 'localhost', port = 783, timeoutMs = 30_000) {
42
+ this.host = host;
43
+ this.port = port;
44
+ this.timeoutMs = timeoutMs;
45
+ }
46
+ async scan(rawMessage) {
47
+ return new Promise((resolve, reject) => {
48
+ const socket = net.createConnection({ host: this.host, port: this.port }, () => {
49
+ const request = `SYMBOLS SPAMC/1.5\r\n` +
50
+ `Content-length: ${rawMessage.length}\r\n` +
51
+ `\r\n`;
52
+ socket.write(request);
53
+ socket.write(rawMessage);
54
+ });
55
+ socket.setTimeout(this.timeoutMs);
56
+ const chunks = [];
57
+ socket.on('data', (chunk) => {
58
+ chunks.push(chunk);
59
+ });
60
+ socket.on('end', () => {
61
+ const response = Buffer.concat(chunks).toString('utf-8');
62
+ resolve(SpamAssassinClient.parseResponse(response));
63
+ });
64
+ socket.on('timeout', () => {
65
+ socket.destroy();
66
+ reject(new Error('SpamAssassin spamd connection timed out'));
67
+ });
68
+ socket.on('error', (err) => {
69
+ reject(new Error(`SpamAssassin spamd connection error: ${err.message}`));
70
+ });
71
+ });
72
+ }
73
+ /**
74
+ * Parse the spamd response to extract score and spam determination.
75
+ *
76
+ * Expected header line format:
77
+ * `Spam: True ; 15.3 / 5.0`
78
+ * `Spam: False ; 1.2 / 5.0`
79
+ */
80
+ static parseResponse(response) {
81
+ const spamMatch = response.match(/Spam:\s*(True|False|Yes|No)\s*;\s*([\d.]+)\s*\/\s*([\d.]+)/i);
82
+ if (!spamMatch) {
83
+ return {
84
+ score: 0,
85
+ isSpam: false,
86
+ details: 'Unable to parse spamd response',
87
+ };
88
+ }
89
+ const isSpam = spamMatch[1].toLowerCase() === 'true' ||
90
+ spamMatch[1].toLowerCase() === 'yes';
91
+ const score = parseFloat(spamMatch[2]);
92
+ // Extract rule matches from the body (lines after headers)
93
+ const bodyStart = response.indexOf('\r\n\r\n');
94
+ const details = bodyStart >= 0 ? response.substring(bodyStart + 4).trim() : undefined;
95
+ return { score, isSpam, details: details || undefined };
96
+ }
97
+ }
98
+ exports.SpamAssassinClient = SpamAssassinClient;
99
+ // ─── Rspamd Client ──────────────────────────────────────────────────────────
100
+ /**
101
+ * Rspamd engine client — communicates with rspamd via its HTTP API
102
+ * (default port 11333).
103
+ *
104
+ * Protocol overview:
105
+ * 1. POST raw message to `http://<host>:<port>/checkv2`
106
+ * 2. Parse JSON response for `score`, `is_spam`/`action`, and `symbols`
107
+ *
108
+ * @see Requirement 7.1
109
+ */
110
+ class RspamdClient {
111
+ host;
112
+ port;
113
+ timeoutMs;
114
+ constructor(host = 'localhost', port = 11333, timeoutMs = 30_000) {
115
+ this.host = host;
116
+ this.port = port;
117
+ this.timeoutMs = timeoutMs;
118
+ }
119
+ async scan(rawMessage) {
120
+ return new Promise((resolve, reject) => {
121
+ const options = {
122
+ hostname: this.host,
123
+ port: this.port,
124
+ path: '/checkv2',
125
+ method: 'POST',
126
+ headers: {
127
+ 'Content-Length': rawMessage.length,
128
+ },
129
+ timeout: this.timeoutMs,
130
+ };
131
+ const req = http.request(options, (res) => {
132
+ const chunks = [];
133
+ res.on('data', (chunk) => {
134
+ chunks.push(chunk);
135
+ });
136
+ res.on('end', () => {
137
+ const body = Buffer.concat(chunks).toString('utf-8');
138
+ try {
139
+ resolve(RspamdClient.parseResponse(body));
140
+ }
141
+ catch (err) {
142
+ reject(new Error(`Rspamd response parse error: ${err instanceof Error ? err.message : String(err)}`));
143
+ }
144
+ });
145
+ });
146
+ req.on('timeout', () => {
147
+ req.destroy();
148
+ reject(new Error('Rspamd HTTP connection timed out'));
149
+ });
150
+ req.on('error', (err) => {
151
+ reject(new Error(`Rspamd HTTP connection error: ${err.message}`));
152
+ });
153
+ req.write(rawMessage);
154
+ req.end();
155
+ });
156
+ }
157
+ /**
158
+ * Parse the Rspamd JSON response.
159
+ *
160
+ * Expected JSON structure:
161
+ * ```json
162
+ * {
163
+ * "score": 15.3,
164
+ * "required_score": 15.0,
165
+ * "action": "reject" | "add header" | "no action" | ...,
166
+ * "symbols": { ... }
167
+ * }
168
+ * ```
169
+ */
170
+ static parseResponse(body) {
171
+ let parsed;
172
+ try {
173
+ parsed = JSON.parse(body);
174
+ }
175
+ catch {
176
+ return {
177
+ score: 0,
178
+ isSpam: false,
179
+ details: 'Unable to parse Rspamd JSON response',
180
+ };
181
+ }
182
+ const score = typeof parsed['score'] === 'number' ? parsed['score'] : 0;
183
+ const action = typeof parsed['action'] === 'string' ? parsed['action'] : '';
184
+ // Rspamd actions: "reject", "rewrite subject", "add header",
185
+ // "greylist", "no action", "soft reject"
186
+ const isSpam = action === 'reject' || action === 'add header';
187
+ // Summarize matched symbols if available
188
+ let details;
189
+ if (parsed['symbols'] &&
190
+ typeof parsed['symbols'] === 'object' &&
191
+ parsed['symbols'] !== null) {
192
+ const symbolNames = Object.keys(parsed['symbols']);
193
+ if (symbolNames.length > 0) {
194
+ details = symbolNames.join(', ');
195
+ }
196
+ }
197
+ return { score, isSpam, details };
198
+ }
199
+ }
200
+ exports.RspamdClient = RspamdClient;
201
+ // ─── Anti-Spam Filter Implementation ────────────────────────────────────────
202
+ /**
203
+ * Milter integration adapter for SpamAssassin/Rspamd score classification.
204
+ *
205
+ * Wraps a configurable spam engine client and classifies messages based
206
+ * on `ISpamThresholds`:
207
+ * - score < probableSpamScore → Ham (accept)
208
+ * - probableSpamScore ≤ score < definiteSpamScore → ProbableSpam (tag metadata)
209
+ * - score ≥ definiteSpamScore → DefiniteSpam (reject 550)
210
+ *
211
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
212
+ */
213
+ class AntiSpamFilter {
214
+ engineClient;
215
+ thresholds;
216
+ /**
217
+ * Create an AntiSpamFilter with the specified engine and thresholds.
218
+ *
219
+ * @param engine - Which spam engine to use: `'spamassassin'` or `'rspamd'`
220
+ * @param thresholds - Score thresholds for classification
221
+ * @param engineClient - Optional pre-configured engine client (for testing / DI)
222
+ * @param engineHost - Host for the spam engine (default: localhost)
223
+ * @param enginePort - Port for the spam engine (default: engine-specific)
224
+ */
225
+ constructor(engine, thresholds, engineClient, engineHost, enginePort) {
226
+ this.thresholds = thresholds;
227
+ if (engineClient) {
228
+ this.engineClient = engineClient;
229
+ }
230
+ else if (engine === 'rspamd') {
231
+ this.engineClient = new RspamdClient(engineHost ?? 'localhost', enginePort ?? 11333);
232
+ }
233
+ else {
234
+ this.engineClient = new SpamAssassinClient(engineHost ?? 'localhost', enginePort ?? 783);
235
+ }
236
+ }
237
+ /**
238
+ * Classify a spam score against the configured thresholds.
239
+ *
240
+ * @param score - Numeric spam score from the engine
241
+ * @returns The spam classification
242
+ *
243
+ * @see Requirement 7.2
244
+ */
245
+ classify(score) {
246
+ if (score >= this.thresholds.definiteSpamScore) {
247
+ return brightchain_lib_1.SpamClassification.DefiniteSpam;
248
+ }
249
+ if (score >= this.thresholds.probableSpamScore) {
250
+ return brightchain_lib_1.SpamClassification.ProbableSpam;
251
+ }
252
+ return brightchain_lib_1.SpamClassification.Ham;
253
+ }
254
+ /**
255
+ * Scan a raw email message and return the spam classification result.
256
+ *
257
+ * Delegates to the configured spam engine client, then classifies
258
+ * the returned score against the configured thresholds.
259
+ *
260
+ * @param rawMessage - The raw RFC 5322 message bytes
261
+ * @returns Scan result with score, classification, and optional details
262
+ *
263
+ * @see Requirements 7.1, 7.2
264
+ */
265
+ async scan(rawMessage) {
266
+ const engineResult = await this.engineClient.scan(rawMessage);
267
+ const classification = this.classify(engineResult.score);
268
+ return {
269
+ score: engineResult.score,
270
+ classification,
271
+ details: engineResult.details,
272
+ };
273
+ }
274
+ /**
275
+ * Scan a message and return the milter protocol response for Postfix.
276
+ *
277
+ * Maps classification to milter actions:
278
+ * - DefiniteSpam → reject (SMFIS_REJECT, 550)
279
+ * - ProbableSpam → continue with X-Spam-Flag / X-Spam-Score headers
280
+ * - Ham → accept
281
+ *
282
+ * @param rawMessage - The raw RFC 5322 message bytes
283
+ * @returns Milter response with action, optional reply code, and headers
284
+ *
285
+ * @see Requirements 7.3, 7.4, 7.5
286
+ */
287
+ async milterCheck(rawMessage) {
288
+ const scanResult = await this.scan(rawMessage);
289
+ switch (scanResult.classification) {
290
+ case brightchain_lib_1.SpamClassification.DefiniteSpam:
291
+ // Req 7.3: reject at SMTP time with 550
292
+ return {
293
+ action: 'reject',
294
+ replyCode: 550,
295
+ replyText: '5.7.1 Message rejected as spam',
296
+ scanResult,
297
+ };
298
+ case brightchain_lib_1.SpamClassification.ProbableSpam:
299
+ // Req 7.4: accept and tag metadata with spam flag and score
300
+ return {
301
+ action: 'continue',
302
+ addHeaders: {
303
+ 'X-Spam-Flag': 'YES',
304
+ 'X-Spam-Score': scanResult.score.toFixed(2),
305
+ 'X-Spam-Status': `Yes, score=${scanResult.score.toFixed(2)}${scanResult.details ? ` tests=${scanResult.details}` : ''}`,
306
+ },
307
+ scanResult,
308
+ };
309
+ case brightchain_lib_1.SpamClassification.Ham:
310
+ default:
311
+ // Ham: accept without modification
312
+ return {
313
+ action: 'accept',
314
+ addHeaders: {
315
+ 'X-Spam-Flag': 'NO',
316
+ 'X-Spam-Score': scanResult.score.toFixed(2),
317
+ 'X-Spam-Status': `No, score=${scanResult.score.toFixed(2)}${scanResult.details ? ` tests=${scanResult.details}` : ''}`,
318
+ },
319
+ scanResult,
320
+ };
321
+ }
322
+ }
323
+ }
324
+ exports.AntiSpamFilter = AntiSpamFilter;
325
+ //# sourceMappingURL=antiSpamFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antiSpamFilter.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/services/emailGateway/antiSpamFilter.ts"],"names":[],"mappings":"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"}