-
Notifications
You must be signed in to change notification settings - Fork 23
feat: v2.1.0 - Major improvements with batch processing, caching, and detailed verification #511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…#509) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… verification BREAKING CHANGES: None - fully backward compatible ## New Features - Add batch email verification with concurrency control via verifyEmailBatch() - Add detailed verification with error codes via verifyEmailDetailed() - Add intelligent caching system using tiny-lru with configurable TTL - Add retry mechanism for transient failures with exponential backoff - Add support for multiple MX record fallback (tries up to 3 servers) - Add comprehensive TypeScript types and strict mode - Add RFC 5321 compliant email validation ## Performance Improvements - ~90% reduction in DNS lookups through intelligent caching - Parallel batch processing for multiple emails - Connection reuse through SMTP result caching - Optimized memory usage with proper socket cleanup ## Bug Fixes - Fix memory leak in socket connections - Fix socket cleanup preventing 'Cannot log after tests are done' errors - Fix caching for both positive and negative results - Fix TypeScript strict null check issues - Fix test isolation with cache clearing ## Developer Experience - Add comprehensive JSDoc documentation - Add detailed error codes via VerificationErrorCode enum - Add examples directory with advanced usage patterns - Add migration guide for v2.0.0 users - Update to ES6 imports for better compatibility - All 50 tests passing with improved coverage
- Replace 'as any' with proper types or 'as unknown as Type' where needed - Use 'unknown' instead of 'any' for error parameters and logging functions - Improve type safety throughout the codebase - All tests passing with strict TypeScript checks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Features
🎯 Batch Processing
verifyEmailBatch()
function for parallel email verification⚡ Performance Optimizations
📊 Detailed Verification
verifyEmailDetailed()
function with rich verification results🛡️ Enhanced Type Safety
🧪 Testing Improvements
Breaking Changes
None - all existing APIs remain backward compatible
Test Plan