@beignet/provider-mail-smtp 0.0.1 → 0.0.2
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/CHANGELOG.md +11 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +43 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @beignet/provider-mail-smtp
|
|
2
2
|
|
|
3
|
+
## 0.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [90b29ad]
|
|
8
|
+
- Updated dependencies [07fa19c]
|
|
9
|
+
- Updated dependencies [08bae67]
|
|
10
|
+
- Updated dependencies [730a818]
|
|
11
|
+
- Updated dependencies [a79f60c]
|
|
12
|
+
- @beignet/core@0.0.2
|
|
13
|
+
|
|
3
14
|
## 0.0.1
|
|
4
15
|
|
|
5
16
|
- Initial Beignet release under the `@beignet` npm scope.
|
package/dist/index.d.ts
CHANGED
|
@@ -14,20 +14,63 @@ declare const MailConfigSchema: z.ZodObject<{
|
|
|
14
14
|
PASS: z.ZodString;
|
|
15
15
|
FROM: z.ZodString;
|
|
16
16
|
}, z.core.$strip>;
|
|
17
|
+
/**
|
|
18
|
+
* SMTP provider config loaded from `MAIL_*` env vars.
|
|
19
|
+
*/
|
|
17
20
|
export type MailConfig = z.infer<typeof MailConfigSchema>;
|
|
21
|
+
/**
|
|
22
|
+
* Escape hatch for apps that need the raw Nodemailer transporter.
|
|
23
|
+
*/
|
|
18
24
|
export interface SmtpMailEscapeHatch {
|
|
25
|
+
/**
|
|
26
|
+
* Raw Nodemailer transporter.
|
|
27
|
+
*/
|
|
19
28
|
transporter: Transporter;
|
|
20
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Ports contributed by `mailSmtpProvider`.
|
|
32
|
+
*/
|
|
21
33
|
export interface SmtpMailProviderPorts {
|
|
34
|
+
/**
|
|
35
|
+
* Beignet mailer port backed by SMTP.
|
|
36
|
+
*/
|
|
22
37
|
mailer: MailerPort;
|
|
38
|
+
/**
|
|
39
|
+
* Raw SMTP transporter escape hatch.
|
|
40
|
+
*/
|
|
23
41
|
smtp: SmtpMailEscapeHatch;
|
|
24
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Options for creating an SMTP-backed mailer directly.
|
|
45
|
+
*/
|
|
25
46
|
export interface CreateSmtpMailerOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Raw Nodemailer transporter.
|
|
49
|
+
*/
|
|
26
50
|
transporter: Transporter;
|
|
51
|
+
/**
|
|
52
|
+
* Default sender address.
|
|
53
|
+
*/
|
|
27
54
|
from: MailAddress;
|
|
55
|
+
/**
|
|
56
|
+
* Optional provider instrumentation target.
|
|
57
|
+
*/
|
|
28
58
|
instrumentation?: ProviderInstrumentationTarget;
|
|
29
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Create a Beignet mailer port backed by Nodemailer SMTP.
|
|
62
|
+
*
|
|
63
|
+
* Use this directly for custom wiring, or install `mailSmtpProvider` to load
|
|
64
|
+
* config from env and contribute ports during server startup.
|
|
65
|
+
*/
|
|
30
66
|
export declare function createSmtpMailer({ transporter, from, instrumentation: instrumentationTarget, }: CreateSmtpMailerOptions): MailerPort;
|
|
67
|
+
/**
|
|
68
|
+
* Env-backed SMTP mail provider.
|
|
69
|
+
*
|
|
70
|
+
* Reads `MAIL_HOST`, `MAIL_PORT`, `MAIL_USER`, `MAIL_PASS`, and `MAIL_FROM`,
|
|
71
|
+
* verifies the transporter during setup, contributes `ports.mailer`, and
|
|
72
|
+
* exposes `ports.smtp.transporter` as an escape hatch.
|
|
73
|
+
*/
|
|
31
74
|
export declare const mailSmtpProvider: import("@beignet/core/providers").ServiceProvider<unknown, z.ZodObject<{
|
|
32
75
|
HOST: z.ZodString;
|
|
33
76
|
PORT: z.ZodCoercedNumber<unknown>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,UAAU,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,gBAAgB;;;;;;iBAMpB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACjD;AAoDD,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,IAAI,EACJ,eAAe,EAAE,qBAAqB,GACvC,EAAE,uBAAuB,GAAG,UAAU,CAqEtC;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;EAwD3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,UAAU,EAIhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,gBAAgB;;;;;;iBAMpB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACjD;AAoDD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,IAAI,EACJ,eAAe,EAAE,qBAAqB,GACvC,EAAE,uBAAuB,GAAG,UAAU,CAqEtC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;EAwD3B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -40,6 +40,12 @@ function createSmtpPayload(message, defaultFrom) {
|
|
|
40
40
|
addOptional(payload, "headers", normalized.headers);
|
|
41
41
|
return payload;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a Beignet mailer port backed by Nodemailer SMTP.
|
|
45
|
+
*
|
|
46
|
+
* Use this directly for custom wiring, or install `mailSmtpProvider` to load
|
|
47
|
+
* config from env and contribute ports during server startup.
|
|
48
|
+
*/
|
|
43
49
|
export function createSmtpMailer({ transporter, from, instrumentation: instrumentationTarget, }) {
|
|
44
50
|
const instrumentation = createProviderInstrumentation(instrumentationTarget, {
|
|
45
51
|
providerName: "mail-smtp",
|
|
@@ -105,6 +111,13 @@ export function createSmtpMailer({ transporter, from, instrumentation: instrumen
|
|
|
105
111
|
},
|
|
106
112
|
};
|
|
107
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Env-backed SMTP mail provider.
|
|
116
|
+
*
|
|
117
|
+
* Reads `MAIL_HOST`, `MAIL_PORT`, `MAIL_USER`, `MAIL_PASS`, and `MAIL_FROM`,
|
|
118
|
+
* verifies the transporter during setup, contributes `ports.mailer`, and
|
|
119
|
+
* exposes `ports.smtp.transporter` as an escape hatch.
|
|
120
|
+
*/
|
|
108
121
|
export const mailSmtpProvider = createProvider({
|
|
109
122
|
name: "mail-smtp",
|
|
110
123
|
config: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EAErB,iBAAiB,EAEjB,oBAAoB,GAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,6BAA6B,GAE9B,MAAM,yBAAyB,CAAC;AAKjC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -34,20 +34,50 @@ const MailConfigSchema = z.object({
|
|
|
34
34
|
FROM: z.string().min(1),
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* SMTP provider config loaded from `MAIL_*` env vars.
|
|
39
|
+
*/
|
|
37
40
|
export type MailConfig = z.infer<typeof MailConfigSchema>;
|
|
38
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Escape hatch for apps that need the raw Nodemailer transporter.
|
|
44
|
+
*/
|
|
39
45
|
export interface SmtpMailEscapeHatch {
|
|
46
|
+
/**
|
|
47
|
+
* Raw Nodemailer transporter.
|
|
48
|
+
*/
|
|
40
49
|
transporter: Transporter;
|
|
41
50
|
}
|
|
42
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Ports contributed by `mailSmtpProvider`.
|
|
54
|
+
*/
|
|
43
55
|
export interface SmtpMailProviderPorts {
|
|
56
|
+
/**
|
|
57
|
+
* Beignet mailer port backed by SMTP.
|
|
58
|
+
*/
|
|
44
59
|
mailer: MailerPort;
|
|
60
|
+
/**
|
|
61
|
+
* Raw SMTP transporter escape hatch.
|
|
62
|
+
*/
|
|
45
63
|
smtp: SmtpMailEscapeHatch;
|
|
46
64
|
}
|
|
47
65
|
|
|
66
|
+
/**
|
|
67
|
+
* Options for creating an SMTP-backed mailer directly.
|
|
68
|
+
*/
|
|
48
69
|
export interface CreateSmtpMailerOptions {
|
|
70
|
+
/**
|
|
71
|
+
* Raw Nodemailer transporter.
|
|
72
|
+
*/
|
|
49
73
|
transporter: Transporter;
|
|
74
|
+
/**
|
|
75
|
+
* Default sender address.
|
|
76
|
+
*/
|
|
50
77
|
from: MailAddress;
|
|
78
|
+
/**
|
|
79
|
+
* Optional provider instrumentation target.
|
|
80
|
+
*/
|
|
51
81
|
instrumentation?: ProviderInstrumentationTarget;
|
|
52
82
|
}
|
|
53
83
|
|
|
@@ -101,6 +131,12 @@ function createSmtpPayload(
|
|
|
101
131
|
return payload;
|
|
102
132
|
}
|
|
103
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Create a Beignet mailer port backed by Nodemailer SMTP.
|
|
136
|
+
*
|
|
137
|
+
* Use this directly for custom wiring, or install `mailSmtpProvider` to load
|
|
138
|
+
* config from env and contribute ports during server startup.
|
|
139
|
+
*/
|
|
104
140
|
export function createSmtpMailer({
|
|
105
141
|
transporter,
|
|
106
142
|
from,
|
|
@@ -176,6 +212,13 @@ export function createSmtpMailer({
|
|
|
176
212
|
};
|
|
177
213
|
}
|
|
178
214
|
|
|
215
|
+
/**
|
|
216
|
+
* Env-backed SMTP mail provider.
|
|
217
|
+
*
|
|
218
|
+
* Reads `MAIL_HOST`, `MAIL_PORT`, `MAIL_USER`, `MAIL_PASS`, and `MAIL_FROM`,
|
|
219
|
+
* verifies the transporter during setup, contributes `ports.mailer`, and
|
|
220
|
+
* exposes `ports.smtp.transporter` as an escape hatch.
|
|
221
|
+
*/
|
|
179
222
|
export const mailSmtpProvider = createProvider({
|
|
180
223
|
name: "mail-smtp",
|
|
181
224
|
|