Upyo changelog
Version 0.3.0
Released on September 16, 2025.
@upyo/pool
Added pool transport for combining multiple email providers with load balancing and failover strategies. [#8]
- Added
PoolTransportclass withAsyncDisposablesupport. - Added
PoolConfiginterface. - Added
ResolvedPoolConfigtype. - Added
TransportEntryinterface. - Added
ResolvedTransportEntrytype. - Added
PoolStrategytype for built-in strategies. - Added
Strategyinterface for custom routing logic. - Added
TransportSelectioninterface. - Added
RoundRobinStrategyclass for equal distribution. - Added
WeightedStrategyclass for proportional distribution. - Added
PriorityStrategyclass for failover-based routing. - Added
SelectorBasedStrategyclass for content-based routing. - Support for round-robin, weighted, priority, and selector-based strategies.
- Automatic failover and retry logic with configurable limits.
- Comprehensive error aggregation across multiple providers.
- Added
@upyo/plunk
- Added
PlunkTransportclass. - Added
PlunkConfiginterface. - Added
ResolvedPlunkConfiginterface. - Added
PlunkErrorinterface. - Added
PlunkResponseinterface. - Support for both cloud-hosted and self-hosted Plunk instances.
- Added
@upyo/resend
- Added
ResendTransportclass. - Added
ResendConfiginterface. - Added
ResolvedResendConfiginterface. - Added
ResendApiErrorinterface. - Added
ResendBatchResponseinterface. - Added
ResendErrorinterface. - Added
ResendResponseinterface.
- Added
Version 0.2.1
Released on August 4, 2025.
@upyo/smtp
Fixed “Maximum call stack size exceeded” error when sending large attachments. [#6]
The SMTP transport now uses
Buffer.from().toString('base64')instead of the legacybtoa()function for base64 encoding, which resolves stack overflow issues with large attachments (e.g., 500KB+ files).Fixed UTF-8 encoding issue where email addresses were incorrectly encoded in SMTP headers. [#7]
Only display names are now encoded using RFC 2047 encoding, while email addresses remain unencoded. For example,
German ÄÖÜ <info@example.com>now correctly becomes=?UTF-8?B?...?= <info@example.com>instead of encoding the entire string including the email address.
Version 0.2.0
Released on July 17, 2025.
@upyo/core
Improved type safety by making array fields readonly.
- Changed the type of
Message.recipientsproperty fromAddress[]toreadonly Address[]. - Changed the type of
Message.ccRecipientsproperty fromAddress[]toreadonly Address[]. - Changed the type of
Message.bccRecipientsproperty fromAddress[]toreadonly Address[]. - Changed the type of
Message.replyRecipientsproperty fromAddress[]toreadonly Address[]. - Changed the type of
Message.attachmentsproperty fromAttachment[]toreadonly Attachment[]. - Changed the type of
Message.tagsproperty fromstring[]toreadonly string[].
- Changed the type of
Enhanced email address type safety with template literal types.
- Added
EmailAddresstype. - Changed
Address.addressproperty type fromstringtoEmailAddress. - Added
isEmailAddress()type guard function for runtime email validation.
- Added
@upyo/ses
Added Amazon SES transport. [#3]
- Added
SesTransportclass. - Added
SesConfiginterface. - Added
SesAuthenticationinterface.
- Added
@upyo/opentelemetry
Added OpenTelemetry observability support. [#5]
- Added
OpenTelemetryTransportclass. - Added
OpenTelemetryConfiginterface. - Added
ObservabilityConfiginterface. - Added
MetricsConfiginterface. - Added
TracingConfiginterface. - Added
AttributeExtractortype. - Added
ErrorClassifiertype. - Added
createErrorClassifier()function. - Added
defaultErrorClassifier()function. - Added
AutoConfiginterface. - Added
createOpenTelemetryTransport()function. - Added
CreateOpenTelemetryTransportConfiginterface. - Added
createEmailAttributeExtractor()function.
- Added
Version 0.1.1
Released on July 14, 2025.
@upyo/smtp
- Fixed CJK character encoding corruption in SMTP transport HTML emails. Korean, Japanese, and Chinese characters are now properly encoded using UTF-8 quoted-printable encoding. [#4]
Version 0.1.0
Initial release. Released on July 13, 2025.