@bernierllc/email-sender-manager 1.2.2 → 1.3.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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,156 @@
1
+ /*
2
+ Copyright (c) 2025 Bernier LLC
3
+
4
+ This file is licensed to the client under a limited-use license.
5
+ The client may use and modify this code *only within the scope of the project it was delivered for*.
6
+ Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
+ */
8
+ import { isManagedSenderProvider, isVerifiableSenderProvider, } from '../types';
9
+ // Helpers to build test objects
10
+ function makeBasePlugin(overrides) {
11
+ return {
12
+ providerId: 'test',
13
+ name: 'Test Provider',
14
+ validateSender: async (_email) => ({
15
+ isVerified: true,
16
+ verificationStatus: 'verified',
17
+ lastChecked: new Date(),
18
+ metadata: {},
19
+ }),
20
+ getVerifiedSenders: async () => [],
21
+ syncSender: async (_sender) => ({
22
+ success: true,
23
+ senderId: 'test-id',
24
+ synced: true,
25
+ }),
26
+ getCapabilities: () => ['send'],
27
+ ...overrides,
28
+ };
29
+ }
30
+ function makeManagedPlugin(overrides) {
31
+ return {
32
+ ...makeBasePlugin(),
33
+ createSender: async (_input) => ({
34
+ success: true,
35
+ providerSenderId: 'new-id',
36
+ email: 'test@example.com',
37
+ verificationStatus: 'pending',
38
+ }),
39
+ updateSender: async (_input) => ({
40
+ success: true,
41
+ providerSenderId: 'new-id',
42
+ email: 'test@example.com',
43
+ verificationStatus: 'pending',
44
+ }),
45
+ deleteSender: async (_id) => ({
46
+ success: true,
47
+ providerSenderId: 'new-id',
48
+ }),
49
+ ...overrides,
50
+ };
51
+ }
52
+ function makeVerifiablePlugin(overrides) {
53
+ return {
54
+ ...makeManagedPlugin(),
55
+ getVerificationType: () => 'email',
56
+ initiateVerification: async (_id) => ({
57
+ success: true,
58
+ providerSenderId: _id,
59
+ status: 'pending',
60
+ verificationType: 'email',
61
+ }),
62
+ checkVerificationStatus: async (_id) => ({
63
+ success: true,
64
+ providerSenderId: _id,
65
+ status: 'verified',
66
+ verificationType: 'email',
67
+ }),
68
+ getDnsRequirements: async (_id) => [],
69
+ ...overrides,
70
+ };
71
+ }
72
+ describe('isManagedSenderProvider', () => {
73
+ it('returns false for base SenderProviderPlugin', () => {
74
+ const plugin = makeBasePlugin();
75
+ expect(isManagedSenderProvider(plugin)).toBe(false);
76
+ });
77
+ it('returns true for ManagedSenderProvider', () => {
78
+ const plugin = makeManagedPlugin();
79
+ expect(isManagedSenderProvider(plugin)).toBe(true);
80
+ });
81
+ it('returns true for VerifiableSenderProvider (superset)', () => {
82
+ const plugin = makeVerifiablePlugin();
83
+ expect(isManagedSenderProvider(plugin)).toBe(true);
84
+ });
85
+ it('returns false when only some managed methods are present', () => {
86
+ const plugin = {
87
+ ...makeBasePlugin(),
88
+ createSender: async () => ({
89
+ success: true,
90
+ providerSenderId: 'id',
91
+ email: 'a@b.com',
92
+ verificationStatus: 'pending',
93
+ }),
94
+ // missing updateSender and deleteSender
95
+ };
96
+ expect(isManagedSenderProvider(plugin)).toBe(false);
97
+ });
98
+ it('returns false when methods are not functions', () => {
99
+ const plugin = {
100
+ ...makeBasePlugin(),
101
+ createSender: 'not a function',
102
+ updateSender: 42,
103
+ deleteSender: null,
104
+ };
105
+ expect(isManagedSenderProvider(plugin)).toBe(false);
106
+ });
107
+ });
108
+ describe('isVerifiableSenderProvider', () => {
109
+ it('returns false for base SenderProviderPlugin', () => {
110
+ const plugin = makeBasePlugin();
111
+ expect(isVerifiableSenderProvider(plugin)).toBe(false);
112
+ });
113
+ it('returns false for ManagedSenderProvider without verification methods', () => {
114
+ const plugin = makeManagedPlugin();
115
+ expect(isVerifiableSenderProvider(plugin)).toBe(false);
116
+ });
117
+ it('returns true for VerifiableSenderProvider', () => {
118
+ const plugin = makeVerifiablePlugin();
119
+ expect(isVerifiableSenderProvider(plugin)).toBe(true);
120
+ });
121
+ it('returns false when only some verification methods are present', () => {
122
+ const plugin = {
123
+ ...makeManagedPlugin(),
124
+ getVerificationType: () => 'email',
125
+ initiateVerification: async () => ({
126
+ success: true,
127
+ providerSenderId: 'id',
128
+ status: 'pending',
129
+ verificationType: 'email',
130
+ }),
131
+ // missing checkVerificationStatus and getDnsRequirements
132
+ };
133
+ expect(isVerifiableSenderProvider(plugin)).toBe(false);
134
+ });
135
+ it('returns false when managed methods are missing but verification methods exist', () => {
136
+ const plugin = {
137
+ ...makeBasePlugin(),
138
+ getVerificationType: () => 'domain',
139
+ initiateVerification: async () => ({
140
+ success: true,
141
+ providerSenderId: 'id',
142
+ status: 'pending',
143
+ verificationType: 'domain',
144
+ }),
145
+ checkVerificationStatus: async () => ({
146
+ success: true,
147
+ providerSenderId: 'id',
148
+ status: 'verified',
149
+ verificationType: 'domain',
150
+ }),
151
+ getDnsRequirements: async () => [],
152
+ };
153
+ expect(isVerifiableSenderProvider(plugin)).toBe(false);
154
+ });
155
+ });
156
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { EmailSenderManager } from './manager.js';
2
- export type { SenderConfiguration, CreateSenderRequest, UpdateSenderRequest, ListSendersOptions, PaginatedResult, ValidationError, ValidationWarning, ProviderValidationResult, SenderValidationResult, VerificationResult, SelectionOptions, DomainMatchingRule, BootstrapConfig, SelectionConfig, ValidationConfig, DatabaseAdapter, ProviderSender, SenderProviderPlugin, SyncResult, BootstrapResult, CleanupResult, SenderManagerConfig, } from './types.js';
2
+ export type { SenderConfiguration, CreateSenderRequest, UpdateSenderRequest, ListSendersOptions, PaginatedResult, ValidationError, ValidationWarning, ProviderValidationResult, SenderValidationResult, VerificationResult, SelectionOptions, DomainMatchingRule, BootstrapConfig, SelectionConfig, ValidationConfig, DatabaseAdapter, ProviderSender, SenderProviderPlugin, SyncResult, BootstrapResult, CleanupResult, SenderManagerConfig, DNSRecordType, DNSRecord, ProviderErrorCode, ProviderVerificationStatus, ProviderVerificationType, ProviderCreateSenderInput, ProviderUpdateSenderInput, ProviderSenderResult, ProviderSenderError, ProviderDeleteResult, ProviderVerificationResult, ManagedSenderProvider, VerifiableSenderProvider, } from './types.js';
3
+ export { isManagedSenderProvider, isVerifiableSenderProvider } from './types.js';
3
4
  export { extractDomain, isDomainMatch, isValidEmail, getParentDomain, isSubdomainOf } from './utils/domain-utils.js';
