Changelog
All notable changes to laramail are documented here.
v1.4.3
Testing subpath + docs — laramail/testing subpath export and assertion reference tables.
laramail/testingsubpath — importMailFakeandAssertableMessagefromlaramail/testingto keep fake mode out of production bundles. Works with all TypeScriptmoduleResolutionsettings (node,NodeNext,bundler).- Testing docs — added "Why Mail.fake() over vi.fn()" comparison, subpath import guide, and staging redirect note.
- README assertion tables — replaced inline list with quick-reference tables for all assertion methods and
AssertableMessagehelpers.
v1.4.2
Badge fixes + npm discoverability.
- Fixed README badge URLs pointing to old domain.
- Trimmed comparison table to 8 defensible rows.
- Added npm keywords:
email-testing,mail-testing,nodemailer-mock,fake-mailer,test-email.
v1.4.1
Positioning pivot — Mail.fake() is the headline.
- README hero repositioned around
Mail.fake()+ zero-setup email testing. New one-line pitch: "AdonisJS mailer, but framework-agnostic." - npm description updated to lead with
Mail.fake()+Mail.assertSent(). - No API changes. No new features. Just the right story in the right place.
v1.4.0
Quality & Safety — typed errors, comprehensive test coverage, SMTP pooling.
- Error Handling —
ConfigurationError,ValidationError,ProviderError, andAllProvidersFailedErrorreplace genericErrorthrows across all source files. Useinstanceoffor granular error handling. - SMTP Connection Pooling —
pool,maxConnections,maxMessagesoptions in SMTP provider config. - CLI Command Tests — 65 new tests covering all 8 CLI commands.
- Provider Tests — 24 new tests for SendGrid and SES providers.
- Error Class Tests — 37 tests for typed error hierarchy and integration.
- 129 new tests (774 total across 51 suites)
v1.3.0
Developer Experience — 3 new features for better development and staging workflows.
- Log Transport —
LogProviderprints formatted email details to console instead of sending. Warns if used in production. No SMTP or API keys needed for local development. - Custom Providers —
Mail.extend(driver, factory)registers custom mail providers. Custom providers are checked before built-in drivers, allowing overrides and third-party integrations. - Always-To Redirect —
Mail.alwaysTo(address)redirects all emails to a single address, clearing CC/BCC. Perfect for staging environments. Also applies topreview(). Skipped in fake mode. - 35 new tests (645 total)
v1.2.0
Package renamed to laramail
- Renamed package from
@impruthvi/nodemailtolaramail - CLI command changed from
npx nodemailtonpx laramail - Config file pattern changed from
nodemail.config.*tolaramail.config.* - Queue prefix default changed from
nodemailtolaramail - Updated all internal branding, imports, and documentation
- README restructured (1076 → 368 lines)
v1.1.6
Postinstall thank-you message
- Added a postinstall script that displays a thank-you message after installation
- Automatically skips in CI environments
- Set
LARAMAIL_NO_POSTINSTALL=1environment variable to disable the message
v1.1.4
Initial postinstall script
- Initial release of the postinstall thank-you script (superseded by v1.1.6)
v1.1.3
CLI fix
- Fixed
queue:clearCLI command to use--status/-soption instead of positional argument - CLI now matches documented usage:
npx laramail queue:clear --status failed
v1.1.2
Queue compatibility fix
- queue: Replace colon with underscore in queue names for BullMQ compatibility
- BullMQ does not allow colons (
:) in queue names - Queue names now formatted as
laramail_mailinstead oflaramail:mail
- BullMQ does not allow colons (
v1.1.1
Bug fixes and test improvements
- Type handling and error management in preview and queue commands
- Improved async/sync handling in image embedding and priority tests
- Added comprehensive test coverage for MailFacade, MailManager, Mailable, and QueueManager
v1.1.0
CLI Commands — powerful command-line tools for managing your email workflow.
- CLI Commands — New CLI tool with queue management, email preview, code generation, and configuration validation.
queue:work— Start processing queued emailsqueue:status— Show queue job counts and statusqueue:clear— Clear jobs from the queue by statusqueue:retry— Retry failed jobs in the queuepreview— Preview an email in your browser without sendingsend:test— Send a test email to verify configurationmake:mailable— Generate a new Mailable classconfig:check— Validate your mail configuration
v1.0.1
5 new features expanding the library's email capabilities.
- Email Events — Listen to
sending,sent, andfailedlifecycle events with typed listeners. - Email Preview — Render emails in the browser during development without actually sending them.
- Email Priority — Set priority headers (
high,normal,low) on outgoing messages. - Embedded Images — Attach inline images via CID references for rich HTML emails.
- Rate Limiting — Throttle outgoing email with per-provider rate limits and configurable strategies.
v1.0.0
Provider Failover — automatic failover chains with retries, delays, and callbacks.
FailoverManagerclass for managing provider chainsfailoverconfig option (global and per-mailer)onFailovercallback for monitoring provider switchesMailResponsenow includesprovider,failoverUsed,failoverAttempts- Testing utilities:
MailFake.simulateFailures()/resetFailures() AssertableMessagefailover methods:wasFailoverUsed(),getProvider(),getFailoverAttempts(),getResponse()
See the Provider Failover docs and Migration Guide for adoption details.
Earlier Releases
| Version | Key Feature |
|---|---|
| v0.7.0 | Markdown Mail — renderer, components, themes |
| v0.6.0 | Queue support — Bull, BullMQ, sync driver |
| v0.5.0 | Testing utilities — Mail.fake(), assertions, AssertableMessage |
| v0.4.0 | Template engines — Handlebars, EJS, Pug + Mailable classes |