39 lines
1.1 KiB
Markdown
39 lines
1.1 KiB
Markdown
# Tasks: enterprise-suppression
|
|
|
|
## 1. Scaffold
|
|
|
|
- [x] 1.1 `universal/email/suppression/`; 100/100/100/100; guard tests; CLAUDE/README/FOLDERS.
|
|
|
|
## 2. Errors + schemas
|
|
|
|
- [x] 2.1 `src/errors/suppression-error.ts` — `SUPPRESSION.*` codes.
|
|
- [x] 2.2 Zod schemas.
|
|
|
|
## 3. Bounce classifier
|
|
|
|
- [x] 3.1 `src/core/bounce-classifier/bounce-classifier.ts` — RFC 3463 status-code mapper → hard/soft/undetermined.
|
|
|
|
## 4. Store
|
|
|
|
- [x] 4.1 `src/stores/suppression.store.ts` — `SuppressionStore` interface + `MemorySuppressionStore`.
|
|
|
|
## 5. Manager + filter
|
|
|
|
- [x] 5.1 `src/core/suppression-manager/suppression-manager.ts` — CRUD over suppressions with reasons.
|
|
- [x] 5.2 `src/core/suppression-filter/suppression-filter.ts` — `filter(addresses) → FilterResult`.
|
|
- [x] 5.3 OTel counters.
|
|
|
|
## 6. Unsubscribe links
|
|
|
|
- [x] 6.1 `src/core/unsubscribe-link/unsubscribe-link.ts` — HMAC-SHA256 signed link + TTL; RFC 8058 one-click payload.
|
|
|
|
## 7. Docs / barrel / subpath exports / README
|
|
|
|
## 8. Benchmarks
|
|
|
|
- [x] 8.1 `filter.bench.ts` on 100 k-entry store.
|
|
|
|
## 9. Ship gate
|
|
|
|
- [x] 9.1 Verification sequence; fold + archive.
|