Releases: i11v/effect-jmap
Releases · i11v/effect-jmap
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.3
v0.4.0
Breaking Changes
- Schema changes for RFC 8621 compliance: Email and related schemas now correctly distinguish between nullable and optional properties per JMAP specification. Nullable fields use
Schema.NullOrinstead ofSchema.Union(X, Schema.Null, Schema.Undefined). This affectsEmail,EmailBodyPart,EmailAttachment,EmailSubmission,Address, andEmailAddressschemas.
Features
- Functional testing infrastructure: Added Docker-based testing with Stalwart JMAP server, including docker-compose configuration, test data seeding scripts, and example functional tests (#68188d1)
Bug Fixes
- JMAP schema nullable vs optional properties (#1): Corrected Email schema fields to match RFC 8621 specification - nullable fields (sentAt, messageId, from, to, cc, etc.) and required fields (keywords, textBody, htmlBody, attachments, etc.) are now properly typed
- Stalwart JMAP server compatibility: Handle HTTP 307 redirects, fix authentication with SHA-512 password hashing, add
MailboxCreatedschema for partial/setresponses
Refactoring
- Co-locate files by domain: Reorganized source structure from
src/schemas/*,src/services/*to domain-based organization (src/email/,src/mailbox/,src/submission/, etc.)
CI/CD
- GitHub Actions workflow: Added automated functional tests against Stalwart JMAP server on push to main and pull requests
Documentation
- Added
CLAUDE.mdwith Effect-TS patterns and code style conventions - Updated
AGENTS.mdwith pnpm and commit message guidelines - Added
docs/functional-testing.mdfor testing infrastructure
v0.3.0
[0.3.0] - 2025-11-30
Added
JMAPLive(sessionUrl, bearerToken)- convenience layer bundling HTTP client, JMAP client, and all services for quick setupJMAPLiveWithConfig(config)- same as above with custom configuration options
Changed
- Refactored service definitions to use
Context.Tagclass pattern (internal, no API changes) - Improved documentation with usage examples for
AppLiveand new layer functions
Release v0.2.0
[0.2.0] - 2025-11-17
Added
- Email submission support for sending emails via JMAP
- EmailSubmission schemas with full validation
- Comprehensive test coverage with 628 test cases for submission schemas
- 476 test cases for EmailSubmission service operations
- Capability negotiation system for JMAP sessions
- IdGenerator service for Effect-idiomatic ID generation
- Test fixtures for JMAP responses
- Enhanced test utilities for submission testing
Changed
- Refactored all services (Email, EmailSubmission, Mailbox) to use Effect-idiomatic IdGenerator pattern instead of Date.now()
- Updated service layer exports to include new IdGenerator service
- Enhanced Email schemas with submission-related fields
- Improved integration tests for layer resolution
Fixed
- README documentation cleanup