4
5
  export { validateCreateSenderRequest, validateDomainAllowed, validateSenderConfiguration } from './utils/validation-utils.js';
5
6
  export { SenderBootstrap } from './database/bootstrap.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAG9H,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EAEnB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAGjF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAG9H,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -7,6 +7,8 @@ Redistribution or use in other products or commercial offerings is not permitted
7
7
  */
8
8
  // Main exports
9
9
  export { EmailSenderManager } from './manager.js';
10
+ // Type guard exports
11
+ export { isManagedSenderProvider, isVerifiableSenderProvider } from './types.js';
10
12
  // Utility exports
11
13
  export { extractDomain, isDomainMatch, isValidEmail, getParentDomain, isSubdomainOf } from './utils/domain-utils.js';
12
14
  export { validateCreateSenderRequest, validateDomainAllowed, validateSenderConfiguration } from './utils/validation-utils.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA4BlD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE9H,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA0ClD,qBAAqB;AACrB,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAEjF,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE9H,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -254,4 +254,79 @@ export interface RouteConflict {
254
254
  conflictingRoutes: string[];
255
255
  reason: string;
256
256
  }
257
+ export type DNSRecordType = 'SPF' | 'DKIM' | 'DMARC' | 'MX' | 'TXT' | 'CNAME';
258
+ export interface DNSRecord {
259
+ type: DNSRecordType;
260
+ host: string;
261
+ value: string;
262
+ ttl: number;
263
+ priority?: number;
264
+ }
265
+ export type ProviderErrorCode = 'MISSING_REQUIRED_FIELD' | 'INVALID_EMAIL' | 'INVALID_DOMAIN' | 'SENDER_ALREADY_EXISTS' | 'SENDER_NOT_FOUND' | 'UNSUPPORTED_FIELD' | 'UNSUPPORTED_OPERATION' | 'RATE_LIMITED' | 'AUTHENTICATION_FAILED' | 'PROVIDER_ERROR' | 'NETWORK_ERROR';
266
+ export type ProviderVerificationStatus = 'pending' | 'verified' | 'failed' | 'expired' | 'not_started';
267
+ export type ProviderVerificationType = 'email' | 'domain' | 'signature' | 'manual';
268
+ export interface ProviderCreateSenderInput {
269
+ fromEmail: string;
270
+ fromName: string;
271
+ replyToEmail?: string;
272
+ replyToName?: string;
273
+ /** Provider-specific fields (e.g., address/city/state for SendGrid) */
274
+ providerFields?: Record<string, unknown>;
275
+ }
276
+ export interface ProviderUpdateSenderInput {
277
+ providerSenderId: string;
278
+ fromName?: string;
279
+ replyToEmail?: string;
280
+ replyToName?: string;
281
+ providerFields?: Record<string, unknown>;
282
+ }
283
+ export interface ProviderSenderResult {
284
+ success: boolean;
285
+ providerSenderId: string;
286
+ email: string;
287
+ verificationStatus: ProviderVerificationStatus;
288
+ error?: ProviderSenderError;
289
+ metadata?: Record<string, unknown>;
290
+ }
291
+ export interface ProviderSenderError {
292
+ code: ProviderErrorCode;
293
+ message: string;
294
+ field?: string;
295
+ cause?: Error;
296
+ }
297
+ export interface ProviderDeleteResult {
298
+ success: boolean;
299
+ providerSenderId: string;
300
+ error?: ProviderSenderError;
301
+ }
302
+ export interface ProviderVerificationResult {
303
+ success: boolean;
304
+ providerSenderId: string;
305
+ status: ProviderVerificationStatus;
306
+ verificationType: ProviderVerificationType;
307
+ dnsRecords?: DNSRecord[];
308
+ message?: string;
309
+ error?: ProviderSenderError;
310
+ }
311
+ /**
312
+ * Extends SenderProviderPlugin with create/update/delete lifecycle methods.
313
+ * Providers that support API-driven sender management implement this.
314
+ */
315
+ export interface ManagedSenderProvider extends SenderProviderPlugin {
316
+ createSender(input: ProviderCreateSenderInput): Promise<ProviderSenderResult>;
317
+ updateSender(input: ProviderUpdateSenderInput): Promise<ProviderSenderResult>;
318
+ deleteSender(providerSenderId: string): Promise<ProviderDeleteResult>;
319
+ }
320
+ /**
321
+ * Extends ManagedSenderProvider with verification lifecycle methods.
322
+ * Providers that support email/domain/signature verification implement this.
323
+ */
324
+ export interface VerifiableSenderProvider extends ManagedSenderProvider {
325
+ getVerificationType(): ProviderVerificationType;
326
+ initiateVerification(providerSenderId: string): Promise<ProviderVerificationResult>;
327
+ checkVerificationStatus(providerSenderId: string): Promise<ProviderVerificationResult>;
328
+ getDnsRequirements(providerSenderId: string): Promise<DNSRecord[]>;
329
+ }
330
+ export declare function isManagedSenderProvider(plugin: SenderProviderPlugin): plugin is ManagedSenderProvider;
331
+ export declare function isVerifiableSenderProvider(plugin: SenderProviderPlugin): plugin is VerifiableSenderProvider;
257
332
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG3C,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IAC5C,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC;IACzD,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,QAAQ,CAAC;IACjE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5E,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACjE,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAGhD,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAG7D,eAAe,IAAI,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,eAAe,GACf,gBAAgB,GAChB,uBAAuB,GACvB,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,cAAc,GACd,uBAAuB,GACvB,gBAAgB,GAChB,eAAe,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAClC,SAAS,GACT,UAAU,GACV,QAAQ,GACR,SAAS,GACT,aAAa,CAAC;AAElB,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,0BAA0B,CAAC;IACnC,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAMD;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,YAAY,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9E,YAAY,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9E,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACvE;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,mBAAmB,IAAI,wBAAwB,CAAC;IAChD,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACpF,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvF,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CACpE;AAMD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,oBAAoB,GAC3B,MAAM,IAAI,qBAAqB,CAMjC;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,GAC3B,MAAM,IAAI,wBAAwB,CAQpC"}
package/dist/types.js CHANGED
@@ -5,5 +5,19 @@ This file is licensed to the client under a limited-use license.
5
5
  The client may use and modify this code *only within the scope of the project it was delivered for*.
