ts-mailkit 1.1.0 → 2.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.
- package/README.md +42 -42
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/index.cjs +655 -856
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +636 -811
- package/dist/index.js.map +1 -1
- package/dist/renderers/default/default-renderer.d.ts.map +1 -1
- package/dist/templates/factory.d.ts +0 -60
- package/dist/templates/factory.d.ts.map +1 -1
- package/dist/transports/console/console-sender.d.ts.map +1 -1
- package/dist/transports/memory/memory-sender.d.ts.map +1 -1
- package/dist/transports/zeptomail/zeptomail-sender.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -72,11 +72,11 @@ const mailer = createMailKit({
|
|
|
72
72
|
|
|
73
73
|
```ts
|
|
74
74
|
// 1. Create a strongly typed email verification DTO
|
|
75
|
-
const verificationEmail = EmailTemplateFactory.createEmailVerification(
|
|
76
|
-
'Alex',
|
|
77
|
-
'https://app.example.com/verify?token=xyz123',
|
|
78
|
-
'482910'
|
|
79
|
-
);
|
|
75
|
+
const verificationEmail = EmailTemplateFactory.createEmailVerification({
|
|
76
|
+
username: 'Alex',
|
|
77
|
+
verificationUrl: 'https://app.example.com/verify?token=xyz123',
|
|
78
|
+
otp: '482910',
|
|
79
|
+
});
|
|
80
80
|
|
|
81
81
|
// 2. Dispatch via MailKit
|
|
82
82
|
await mailer.send({
|
|
@@ -97,41 +97,41 @@ await mailer.send({
|
|
|
97
97
|
import { EmailTemplateFactory } from 'ts-mailkit';
|
|
98
98
|
|
|
99
99
|
// Email Verification with OTP
|
|
100
|
-
const verifyDto = EmailTemplateFactory.createEmailVerification(
|
|
101
|
-
'Jordan',
|
|
102
|
-
'https://app.com/verify?token=abc',
|
|
103
|
-
'123456'
|
|
104
|
-
);
|
|
100
|
+
const verifyDto = EmailTemplateFactory.createEmailVerification({
|
|
101
|
+
username: 'Jordan',
|
|
102
|
+
verificationUrl: 'https://app.com/verify?token=abc',
|
|
103
|
+
otp: '123456',
|
|
104
|
+
});
|
|
105
105
|
|
|
106
106
|
// Password Reset
|
|
107
|
-
const resetDto = EmailTemplateFactory.createPasswordReset(
|
|
108
|
-
'Jordan',
|
|
109
|
-
'https://app.com/reset?token=abc',
|
|
110
|
-
'654321'
|
|
111
|
-
);
|
|
107
|
+
const resetDto = EmailTemplateFactory.createPasswordReset({
|
|
108
|
+
username: 'Jordan',
|
|
109
|
+
resetUrl: 'https://app.com/reset?token=abc',
|
|
110
|
+
otp: '654321',
|
|
111
|
+
});
|
|
112
112
|
|
|
113
113
|
// Two-Factor Authentication (2FA)
|
|
114
|
-
const twoFactorDto = EmailTemplateFactory.create2FAEmail(
|
|
115
|
-
'Jordan',
|
|
116
|
-
'987654',
|
|
117
|
-
'https://app.com/2fa/magic?token=abc'
|
|
118
|
-
);
|
|
114
|
+
const twoFactorDto = EmailTemplateFactory.create2FAEmail({
|
|
115
|
+
username: 'Jordan',
|
|
116
|
+
otp: '987654',
|
|
117
|
+
magicLink: 'https://app.com/2fa/magic?token=abc',
|
|
118
|
+
});
|
|
119
119
|
|
|
120
120
|
// Magic Link Sign-in
|
|
121
|
-
const magicLinkDto = EmailTemplateFactory.createMagicLinkEmail(
|
|
122
|
-
'Jordan',
|
|
123
|
-
'https://app.com/auth/magic?token=abc'
|
|
124
|
-
);
|
|
121
|
+
const magicLinkDto = EmailTemplateFactory.createMagicLinkEmail({
|
|
122
|
+
username: 'Jordan',
|
|
123
|
+
magicLink: 'https://app.com/auth/magic?token=abc',
|
|
124
|
+
});
|
|
125
125
|
|
|
126
126
|
// Newsletter / Announcement
|
|
127
|
-
const newsDto = EmailTemplateFactory.createNewsLetter(
|
|
128
|
-
'Product Update - Fall 2026',
|
|
129
|
-
'Introducing New Features',
|
|
130
|
-
'Here is what our team shipped this month.',
|
|
131
|
-
'https://cdn.example.com/hero.png',
|
|
132
|
-
'https://app.com/blog/update',
|
|
133
|
-
'Read Release Notes'
|
|
134
|
-
);
|
|
127
|
+
const newsDto = EmailTemplateFactory.createNewsLetter({
|
|
128
|
+
subject: 'Product Update - Fall 2026',
|
|
129
|
+
header: 'Introducing New Features',
|
|
130
|
+
body: 'Here is what our team shipped this month.',
|
|
131
|
+
imageUrl: 'https://cdn.example.com/hero.png',
|
|
132
|
+
actionUrl: 'https://app.com/blog/update',
|
|
133
|
+
actionText: 'Read Release Notes',
|
|
134
|
+
});
|
|
135
135
|
```
|
|
136
136
|
|
|
137
137
|
### 2. Custom Branding & Multi-tenancy
|
|
@@ -146,11 +146,11 @@ const tenantFactory = new EmailTemplateFactory({
|
|
|
146
146
|
footer: (brand) => `© ${new Date().getFullYear()} ${brand}. Authorized educational portal.`,
|
|
147
147
|
});
|
|
148
148
|
|
|
149
|
-
const studentEmail = tenantFactory.createEmailVerification(
|
|
150
|
-
'Student',
|
|
151
|
-
'https://school.edu/verify',
|
|
152
|
-
'554433'
|
|
153
|
-
);
|
|
149
|
+
const studentEmail = tenantFactory.createEmailVerification({
|
|
150
|
+
username: 'Student',
|
|
151
|
+
verificationUrl: 'https://school.edu/verify',
|
|
152
|
+
otp: '554433',
|
|
153
|
+
});
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
Or pass a dynamic tenant resolver to `MailKit`:
|
|
@@ -184,11 +184,11 @@ describe('User Registration Email', () => {
|
|
|
184
184
|
});
|
|
185
185
|
|
|
186
186
|
it('sends verification code to the registered user', async () => {
|
|
187
|
-
const dto = EmailTemplateFactory.createEmailVerification(
|
|
188
|
-
'Sam',
|
|
189
|
-
'https://app.com/verify?token=123',
|
|
190
|
-
'889900'
|
|
191
|
-
);
|
|
187
|
+
const dto = EmailTemplateFactory.createEmailVerification({
|
|
188
|
+
username: 'Sam',
|
|
189
|
+
verificationUrl: 'https://app.com/verify?token=123',
|
|
190
|
+
otp: '889900',
|
|
191
|
+
});
|
|
192
192
|
|
|
193
193
|
await mailer.send({ to: 'sam@example.com', template: dto });
|
|
194
194
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,EAAE,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC5B;;OAEG;IACH,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAiC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,EAAE,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC5B;;OAEG;IACH,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAiC;IAEpE,YAAY,OAAO,EAAE,cAAc,EASlC;IAED;;OAEG;IACH,YAAY,IAAI,YAAY,CAE3B;IAED;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAE/D;IAED;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8C5D;IAED;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAQ3D;CACF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAE9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB,YACE,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,EASF;CACF;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF"}
|