What's Changed
- ISSUE-2: Initial Documentation by @FernandoCelmer in #3
- ISSUE-4 by @FernandoCelmer in #5
- ⚙️ FEATURE-#6: API ergonomics overhaul (v1.0.0) by @FernandoCelmer in #7
- ⚙️ FEATURE-#9: Rename Where.refresh() to Where.clear_cache() by @FernandoCelmer in #14
- ⚙️ FEATURE-#10: Add Email public properties by @FernandoCelmer in #15
- ⚙️ FEATURE-#11: Move AppendedUID and IMAPHost to email_profile.types by @FernandoCelmer in #17
- ⚙️ FEATURE-#18: Add SMTP send + split Email into 6 classes by @FernandoCelmer in #19
- ⚙️ FEATURE-#23: Wire up EmailFactories.PROVIDER_HOSTS by @FernandoCelmer in #24
- ⚙️ FEATURE-#20: Dedupe Email.from_email / EmailFactories.from_address by @FernandoCelmer in #25
- ⚙️ FEATURE-#21: Rename factories.py to credentials.py by @FernandoCelmer in #26
- ⚙️ FEATURE-#22: Uniform naming across IMAP/SMTP clients by @FernandoCelmer in #27
- 🪲 BUG-#42: Include flags field in StorageSQLite.get() response by @FernandoCelmer in #51
- Lazily initialize storage to avoid creating email.db unnecessarily by @FernandoCelmer in #57
- Split validate_status into validate and check for clarity by @FernandoCelmer in #61
- 🪲 BUG-#34: Use try/finally to restore cache in last() and getitem by @FernandoCelmer in #54
- 🪲 BUG-#32: Remove UID parser fallback that returns sequence number by @FernandoCelmer in #52
- Fix OOM on large backup restores by @FernandoCelmer in #58
- 🪲 BUG-#33: Auto-clear UID cache after iteration and warn on large caches by @FernandoCelmer in #53
- 🪲 BUG-#44: Try common charset fallbacks before using replacement characters by @FernandoCelmer in #56
- 🪲 BUG-#36: Fix race condition in SQLite save() by @FernandoCelmer in #55
- 🔒 SEC-#50: Clear password references on close and mask in repr by @FernandoCelmer in #59
- Add attachment size validation to SMTP client by @FernandoCelmer in #62
- ⚙️ FEATURE-#40: Use Optional[bool] for Query flags to remove ambiguity by @FernandoCelmer in #60
Full Changelog: v0.4.0...v1.0.0