@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.
@@ -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
+ }