{"version":3,"sources":["../src/exports/types.ts","../src/types/newsletter.ts","../src/types/broadcast.ts","../src/types/providers.ts"],"sourcesContent":["export * from '../types'","/**\n * Core types for newsletter management functionality\n */\n\n/**\n * Represents a newsletter/broadcast in the system\n */\nexport interface Newsletter {\n  id: string;\n  name: string;\n  subject: string;\n  preheader?: string;\n  content: string; // HTML content\n  status: NewsletterStatus;\n  trackOpens: boolean;\n  trackClicks: boolean;\n  replyTo?: string;\n  recipientCount?: number;\n  sentAt?: Date;\n  scheduledAt?: Date;\n  createdAt: Date;\n  updatedAt: Date;\n  // Provider-specific data stored here\n  providerData?: Record<string, any>;\n  // Provider information\n  providerId?: string;\n  providerType?: 'broadcast' | 'resend';\n}\n\n/**\n * Possible statuses for a newsletter\n */\nexport enum NewsletterStatus {\n  DRAFT = 'draft',\n  SCHEDULED = 'scheduled',\n  SENDING = 'sending',\n  SENT = 'sent',\n  FAILED = 'failed',\n  PAUSED = 'paused',\n  CANCELED = 'canceled'\n}\n\n/**\n * Options for listing newsletters\n */\nexport interface ListNewsletterOptions {\n  limit?: number;\n  offset?: number;\n  status?: NewsletterStatus;\n  sortBy?: 'createdAt' | 'updatedAt' | 'sentAt' | 'name';\n  sortOrder?: 'asc' | 'desc';\n}\n\n/**\n * Response from listing newsletters\n */\nexport interface ListNewsletterResponse<T = Newsletter> {\n  items: T[];\n  total: number;\n  limit: number;\n  offset: number;\n  hasMore: boolean;\n}\n\n/**\n * Input for creating a new newsletter\n */\nexport interface CreateNewsletterInput {\n  name: string;\n  subject: string;\n  preheader?: string;\n  content: string;\n  trackOpens?: boolean;\n  trackClicks?: boolean;\n  replyTo?: string;\n  audienceIds?: string[]; // Maps to segments/audiences\n}\n\n/**\n * Input for updating an existing newsletter\n */\nexport interface UpdateNewsletterInput {\n  name?: string;\n  subject?: string;\n  preheader?: string;\n  content?: string;\n  trackOpens?: boolean;\n  trackClicks?: boolean;\n  replyTo?: string;\n  audienceIds?: string[];\n}\n\n/**\n * Options for sending a newsletter\n */\nexport interface SendNewsletterOptions {\n  audienceIds?: string[]; // Target specific audiences\n  testMode?: boolean; // Send test email\n  testRecipients?: string[]; // Email addresses for test send\n}\n\n/**\n * Analytics data for a newsletter\n */\nexport interface NewsletterAnalytics {\n  sent: number;\n  delivered: number;\n  opened: number;\n  clicked: number;\n  bounced: number;\n  complained: number;\n  unsubscribed: number;\n  deliveryRate?: number;\n  openRate?: number;\n  clickRate?: number;\n  bounceRate?: number;\n}\n\n/**\n * Capabilities that a newsletter provider supports\n */\nexport interface NewsletterProviderCapabilities {\n  supportsScheduling: boolean;\n  supportsSegmentation: boolean;\n  supportsAnalytics: boolean;\n  supportsABTesting: boolean;\n  supportsTemplates: boolean;\n  supportsPersonalization: boolean;\n  maxRecipientsPerSend?: number;\n  editableStatuses: NewsletterStatus[];\n  supportedContentTypes: ('html' | 'text' | 'react')[];\n}\n\n/**\n * Error types specific to newsletter operations\n */\nexport class NewsletterProviderError extends Error {\n  constructor(\n    message: string,\n    public code: NewsletterErrorCode,\n    public provider: string,\n    public details?: any\n  ) {\n    super(message);\n    this.name = 'NewsletterProviderError';\n  }\n}\n\nexport enum NewsletterErrorCode {\n  NOT_SUPPORTED = 'NOT_SUPPORTED',\n  INVALID_STATUS = 'INVALID_STATUS',\n  PROVIDER_ERROR = 'PROVIDER_ERROR',\n  VALIDATION_ERROR = 'VALIDATION_ERROR',\n  NOT_FOUND = 'NOT_FOUND',\n  PERMISSION_DENIED = 'PERMISSION_DENIED',\n  RATE_LIMITED = 'RATE_LIMITED',\n  CONFIGURATION_ERROR = 'CONFIGURATION_ERROR'\n}\n\n/**\n * Newsletter template for reusable content\n */\nexport interface NewsletterTemplate {\n  id: string;\n  name: string;\n  description?: string;\n  content: string;\n  variables?: NewsletterTemplateVariable[];\n  createdAt: Date;\n  updatedAt: Date;\n}\n\nexport interface NewsletterTemplateVariable {\n  name: string;\n  type: 'text' | 'html' | 'image' | 'url';\n  defaultValue?: string;\n  required?: boolean;\n}","/**\n * Core types for broadcast management functionality\n */\n\n/**\n * Represents a broadcast (individual email campaign) in the system\n */\nexport interface Broadcast {\n  id: string;\n  channelId: string; // Reference to the channel this broadcast belongs to\n  name: string;\n  subject: string;\n  preheader?: string;\n  content: string; // HTML content\n  status: BroadcastStatus;\n  trackOpens: boolean;\n  trackClicks: boolean;\n  replyTo?: string;\n  recipientCount?: number;\n  sentAt?: Date;\n  scheduledAt?: Date;\n  createdAt: Date;\n  updatedAt: Date;\n  // Provider-specific data stored here\n  providerData?: Record<string, any>;\n  // Provider information\n  providerId?: string;\n  providerType?: 'broadcast' | 'resend';\n}\n\n/**\n * Possible statuses for a broadcast\n */\nexport enum BroadcastStatus {\n  DRAFT = 'draft',\n  SCHEDULED = 'scheduled',\n  SENDING = 'sending',\n  SENT = 'sent',\n  FAILED = 'failed',\n  PAUSED = 'paused',\n  CANCELED = 'canceled'\n}\n\n/**\n * Options for listing broadcasts\n */\nexport interface ListBroadcastOptions {\n  limit?: number;\n  offset?: number;\n  status?: BroadcastStatus;\n  channelId?: string; // Filter by channel\n  sortBy?: 'createdAt' | 'updatedAt' | 'sentAt' | 'name';\n  sortOrder?: 'asc' | 'desc';\n}\n\n/**\n * Response from listing broadcasts\n */\nexport interface ListBroadcastResponse<T = Broadcast> {\n  items: T[];\n  total: number;\n  limit: number;\n  offset: number;\n  hasMore: boolean;\n}\n\n/**\n * Input for creating a new broadcast\n */\nexport interface CreateBroadcastInput {\n  channelId: string; // Which channel to send to\n  name: string;\n  subject: string;\n  preheader?: string;\n  content: string;\n  trackOpens?: boolean;\n  trackClicks?: boolean;\n  replyTo?: string;\n  audienceIds?: string[]; // Maps to segments/audiences within the channel\n}\n\n/**\n * Input for updating an existing broadcast\n */\nexport interface UpdateBroadcastInput {\n  name?: string;\n  subject?: string;\n  preheader?: string;\n  content?: string;\n  trackOpens?: boolean;\n  trackClicks?: boolean;\n  replyTo?: string;\n  audienceIds?: string[];\n}\n\n/**\n * Options for sending a broadcast\n */\nexport interface SendBroadcastOptions {\n  audienceIds?: string[]; // Target specific audiences within the channel\n  testMode?: boolean; // Send test email\n  testRecipients?: string[]; // Email addresses for test send\n}\n\n/**\n * Analytics data for a broadcast\n */\nexport interface BroadcastAnalytics {\n  sent: number;\n  delivered: number;\n  opened: number;\n  clicked: number;\n  bounced: number;\n  complained: number;\n  unsubscribed: number;\n  deliveryRate?: number;\n  openRate?: number;\n  clickRate?: number;\n  bounceRate?: number;\n}\n\n/**\n * Capabilities that a broadcast provider supports\n */\nexport interface BroadcastProviderCapabilities {\n  supportsScheduling: boolean;\n  supportsSegmentation: boolean;\n  supportsAnalytics: boolean;\n  supportsABTesting: boolean;\n  supportsTemplates: boolean;\n  supportsPersonalization: boolean;\n  maxRecipientsPerSend?: number;\n  editableStatuses: BroadcastStatus[];\n  supportedContentTypes: ('html' | 'text' | 'react')[];\n  // Channel-specific capabilities\n  supportsMultipleChannels: boolean;\n  supportsChannelSegmentation: boolean;\n}\n\n/**\n * Error types specific to broadcast operations\n */\nexport class BroadcastProviderError extends Error {\n  constructor(\n    message: string,\n    public code: BroadcastErrorCode,\n    public provider: string,\n    public details?: any\n  ) {\n    super(message);\n    this.name = 'BroadcastProviderError';\n  }\n}\n\nexport enum BroadcastErrorCode {\n  NOT_SUPPORTED = 'NOT_SUPPORTED',\n  INVALID_STATUS = 'INVALID_STATUS',\n  PROVIDER_ERROR = 'PROVIDER_ERROR',\n  VALIDATION_ERROR = 'VALIDATION_ERROR',\n  NOT_FOUND = 'NOT_FOUND',\n  PERMISSION_DENIED = 'PERMISSION_DENIED',\n  RATE_LIMITED = 'RATE_LIMITED',\n  CONFIGURATION_ERROR = 'CONFIGURATION_ERROR',\n  CHANNEL_NOT_FOUND = 'CHANNEL_NOT_FOUND',\n  INVALID_CHANNEL = 'INVALID_CHANNEL'\n}\n\n/**\n * Broadcast template for reusable content\n */\nexport interface BroadcastTemplate {\n  id: string;\n  channelId?: string; // Optional channel-specific template\n  name: string;\n  description?: string;\n  content: string;\n  variables?: BroadcastTemplateVariable[];\n  createdAt: Date;\n  updatedAt: Date;\n}\n\nexport interface BroadcastTemplateVariable {\n  name: string;\n  type: 'text' | 'html' | 'image' | 'url';\n  defaultValue?: string;\n  required?: boolean;\n}\n\n// Re-export newsletter types with deprecation notice for backwards compatibility\nexport {\n  NewsletterStatus,\n  type ListNewsletterOptions,\n  type ListNewsletterResponse,\n  type CreateNewsletterInput,\n  type UpdateNewsletterInput,\n  type SendNewsletterOptions,\n  type NewsletterAnalytics,\n  type NewsletterProviderCapabilities,\n  NewsletterProviderError,\n  NewsletterErrorCode,\n  type NewsletterTemplate,\n  type NewsletterTemplateVariable\n} from './newsletter';","/**\n * Provider interfaces for broadcast management\n */\n\n// Import broadcast types\nimport type {\n  Broadcast,\n  BroadcastStatus,\n  ListBroadcastOptions,\n  ListBroadcastResponse,\n  CreateBroadcastInput,\n  UpdateBroadcastInput,\n  SendBroadcastOptions,\n  BroadcastAnalytics,\n  BroadcastProviderCapabilities\n} from './broadcast'\n\nimport {\n  BroadcastProviderError,\n  BroadcastErrorCode\n} from './broadcast'\n\n// Import channel types\nimport type {\n  Channel,\n  CreateChannelInput,\n  UpdateChannelInput,\n  ListChannelsOptions,\n  ListChannelsResponse\n} from './channel'\n\n// Import legacy newsletter types for backwards compatibility\nimport type {\n  Newsletter,\n  NewsletterStatus,\n  ListNewsletterOptions,\n  ListNewsletterResponse,\n  CreateNewsletterInput,\n  UpdateNewsletterInput,\n  SendNewsletterOptions,\n  NewsletterAnalytics,\n  NewsletterProviderCapabilities\n} from './newsletter'\n\nimport {\n  NewsletterProviderError,\n  NewsletterErrorCode\n} from './newsletter'\n\n/**\n * Main interface for broadcast providers\n */\nexport interface BroadcastProvider {\n  /**\n   * Get the provider name\n   */\n  readonly name: string;\n\n  // Channel management methods\n  /**\n   * List channels (newsletter types/publications)\n   */\n  listChannels(options?: ListChannelsOptions): Promise<ListChannelsResponse>;\n  \n  /**\n   * Get a specific channel by ID\n   */\n  getChannel(id: string): Promise<Channel>;\n  \n  /**\n   * Create a new channel\n   */\n  createChannel(data: CreateChannelInput): Promise<Channel>;\n  \n  /**\n   * Update an existing channel\n   */\n  updateChannel(id: string, data: UpdateChannelInput): Promise<Channel>;\n  \n  /**\n   * Delete a channel\n   */\n  deleteChannel(id: string): Promise<void>;\n\n  // Broadcast management methods\n  /**\n   * List broadcasts with pagination\n   */\n  list(options?: ListBroadcastOptions): Promise<ListBroadcastResponse<Broadcast>>;\n  \n  /**\n   * Get a specific broadcast by ID\n   */\n  get(id: string): Promise<Broadcast>;\n  \n  /**\n   * Create a new broadcast\n   */\n  create(data: CreateBroadcastInput): Promise<Broadcast>;\n  \n  /**\n   * Update an existing broadcast\n   */\n  update(id: string, data: UpdateBroadcastInput): Promise<Broadcast>;\n  \n  /**\n   * Delete a broadcast\n   */\n  delete(id: string): Promise<void>;\n  \n  /**\n   * Send a broadcast immediately or to test recipients\n   */\n  send(id: string, options?: SendBroadcastOptions): Promise<Broadcast>;\n  \n  /**\n   * Schedule a broadcast for future sending\n   */\n  schedule(id: string, scheduledAt: Date): Promise<Broadcast>;\n  \n  /**\n   * Cancel a scheduled broadcast\n   */\n  cancelSchedule(id: string): Promise<Broadcast>;\n  \n  /**\n   * Get analytics for a broadcast\n   */\n  getAnalytics(id: string): Promise<BroadcastAnalytics>;\n  \n  /**\n   * Get provider capabilities\n   */\n  getCapabilities(): BroadcastProviderCapabilities;\n  \n  /**\n   * Validate that the provider is properly configured\n   */\n  validateConfiguration(): Promise<boolean>;\n}\n\n/**\n * Legacy newsletter provider interface for backwards compatibility\n * @deprecated Use BroadcastProvider instead\n */\nexport interface NewsletterProvider {\n  /**\n   * Get the provider name\n   */\n  readonly name: string;\n\n  /**\n   * List newsletters with pagination\n   */\n  list(options?: ListNewsletterOptions): Promise<ListNewsletterResponse<Newsletter>>;\n  \n  /**\n   * Get a specific newsletter by ID\n   */\n  get(id: string): Promise<Newsletter>;\n  \n  /**\n   * Create a new newsletter\n   */\n  create(data: CreateNewsletterInput): Promise<Newsletter>;\n  \n  /**\n   * Update an existing newsletter\n   */\n  update(id: string, data: UpdateNewsletterInput): Promise<Newsletter>;\n  \n  /**\n   * Delete a newsletter\n   */\n  delete(id: string): Promise<void>;\n  \n  /**\n   * Send a newsletter immediately or to test recipients\n   */\n  send(id: string, options?: SendNewsletterOptions): Promise<Newsletter>;\n  \n  /**\n   * Schedule a newsletter for future sending\n   */\n  schedule(id: string, scheduledAt: Date): Promise<Newsletter>;\n  \n  /**\n   * Cancel a scheduled newsletter\n   */\n  cancelSchedule(id: string): Promise<Newsletter>;\n  \n  /**\n   * Get analytics for a newsletter\n   */\n  getAnalytics(id: string): Promise<NewsletterAnalytics>;\n  \n  /**\n   * Get provider capabilities\n   */\n  getCapabilities(): NewsletterProviderCapabilities;\n  \n  /**\n   * Validate that the provider is properly configured\n   */\n  validateConfiguration(): Promise<boolean>;\n}\n\n/**\n * Base abstract class for broadcast providers\n */\nexport abstract class BaseBroadcastProvider implements BroadcastProvider {\n  abstract readonly name: string;\n  \n  constructor(protected config: any) {}\n  \n  // Channel management - abstract methods\n  abstract listChannels(options?: ListChannelsOptions): Promise<ListChannelsResponse>;\n  abstract getChannel(id: string): Promise<Channel>;\n  abstract createChannel(data: CreateChannelInput): Promise<Channel>;\n  abstract updateChannel(id: string, data: UpdateChannelInput): Promise<Channel>;\n  abstract deleteChannel(id: string): Promise<void>;\n  \n  // Broadcast management - abstract methods\n  abstract list(options?: ListBroadcastOptions): Promise<ListBroadcastResponse<Broadcast>>;\n  abstract get(id: string): Promise<Broadcast>;\n  abstract create(data: CreateBroadcastInput): Promise<Broadcast>;\n  abstract update(id: string, data: UpdateBroadcastInput): Promise<Broadcast>;\n  abstract delete(id: string): Promise<void>;\n  abstract send(id: string, options?: SendBroadcastOptions): Promise<Broadcast>;\n  abstract getCapabilities(): BroadcastProviderCapabilities;\n  abstract validateConfiguration(): Promise<boolean>;\n  \n  /**\n   * Schedule a broadcast - default implementation throws not supported\n   */\n  async schedule(_id: string, _scheduledAt: Date): Promise<Broadcast> {\n    const capabilities = this.getCapabilities();\n    if (!capabilities.supportsScheduling) {\n      throw new BroadcastProviderError(\n        'Scheduling is not supported by this provider',\n        BroadcastErrorCode.NOT_SUPPORTED,\n        this.name\n      );\n    }\n    throw new Error('Method not implemented');\n  }\n  \n  /**\n   * Cancel scheduled broadcast - default implementation throws not supported\n   */\n  async cancelSchedule(_id: string): Promise<Broadcast> {\n    const capabilities = this.getCapabilities();\n    if (!capabilities.supportsScheduling) {\n      throw new BroadcastProviderError(\n        'Scheduling is not supported by this provider',\n        BroadcastErrorCode.NOT_SUPPORTED,\n        this.name\n      );\n    }\n    throw new Error('Method not implemented');\n  }\n  \n  /**\n   * Get analytics - default implementation returns zeros\n   */\n  async getAnalytics(_id: string): Promise<BroadcastAnalytics> {\n    const capabilities = this.getCapabilities();\n    if (!capabilities.supportsAnalytics) {\n      throw new BroadcastProviderError(\n        'Analytics are not supported by this provider',\n        BroadcastErrorCode.NOT_SUPPORTED,\n        this.name\n      );\n    }\n    \n    return {\n      sent: 0,\n      delivered: 0,\n      opened: 0,\n      clicked: 0,\n      bounced: 0,\n      complained: 0,\n      unsubscribed: 0\n    };\n  }\n  \n  /**\n   * Helper method to validate required fields\n   */\n  protected validateRequiredFields(data: any, fields: string[]): void {\n    const missing = fields.filter(field => !data[field]);\n    if (missing.length > 0) {\n      throw new BroadcastProviderError(\n        `Missing required fields: ${missing.join(', ')}`,\n        BroadcastErrorCode.VALIDATION_ERROR,\n        this.name\n      );\n    }\n  }\n  \n  /**\n   * Helper method to check if a status transition is allowed\n   */\n  protected canEditInStatus(status: BroadcastStatus): boolean {\n    const capabilities = this.getCapabilities();\n    return capabilities.editableStatuses.includes(status);\n  }\n  \n  /**\n   * Helper to build pagination response\n   */\n  protected buildListResponse<T>(\n    items: T[],\n    total: number,\n    options: ListBroadcastOptions = {}\n  ): ListBroadcastResponse<T> {\n    const limit = options.limit || 20;\n    const offset = options.offset || 0;\n    \n    return {\n      items,\n      total,\n      limit,\n      offset,\n      hasMore: offset + items.length < total\n    };\n  }\n}\n\n/**\n * Base abstract class for newsletter providers\n * @deprecated Use BaseBroadcastProvider instead\n */\nexport abstract class BaseNewsletterProvider implements NewsletterProvider {\n  abstract readonly name: string;\n  \n  constructor(protected config: any) {}\n  \n  abstract list(options?: ListNewsletterOptions): Promise<ListNewsletterResponse<Newsletter>>;\n  abstract get(id: string): Promise<Newsletter>;\n  abstract create(data: CreateNewsletterInput): Promise<Newsletter>;\n  abstract update(id: string, data: UpdateNewsletterInput): Promise<Newsletter>;\n  abstract delete(id: string): Promise<void>;\n  abstract send(id: string, options?: SendNewsletterOptions): Promise<Newsletter>;\n  abstract getCapabilities(): NewsletterProviderCapabilities;\n  abstract validateConfiguration(): Promise<boolean>;\n  \n  /**\n   * Schedule a newsletter - default implementation throws not supported\n   */\n  async schedule(_id: string, _scheduledAt: Date): Promise<Newsletter> {\n    const capabilities = this.getCapabilities();\n    if (!capabilities.supportsScheduling) {\n      throw new NewsletterProviderError(\n        'Scheduling is not supported by this provider',\n        NewsletterErrorCode.NOT_SUPPORTED,\n        this.name\n      );\n    }\n    throw new Error('Method not implemented');\n  }\n  \n  /**\n   * Cancel scheduled newsletter - default implementation throws not supported\n   */\n  async cancelSchedule(_id: string): Promise<Newsletter> {\n    const capabilities = this.getCapabilities();\n    if (!capabilities.supportsScheduling) {\n      throw new NewsletterProviderError(\n        'Scheduling is not supported by this provider',\n        NewsletterErrorCode.NOT_SUPPORTED,\n        this.name\n      );\n    }\n    throw new Error('Method not implemented');\n  }\n  \n  /**\n   * Get analytics - default implementation returns zeros\n   */\n  async getAnalytics(_id: string): Promise<NewsletterAnalytics> {\n    const capabilities = this.getCapabilities();\n    if (!capabilities.supportsAnalytics) {\n      throw new NewsletterProviderError(\n        'Analytics are not supported by this provider',\n        NewsletterErrorCode.NOT_SUPPORTED,\n        this.name\n      );\n    }\n    \n    return {\n      sent: 0,\n      delivered: 0,\n      opened: 0,\n      clicked: 0,\n      bounced: 0,\n      complained: 0,\n      unsubscribed: 0\n    };\n  }\n  \n  /**\n   * Helper method to validate required fields\n   */\n  protected validateRequiredFields(data: any, fields: string[]): void {\n    const missing = fields.filter(field => !data[field]);\n    if (missing.length > 0) {\n      throw new NewsletterProviderError(\n        `Missing required fields: ${missing.join(', ')}`,\n        NewsletterErrorCode.VALIDATION_ERROR,\n        this.name\n      );\n    }\n  }\n  \n  /**\n   * Helper method to check if a status transition is allowed\n   */\n  protected canEditInStatus(status: NewsletterStatus): boolean {\n    const capabilities = this.getCapabilities();\n    return capabilities.editableStatuses.includes(status);\n  }\n  \n  /**\n   * Helper to build pagination response\n   */\n  protected buildListResponse<T>(\n    items: T[],\n    total: number,\n    options: ListNewsletterOptions = {}\n  ): ListNewsletterResponse<T> {\n    const limit = options.limit || 20;\n    const offset = options.offset || 0;\n    \n    return {\n      items,\n      total,\n      limit,\n      offset,\n      hasMore: offset + items.length < total\n    };\n  }\n}"],"mappings":"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","names":["NewsletterStatus","NewsletterErrorCode","BroadcastStatus","BroadcastErrorCode"]}