UNPKG

@mikkelscheike/email-provider-links

Version:

TypeScript library for email provider detection with 140 providers (259 domains), concurrent DNS resolution, alias normalization, and HTTPS login URL validation for login and password reset flows

104 lines 3.57 kB
/** * Email Provider Links * * Maps email addresses to provider login URLs with: * - Known-domain lookup across 140+ providers * - Concurrent DNS detection for business/custom domains * - Provider-specific alias normalization * - Zero runtime dependencies * * @license MIT */ import { getEmailProvider, getEmailProviderSync, getEmailProviderFast, normalizeEmail, emailsMatch, Config } from './api'; import { detectEmailAlias } from './alias-detection'; export { getEmailProvider, getEmailProviderSync, getEmailProviderFast, normalizeEmail, emailsMatch, detectEmailAlias, Config }; export type { EmailProvider, EmailProviderResult, SimplifiedProvider, SimplifiedEmailProviderResult } from './api'; export type { AliasDetectionResult } from './alias-detection'; /** * Enhanced email validation with comprehensive error reporting. */ export declare function validateEmailAddress(email: string): { isValid: boolean; normalizedEmail?: string; error?: { type: string; code: string; message: string; }; }; /** * Get a defensive copy of all supported email providers. */ export declare function getSupportedProviders(): import("./api").EmailProvider[]; /** * Check if an email's domain maps to a known provider (sync, no DNS). */ export declare function isEmailProviderSupported(email: string): boolean; /** * Extract and normalize the domain from an email address. */ export declare function extractDomain(email: string): string | null; /** * Validate email format (boolean convenience wrapper). */ export declare function isValidEmail(email: string): boolean; /** * Library metadata and statistics. */ export declare function getLibraryStats(): { providerCount: number; domainCount: number; version: string; supportsAsync: boolean; supportsIDN: boolean; supportsAliasDetection: boolean; supportsConcurrentDNS: boolean; }; /** * Batch-process multiple email addresses (sync path only). */ export declare function batchProcessEmails(emails: string[], options?: { includeProviderInfo?: boolean; normalizeEmails?: boolean; deduplicateAliases?: boolean; }): Array<{ email: string; isValid: boolean; provider?: string | null; loginUrl?: string | null; normalized?: string; isDuplicate?: boolean; error?: string; }>; /** * @deprecated Use validateEmailAddress or isValidEmail instead */ export declare const isValidEmailAddress: typeof isValidEmail; export declare const PROVIDER_COUNT: 140; export declare const DOMAIN_COUNT: 259; declare const _default: { getEmailProvider: typeof getEmailProvider; getEmailProviderSync: typeof getEmailProviderSync; getEmailProviderFast: typeof getEmailProviderFast; validateEmailAddress: typeof validateEmailAddress; isValidEmail: typeof isValidEmail; normalizeEmail: typeof normalizeEmail; emailsMatch: typeof emailsMatch; detectEmailAlias: typeof detectEmailAlias; getSupportedProviders: typeof getSupportedProviders; isEmailProviderSupported: typeof isEmailProviderSupported; extractDomain: typeof extractDomain; getLibraryStats: typeof getLibraryStats; batchProcessEmails: typeof batchProcessEmails; Config: { readonly DEFAULT_DNS_TIMEOUT: 5000; readonly MAX_DNS_REQUESTS_PER_MINUTE: 10; readonly SUPPORTED_PROVIDERS_COUNT: 140; readonly SUPPORTED_DOMAINS_COUNT: 259; }; PROVIDER_COUNT: 140; DOMAIN_COUNT: 259; }; export default _default; export declare const VERSION: string; //# sourceMappingURL=index.d.ts.map