Initial Commit

This commit is contained in:
2026-05-27 23:29:53 +01:00
commit fbc70f96e6
10000 changed files with 1102152 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
# Email Processing — universal-tier migration
## Why
`@suaveplan/email-processing` is the canonical MIME + email-content
processor for every downstream consumer that ingests email (campaigns,
emailer, delivery-tracking, suppression, dmarc). The package exists on
main at `/mnt/s/web/suaveplan/packages/universal/email-processing` at
`v1.2.3` with 96.23% coverage; the enterprise plan at
`/mnt/s/web/suaveplan/enterprise/email-processing.md` demands a
genesis-quality rewrite with Zod boundary validation, OTel
instrumentation, structured error codes, injectable resolvers, and 100%
coverage. This change lands the package fresh under the canonical
3-level layout (`packages/communication/emails/email-processing/`).
## What changes
- New universal-tier package `@suaveplan/email-processing@0.1.0`.
- Wraps `postal-mime` and `libmime` via a strict TypeScript surface;
no `@ts-expect-error` or `any` leaks.
- Adds `EMAIL_PROCESSING_CODES` (eight codes) and a
`EmailProcessingError` class with a `public` constructor.
- Adds OTel instruments: parse counter, parse-failure counter,
attachment processed / rejected counters, attachment-extraction
duration histogram, hook-invocation counter, DKIM/SPF/DMARC result
counters, spam-classification counter, threads-grouped counter.
- Replaces the upstream `@suaveplan/events/hooks` substrate (which
does not exist in genesis yet) with an in-package `Hooks<TMap>`
pipeline so the public `email:processing` surface is preserved.
- 100% statement / branch / function / line coverage (Istanbul).
- No mocks: DKIM round-trip is exercised with a real RSA keypair
generated via Web Crypto.
## Impact
- Affected specs: `email-processing` (new capability).
- Affected code: new package only — no consumers migrated yet.
- Catalog: adds `postal-mime` and `libmime` to the `parsing` catalog.