@bernierllc/email-sender 0.2.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.
Files changed (39) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +430 -0
  3. package/dist/core/email-sender.d.ts +71 -0
  4. package/dist/core/email-sender.d.ts.map +1 -0
  5. package/dist/core/email-sender.js +125 -0
  6. package/dist/core/email-sender.js.map +1 -0
  7. package/dist/index.d.ts +14 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +47 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/providers/base.d.ts +63 -0
  12. package/dist/providers/base.d.ts.map +1 -0
  13. package/dist/providers/base.js +132 -0
  14. package/dist/providers/base.js.map +1 -0
  15. package/dist/providers/mailgun.d.ts +40 -0
  16. package/dist/providers/mailgun.d.ts.map +1 -0
  17. package/dist/providers/mailgun.js +525 -0
  18. package/dist/providers/mailgun.js.map +1 -0
  19. package/dist/providers/postmark.d.ts +37 -0
  20. package/dist/providers/postmark.d.ts.map +1 -0
  21. package/dist/providers/postmark.js +482 -0
  22. package/dist/providers/postmark.js.map +1 -0
  23. package/dist/providers/sendgrid.d.ts +80 -0
  24. package/dist/providers/sendgrid.d.ts.map +1 -0
  25. package/dist/providers/sendgrid.js +407 -0
  26. package/dist/providers/sendgrid.js.map +1 -0
  27. package/dist/providers/ses.d.ts +38 -0
  28. package/dist/providers/ses.d.ts.map +1 -0
  29. package/dist/providers/ses.js +404 -0
  30. package/dist/providers/ses.js.map +1 -0
  31. package/dist/providers/smtp.d.ts +61 -0
  32. package/dist/providers/smtp.d.ts.map +1 -0
  33. package/dist/providers/smtp.js +201 -0
  34. package/dist/providers/smtp.js.map +1 -0
  35. package/dist/types/index.d.ts +99 -0
  36. package/dist/types/index.d.ts.map +1 -0
  37. package/dist/types/index.js +10 -0
  38. package/dist/types/index.js.map +1 -0
  39. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp.js","sourceRoot":"","sources":["../../src/providers/smtp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Email sender type definitions
3
+ */
4
+ export interface EmailMessage {
5
+ toEmail: string;
6
+ toName?: string;
7
+ fromEmail?: string;
8
+ fromName?: string;
9
+ subject: string;
10
+ htmlContent?: string;
11
+ textContent?: string;
12
+ replyTo?: string;
13
+ headers?: Record<string, string>;
14
+ attachments?: EmailAttachment[];
15
+ metadata?: Record<string, any>;
16
+ }
17
+ export interface EmailAttachment {
18
+ filename: string;
19
+ content: string;
20
+ contentType?: string;
21
+ disposition?: 'attachment' | 'inline';
22
+ }
23
+ export interface SendResult {
24
+ success: boolean;
25
+ messageId?: string;
26
+ errorMessage?: string;
27
+ providerResponse?: any;
28
+ metadata?: Record<string, any>;
29
+ }
30
+ export interface DeliveryStatus {
31
+ messageId: string;
32
+ status: 'delivered' | 'bounced' | 'failed' | 'pending' | 'sent' | 'opened' | 'clicked' | 'spam' | 'unsubscribed';
33
+ deliveredAt?: Date;
34
+ openedAt?: Date;
35
+ clickedAt?: Date;
36
+ bouncedAt?: Date;
37
+ reason?: string;
38
+ metadata?: Record<string, any>;
39
+ }
40
+ export interface WebhookEvent {
41
+ messageId: string;
42
+ eventType: string;
43
+ timestamp: Date;
44
+ email: string;
45
+ reason?: string;
46
+ response?: string;
47
+ metadata?: Record<string, any>;
48
+ }
49
+ export interface EmailProviderConfig {
50
+ provider: 'sendgrid' | 'ses' | 'mailgun' | 'postmark' | 'smtp';
51
+ apiKey?: string;
52
+ secretKey?: string;
53
+ domain?: string;
54
+ accountToken?: string;
55
+ region?: string;
56
+ endpoint?: string;
57
+ fromEmail: string;
58
+ fromName?: string;
59
+ replyTo?: string;
60
+ webhookUrl?: string;
61
+ webhookSecret?: string;
62
+ sandbox?: boolean;
63
+ host?: string;
64
+ port?: number;
65
+ secure?: boolean;
66
+ username?: string;
67
+ password?: string;
68
+ }
69
+ export interface EmailProviderCapabilities {
70
+ supportsBatch: boolean;
71
+ supportsTemplates: boolean;
72
+ supportsWebhooks: boolean;
73
+ supportsAttachments: boolean;
74
+ supportsDeliveryTracking: boolean;
75
+ maxBatchSize: number;
76
+ maxAttachmentSize: number;
77
+ }
78
+ export interface BatchEmailOptions {
79
+ templateId?: string;
80
+ variables?: Record<string, any>;
81
+ scheduledFor?: Date;
82
+ metadata?: Record<string, any>;
83
+ }
84
+ export interface EmailValidationResult {
85
+ isValid: boolean;
86
+ errors: string[];
87
+ warnings: string[];
88
+ }
89
+ export interface EmailTemplate {
90
+ id: string;
91
+ name: string;
92
+ subject: string;
93
+ htmlContent: string;
94
+ textContent?: string;
95
+ variables?: string[];
96
+ createdAt: Date;
97
+ updatedAt: Date;
98
+ }
99
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (c) 2025 Bernier LLC
4
+
5
+ This file is licensed to the client under a limited-use license.
6
+ The client may use and modify this code *only within the scope of the project it was delivered for*.
7
+ Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;EAME"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@bernierllc/email-sender",
3
+ "version": "0.2.0",
4
+ "description": "A core utility for basic email sending with provider-agnostic interface",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "test": "jest",
15
+ "test:watch": "jest --watch",
16
+ "test:coverage": "jest --coverage",
17
+ "lint": "eslint src --ext .ts",
18
+ "lint:fix": "eslint src --ext .ts --fix",
19
+ "clean": "rm -rf dist",
20
+ "prebuild": "npm run clean"
21
+ },
22
+ "keywords": [
23
+ "email",
24
+ "sender",
25
+ "smtp",
26
+ "sendgrid",
27
+ "ses",
28
+ "mailgun",
29
+ "postmark",
30
+ "provider",
31
+ "typescript"
32
+ ],
33
+ "author": "Bernier LLC",
34
+ "license": "ISC",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/bernier-llc/tools"
38
+ },
39
+ "peerDependencies": {
40
+ "nodemailer": "^6.9.0",
41
+ "aws-sdk": "^2.1000.0"
42
+ },
43
+ "devDependencies": {
44
+ "@types/jest": "^29.5.0",
45
+ "@types/node": "^20.0.0",
46
+ "@types/nodemailer": "^6.4.0",
47
+ "jest": "^29.5.0",
48
+ "nodemailer": "^6.9.0",
49
+ "ts-jest": "^29.1.0",
50
+ "typescript": "^5.0.0"
51
+ },
52
+ "engines": {
53
+ "node": ">=18.0.0"
54
+ }
55
+ }