@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
TypeScript
/**
* 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