# Changelog ## 2025-05-08 - 2.11.1 - fix(platform) Update commit info with no functional changes; regenerated commit information. ## 2025-05-08 - 2.11.0 - feat(platformservice) Expose DcRouter and update package visibility. Changed package.json 'private' flag from true to false to allow public publication, and added export of DcRouter in ts/index.ts for improved API accessibility. - Changed package.json: set 'private' to false - Added export for DcRouter in ts/index.ts ## 2025-05-08 - 2.10.0 - feat(config): Implement standardized configuration system Create a comprehensive configuration system with validation, defaults, and documentation - Added consistent configuration interfaces across all services - Implemented validation for all configuration objects with detailed error reporting - Added default values for optional configuration parameters - Created an extensive documentation system for configuration options - Added migration helpers for managing configuration format changes - Enhanced platform service to load configuration from multiple sources (file, environment, code) - Updated email and SMS services to use the new configuration system ## 2025-05-08 - 2.9.0 - feat(errors): Implement comprehensive error handling system Enhance error handling with structured errors, consistent patterns, and improved logging - Added domain-specific error classes for better error categorization and handling - Created comprehensive error codes for all service types (email, MTA, security, etc.) - Implemented detailed error context with severity, category, and recoverability classification - Added utilities for error conversion, formatting, and handling with automatic retry mechanisms - Enhanced logging with correlation tracking, context support, and structured data - Created middleware for handling errors in HTTP requests with proper status code mapping - Added retry with exponential backoff for transient failures ## 2025-05-08 - 2.8.9 - fix(types) Fix TypeScript build errors and improve API type safety across platformservice interfaces - Fixed interface placement in EmailService and MtaConnector classes - Aligned DeliveryStatus enum and updated ApiManager handlers with proper type-safe signatures - Added comprehensive TypeScript interfaces for ISendEmailOptions, ITemplateContext, IValidateEmailOptions, IValidationResult, and IEmailServiceStats - Removed circular dependencies in type definitions and added proper type assertions - Improved test stability by handling race conditions in SenderReputationMonitor and IPWarmupManager; external DNS lookups are disabled under test environment ## 2025-05-08 - 2.8.8 - fix(types): Fix TypeScript build errors and improve API interfaces Fix TypeScript build errors caused by interface placement and improve API type alignment - Fixed interface placement in EmailService and MtaConnector classes - Aligned DeliveryStatus enum with EmailSendJob implementation - Added proper method signatures for API endpoint handlers in ApiManager class - Updated getStats and checkEmailStatus methods to conform to API contracts - Implemented type-safe return values for all API methods - Fixed circular dependencies in type definitions - Added proper type assertion where needed to satisfy TypeScript compiler ## 2025-05-08 - 2.8.7 - feat(types): Add comprehensive TypeScript interfaces for API types Improve type safety across the platform by adding detailed TypeScript interfaces for APIs - Added ISendEmailOptions interface with complete documentation for email sending options - Created ITemplateContext interface for email template rendering with full type safety - Added IValidateEmailOptions and IValidationResult interfaces for email validation - Improved IEmailServiceStats interface with detailed statistics types - Added IEmailStatusResponse and IEmailStatusDetails interfaces for MTA status checking - Updated sendEmail and other methods to use these new interfaces instead of 'any' - Removed need for type assertions in various components ## 2025-05-08 - 2.8.6 - fix(tests) fix: Improve test stability by handling race conditions in SenderReputationMonitor and IPWarmupManager. Disable filesystem operations and external DNS lookups during tests by checking NODE_ENV, add proper cleanup of singleton instances and active timeouts to ensure consistent test environment. - Bumped version from 2.8.4 to 2.8.5 in package.json and changelog.md - Improved SenderReputationMonitor to skip filesystem operations and DNS record loading when NODE_ENV is set to test - Added cleanup of singleton instances and active timeouts in test files - Updated readme.plan.md with roadmap items for test stability ## 2025-05-08 - 2.8.5 - fix(tests): Improve test stability by fixing race conditions Enhance the SenderReputationMonitor tests to prevent race conditions and make tests more reliable - Modified SenderReputationMonitor to detect test environment and disable filesystem operations - Added proper cleanup of singleton instances and timeouts between tests - Disabled DNS lookups during tests to prevent external dependencies - Set a consistent test environment using NODE_ENV=test - Made all tests independent of each other to prevent shared state issues ## 2025-05-08 - 2.8.4 - fix(mail) refactor(mail): Remove Mailgun references from PlatformService. Update keywords, error messages, and documentation to use MTA exclusively. - Removed Mailgun integration from keywords in package.json and npmextra.json - Updated EmailService to remove Mailgun API key usage and reference MTA instead - Updated changelog.md and readme.md to reflect removal of Mailgun and update examples - Revised error messages to mention 'MTA not configured' instead of generic provider errors - Updated readme.plan.md to document Mailgun removal ## 2025-05-08 - 2.8.3 - refactor(mail): Remove Mailgun references Remove all Mailgun references from the codebase since it's no longer used as an email provider - Removed "mailgun integration" from keywords in package.json and npmextra.json - Updated comments and documentation in EmailService to remove Mailgun mentions - Updated error messages to reference MTA instead of generic email providers - Updated the readme email example to use PlatformService reference instead of Mailgun API key ## 2025-05-08 - 2.8.2 - fix(tests) Fix outdated import paths in test files for dcrouter and ratelimiter modules - Updated dcrouter import from '../ts/dcrouter/index.js' to '../ts/classes.dcrouter.js' - Updated ratelimiter import from '../ts/mta/classes.ratelimiter.js' to '../ts/mail/delivery/classes.ratelimiter.js' ## 2025-05-08 - 2.8.1 - fix(readme) Update readme with consolidated email system improvements and modular directory structure Clarify that the platform now organizes email functionality into distinct directories (mail/core, mail/delivery, mail/routing, mail/security, mail/services) and update the diagram and key features list accordingly. Adjust code examples to reflect explicit module imports and the use of SzPlatformService. - Changed description of consolidated email configuration to include 'streamlined directory structure'. - Updated mermaid diagram to show 'Mail System Structure' with separate components for core, delivery, routing, security, and services. - Modified key features list to document modular directory structure. - Revised code sample imports to use explicit paths and SzPlatformService. ## 2025-05-08 - 2.8.0 - feat(docs) Update documentation to include consolidated email handling and pattern‑based routing details - Extended MTA section to describe the new unified email processing system with forward, MTA, and process modes - Updated system diagram to reflect DcRouter integration with UnifiedEmailServer, DeliveryQueue, DeliverySystem, and RateLimiter - Revised readme.plan.md checklists to mark completed features in core architecture, multi‑modal processing, unified queue, and DcRouter integration ## 2025-05-08 - 2.7.0 - feat(dcrouter) Implement unified email configuration with pattern‐based routing and consolidated email processing. Migrate SMTP forwarding and store‐and‐forward into a single, configuration-driven system that supports glob pattern matching in domain rules. - Introduced IEmailConfig interface to consolidate MTA, forwarding, and processing settings. - Added pattern-based domain routing with glob patterns (e.g., '*@example.com', '*@*.example.net'). - Reworked DcRouter integration to expose unified email handling and updated readme.plan.md and changelog.md accordingly. - Removed deprecated SMTP forwarding components in favor of the consolidated approach. ## 2025-05-08 - 2.7.0 - feat(dcrouter) Implement consolidated email configuration with pattern-based routing - Added new pattern-based email routing with glob patterns (e.g., `*@task.vc`, `*@*.example.net`) - Consolidated all email functionality (MTA, forwarding, processing) under a unified `emailConfig` interface - Implemented domain router with pattern specificity calculation for most accurate matching - Removed deprecated components (SMTP forwarding, Store-and-Forward) in favor of the unified approach - Updated DcRouter tests to use the new consolidated email configuration pattern - Enhanced inline documentation with detailed interface definitions and configuration examples - Updated implementation plan with comprehensive component designs for the unified email system ## 2025-05-07 - 2.6.0 - feat(dcrouter) Implement integrated DcRouter with comprehensive SmartProxy configuration, enhanced SMTP processing, and robust store‐and‐forward email routing - Marked completion of tasks in readme.plan.md with [x] flags for SMTP server setup, email processing pipeline, queue management, and delivery system. - Reworked DcRouter to use direct SmartProxy configuration, separating smtpConfig and smtpForwarding approaches. - Added new components for delivery queue and delivery system with persistent storage support. - Improved SMTP server implementation with TLS support, event handlers for connection, authentication, sender/recipient validation, and data processing. - Refined domain-based routing and transformation logic in EmailProcessor with metrics and logging. - Updated exported modules in dcrouter index to include SMTP store‐and‐forward components. - Enhanced inline documentation and code comments for configuration interfaces and integration details. ## 2025-05-07 - 2.5.0 - feat(dcrouter) Enhance DcRouter configuration and update documentation - Added new implementation hints (readme.hints.md) and planning documentation (readme.plan.md) outlining removal of SzPlatformService dependency and improvements in SMTP forwarding, domain routing, and certificate management. - Introduced new interfaces: ISmtpForwardingConfig and IDomainRoutingConfig for precise SMTP and HTTP domain routing configuration. - Refactored DcRouter classes to support direct integration with SmartProxy and enhanced MTA functionality, including SMTP port configuration and improved TLS handling. - Updated supporting modules such as SmtpPortConfig and EmailDomainRouter to provide better routing and security options. - Enhanced test coverage across dcrouter, rate limiter, IP warmup manager, and email authentication, ensuring backward compatibility and improved quality. ## 2025-05-07 - 2.4.2 - fix(tests) Update test assertions and singleton instance references in DMARC, integration, and IP warmup manager tests - In test.emailauth.ts, update expected DMARC policy from 'none' to 'reject' and verify actualPolicy and action accordingly - In test.integration.ts, remove deprecated casting and adjust dedicated policy naming (use 'dedicated' instead of 'dedicatedDomain') - In test.ipwarmupmanager.ts and test.reputationmonitor.ts, replace singleton reset from '_instance' to 'instance' for proper instance access - Update round robin allocation tests to verify IP cycle returns one of the available IPs - Enhance daily limit tests by verifying getBestIPForSending returns null when limit is reached - General refactoring across tests for improved clarity and consistency ## 2025-05-07 - 2.4.1 - fix(tests) Update test assertions and refine service interfaces - Converted outdated chai assertions to use tap's toBeTruthy, toEqual, and toBeGreaterThan methods in multiple test files - Appended tap.stopForcefully() tests to ensure proper cleanup in test suites - Added stop() method to PlatformService for graceful shutdown - Exposed certificate property in MtaService from private to public - Refactored dcrouter smartProxy configuration to better handle MTA service integration and certificate provisioning ## 2025-05-07 - 2.4.0 - feat(email) Enhance email integration by updating @push.rocks/smartmail to ^2.1.0 and improving the entire email stack including validation, DKIM verification, templating, MIME conversion, and attachment handling. - Updated smartmail dependency from ^2.0.1 to ^2.1.0 in package.json - Enhanced EmailValidator with comprehensive checks (syntax, MX, disposable and role validations) - Refactored TemplateManager to support dynamic variable substitution and loading templates from directory - Improved conversion between internal Email and smartmail.Smartmail, streamlining MIME handling and attachment mapping - Augmented DKIM verification with caching and custom header injection for improved security reporting - Updated readme.plan.md with detailed roadmap for further performance, security, analytics, and deliverability enhancements - Expanded test suite to cover smartmail integration, validation, templating, and conversion between formats ## 2025-05-04 - 1.0.10 to 1.0.8 - core Applied core fixes across several versions on this day. - Fixed core issues in versions 1.0.10, 1.0.9, and 1.0.8 ## 2024-04-01 - 1.0.7 - core Applied a core fix. - Fixed core functionality for version 1.0.7 ## 2024-03-19 - 1.0.6 - core Applied a core fix. - Fixed core functionality for version 1.0.6 ## 2024-02-16 - 1.0.5 to 1.0.2 - core Applied multiple core fixes in a contiguous range of versions. - Fixed core functionality for versions 1.0.5, 1.0.4, 1.0.3, and 1.0.2 ## 2024-02-15 - 1.0.1 - core Applied a core fix. - Fixed core functionality for version 1.0.1 ––––––––––––––––––––––– Note: Versions that only contained version bumps (for example, 1.0.11 and the plain "1.0.x" commits) have been omitted from individual entries and are implicitly included in the version ranges above.