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.
- package/CHANGELOG.md +15 -0
- package/README.md +32 -11
- 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
|
|
4
|
-
> sently
|
|
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
|
[](#)
|
|
15
15
|
[](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.
|
|
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 | ~
|
|
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 |
|
|
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 |
|
|
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
|
|
103
|
-
import { createSMTPMailer } from "sently/smtp"; // SMTP
|
|
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 **~
|
|
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
|
|
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