UNPKG

email-validator-ultimate

Version:

Advanced email validation library for Node.js. RFC 5322 format validation, MX records, SMTP inbox check, disposable email detection, typo suggestions, risk analysis, Gravatar detection, DNS blacklist check, batch validation, caching, and CLI tool.

64 lines (63 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProvider = getProvider; const PROVIDER_MAP = { 'gmail.com': 'Gmail', 'googlemail.com': 'Gmail', 'yahoo.com': 'Yahoo', 'ymail.com': 'Yahoo', 'rocketmail.com': 'Yahoo', 'hotmail.com': 'Hotmail', 'outlook.com': 'Outlook', 'live.com': 'Outlook', 'msn.com': 'MSN', 'icloud.com': 'iCloud', 'me.com': 'Apple Mail', 'mac.com': 'Apple Mail', 'protonmail.com': 'Proton Mail', 'tutanota.com': 'Tutanota', 'zoho.com': 'Zoho Mail', 'gmx.com': 'GMX Mail', 'mail.com': 'Mail.com', 'yandex.com': 'Yandex', 'qq.com': 'QQ Mail', 'mail.ru': 'Mail.ru', 'aol.com': 'AOL Mail', 'fastmail.com': 'FastMail', 'mailfence.com': 'Mailfence', 'seznam.cz': 'Seznam', 'web.de': 'Web.de', 'laposte.net': 'La Poste', 'orange.fr': 'Orange Mail', 'libero.it': 'Libero', 'email.it': 'Email.it', 'bluewin.ch': 'Bluewin', 'shaw.ca': 'Shaw', 'btinternet.com': 'BT Internet', 'comcast.net': 'Comcast', 'cox.net': 'Cox', 'sbcglobal.net': 'SBCGlobal', 'verizon.net': 'Verizon', 'att.net': 'AT&T', 'sky.com': 'Sky Mail', 'talktalk.net': 'TalkTalk', 'virginmedia.com': 'Virgin Media', 'naver.com': 'Naver', 'daum.net': 'Daum', '126.com': '126 Mail', '163.com': '163 Mail', }; function getProvider(domain) { domain = domain.trim().toLowerCase(); // 1. Exact match if (PROVIDER_MAP[domain]) return PROVIDER_MAP[domain]; // 2. Fuzzy match (e.g. subdomains or similar) for (const [key, name] of Object.entries(PROVIDER_MAP)) { const keyBase = key.split('.')[0]; if (domain.includes(keyBase)) { return name; } } return 'Unknown'; }