UNPKG

payload-plugin-newsletter

Version:

Complete newsletter management plugin for Payload CMS with subscriber management, magic link authentication, and email service integration

61 lines (55 loc) 1.96 kB
import { SerializedEditorState } from 'lexical'; import { PayloadRequest } from 'payload'; import { NewsletterPluginConfig, BroadcastProviderConfig, ResendProviderConfig } from './types.cjs'; /** * DOMPurify configuration for email-safe HTML */ declare const EMAIL_SAFE_CONFIG: { ALLOWED_TAGS: string[]; ALLOWED_ATTR: string[]; ALLOWED_STYLES: { '*': string[]; }; FORBID_TAGS: string[]; FORBID_ATTR: string[]; }; /** * Converts Lexical editor state to email-safe HTML */ declare function convertToEmailSafeHtml(editorState: SerializedEditorState | undefined | null, options?: { wrapInTemplate?: boolean; preheader?: string; mediaUrl?: string; customBlockConverter?: (node: any, mediaUrl?: string) => Promise<string>; payload?: any; populateFields?: string[] | ((blockType: string) => string[]); customWrapper?: (content: string, options?: { preheader?: string; subject?: string; documentData?: Record<string, any>; }) => string | Promise<string>; subject?: string; documentData?: Record<string, any>; }): Promise<string>; /** * Email HTML validation utilities */ interface ValidationResult { valid: boolean; warnings: string[]; errors: string[]; stats: { sizeInBytes: number; imageCount: number; linkCount: number; hasExternalStyles: boolean; hasJavaScript: boolean; }; } /** * Validate HTML for email compatibility */ declare function validateEmailHtml(html: string): ValidationResult; declare function getBroadcastConfig(req: PayloadRequest, pluginConfig: NewsletterPluginConfig): Promise<BroadcastProviderConfig | null>; declare function getResendConfig(req: PayloadRequest, pluginConfig: NewsletterPluginConfig): Promise<ResendProviderConfig | null>; export { EMAIL_SAFE_CONFIG, type ValidationResult, convertToEmailSafeHtml, getBroadcastConfig, getResendConfig, validateEmailHtml };