@bernierllc/email-template-service 1.0.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 +449 -0
- package/dist/__tests__/email-template-service.test.d.ts +2 -0
- package/dist/__tests__/email-template-service.test.d.ts.map +1 -0
- package/dist/__tests__/email-template-service.test.js +583 -0
- package/dist/__tests__/email-template-service.test.js.map +1 -0
- package/dist/database-adapter.d.ts +59 -0
- package/dist/database-adapter.d.ts.map +1 -0
- package/dist/database-adapter.js +134 -0
- package/dist/database-adapter.js.map +1 -0
- package/dist/email-template-service.d.ts +131 -0
- package/dist/email-template-service.d.ts.map +1 -0
- package/dist/email-template-service.js +574 -0
- package/dist/email-template-service.js.map +1 -0
- package/dist/errors.d.ts +69 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +128 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/provider-plugin.d.ts +91 -0
- package/dist/provider-plugin.d.ts.map +1 -0
- package/dist/provider-plugin.js +166 -0
- package/dist/provider-plugin.js.map +1 -0
- package/dist/types.d.ts +322 -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 +55 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core types for email template service
|
|
3
|
+
*/
|
|
4
|
+
export type VariableType = 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object';
|
|
5
|
+
export type SyncStatus = 'success' | 'error' | 'pending' | 'in_progress' | 'never_synced';
|
|
6
|
+
export type SyncStrategy = 'manual' | 'auto' | 'scheduled';
|
|
7
|
+
export type SyncDirection = 'bidirectional' | 'push_only' | 'pull_only';
|
|
8
|
+
export type ConflictResolutionStrategy = 'local_wins' | 'remote_wins' | 'timestamp' | 'manual';
|
|
9
|
+
export type SyncAction = 'created' | 'updated' | 'deleted';
|
|
10
|
+
export type ConflictAction = 'use_local' | 'use_remote' | 'merge' | 'manual';
|
|
11
|
+
/**
|
|
12
|
+
* Template variable definition
|
|
13
|
+
*/
|
|
14
|
+
export interface TemplateVariable {
|
|
15
|
+
name: string;
|
|
16
|
+
path: string;
|
|
17
|
+
type: VariableType;
|
|
18
|
+
required: boolean;
|
|
19
|
+
description?: string;
|
|
20
|
+
defaultValue?: unknown;
|
|
21
|
+
usageCount: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Variable context for templates
|
|
25
|
+
*/
|
|
26
|
+
export interface VariableContext {
|
|
27
|
+
description?: string;
|
|
28
|
+
variables: Record<string, VariableContextVariable>;
|
|
29
|
+
extends?: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface VariableContextVariable {
|
|
32
|
+
type: VariableType;
|
|
33
|
+
description?: string;
|
|
34
|
+
required?: boolean;
|
|
35
|
+
defaultValue?: unknown;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Template data model
|
|
39
|
+
*/
|
|
40
|
+
export interface Template {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
subject: string;
|
|
45
|
+
htmlContent: string;
|
|
46
|
+
textContent?: string;
|
|
47
|
+
category?: string;
|
|
48
|
+
tags: string[];
|
|
49
|
+
version: string;
|
|
50
|
+
isActive: boolean;
|
|
51
|
+
context?: string;
|
|
52
|
+
variables: TemplateVariable[];
|
|
53
|
+
requiredVariables: string[];
|
|
54
|
+
baseTemplateId?: string;
|
|
55
|
+
contentOnly?: boolean;
|
|
56
|
+
providerTemplateIds: Record<string, string>;
|
|
57
|
+
lastSyncedAt: Record<string, Date>;
|
|
58
|
+
syncStatus: Record<string, SyncStatus>;
|
|
59
|
+
senderId?: string;
|
|
60
|
+
senderOverride?: SenderConfiguration;
|
|
61
|
+
createdAt: Date;
|
|
62
|
+
updatedAt: Date;
|
|
63
|
+
createdBy: string;
|
|
64
|
+
lastModifiedBy: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Template definition for creation
|
|
68
|
+
*/
|
|
69
|
+
export interface TemplateDefinition {
|
|
70
|
+
name: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
subject: string;
|
|
73
|
+
htmlContent: string;
|
|
74
|
+
textContent?: string;
|
|
75
|
+
category?: string;
|
|
76
|
+
tags?: string[];
|
|
77
|
+
context?: string;
|
|
78
|
+
baseTemplateId?: string;
|
|
79
|
+
contentOnly?: boolean;
|
|
80
|
+
senderId?: string;
|
|
81
|
+
senderOverride?: SenderConfiguration;
|
|
82
|
+
createdBy: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Template update data
|
|
86
|
+
*/
|
|
87
|
+
export interface TemplateUpdate {
|
|
88
|
+
name?: string;
|
|
89
|
+
description?: string;
|
|
90
|
+
subject?: string;
|
|
91
|
+
htmlContent?: string;
|
|
92
|
+
textContent?: string;
|
|
93
|
+
category?: string;
|
|
94
|
+
tags?: string[];
|
|
95
|
+
isActive?: boolean;
|
|
96
|
+
context?: string;
|
|
97
|
+
senderId?: string;
|
|
98
|
+
senderOverride?: SenderConfiguration;
|
|
99
|
+
lastModifiedBy?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Base template data model
|
|
103
|
+
*/
|
|
104
|
+
export interface BaseTemplate {
|
|
105
|
+
id: string;
|
|
106
|
+
name: string;
|
|
107
|
+
description?: string;
|
|
108
|
+
headerHtml: string;
|
|
109
|
+
footerHtml: string;
|
|
110
|
+
headerCss?: string;
|
|
111
|
+
footerCss?: string;
|
|
112
|
+
theme: string;
|
|
113
|
+
brandingElements: BrandingElement[];
|
|
114
|
+
defaultSenderId?: string;
|
|
115
|
+
createdAt: Date;
|
|
116
|
+
updatedAt: Date;
|
|
117
|
+
version: string;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Base template definition for creation
|
|
121
|
+
*/
|
|
122
|
+
export interface BaseTemplateDefinition {
|
|
123
|
+
name: string;
|
|
124
|
+
description?: string;
|
|
125
|
+
headerHtml: string;
|
|
126
|
+
footerHtml: string;
|
|
127
|
+
headerCss?: string;
|
|
128
|
+
footerCss?: string;
|
|
129
|
+
theme?: string;
|
|
130
|
+
brandingElements?: BrandingElement[];
|
|
131
|
+
defaultSenderId?: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Built template result
|
|
135
|
+
*/
|
|
136
|
+
export interface BuiltTemplate {
|
|
137
|
+
html: string;
|
|
138
|
+
text: string;
|
|
139
|
+
variables: TemplateVariable[];
|
|
140
|
+
baseTemplateId: string;
|
|
141
|
+
contentHtml: string;
|
|
142
|
+
metadata: {
|
|
143
|
+
buildTime: number;
|
|
144
|
+
variableCount: number;
|
|
145
|
+
contentLength: number;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Branding element for base templates
|
|
150
|
+
*/
|
|
151
|
+
export interface BrandingElement {
|
|
152
|
+
type: 'logo' | 'color' | 'font' | 'social-link' | 'custom';
|
|
153
|
+
name: string;
|
|
154
|
+
value: string;
|
|
155
|
+
cssSelector?: string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Sender configuration
|
|
159
|
+
*/
|
|
160
|
+
export interface SenderConfiguration {
|
|
161
|
+
fromEmail: string;
|
|
162
|
+
fromName?: string;
|
|
163
|
+
replyTo?: string;
|
|
164
|
+
replyToName?: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Sync configuration
|
|
168
|
+
*/
|
|
169
|
+
export interface SyncConfiguration {
|
|
170
|
+
enabled: boolean;
|
|
171
|
+
providers: Record<string, ProviderSyncConfig>;
|
|
172
|
+
defaultStrategy: SyncStrategy;
|
|
173
|
+
conflictResolution: ConflictResolutionStrategy;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Provider sync configuration
|
|
177
|
+
*/
|
|
178
|
+
export interface ProviderSyncConfig {
|
|
179
|
+
enabled: boolean;
|
|
180
|
+
strategy: SyncStrategy;
|
|
181
|
+
direction: SyncDirection;
|
|
182
|
+
schedule?: string;
|
|
183
|
+
batchSize?: number;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Sync result
|
|
187
|
+
*/
|
|
188
|
+
export interface SyncResult {
|
|
189
|
+
success: boolean;
|
|
190
|
+
action: SyncAction;
|
|
191
|
+
providerTemplateId: string;
|
|
192
|
+
localTemplateId: string;
|
|
193
|
+
error?: string;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Batch sync result
|
|
197
|
+
*/
|
|
198
|
+
export interface BatchSyncResult {
|
|
199
|
+
total: number;
|
|
200
|
+
successful: number;
|
|
201
|
+
failed: number;
|
|
202
|
+
results: SyncResult[];
|
|
203
|
+
errors: Array<{
|
|
204
|
+
templateId: string;
|
|
205
|
+
error: string;
|
|
206
|
+
}>;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Conflict information
|
|
210
|
+
*/
|
|
211
|
+
export interface Conflict {
|
|
212
|
+
field: string;
|
|
213
|
+
localValue: unknown;
|
|
214
|
+
remoteValue: unknown;
|
|
215
|
+
lastSyncedAt?: Date;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Conflict resolution result
|
|
219
|
+
*/
|
|
220
|
+
export interface ConflictResolution {
|
|
221
|
+
action: ConflictAction;
|
|
222
|
+
conflicts: Conflict[];
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Validation result
|
|
226
|
+
*/
|
|
227
|
+
export interface ValidationResult {
|
|
228
|
+
isValid: boolean;
|
|
229
|
+
errors: string[];
|
|
230
|
+
warnings: string[];
|
|
231
|
+
unusedVariables?: string[];
|
|
232
|
+
undefinedVariables?: string[];
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Variable suggestion
|
|
236
|
+
*/
|
|
237
|
+
export interface VariableSuggestion {
|
|
238
|
+
name: string;
|
|
239
|
+
path: string;
|
|
240
|
+
type: VariableType;
|
|
241
|
+
description?: string;
|
|
242
|
+
required: boolean;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* List options for pagination
|
|
246
|
+
*/
|
|
247
|
+
export interface ListOptions {
|
|
248
|
+
page?: number;
|
|
249
|
+
limit?: number;
|
|
250
|
+
category?: string;
|
|
251
|
+
tags?: string[];
|
|
252
|
+
isActive?: boolean;
|
|
253
|
+
search?: string;
|
|
254
|
+
sortBy?: 'name' | 'createdAt' | 'updatedAt';
|
|
255
|
+
sortOrder?: 'asc' | 'desc';
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Paginated result
|
|
259
|
+
*/
|
|
260
|
+
export interface PaginatedResult<T> {
|
|
261
|
+
items: T[];
|
|
262
|
+
total: number;
|
|
263
|
+
page: number;
|
|
264
|
+
limit: number;
|
|
265
|
+
hasMore: boolean;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Provider template from external provider
|
|
269
|
+
*/
|
|
270
|
+
export interface ProviderTemplate {
|
|
271
|
+
id: string;
|
|
272
|
+
name: string;
|
|
273
|
+
subject?: string;
|
|
274
|
+
htmlContent?: string;
|
|
275
|
+
textContent?: string;
|
|
276
|
+
metadata?: Record<string, unknown>;
|
|
277
|
+
updatedAt?: Date;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Provider capability
|
|
281
|
+
*/
|
|
282
|
+
export interface ProviderCapability {
|
|
283
|
+
feature: string;
|
|
284
|
+
description: string;
|
|
285
|
+
config?: Record<string, unknown>;
|
|
286
|
+
methods: string[];
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Feature configuration
|
|
290
|
+
*/
|
|
291
|
+
export interface FeatureConfig {
|
|
292
|
+
enabled: boolean;
|
|
293
|
+
options?: Record<string, unknown>;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Provider status
|
|
297
|
+
*/
|
|
298
|
+
export interface ProviderStatus {
|
|
299
|
+
connected: boolean;
|
|
300
|
+
lastCheck: Date;
|
|
301
|
+
error?: string;
|
|
302
|
+
metrics?: Record<string, number>;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Plugin configuration
|
|
306
|
+
*/
|
|
307
|
+
export interface PluginConfig {
|
|
308
|
+
apiKey?: string;
|
|
309
|
+
apiUrl?: string;
|
|
310
|
+
timeout?: number;
|
|
311
|
+
retryAttempts?: number;
|
|
312
|
+
[key: string]: unknown;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Cache configuration
|
|
316
|
+
*/
|
|
317
|
+
export interface CacheConfiguration {
|
|
318
|
+
enabled: boolean;
|
|
319
|
+
ttl?: number;
|
|
320
|
+
keyPrefix?: string;
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
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,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bernierllc/email-template-service",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Email template management service with provider synchronization and variable context validation",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md",
|
|
10
|
+
"LICENSE"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"test": "jest --watch",
|
|
14
|
+
"test:run": "jest",
|
|
15
|
+
"test:coverage": "jest --coverage",
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"dev": "tsc --watch",
|
|
18
|
+
"lint": "eslint src/**/*.ts --max-warnings=0",
|
|
19
|
+
"format": "prettier --write src/**/*.ts",
|
|
20
|
+
"clean": "rm -rf dist coverage"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"email",
|
|
24
|
+
"template",
|
|
25
|
+
"service",
|
|
26
|
+
"provider",
|
|
27
|
+
"sync",
|
|
28
|
+
"variable",
|
|
29
|
+
"validation",
|
|
30
|
+
"typescript"
|
|
31
|
+
],
|
|
32
|
+
"author": "Bernier LLC",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/bernierllc/tools.git"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@bernierllc/template-variable-registry": "workspace:*",
|
|
40
|
+
"@bernierllc/template-engine": "workspace:*",
|
|
41
|
+
"@bernierllc/email-sender": "workspace:*",
|
|
42
|
+
"@bernierllc/logger": "workspace:*"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^20.0.0",
|
|
46
|
+
"@types/jest": "^29.5.14",
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
48
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
49
|
+
"typescript": "^5.0.0",
|
|
50
|
+
"jest": "^29.5.0",
|
|
51
|
+
"ts-jest": "^29.4.0",
|
|
52
|
+
"eslint": "^8.0.0",
|
|
53
|
+
"prettier": "^3.0.0"
|
|
54
|
+
}
|
|
55
|
+
}
|