6
6
  Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
7
  */
8
- export {};
8
+ // ---------------------------------------------------------------------------
9
+ // Type guards
10
+ // ---------------------------------------------------------------------------
11
+ export function isManagedSenderProvider(plugin) {
12
+ return (typeof plugin.createSender === 'function' &&
13
+ typeof plugin.updateSender === 'function' &&
14
+ typeof plugin.deleteSender === 'function');
15
+ }
16
+ export function isVerifiableSenderProvider(plugin) {
17
+ return (isManagedSenderProvider(plugin) &&
18
+ typeof plugin.getVerificationType === 'function' &&
19
+ typeof plugin.initiateVerification === 'function' &&
20
+ typeof plugin.checkVerificationStatus === 'function' &&
21
+ typeof plugin.getDnsRequirements === 'function');
22
+ }
9
23
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;EAME"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AA+ZF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,UAAU,uBAAuB,CACrC,MAA4B;IAE5B,OAAO,CACL,OAAQ,MAAgC,CAAC,YAAY,KAAK,UAAU;QACpE,OAAQ,MAAgC,CAAC,YAAY,KAAK,UAAU;QACpE,OAAQ,MAAgC,CAAC,YAAY,KAAK,UAAU,CACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAA4B;IAE5B,OAAO,CACL,uBAAuB,CAAC,MAAM,CAAC;QAC/B,OAAQ,MAAmC,CAAC,mBAAmB,KAAK,UAAU;QAC9E,OAAQ,MAAmC,CAAC,oBAAoB,KAAK,UAAU;QAC/E,OAAQ,MAAmC,CAAC,uBAAuB,KAAK,UAAU;QAClF,OAAQ,MAAmC,CAAC,kBAAkB,KAAK,UAAU,CAC9E,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bernierllc/email-sender-manager",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "Database-backed email sender configuration management with provider verification integration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,6 +40,7 @@
40
40
  "scripts": {
41
41
  "build": "tsc",
42
42
  "test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --no-cache",
43
+ "test:run": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --no-cache",
43
44
  "test:watch": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --watch",
44
45
  "test:coverage": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --coverage --no-cache",
45
46
  "lint": "eslint src --ext .ts",