hazo_notify 1.0.2 → 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/README.md +1 -5
- package/data/templates/email_signature.html +11 -0
- package/data/templates/email_signature.txt +4 -0
- package/data/templates/email_verification.html +64 -0
- package/data/templates/email_verification.txt +11 -0
- package/data/templates/forgot_password.html +64 -0
- package/data/templates/forgot_password.txt +11 -0
- package/data/templates/manifest.json +86 -0
- package/data/templates/welcome_email.html +54 -0
- package/data/templates/welcome_email.txt +8 -0
- package/dist/emailer/emailer.d.ts +1 -1
- package/dist/emailer/emailer.d.ts.map +1 -1
- package/dist/emailer/emailer.js +19 -9
- package/dist/emailer/emailer.js.map +1 -1
- package/dist/emailer/index.d.ts +1 -0
- package/dist/emailer/index.d.ts.map +1 -1
- package/dist/emailer/index.js +5 -1
- package/dist/emailer/index.js.map +1 -1
- package/dist/emailer/providers/pop3_provider.d.ts +3 -2
- package/dist/emailer/providers/pop3_provider.d.ts.map +1 -1
- package/dist/emailer/providers/pop3_provider.js +2 -1
- package/dist/emailer/providers/pop3_provider.js.map +1 -1
- package/dist/emailer/providers/smtp_provider.d.ts +3 -2
- package/dist/emailer/providers/smtp_provider.d.ts.map +1 -1
- package/dist/emailer/providers/smtp_provider.js +2 -1
- package/dist/emailer/providers/smtp_provider.js.map +1 -1
- package/dist/emailer/providers/zeptomail_provider.d.ts +3 -2
- package/dist/emailer/providers/zeptomail_provider.d.ts.map +1 -1
- package/dist/emailer/providers/zeptomail_provider.js +24 -11
- package/dist/emailer/providers/zeptomail_provider.js.map +1 -1
- package/dist/emailer/types.d.ts +13 -1
- package/dist/emailer/types.d.ts.map +1 -1
- package/dist/emailer/utils/logger.d.ts +22 -14
- package/dist/emailer/utils/logger.d.ts.map +1 -1
- package/dist/emailer/utils/logger.js +51 -13
- package/dist/emailer/utils/logger.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/template_manager/config/config_loader.d.ts +48 -0
- package/dist/template_manager/config/config_loader.d.ts.map +1 -0
- package/dist/template_manager/config/config_loader.js +161 -0
- package/dist/template_manager/config/config_loader.js.map +1 -0
- package/dist/template_manager/config/constants.d.ts +101 -0
- package/dist/template_manager/config/constants.d.ts.map +1 -0
- package/dist/template_manager/config/constants.js +163 -0
- package/dist/template_manager/config/constants.js.map +1 -0
- package/dist/template_manager/config/index.d.ts +6 -0
- package/dist/template_manager/config/index.d.ts.map +1 -0
- package/dist/{lib/emailer/utils → template_manager/config}/index.js +4 -4
- package/dist/template_manager/config/index.js.map +1 -0
- package/dist/template_manager/db/category_repository.d.ts +57 -0
- package/dist/template_manager/db/category_repository.d.ts.map +1 -0
- package/dist/template_manager/db/category_repository.js +326 -0
- package/dist/template_manager/db/category_repository.js.map +1 -0
- package/dist/template_manager/db/index.d.ts +6 -0
- package/dist/template_manager/db/index.d.ts.map +1 -0
- package/dist/template_manager/db/index.js +23 -0
- package/dist/template_manager/db/index.js.map +1 -0
- package/dist/template_manager/db/template_repository.d.ts +76 -0
- package/dist/template_manager/db/template_repository.d.ts.map +1 -0
- package/dist/template_manager/db/template_repository.js +684 -0
- package/dist/template_manager/db/template_repository.js.map +1 -0
- package/dist/template_manager/engine/handlebars_engine.d.ts +52 -0
- package/dist/template_manager/engine/handlebars_engine.d.ts.map +1 -0
- package/dist/template_manager/engine/handlebars_engine.js +175 -0
- package/dist/template_manager/engine/handlebars_engine.js.map +1 -0
- package/dist/template_manager/engine/index.d.ts +6 -0
- package/dist/template_manager/engine/index.d.ts.map +1 -0
- package/dist/template_manager/engine/index.js +19 -0
- package/dist/template_manager/engine/index.js.map +1 -0
- package/dist/template_manager/engine/variable_resolver.d.ts +48 -0
- package/dist/template_manager/engine/variable_resolver.d.ts.map +1 -0
- package/dist/template_manager/engine/variable_resolver.js +223 -0
- package/dist/template_manager/engine/variable_resolver.js.map +1 -0
- package/dist/template_manager/index.d.ts +32 -0
- package/dist/template_manager/index.d.ts.map +1 -0
- package/dist/template_manager/index.js +88 -0
- package/dist/template_manager/index.js.map +1 -0
- package/dist/template_manager/template_manager.d.ts +69 -0
- package/dist/template_manager/template_manager.d.ts.map +1 -0
- package/dist/template_manager/template_manager.js +335 -0
- package/dist/template_manager/template_manager.js.map +1 -0
- package/dist/template_manager/types.d.ts +255 -0
- package/dist/template_manager/types.d.ts.map +1 -0
- package/dist/template_manager/types.js +12 -0
- package/dist/template_manager/types.js.map +1 -0
- package/dist/template_manager/utils/index.d.ts +6 -0
- package/dist/template_manager/utils/index.d.ts.map +1 -0
- package/dist/template_manager/utils/index.js +21 -0
- package/dist/template_manager/utils/index.js.map +1 -0
- package/dist/template_manager/utils/system_variables.d.ts +28 -0
- package/dist/template_manager/utils/system_variables.d.ts.map +1 -0
- package/dist/template_manager/utils/system_variables.js +209 -0
- package/dist/template_manager/utils/system_variables.js.map +1 -0
- package/dist/template_manager/utils/validation.d.ts +74 -0
- package/dist/template_manager/utils/validation.d.ts.map +1 -0
- package/dist/template_manager/utils/validation.js +163 -0
- package/dist/template_manager/utils/validation.js.map +1 -0
- package/hazo_notify_config.ini +39 -0
- package/package.json +69 -21
- package/dist/lib/emailer/emailer.d.ts +0 -19
- package/dist/lib/emailer/emailer.d.ts.map +0 -1
- package/dist/lib/emailer/emailer.js +0 -220
- package/dist/lib/emailer/emailer.js.map +0 -1
- package/dist/lib/emailer/index.d.ts +0 -11
- package/dist/lib/emailer/index.d.ts.map +0 -1
- package/dist/lib/emailer/index.js +0 -34
- package/dist/lib/emailer/index.js.map +0 -1
- package/dist/lib/emailer/providers/index.d.ts +0 -15
- package/dist/lib/emailer/providers/index.d.ts.map +0 -1
- package/dist/lib/emailer/providers/index.js +0 -36
- package/dist/lib/emailer/providers/index.js.map +0 -1
- package/dist/lib/emailer/providers/pop3_provider.d.ts +0 -15
- package/dist/lib/emailer/providers/pop3_provider.d.ts.map +0 -1
- package/dist/lib/emailer/providers/pop3_provider.js +0 -29
- package/dist/lib/emailer/providers/pop3_provider.js.map +0 -1
- package/dist/lib/emailer/providers/smtp_provider.d.ts +0 -15
- package/dist/lib/emailer/providers/smtp_provider.d.ts.map +0 -1
- package/dist/lib/emailer/providers/smtp_provider.js +0 -29
- package/dist/lib/emailer/providers/smtp_provider.js.map +0 -1
- package/dist/lib/emailer/providers/zeptomail_provider.d.ts +0 -15
- package/dist/lib/emailer/providers/zeptomail_provider.d.ts.map +0 -1
- package/dist/lib/emailer/providers/zeptomail_provider.js +0 -250
- package/dist/lib/emailer/providers/zeptomail_provider.js.map +0 -1
- package/dist/lib/emailer/types.d.ts +0 -94
- package/dist/lib/emailer/types.d.ts.map +0 -1
- package/dist/lib/emailer/types.js +0 -6
- package/dist/lib/emailer/types.js.map +0 -1
- package/dist/lib/emailer/utils/constants.d.ts +0 -14
- package/dist/lib/emailer/utils/constants.d.ts.map +0 -1
- package/dist/lib/emailer/utils/constants.js +0 -22
- package/dist/lib/emailer/utils/constants.js.map +0 -1
- package/dist/lib/emailer/utils/index.d.ts +0 -8
- package/dist/lib/emailer/utils/index.d.ts.map +0 -1
- package/dist/lib/emailer/utils/index.js.map +0 -1
- package/dist/lib/emailer/utils/logger.d.ts +0 -37
- package/dist/lib/emailer/utils/logger.d.ts.map +0 -1
- package/dist/lib/emailer/utils/logger.js +0 -60
- package/dist/lib/emailer/utils/logger.js.map +0 -1
- package/dist/lib/emailer/utils/validation.d.ts +0 -37
- package/dist/lib/emailer/utils/validation.d.ts.map +0 -1
- package/dist/lib/emailer/utils/validation.js +0 -81
- package/dist/lib/emailer/utils/validation.js.map +0 -1
- package/dist/lib/index.d.ts +0 -6
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -22
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -9
- package/dist/lib/utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,11 +19,7 @@ A reusable component library for sending email notifications with support for mu
|
|
|
19
19
|
npm install hazo_notify
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npm install hazo_config
|
|
26
|
-
```
|
|
22
|
+
The package automatically installs required dependencies including `hazo_config` for configuration management and `isomorphic-dompurify` for HTML sanitization.
|
|
27
23
|
|
|
28
24
|
## Quick Start
|
|
29
25
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; margin-top: 24px; padding-top: 24px; border-top: 1px solid #e5e7eb;">
|
|
2
|
+
<table role="presentation" style="border-collapse: collapse;">
|
|
3
|
+
<tr>
|
|
4
|
+
<td style="padding: 0;">
|
|
5
|
+
<p style="margin: 0 0 4px 0; font-size: 16px; font-weight: 600; color: #1f2937;">{{sender_name}}</p>
|
|
6
|
+
<p style="margin: 0 0 4px 0; font-size: 14px; color: #6b7280;">{{sender_title}}</p>
|
|
7
|
+
<p style="margin: 0; font-size: 14px; color: #2563eb; font-weight: 500;">{{company_name}}</p>
|
|
8
|
+
</td>
|
|
9
|
+
</tr>
|
|
10
|
+
</table>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Verify Your Email</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f5f5f5;">
|
|
9
|
+
<table role="presentation" style="width: 100%; border-collapse: collapse;">
|
|
10
|
+
<tr>
|
|
11
|
+
<td style="padding: 40px 20px;">
|
|
12
|
+
<table role="presentation" style="max-width: 600px; margin: 0 auto; background-color: #ffffff; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);">
|
|
13
|
+
<tr>
|
|
14
|
+
<td style="padding: 40px;">
|
|
15
|
+
<h1 style="color: #2563eb; margin: 0 0 20px 0; font-size: 28px; font-weight: 600;">Verify Your Email Address</h1>
|
|
16
|
+
|
|
17
|
+
<p style="margin: 0 0 16px 0; font-size: 16px; color: #4b5563;">
|
|
18
|
+
Hi {{user_name}},
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p style="margin: 0 0 24px 0; font-size: 16px; color: #4b5563;">
|
|
22
|
+
Please click the button below to verify your email address and complete your registration:
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<table role="presentation" style="margin: 0 0 24px 0;">
|
|
26
|
+
<tr>
|
|
27
|
+
<td style="background-color: #16a34a; border-radius: 6px;">
|
|
28
|
+
<a href="{{verification_link}}" style="display: inline-block; padding: 14px 28px; color: #ffffff; text-decoration: none; font-size: 16px; font-weight: 500;">
|
|
29
|
+
Verify Email Address
|
|
30
|
+
</a>
|
|
31
|
+
</td>
|
|
32
|
+
</tr>
|
|
33
|
+
</table>
|
|
34
|
+
|
|
35
|
+
<p style="margin: 0 0 16px 0; font-size: 14px; color: #6b7280;">
|
|
36
|
+
If the button doesn't work, copy and paste this link into your browser:
|
|
37
|
+
</p>
|
|
38
|
+
<p style="margin: 0 0 24px 0; font-size: 14px; color: #2563eb; word-break: break-all;">
|
|
39
|
+
{{verification_link}}
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<table role="presentation" style="background-color: #fef3c7; border-radius: 6px; margin: 0 0 24px 0;">
|
|
43
|
+
<tr>
|
|
44
|
+
<td style="padding: 16px;">
|
|
45
|
+
<p style="margin: 0; font-size: 14px; color: #92400e;">
|
|
46
|
+
<strong>Note:</strong> This link will expire in {{expiry_hours}} hours.
|
|
47
|
+
</p>
|
|
48
|
+
</td>
|
|
49
|
+
</tr>
|
|
50
|
+
</table>
|
|
51
|
+
|
|
52
|
+
<hr style="border: none; border-top: 1px solid #e5e7eb; margin: 24px 0;">
|
|
53
|
+
|
|
54
|
+
<p style="margin: 0; font-size: 14px; color: #6b7280;">
|
|
55
|
+
If you didn't create an account, you can safely ignore this email.
|
|
56
|
+
</p>
|
|
57
|
+
</td>
|
|
58
|
+
</tr>
|
|
59
|
+
</table>
|
|
60
|
+
</td>
|
|
61
|
+
</tr>
|
|
62
|
+
</table>
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Verify Your Email Address
|
|
2
|
+
|
|
3
|
+
Hi {{user_name}},
|
|
4
|
+
|
|
5
|
+
Please click the link below to verify your email address and complete your registration:
|
|
6
|
+
|
|
7
|
+
{{verification_link}}
|
|
8
|
+
|
|
9
|
+
Note: This link will expire in {{expiry_hours}} hours.
|
|
10
|
+
|
|
11
|
+
If you didn't create an account, you can safely ignore this email.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Reset Your Password</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f5f5f5;">
|
|
9
|
+
<table role="presentation" style="width: 100%; border-collapse: collapse;">
|
|
10
|
+
<tr>
|
|
11
|
+
<td style="padding: 40px 20px;">
|
|
12
|
+
<table role="presentation" style="max-width: 600px; margin: 0 auto; background-color: #ffffff; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);">
|
|
13
|
+
<tr>
|
|
14
|
+
<td style="padding: 40px;">
|
|
15
|
+
<h1 style="color: #dc2626; margin: 0 0 20px 0; font-size: 28px; font-weight: 600;">Reset Your Password</h1>
|
|
16
|
+
|
|
17
|
+
<p style="margin: 0 0 16px 0; font-size: 16px; color: #4b5563;">
|
|
18
|
+
Hi {{user_name}},
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p style="margin: 0 0 24px 0; font-size: 16px; color: #4b5563;">
|
|
22
|
+
We received a request to reset your password. Click the button below to create a new password:
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<table role="presentation" style="margin: 0 0 24px 0;">
|
|
26
|
+
<tr>
|
|
27
|
+
<td style="background-color: #dc2626; border-radius: 6px;">
|
|
28
|
+
<a href="{{reset_link}}" style="display: inline-block; padding: 14px 28px; color: #ffffff; text-decoration: none; font-size: 16px; font-weight: 500;">
|
|
29
|
+
Reset Password
|
|
30
|
+
</a>
|
|
31
|
+
</td>
|
|
32
|
+
</tr>
|
|
33
|
+
</table>
|
|
34
|
+
|
|
35
|
+
<p style="margin: 0 0 16px 0; font-size: 14px; color: #6b7280;">
|
|
36
|
+
If the button doesn't work, copy and paste this link into your browser:
|
|
37
|
+
</p>
|
|
38
|
+
<p style="margin: 0 0 24px 0; font-size: 14px; color: #2563eb; word-break: break-all;">
|
|
39
|
+
{{reset_link}}
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<table role="presentation" style="background-color: #fef2f2; border-radius: 6px; margin: 0 0 24px 0;">
|
|
43
|
+
<tr>
|
|
44
|
+
<td style="padding: 16px;">
|
|
45
|
+
<p style="margin: 0; font-size: 14px; color: #991b1b;">
|
|
46
|
+
<strong>Important:</strong> This link will expire in {{expiry_minutes}} minutes for security reasons.
|
|
47
|
+
</p>
|
|
48
|
+
</td>
|
|
49
|
+
</tr>
|
|
50
|
+
</table>
|
|
51
|
+
|
|
52
|
+
<hr style="border: none; border-top: 1px solid #e5e7eb; margin: 24px 0;">
|
|
53
|
+
|
|
54
|
+
<p style="margin: 0; font-size: 14px; color: #6b7280;">
|
|
55
|
+
If you didn't request a password reset, please ignore this email or contact support if you have concerns about your account security.
|
|
56
|
+
</p>
|
|
57
|
+
</td>
|
|
58
|
+
</tr>
|
|
59
|
+
</table>
|
|
60
|
+
</td>
|
|
61
|
+
</tr>
|
|
62
|
+
</table>
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Reset Your Password
|
|
2
|
+
|
|
3
|
+
Hi {{user_name}},
|
|
4
|
+
|
|
5
|
+
We received a request to reset your password. Click the link below to create a new password:
|
|
6
|
+
|
|
7
|
+
{{reset_link}}
|
|
8
|
+
|
|
9
|
+
Important: This link will expire in {{expiry_minutes}} minutes for security reasons.
|
|
10
|
+
|
|
11
|
+
If you didn't request a password reset, please ignore this email or contact support if you have concerns about your account security.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"description": "Default email templates shipped with hazo_notify",
|
|
4
|
+
"templates": [
|
|
5
|
+
{
|
|
6
|
+
"template_name": "welcome_email",
|
|
7
|
+
"template_label": "Welcome Email",
|
|
8
|
+
"category": "System",
|
|
9
|
+
"html_file": "welcome_email.html",
|
|
10
|
+
"text_file": "welcome_email.txt",
|
|
11
|
+
"variables": [
|
|
12
|
+
{
|
|
13
|
+
"variable_name": "user_name",
|
|
14
|
+
"variable_description": "Recipient's full name"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"variable_name": "login_url",
|
|
18
|
+
"variable_description": "URL to login page"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"template_name": "email_verification",
|
|
24
|
+
"template_label": "Email Verification",
|
|
25
|
+
"category": "System",
|
|
26
|
+
"html_file": "email_verification.html",
|
|
27
|
+
"text_file": "email_verification.txt",
|
|
28
|
+
"variables": [
|
|
29
|
+
{
|
|
30
|
+
"variable_name": "user_name",
|
|
31
|
+
"variable_description": "Recipient's name"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"variable_name": "verification_link",
|
|
35
|
+
"variable_description": "Email verification URL"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"variable_name": "expiry_hours",
|
|
39
|
+
"variable_description": "Hours until link expires"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"template_name": "forgot_password",
|
|
45
|
+
"template_label": "Forgot Password",
|
|
46
|
+
"category": "System",
|
|
47
|
+
"html_file": "forgot_password.html",
|
|
48
|
+
"text_file": "forgot_password.txt",
|
|
49
|
+
"variables": [
|
|
50
|
+
{
|
|
51
|
+
"variable_name": "user_name",
|
|
52
|
+
"variable_description": "Recipient's name"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"variable_name": "reset_link",
|
|
56
|
+
"variable_description": "Password reset URL"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"variable_name": "expiry_minutes",
|
|
60
|
+
"variable_description": "Minutes until link expires"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"template_name": "email_signature",
|
|
66
|
+
"template_label": "Email Signature",
|
|
67
|
+
"category": "System",
|
|
68
|
+
"html_file": "email_signature.html",
|
|
69
|
+
"text_file": "email_signature.txt",
|
|
70
|
+
"variables": [
|
|
71
|
+
{
|
|
72
|
+
"variable_name": "sender_name",
|
|
73
|
+
"variable_description": "Sender's name"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"variable_name": "sender_title",
|
|
77
|
+
"variable_description": "Sender's job title"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"variable_name": "company_name",
|
|
81
|
+
"variable_description": "Company name"
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Welcome</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f5f5f5;">
|
|
9
|
+
<table role="presentation" style="width: 100%; border-collapse: collapse;">
|
|
10
|
+
<tr>
|
|
11
|
+
<td style="padding: 40px 20px;">
|
|
12
|
+
<table role="presentation" style="max-width: 600px; margin: 0 auto; background-color: #ffffff; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);">
|
|
13
|
+
<tr>
|
|
14
|
+
<td style="padding: 40px;">
|
|
15
|
+
<h1 style="color: #2563eb; margin: 0 0 20px 0; font-size: 28px; font-weight: 600;">Welcome, {{user_name}}!</h1>
|
|
16
|
+
|
|
17
|
+
<p style="margin: 0 0 16px 0; font-size: 16px; color: #4b5563;">
|
|
18
|
+
Thank you for joining us. We're excited to have you on board and can't wait to help you get started.
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p style="margin: 0 0 24px 0; font-size: 16px; color: #4b5563;">
|
|
22
|
+
To access your account, simply click the button below:
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<table role="presentation" style="margin: 0 0 24px 0;">
|
|
26
|
+
<tr>
|
|
27
|
+
<td style="background-color: #2563eb; border-radius: 6px;">
|
|
28
|
+
<a href="{{login_url}}" style="display: inline-block; padding: 14px 28px; color: #ffffff; text-decoration: none; font-size: 16px; font-weight: 500;">
|
|
29
|
+
Login to Your Account
|
|
30
|
+
</a>
|
|
31
|
+
</td>
|
|
32
|
+
</tr>
|
|
33
|
+
</table>
|
|
34
|
+
|
|
35
|
+
<p style="margin: 0 0 16px 0; font-size: 14px; color: #6b7280;">
|
|
36
|
+
If the button doesn't work, copy and paste this link into your browser:
|
|
37
|
+
</p>
|
|
38
|
+
<p style="margin: 0 0 24px 0; font-size: 14px; color: #2563eb; word-break: break-all;">
|
|
39
|
+
{{login_url}}
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<hr style="border: none; border-top: 1px solid #e5e7eb; margin: 24px 0;">
|
|
43
|
+
|
|
44
|
+
<p style="margin: 0; font-size: 14px; color: #6b7280;">
|
|
45
|
+
If you have any questions, feel free to reach out to our support team. We're here to help!
|
|
46
|
+
</p>
|
|
47
|
+
</td>
|
|
48
|
+
</tr>
|
|
49
|
+
</table>
|
|
50
|
+
</td>
|
|
51
|
+
</tr>
|
|
52
|
+
</table>
|
|
53
|
+
</body>
|
|
54
|
+
</html>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Welcome, {{user_name}}!
|
|
2
|
+
|
|
3
|
+
Thank you for joining us. We're excited to have you on board and can't wait to help you get started.
|
|
4
|
+
|
|
5
|
+
To access your account, visit:
|
|
6
|
+
{{login_url}}
|
|
7
|
+
|
|
8
|
+
If you have any questions, feel free to reach out to our support team. We're here to help!
|
|
@@ -11,7 +11,7 @@ import type { EmailerConfig, SendEmailOptions, EmailSendResponse } from './types
|
|
|
11
11
|
export declare function load_emailer_config(): EmailerConfig;
|
|
12
12
|
/**
|
|
13
13
|
* Send email using the configured provider
|
|
14
|
-
* @param options - Email send options
|
|
14
|
+
* @param options - Email send options (includes optional logger)
|
|
15
15
|
* @param config - Optional emailer configuration (if not provided, loads from config file)
|
|
16
16
|
* @returns Promise with email send response
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailer.d.ts","sourceRoot":"","sources":["../../src/lib/emailer/emailer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAC;AAEjG;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"emailer.d.ts","sourceRoot":"","sources":["../../src/lib/emailer/emailer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAC;AAEjG;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAwJnD;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CA0H5B"}
|
package/dist/emailer/emailer.js
CHANGED
|
@@ -113,20 +113,26 @@ function load_emailer_config() {
|
|
|
113
113
|
const error_message = error instanceof Error ? error.message : 'Failed to load emailer configuration';
|
|
114
114
|
const error_string = error instanceof Error ? error.toString() : String(error);
|
|
115
115
|
const stack = error instanceof Error ? error.stack : undefined;
|
|
116
|
-
|
|
116
|
+
// Use fallback logger for config loading errors
|
|
117
|
+
const logger = (0, logger_1.get_logger)();
|
|
118
|
+
logger.error(error_message, {
|
|
119
|
+
filename,
|
|
120
|
+
function_name,
|
|
117
121
|
line_number: stack || 'unknown',
|
|
118
122
|
error: error_string,
|
|
119
|
-
})
|
|
123
|
+
});
|
|
120
124
|
throw new Error(`Failed to load emailer configuration: ${error_message}`);
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
127
|
/**
|
|
124
128
|
* Send email using the configured provider
|
|
125
|
-
* @param options - Email send options
|
|
129
|
+
* @param options - Email send options (includes optional logger)
|
|
126
130
|
* @param config - Optional emailer configuration (if not provided, loads from config file)
|
|
127
131
|
* @returns Promise with email send response
|
|
128
132
|
*/
|
|
129
133
|
async function send_email(options, config) {
|
|
134
|
+
// Get logger from options or use fallback
|
|
135
|
+
const logger = (0, logger_1.get_logger)(options.logger);
|
|
130
136
|
const filename = 'emailer.ts';
|
|
131
137
|
const function_name = 'send_email';
|
|
132
138
|
try {
|
|
@@ -175,11 +181,13 @@ async function send_email(options, config) {
|
|
|
175
181
|
}
|
|
176
182
|
// Get appropriate provider
|
|
177
183
|
const provider = (0, providers_1.get_email_provider)(emailer_config);
|
|
178
|
-
// Send email
|
|
179
|
-
const response = await provider.send_email(options, emailer_config);
|
|
184
|
+
// Send email - pass logger to provider
|
|
185
|
+
const response = await provider.send_email(options, emailer_config, logger);
|
|
180
186
|
// Log error if email sending failed
|
|
181
187
|
if (!response.success) {
|
|
182
|
-
|
|
188
|
+
logger.error(response.error || 'Failed to send email', {
|
|
189
|
+
filename,
|
|
190
|
+
function_name,
|
|
183
191
|
options: {
|
|
184
192
|
to: options.to,
|
|
185
193
|
subject: options.subject,
|
|
@@ -188,7 +196,7 @@ async function send_email(options, config) {
|
|
|
188
196
|
attachments_count: options.attachments?.length || 0,
|
|
189
197
|
},
|
|
190
198
|
response: response.raw_response,
|
|
191
|
-
})
|
|
199
|
+
});
|
|
192
200
|
}
|
|
193
201
|
return response;
|
|
194
202
|
}
|
|
@@ -197,7 +205,9 @@ async function send_email(options, config) {
|
|
|
197
205
|
const error_string = error instanceof Error ? error.toString() : String(error);
|
|
198
206
|
const stack = error instanceof Error ? error.stack : undefined;
|
|
199
207
|
const is_production = process.env.NODE_ENV === 'production';
|
|
200
|
-
|
|
208
|
+
logger.error(error_message, {
|
|
209
|
+
filename,
|
|
210
|
+
function_name,
|
|
201
211
|
line_number: stack || 'unknown',
|
|
202
212
|
error: error_string,
|
|
203
213
|
options: {
|
|
@@ -207,7 +217,7 @@ async function send_email(options, config) {
|
|
|
207
217
|
has_html: !!options.content.html,
|
|
208
218
|
attachments_count: options.attachments?.length || 0,
|
|
209
219
|
},
|
|
210
|
-
})
|
|
220
|
+
});
|
|
211
221
|
return {
|
|
212
222
|
success: false,
|
|
213
223
|
error: error_message,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailer.js","sourceRoot":"","sources":["../../src/lib/emailer/emailer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4BH,
|
|
1
|
+
{"version":3,"file":"emailer.js","sourceRoot":"","sources":["../../src/lib/emailer/emailer.ts"],"names":[],"mappings":"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"}
|
package/dist/emailer/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ export { get_email_provider } from './providers';
|
|
|
8
8
|
export { ZeptomailProvider } from './providers/zeptomail_provider';
|
|
9
9
|
export { SmtpProvider } from './providers/smtp_provider';
|
|
10
10
|
export { Pop3Provider } from './providers/pop3_provider';
|
|
11
|
+
export { create_fallback_logger, get_logger } from './utils/logger';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/emailer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/emailer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/emailer/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.Pop3Provider = exports.SmtpProvider = exports.ZeptomailProvider = exports.get_email_provider = exports.load_emailer_config = exports.send_email = void 0;
|
|
21
|
+
exports.get_logger = exports.create_fallback_logger = exports.Pop3Provider = exports.SmtpProvider = exports.ZeptomailProvider = exports.get_email_provider = exports.load_emailer_config = exports.send_email = void 0;
|
|
22
22
|
var emailer_1 = require("./emailer");
|
|
23
23
|
Object.defineProperty(exports, "send_email", { enumerable: true, get: function () { return emailer_1.send_email; } });
|
|
24
24
|
Object.defineProperty(exports, "load_emailer_config", { enumerable: true, get: function () { return emailer_1.load_emailer_config; } });
|
|
@@ -31,4 +31,8 @@ var smtp_provider_1 = require("./providers/smtp_provider");
|
|
|
31
31
|
Object.defineProperty(exports, "SmtpProvider", { enumerable: true, get: function () { return smtp_provider_1.SmtpProvider; } });
|
|
32
32
|
var pop3_provider_1 = require("./providers/pop3_provider");
|
|
33
33
|
Object.defineProperty(exports, "Pop3Provider", { enumerable: true, get: function () { return pop3_provider_1.Pop3Provider; } });
|
|
34
|
+
// Logger utilities for consumers
|
|
35
|
+
var logger_1 = require("./utils/logger");
|
|
36
|
+
Object.defineProperty(exports, "create_fallback_logger", { enumerable: true, get: function () { return logger_1.create_fallback_logger; } });
|
|
37
|
+
Object.defineProperty(exports, "get_logger", { enumerable: true, get: function () { return logger_1.get_logger; } });
|
|
34
38
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/emailer/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,qCAA4D;AAAnD,qGAAA,UAAU,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AACxC,0CAAwB;AACxB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAC3B,qEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,2DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,2DAAyD;AAAhD,6GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/emailer/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,qCAA4D;AAAnD,qGAAA,UAAU,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AACxC,0CAAwB;AACxB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAC3B,qEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,2DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,2DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,iCAAiC;AACjC,yCAAoE;AAA3D,gHAAA,sBAAsB,OAAA;AAAE,oGAAA,UAAU,OAAA"}
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* POP3 provider implementation (placeholder)
|
|
3
3
|
* This provider is not yet implemented and will return an error
|
|
4
4
|
*/
|
|
5
|
-
import type { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse } from '../types';
|
|
5
|
+
import type { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse, Logger } from '../types';
|
|
6
6
|
export declare class Pop3Provider implements EmailProvider {
|
|
7
7
|
/**
|
|
8
8
|
* Send email using POP3 (not implemented)
|
|
9
9
|
* @param options - Email send options
|
|
10
10
|
* @param config - Emailer configuration
|
|
11
|
+
* @param logger - Optional logger instance
|
|
11
12
|
* @returns Promise with error response
|
|
12
13
|
*/
|
|
13
|
-
send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
|
|
14
|
+
send_email(options: SendEmailOptions, config: EmailerConfig, logger?: Logger): Promise<EmailSendResponse>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=pop3_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pop3_provider.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/providers/pop3_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"pop3_provider.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/providers/pop3_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,MAAM,EACP,MAAM,UAAU,CAAC;AAElB,qBAAa,YAAa,YAAW,aAAa;IAChD;;;;;;OAMG;IACG,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;CAY9B"}
|
|
@@ -10,9 +10,10 @@ class Pop3Provider {
|
|
|
10
10
|
* Send email using POP3 (not implemented)
|
|
11
11
|
* @param options - Email send options
|
|
12
12
|
* @param config - Emailer configuration
|
|
13
|
+
* @param logger - Optional logger instance
|
|
13
14
|
* @returns Promise with error response
|
|
14
15
|
*/
|
|
15
|
-
async send_email(options, config) {
|
|
16
|
+
async send_email(options, config, logger) {
|
|
16
17
|
return {
|
|
17
18
|
success: false,
|
|
18
19
|
error: 'POP3 provider is not yet implemented',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pop3_provider.js","sourceRoot":"","sources":["../../../src/lib/emailer/providers/pop3_provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"pop3_provider.js","sourceRoot":"","sources":["../../../src/lib/emailer/providers/pop3_provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,MAAa,YAAY;IACvB;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CACd,OAAyB,EACzB,MAAqB,EACrB,MAAe;QAEf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,sCAAsC;YAC7C,OAAO,EAAE,sEAAsE;YAC/E,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,4EAA4E;aACtF;SACF,CAAC;IACJ,CAAC;CACF;AAxBD,oCAwBC"}
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* SMTP provider implementation (placeholder)
|
|
3
3
|
* This provider is not yet implemented and will return an error
|
|
4
4
|
*/
|
|
5
|
-
import type { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse } from '../types';
|
|
5
|
+
import type { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse, Logger } from '../types';
|
|
6
6
|
export declare class SmtpProvider implements EmailProvider {
|
|
7
7
|
/**
|
|
8
8
|
* Send email using SMTP (not implemented)
|
|
9
9
|
* @param options - Email send options
|
|
10
10
|
* @param config - Emailer configuration
|
|
11
|
+
* @param logger - Optional logger instance
|
|
11
12
|
* @returns Promise with error response
|
|
12
13
|
*/
|
|
13
|
-
send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
|
|
14
|
+
send_email(options: SendEmailOptions, config: EmailerConfig, logger?: Logger): Promise<EmailSendResponse>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=smtp_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp_provider.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/providers/smtp_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"smtp_provider.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/providers/smtp_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,MAAM,EACP,MAAM,UAAU,CAAC;AAElB,qBAAa,YAAa,YAAW,aAAa;IAChD;;;;;;OAMG;IACG,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;CAY9B"}
|
|
@@ -10,9 +10,10 @@ class SmtpProvider {
|
|
|
10
10
|
* Send email using SMTP (not implemented)
|
|
11
11
|
* @param options - Email send options
|
|
12
12
|
* @param config - Emailer configuration
|
|
13
|
+
* @param logger - Optional logger instance
|
|
13
14
|
* @returns Promise with error response
|
|
14
15
|
*/
|
|
15
|
-
async send_email(options, config) {
|
|
16
|
+
async send_email(options, config, logger) {
|
|
16
17
|
return {
|
|
17
18
|
success: false,
|
|
18
19
|
error: 'SMTP provider is not yet implemented',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp_provider.js","sourceRoot":"","sources":["../../../src/lib/emailer/providers/smtp_provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"smtp_provider.js","sourceRoot":"","sources":["../../../src/lib/emailer/providers/smtp_provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,MAAa,YAAY;IACvB;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CACd,OAAyB,EACzB,MAAqB,EACrB,MAAe;QAEf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,sCAAsC;YAC7C,OAAO,EAAE,sEAAsE;YAC/E,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,4EAA4E;aACtF;SACF,CAAC;IACJ,CAAC;CACF;AAxBD,oCAwBC"}
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* Zeptomail API provider implementation
|
|
3
3
|
* Sends emails using the Zeptomail API
|
|
4
4
|
*/
|
|
5
|
-
import type { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse } from '../types';
|
|
5
|
+
import type { EmailProvider, SendEmailOptions, EmailerConfig, EmailSendResponse, Logger } from '../types';
|
|
6
6
|
export declare class ZeptomailProvider implements EmailProvider {
|
|
7
7
|
/**
|
|
8
8
|
* Send email using Zeptomail API
|
|
9
9
|
* @param options - Email send options
|
|
10
10
|
* @param config - Emailer configuration
|
|
11
|
+
* @param logger - Optional logger instance (compatible with hazo_logs)
|
|
11
12
|
* @returns Promise with email send response
|
|
12
13
|
*/
|
|
13
|
-
send_email(options: SendEmailOptions, config: EmailerConfig): Promise<EmailSendResponse>;
|
|
14
|
+
send_email(options: SendEmailOptions, config: EmailerConfig, logger?: Logger): Promise<EmailSendResponse>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=zeptomail_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zeptomail_provider.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/providers/zeptomail_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"zeptomail_provider.d.ts","sourceRoot":"","sources":["../../../src/lib/emailer/providers/zeptomail_provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EAEjB,MAAM,EACP,MAAM,UAAU,CAAC;AAElB,qBAAa,iBAAkB,YAAW,aAAa;IACrD;;;;;;OAMG;IACG,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;CA8Q9B"}
|