@bernierllc/email-testing-suite 0.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/LICENSE +21 -0
- package/README.md +347 -0
- package/dist/analytics.d.ts +52 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +211 -0
- package/dist/analytics.js.map +1 -0
- package/dist/best-practices.d.ts +34 -0
- package/dist/best-practices.d.ts.map +1 -0
- package/dist/best-practices.js +268 -0
- package/dist/best-practices.js.map +1 -0
- package/dist/email-testing-suite.d.ts +74 -0
- package/dist/email-testing-suite.d.ts.map +1 -0
- package/dist/email-testing-suite.js +424 -0
- package/dist/email-testing-suite.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/test-patterns.d.ts +48 -0
- package/dist/test-patterns.d.ts.map +1 -0
- package/dist/test-patterns.js +132 -0
- package/dist/test-patterns.js.map +1 -0
- package/dist/types.d.ts +258 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +71 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Testing Suite Types
|
|
3
|
+
*/
|
|
4
|
+
export interface EmailTestingSuiteConfig {
|
|
5
|
+
smtp?: SMTPConfig;
|
|
6
|
+
defaults?: DefaultsConfig;
|
|
7
|
+
validation?: ValidationConfig;
|
|
8
|
+
reporting?: ReportingConfig;
|
|
9
|
+
integrations?: IntegrationsConfig;
|
|
10
|
+
}
|
|
11
|
+
export interface SMTPConfig {
|
|
12
|
+
port: number;
|
|
13
|
+
host: string;
|
|
14
|
+
auth?: SMTPAuth;
|
|
15
|
+
}
|
|
16
|
+
export interface SMTPAuth {
|
|
17
|
+
user: string;
|
|
18
|
+
pass: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DefaultsConfig {
|
|
21
|
+
compliance: 'US' | 'EU' | 'GLOBAL';
|
|
22
|
+
timeout: number;
|
|
23
|
+
retries: number;
|
|
24
|
+
expectations?: Partial<EmailExpectations>;
|
|
25
|
+
}
|
|
26
|
+
export interface ValidationConfig {
|
|
27
|
+
enabledValidators?: ValidatorType[];
|
|
28
|
+
strictMode?: boolean;
|
|
29
|
+
customRules?: ValidationRule[];
|
|
30
|
+
}
|
|
31
|
+
export type ValidatorType = 'template' | 'compliance' | 'accessibility' | 'performance' | 'security';
|
|
32
|
+
export interface ValidationRule {
|
|
33
|
+
name: string;
|
|
34
|
+
validator: (_email: EmailData) => boolean;
|
|
35
|
+
severity: 'error' | 'warning' | 'info';
|
|
36
|
+
message: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ReportingConfig {
|
|
39
|
+
enableAnalytics?: boolean;
|
|
40
|
+
generateTrendReports?: boolean;
|
|
41
|
+
exportFormats?: ReportFormat[];
|
|
42
|
+
retainHistory?: number;
|
|
43
|
+
}
|
|
44
|
+
export type ReportFormat = 'html' | 'pdf' | 'json' | 'csv';
|
|
45
|
+
export interface IntegrationsConfig {
|
|
46
|
+
frameworks?: TestFramework[];
|
|
47
|
+
webhooks?: WebhookConfig[];
|
|
48
|
+
notifications?: NotificationConfig;
|
|
49
|
+
}
|
|
50
|
+
export type TestFramework = 'jest' | 'mocha' | 'vitest' | 'playwright';
|
|
51
|
+
export interface WebhookConfig {
|
|
52
|
+
url: string;
|
|
53
|
+
events: string[];
|
|
54
|
+
headers?: Record<string, string>;
|
|
55
|
+
}
|
|
56
|
+
export interface NotificationConfig {
|
|
57
|
+
enabled: boolean;
|
|
58
|
+
channels?: ('email' | 'slack' | 'webhook')[];
|
|
59
|
+
recipients?: string[];
|
|
60
|
+
}
|
|
61
|
+
export interface EmailTemplateTest {
|
|
62
|
+
name: string;
|
|
63
|
+
template: string | TemplateSource;
|
|
64
|
+
data: Record<string, any>;
|
|
65
|
+
recipients: string[];
|
|
66
|
+
expectations?: Partial<EmailExpectations>;
|
|
67
|
+
}
|
|
68
|
+
export interface TemplateSource {
|
|
69
|
+
path?: string;
|
|
70
|
+
content?: string;
|
|
71
|
+
type?: 'html' | 'text' | 'liquid' | 'handlebars';
|
|
72
|
+
}
|
|
73
|
+
export interface EmailExpectations {
|
|
74
|
+
delivery: boolean;
|
|
75
|
+
templateCompletion: boolean;
|
|
76
|
+
compliance: 'US' | 'EU' | 'GLOBAL';
|
|
77
|
+
accessibility: boolean;
|
|
78
|
+
performance: PerformanceThresholds;
|
|
79
|
+
}
|
|
80
|
+
export interface PerformanceThresholds {
|
|
81
|
+
renderTime?: number;
|
|
82
|
+
size?: string;
|
|
83
|
+
deliveryTime?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface EmailFlowTest {
|
|
86
|
+
name: string;
|
|
87
|
+
steps: EmailFlowStep[];
|
|
88
|
+
assertions: FlowAssertion[];
|
|
89
|
+
}
|
|
90
|
+
export interface EmailFlowStep {
|
|
91
|
+
trigger: string;
|
|
92
|
+
template: string;
|
|
93
|
+
delay: number;
|
|
94
|
+
data?: Record<string, any>;
|
|
95
|
+
}
|
|
96
|
+
export interface FlowAssertion {
|
|
97
|
+
step: number;
|
|
98
|
+
assertion: string;
|
|
99
|
+
expected?: any;
|
|
100
|
+
}
|
|
101
|
+
export type EmailTest = EmailTemplateTest | EmailFlowTest;
|
|
102
|
+
export interface SimpleEmailTest {
|
|
103
|
+
template: string;
|
|
104
|
+
data: Record<string, any>;
|
|
105
|
+
recipient: string;
|
|
106
|
+
expectations?: Partial<EmailExpectations>;
|
|
107
|
+
}
|
|
108
|
+
export interface EmailTestResult {
|
|
109
|
+
success: boolean;
|
|
110
|
+
score: number;
|
|
111
|
+
testName: string;
|
|
112
|
+
timestamp: string;
|
|
113
|
+
duration: number;
|
|
114
|
+
validations: ValidationResult[];
|
|
115
|
+
email?: EmailData;
|
|
116
|
+
errors?: string[];
|
|
117
|
+
}
|
|
118
|
+
export interface ValidationResult {
|
|
119
|
+
validator: string;
|
|
120
|
+
passed: boolean;
|
|
121
|
+
score: number;
|
|
122
|
+
details?: string;
|
|
123
|
+
errors?: string[];
|
|
124
|
+
warnings?: string[];
|
|
125
|
+
}
|
|
126
|
+
export interface EmailFlowResult {
|
|
127
|
+
success: boolean;
|
|
128
|
+
flowName: string;
|
|
129
|
+
timestamp: string;
|
|
130
|
+
duration: number;
|
|
131
|
+
steps: StepResult[];
|
|
132
|
+
assertions: AssertionResult[];
|
|
133
|
+
errors?: string[];
|
|
134
|
+
}
|
|
135
|
+
export interface StepResult {
|
|
136
|
+
stepNumber: number;
|
|
137
|
+
trigger: string;
|
|
138
|
+
success: boolean;
|
|
139
|
+
duration: number;
|
|
140
|
+
email?: EmailData;
|
|
141
|
+
error?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface AssertionResult {
|
|
144
|
+
assertion: string;
|
|
145
|
+
passed: boolean;
|
|
146
|
+
actual?: any;
|
|
147
|
+
expected?: any;
|
|
148
|
+
message?: string;
|
|
149
|
+
}
|
|
150
|
+
export interface EmailSuiteResult {
|
|
151
|
+
success: boolean;
|
|
152
|
+
totalTests: number;
|
|
153
|
+
passedTests: number;
|
|
154
|
+
failedTests: number;
|
|
155
|
+
duration: number;
|
|
156
|
+
timestamp: string;
|
|
157
|
+
results: EmailTestResult[];
|
|
158
|
+
summary: TestSummary;
|
|
159
|
+
}
|
|
160
|
+
export interface TestSummary {
|
|
161
|
+
averageScore: number;
|
|
162
|
+
complianceRate: number;
|
|
163
|
+
performanceMetrics: PerformanceMetrics;
|
|
164
|
+
commonIssues: IssueCount[];
|
|
165
|
+
}
|
|
166
|
+
export interface PerformanceMetrics {
|
|
167
|
+
averageRenderTime: number;
|
|
168
|
+
averageDeliveryTime: number;
|
|
169
|
+
averageSize: number;
|
|
170
|
+
}
|
|
171
|
+
export interface IssueCount {
|
|
172
|
+
issue: string;
|
|
173
|
+
count: number;
|
|
174
|
+
severity: 'error' | 'warning' | 'info';
|
|
175
|
+
}
|
|
176
|
+
export interface EmailData {
|
|
177
|
+
from: string;
|
|
178
|
+
to: string[];
|
|
179
|
+
subject: string;
|
|
180
|
+
html?: string;
|
|
181
|
+
text?: string;
|
|
182
|
+
headers?: Record<string, string>;
|
|
183
|
+
attachments?: EmailAttachment[];
|
|
184
|
+
size?: number;
|
|
185
|
+
timestamp?: string;
|
|
186
|
+
}
|
|
187
|
+
export interface EmailAttachment {
|
|
188
|
+
filename: string;
|
|
189
|
+
content: Buffer | string;
|
|
190
|
+
contentType?: string;
|
|
191
|
+
size?: number;
|
|
192
|
+
}
|
|
193
|
+
export interface TestingEnvironment {
|
|
194
|
+
smtpServer: {
|
|
195
|
+
host: string;
|
|
196
|
+
port: number;
|
|
197
|
+
running: boolean;
|
|
198
|
+
};
|
|
199
|
+
capturedEmails: EmailData[];
|
|
200
|
+
config: EmailTestingSuiteConfig;
|
|
201
|
+
}
|
|
202
|
+
export interface DataSchema {
|
|
203
|
+
[key: string]: SchemaField;
|
|
204
|
+
}
|
|
205
|
+
export interface SchemaField {
|
|
206
|
+
type: 'string' | 'number' | 'boolean' | 'date' | 'email' | 'url' | 'uuid';
|
|
207
|
+
required?: boolean;
|
|
208
|
+
default?: any;
|
|
209
|
+
pattern?: string;
|
|
210
|
+
min?: number;
|
|
211
|
+
max?: number;
|
|
212
|
+
}
|
|
213
|
+
export interface AnalyticsData {
|
|
214
|
+
period: string;
|
|
215
|
+
testCount: number;
|
|
216
|
+
successRate: number;
|
|
217
|
+
trends: TrendData[];
|
|
218
|
+
topIssues: IssueCount[];
|
|
219
|
+
performanceMetrics: PerformanceMetrics;
|
|
220
|
+
}
|
|
221
|
+
export interface TrendData {
|
|
222
|
+
date: string;
|
|
223
|
+
successRate: number;
|
|
224
|
+
testCount: number;
|
|
225
|
+
averageScore: number;
|
|
226
|
+
}
|
|
227
|
+
export interface ReportOptions {
|
|
228
|
+
period: string;
|
|
229
|
+
includeComparisons?: boolean;
|
|
230
|
+
includeRecommendations?: boolean;
|
|
231
|
+
formats: ReportFormat[];
|
|
232
|
+
}
|
|
233
|
+
export interface Report {
|
|
234
|
+
title: string;
|
|
235
|
+
period: string;
|
|
236
|
+
generatedAt: string;
|
|
237
|
+
summary: TestSummary;
|
|
238
|
+
analytics?: AnalyticsData;
|
|
239
|
+
recommendations?: Recommendation[];
|
|
240
|
+
exportData?: any;
|
|
241
|
+
}
|
|
242
|
+
export interface Recommendation {
|
|
243
|
+
category: string;
|
|
244
|
+
priority: 'high' | 'medium' | 'low';
|
|
245
|
+
title: string;
|
|
246
|
+
description: string;
|
|
247
|
+
action?: string;
|
|
248
|
+
}
|
|
249
|
+
export interface ExportOptions {
|
|
250
|
+
format: 'csv' | 'json' | 'xml';
|
|
251
|
+
includeRawEmails?: boolean;
|
|
252
|
+
anonymizeData?: boolean;
|
|
253
|
+
dateRange?: {
|
|
254
|
+
start: string;
|
|
255
|
+
end: string;
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA;;GAEG;AAGH,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,eAAe,GACf,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;IAC1C,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAG1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAGD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAGD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH"}
|
package/dist/types.js
ADDED
|
@@ -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=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;EAME"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bernierllc/email-testing-suite",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Complete email testing solution with opinionated defaults, pre-configured test patterns, integrated mock server, and comprehensive reporting",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md",
|
|
10
|
+
"LICENSE"
|
|
11
|
+
],
|
|
12
|
+
"keywords": [
|
|
13
|
+
"email",
|
|
14
|
+
"testing",
|
|
15
|
+
"suite",
|
|
16
|
+
"smtp",
|
|
17
|
+
"mock",
|
|
18
|
+
"validation",
|
|
19
|
+
"template",
|
|
20
|
+
"analytics",
|
|
21
|
+
"reporting",
|
|
22
|
+
"bernierllc"
|
|
23
|
+
],
|
|
24
|
+
"author": "Bernier LLC",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/bernier-llc/tools",
|
|
29
|
+
"directory": "packages/suite/email-testing-suite"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@bernierllc/mock-smtp-server": "1.0.0",
|
|
33
|
+
"@bernierllc/email-test-orchestrator": "0.1.0",
|
|
34
|
+
"@bernierllc/email-test-assertions": "1.0.2",
|
|
35
|
+
"@bernierllc/email-sender": "3.0.3",
|
|
36
|
+
"@bernierllc/email-parser": "0.1.1",
|
|
37
|
+
"@bernierllc/email-validator": "1.0.3",
|
|
38
|
+
"@bernierllc/template-validator": "1.0.3",
|
|
39
|
+
"@bernierllc/smtp-analyzer": "0.1.4",
|
|
40
|
+
"@bernierllc/email-capture": "1.0.2",
|
|
41
|
+
"@bernierllc/template-engine": "0.2.1",
|
|
42
|
+
"@bernierllc/retry-policy": "0.1.6",
|
|
43
|
+
"@bernierllc/logger": "1.0.3"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/jest": "^29.5.5",
|
|
47
|
+
"@types/node": "^20.6.0",
|
|
48
|
+
"eslint": "^8.50.0",
|
|
49
|
+
"jest": "^29.6.4",
|
|
50
|
+
"rimraf": "^5.0.0",
|
|
51
|
+
"ts-jest": "^29.1.1",
|
|
52
|
+
"typescript": "^5.2.2"
|
|
53
|
+
},
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=18.0.0"
|
|
56
|
+
},
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"access": "public",
|
|
59
|
+
"registry": "https://registry.npmjs.org/"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "tsc",
|
|
63
|
+
"dev": "tsc --watch",
|
|
64
|
+
"test": "jest",
|
|
65
|
+
"test:watch": "jest --watch",
|
|
66
|
+
"test:coverage": "jest --coverage",
|
|
67
|
+
"test:run": "jest --passWithNoTests",
|
|
68
|
+
"lint": "eslint src/**/*.ts",
|
|
69
|
+
"clean": "rimraf dist"
|
|
70
|
+
}
|
|
71
|
+
}
|