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 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;gBAExD,OAAO,EAAE,cAAc;IAWnC;;OAEG;IACH,YAAY,IAAI,YAAY;IAI5B;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhE;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgD7D;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;CAS7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAE9D"}
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;gBACzB,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,OAAO,EAAE,MAAM;CAK5B;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;gBAGvB,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;CAUJ;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBACjC,OAAO,EAAE,MAAM;CAK5B"}
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"}