sently 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +32 -11
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.7.2] — 2026-05-31
6
+
7
+ ### Fixed
8
+
9
+ - Publish workflow runs `bun run build` before registry steps and publishes **npm before JSR** so a failed npm step does not leave JSR ahead of npm
10
+ - `scripts/publish.ts` `syncVersion()` skips rewriting `jsr.json` when content is unchanged (avoids dirty working tree between CI publish steps)
11
+
12
+ ## [0.7.1] — 2026-05-31
13
+
14
+ ### Documentation
15
+
16
+ - README Nodemailer comparison updated for **v8.0.10** (~58 KB gzip, zero deps, 2026 releases)
17
+ - Bundle size figures refreshed from `bun run measure:size:md` (~6.1 KB HTTP, ~15 KB SMTP, ~2.6 KB `sently/mailer`)
18
+ - `llms.txt` and `CLAUDE.md` aligned with measured gzip sizes
19
+
5
20
  ## [0.7.0] — 2026-05-31
6
21
 
7
22
  ### Breaking + Migration
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # sently
2
2
 
3
- > Nodemailer hasn't been updated in years, doesn't run on Bun or Deno, and ships at 220KB.
4
- > sently is the modern replacement — same familiar API, runs everywhere, HTTP stacks from ~6 KB via `sently/mailer`.
3
+ > Nodemailer is Node.js–only and ships the full mail stack on every import (~58 KB gzip for [v8.0.10](https://bundlephobia.com/package/nodemailer@8.0.10)).
4
+ > sently runs on Bun, Deno, and Cloudflare Workers — same familiar API, HTTP stacks from ~6.1 KB via `sently/mailer`.
5
5
 
6
6
  ```bash
7
7
  bun add sently
@@ -14,7 +14,7 @@ bun add sently
14
14
  [![tests](https://img.shields.io/badge/tests-passing-brightgreen)](#)
15
15
  [![GitHub](https://img.shields.io/github/stars/alialnaghmoush/sently?style=social&label=GitHub)](https://github.com/alialnaghmoush/sently)
16
16
 
17
- > **Pre-1.0 — API may change.** sently is pre-1.0 and the public API is still being refined ahead of a stable v1.0.0. Breaking changes can land in any 0.x release; review the [CHANGELOG](CHANGELOG.md) before upgrading. Pin an exact version (e.g. `"sently": "0.7.0"`) for production until v1.0.0.
17
+ > **Pre-1.0 — API may change.** sently is pre-1.0 and the public API is still being refined ahead of a stable v1.0.0. Breaking changes can land in any 0.x release; review the [CHANGELOG](CHANGELOG.md) before upgrading. Pin an exact version (e.g. `"sently": "0.7.2"`) for production until v1.0.0.
18
18
 
19
19
  ---
20
20
 
@@ -22,10 +22,10 @@ bun add sently
22
22
 
23
23
  | Feature | Nodemailer | sently |
24
24
  |---------|-----------|--------|
25
- | Bundle size | ~220 KB always | ~6 KB HTTP · ~15 KB SMTP |
25
+ | Bundle size | ~58 KB gzip always ([v8.0.10](https://bundlephobia.com/package/nodemailer@8.0.10)) | ~6.1 KB HTTP · ~15 KB SMTP |
26
26
  | Runtimes | Node.js only | Node, Bun, Deno, CF Workers |
27
27
  | Module format | CommonJS | ESM only |
28
- | Dependencies | 3 | 0 |
28
+ | Dependencies | 0 | 0 |
29
29
  | DKIM signing | ✓ via `nodemailer-dkim` | ✓ built-in (Web Crypto) |
30
30
  | OAuth2 / XOAUTH2 | ✓ via plugin | ✓ built-in |
31
31
  | Connection pooling | ✓ | ✓ |
@@ -38,7 +38,7 @@ bun add sently
38
38
  | Idempotency keys | ✗ | ✓ `sently/idempotency` |
39
39
  | Webhook parsing | ✗ | ✓ `sently/webhooks` |
40
40
  | TypeScript | via `@types/nodemailer` | ✓ built-in |
41
- | Last release | 2021 | 2026 |
41
+ | Last release | 2026 (8.0.x) | 2026 |
42
42
 
43
43
  ---
44
44
 
@@ -99,8 +99,8 @@ bunx jsr add @alialnaghmoush/sently
99
99
  ```
100
100
 
101
101
  ```typescript
102
- import { createMailer } from "sently/mailer"; // HTTP transports (~3 KB)
103
- import { createSMTPMailer } from "sently/smtp"; // SMTP host/port (~15 KB)
102
+ import { createMailer } from "sently/mailer"; // HTTP stack ~6.1 KB with a transport
103
+ import { createSMTPMailer } from "sently/smtp"; // SMTP relay ~15 KB
104
104
  // Or: import { createSMTPMailer } from "sently";
105
105
  ```
106
106
 
@@ -701,13 +701,34 @@ MIME attachment filenames and custom attachment headers are likewise sanitized a
701
701
 
702
702
  Sizes are **minified + gzip** per import path (`bun run measure:size`; CI: `bun run check:size`). Node built-ins and `cloudflare:sockets` are external.
703
703
 
704
- Nodemailer ships **~220 KB** regardless of transport. sently tree-shakes by subpath — pick the entry that matches how you send:
704
+ Nodemailer ships **~58 KB gzip** regardless of transport ([BundlePhobia, v8.0.10](https://bundlephobia.com/package/nodemailer@8.0.10)). sently tree-shakes by subpath — pick the entry that matches how you send:
705
705
 
706
706
  | How you send | Import | ~gzip |
707
707
  |--------------|--------|-------|
708
- | HTTP API (Resend, SendGrid, …) | `sently/mailer` + `sently/transports/<provider>` | **~6 KB** |
708
+ | HTTP API (Resend, SendGrid, …) | `sently/mailer` + `sently/transports/<provider>` | **~6.1 KB** |
709
709
  | SMTP relay (`host` / `port`) | `sently/smtp` (or `createSMTPMailer` from `sently`) | **~15 KB** |
710
- | Transport only (no mailer wrapper) | `sently/transports/<provider>` | **~4–5 KB** |
710
+ | Transport only (no mailer wrapper) | `sently/transports/<provider>` | **~4.7 KB** |
711
+
712
+ Regenerate full tables with `bun run measure:size:md`. Measured **2026-05-31** (minified + gzip):
713
+
714
+ #### Common stacks
715
+
716
+ | What | Imports | ~gzip |
717
+ |------|---------|-------|
718
+ | HTTP — Resend | `sently/mailer` + `sently/transports/resend` | ~6.1 KB |
719
+ | HTTP — SendGrid | `sently/mailer` + `sently/transports/sendgrid` | ~5.9 KB |
720
+ | HTTP — transport only | `sently/transports/resend` (no `createMailer` wrapper) | ~4.7 KB |
721
+ | SMTP relay | `sently/smtp` with `{ host, port, auth }` | ~14.8 KB |
722
+ | SMTP + Node adapter | `sently/smtp` + `sently/adapters/node` | ~14.8 KB |
723
+ | Main entry + HTTP | `sently` + HTTP transport via main `createMailer` | ~6.1 KB |
724
+
725
+ #### Core entries
726
+
727
+ | What | Imports | ~gzip |
728
+ |------|---------|-------|
729
+ | sently/mailer | Transport-only `createMailer` (plugins, sendBulk) | ~2.6 KB |
730
+ | sently | Main entry — types, factories, OAuth2, `SentlyError` | ~2.6 KB |
731
+ | sently/smtp | SMTP `createSMTPMailer` — host/port, pool, adapters | ~14.7 KB |
711
732
 
712
733
  ```ts
713
734
  // HTTP
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sently",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "Runtime-agnostic email library for Node.js, Bun, Deno, and Cloudflare Workers. ESM-native Nodemailer alternative with zero dependencies.",
5
5
  "type": "module",
6
6
  "sideEffects": false,