@rudderjs/mail 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/doctor.d.ts +2 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +85 -0
- package/dist/doctor.js.map +1 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -8
- package/dist/index.js.map +1 -1
- package/package.json +9 -4
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":""}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Doctor checks contributed by @rudderjs/mail.
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import net from 'node:net';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { registerDoctorCheck } from '@rudderjs/console';
|
|
6
|
+
function readFileSafe(rel) {
|
|
7
|
+
try {
|
|
8
|
+
return fs.readFileSync(path.join(process.cwd(), rel), 'utf-8');
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
// Pull SMTP host/port from .env hints or config/mail.ts. We deliberately
|
|
15
|
+
// don't import the user's config — the doctor fast-path stays boot-free
|
|
16
|
+
// and the user's config might pull peer modules that aren't installed.
|
|
17
|
+
function inferSmtp() {
|
|
18
|
+
const envHost = process.env['MAIL_HOST'] ?? process.env['SMTP_HOST'];
|
|
19
|
+
const envPort = process.env['MAIL_PORT'] ?? process.env['SMTP_PORT'];
|
|
20
|
+
if (envHost) {
|
|
21
|
+
const out = { host: envHost };
|
|
22
|
+
if (envPort) {
|
|
23
|
+
const p = Number(envPort);
|
|
24
|
+
if (!Number.isNaN(p))
|
|
25
|
+
out.port = p;
|
|
26
|
+
}
|
|
27
|
+
return out;
|
|
28
|
+
}
|
|
29
|
+
const text = readFileSafe('config/mail.ts') ?? readFileSafe('config/mail.js') ?? '';
|
|
30
|
+
const hostLit = /MAIL_HOST['"]?\s*,\s*['"]([^'"]+)['"]/.exec(text)?.[1]
|
|
31
|
+
?? /host\s*:\s*['"]([^'"]+)['"]/.exec(text)?.[1];
|
|
32
|
+
const portLit = /MAIL_PORT['"]?\s*,\s*['"]?(\d+)/.exec(text)?.[1]
|
|
33
|
+
?? /port\s*:\s*(\d+)/.exec(text)?.[1];
|
|
34
|
+
if (!hostLit)
|
|
35
|
+
return null;
|
|
36
|
+
const out = { host: hostLit };
|
|
37
|
+
if (portLit)
|
|
38
|
+
out.port = Number(portLit);
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
registerDoctorCheck({
|
|
42
|
+
id: 'mail:smtp-connect',
|
|
43
|
+
category: 'runtime',
|
|
44
|
+
title: 'Mail SMTP host',
|
|
45
|
+
needsBoot: true,
|
|
46
|
+
run() {
|
|
47
|
+
const hint = inferSmtp();
|
|
48
|
+
if (!hint || !hint.host) {
|
|
49
|
+
return Promise.resolve({ status: 'ok', message: 'no SMTP host configured — skip' });
|
|
50
|
+
}
|
|
51
|
+
// Skip the local sink that nodemailer uses for tests / preview mode
|
|
52
|
+
if (/^(127\.0\.0\.1|localhost|0\.0\.0\.0)$/.test(hint.host) && (hint.port ?? 587) > 1024 && (hint.port ?? 587) < 2000) {
|
|
53
|
+
// Likely a local mailpit / mailhog / preview — still try, just don't be loud
|
|
54
|
+
}
|
|
55
|
+
const host = hint.host;
|
|
56
|
+
const port = hint.port ?? 587;
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
const t0 = performance.now();
|
|
59
|
+
const socket = new net.Socket();
|
|
60
|
+
socket.setTimeout(2000);
|
|
61
|
+
socket.once('connect', () => {
|
|
62
|
+
const ms = Math.round(performance.now() - t0);
|
|
63
|
+
socket.destroy();
|
|
64
|
+
resolve({ status: 'ok', message: `${host}:${port} reachable in ${ms}ms` });
|
|
65
|
+
});
|
|
66
|
+
socket.once('timeout', () => {
|
|
67
|
+
socket.destroy();
|
|
68
|
+
resolve({
|
|
69
|
+
status: 'warn',
|
|
70
|
+
message: `${host}:${port} timed out after 2s`,
|
|
71
|
+
fix: `Verify the SMTP host is reachable from this machine (firewall, VPN, or wrong credentials)`,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
socket.once('error', (err) => {
|
|
75
|
+
resolve({
|
|
76
|
+
status: 'error',
|
|
77
|
+
message: `${host}:${port} ${err.code ?? err.message}`,
|
|
78
|
+
fix: `Verify MAIL_HOST/MAIL_PORT in .env. ${err.code === 'ENOTFOUND' ? 'DNS lookup failed.' : err.code === 'ECONNREFUSED' ? 'Nothing listening on that port.' : ''}`,
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
socket.connect(port, host);
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,8 +18,6 @@ export interface MailAdapterProvider {
|
|
|
18
18
|
create(): MailAdapter;
|
|
19
19
|
}
|
|
20
20
|
export declare class MailRegistry {
|
|
21
|
-
private static adapter;
|
|
22
|
-
private static _from;
|
|
23
21
|
static set(adapter: MailAdapter): void;
|
|
24
22
|
static get(): MailAdapter | null;
|
|
25
23
|
static setFrom(from: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAI,MAAM,EAAE,CAAA;IACd,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,EAAE,CAAC,EAAG,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,WAAW,CAAA;CACtB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,17 +2,37 @@ import { ServiceProvider, config } from '@rudderjs/core';
|
|
|
2
2
|
import { isNodemailerConfig, nodemailer } from './nodemailer-adapter.js';
|
|
3
3
|
export { Mailable } from './mailable.js';
|
|
4
4
|
// ─── Mail Registry ─────────────────────────────────────────
|
|
5
|
+
/**
|
|
6
|
+
* Shared singleton store routed through `globalThis` so the registry survives
|
|
7
|
+
* the case where `@rudderjs/mail` is loaded twice — typical in a Vite-bundled
|
|
8
|
+
* server where the framework bundles `@rudderjs/mail` inline (`Mail.to(...).send()`
|
|
9
|
+
* reads `MailRegistry`), but driver packages (`nodemailer`-backed adapters and
|
|
10
|
+
* future SMTP/SES drivers) and `MailProvider.boot()` itself are externalized
|
|
11
|
+
* via the provider auto-discovery manifest. Without a shared store, `set()`
|
|
12
|
+
* from the externalized copy would land on a different class than the one
|
|
13
|
+
* `Mail.*` reads from inside the bundle, producing a misleading
|
|
14
|
+
* `No mail adapter registered` error on every send in prod. Same pattern as
|
|
15
|
+
* PR #498 (`@rudderjs/orm` `ModelRegistry`), PR #500 (`@rudderjs/pennant`),
|
|
16
|
+
* PR #501 (`@rudderjs/cache`), and PR #502 (`@rudderjs/queue`).
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_FROM = { address: 'noreply@example.com' };
|
|
19
|
+
const _g = globalThis;
|
|
20
|
+
if (!_g['__rudderjs_mail_registry__']) {
|
|
21
|
+
_g['__rudderjs_mail_registry__'] = {
|
|
22
|
+
adapter: null,
|
|
23
|
+
from: { ...DEFAULT_FROM },
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const _store = _g['__rudderjs_mail_registry__'];
|
|
5
27
|
export class MailRegistry {
|
|
6
|
-
static adapter =
|
|
7
|
-
static
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static setFrom(from) { this._from = { ...from }; }
|
|
11
|
-
static getFrom() { return { ...this._from }; }
|
|
28
|
+
static set(adapter) { _store.adapter = adapter; }
|
|
29
|
+
static get() { return _store.adapter; }
|
|
30
|
+
static setFrom(from) { _store.from = { ...from }; }
|
|
31
|
+
static getFrom() { return { ..._store.from }; }
|
|
12
32
|
/** @internal — clears the registered adapter and resets from. Used for testing. */
|
|
13
33
|
static reset() {
|
|
14
|
-
|
|
15
|
-
|
|
34
|
+
_store.adapter = null;
|
|
35
|
+
_store.from = { ...DEFAULT_FROM };
|
|
16
36
|
}
|
|
17
37
|
}
|
|
18
38
|
// ─── Pending Send (fluent builder) ─────────────────────────
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGxD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAoBxC,8DAA8D;AAE9D,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/mail",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"rudderjs": {
|
|
5
5
|
"provider": "MailProvider",
|
|
6
6
|
"stage": "feature"
|
|
@@ -25,10 +25,15 @@
|
|
|
25
25
|
".": {
|
|
26
26
|
"import": "./dist/index.js",
|
|
27
27
|
"types": "./dist/index.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./doctor": {
|
|
30
|
+
"import": "./dist/doctor.js",
|
|
31
|
+
"types": "./dist/doctor.d.ts"
|
|
28
32
|
}
|
|
29
33
|
},
|
|
30
34
|
"dependencies": {
|
|
31
|
-
"@rudderjs/
|
|
35
|
+
"@rudderjs/console": "^1.1.0",
|
|
36
|
+
"@rudderjs/core": "^1.1.7"
|
|
32
37
|
},
|
|
33
38
|
"optionalDependencies": {
|
|
34
39
|
"nodemailer": "^6.9.0"
|
|
@@ -36,7 +41,7 @@
|
|
|
36
41
|
"devDependencies": {
|
|
37
42
|
"@types/node": "^20.0.0",
|
|
38
43
|
"typescript": "^5.4.0",
|
|
39
|
-
"@rudderjs/queue": "4.1.
|
|
44
|
+
"@rudderjs/queue": "4.1.5"
|
|
40
45
|
},
|
|
41
46
|
"author": "Suleiman Shahbari",
|
|
42
47
|
"scripts": {
|
|
@@ -44,7 +49,7 @@
|
|
|
44
49
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
45
50
|
"typecheck": "tsc --noEmit",
|
|
46
51
|
"lint": "eslint src",
|
|
47
|
-
"test": "tsc -p tsconfig.test.json && node --experimental-test-module-mocks --test
|
|
52
|
+
"test": "tsc -p tsconfig.test.json && cd dist-test && node --experimental-test-module-mocks --test",
|
|
48
53
|
"clean": "rm -rf dist"
|
|
49
54
|
}
|
|
50
55
|
}
|