// SPDX-License-Identifier: AGPL-3.0-or-later

const MAJOR_EMAIL_PROVIDERS: ReadonlySet<string> = new Set([
	'gmail.com',
	'googlemail.com',
	'outlook.com',
	'outlook.co.uk',
	'outlook.co.nz',
	'outlook.co.id',
	'outlook.com.au',
	'outlook.com.ar',
	'outlook.com.br',
	'outlook.com.tr',
	'outlook.com.vn',
	'outlook.com.gr',
	'outlook.fr',
	'outlook.de',
	'outlook.it',
	'outlook.es',
	'outlook.pt',
	'outlook.nl',
	'outlook.be',
	'outlook.at',
	'outlook.ch',
	'outlook.cl',
	'outlook.cz',
	'outlook.dk',
	'outlook.fi',
	'outlook.hu',
	'outlook.ie',
	'outlook.in',
	'outlook.jp',
	'outlook.kr',
	'outlook.lv',
	'outlook.my',
	'outlook.ph',
	'outlook.ru',
	'outlook.sa',
	'outlook.sg',
	'outlook.sk',
	'hotmail.com',
	'hotmail.co.uk',
	'hotmail.co.il',
	'hotmail.co.jp',
	'hotmail.co.kr',
	'hotmail.co.nz',
	'hotmail.co.th',
	'hotmail.co.za',
	'hotmail.co.id',
	'hotmail.com.ar',
	'hotmail.com.au',
	'hotmail.com.br',
	'hotmail.com.hk',
	'hotmail.com.mx',
	'hotmail.com.sg',
	'hotmail.com.tr',
	'hotmail.com.tw',
	'hotmail.com.vn',
	'hotmail.fr',
	'hotmail.de',
	'hotmail.it',
	'hotmail.es',
	'hotmail.nl',
	'hotmail.be',
	'hotmail.ch',
	'hotmail.at',
	'hotmail.se',
	'hotmail.no',
	'hotmail.dk',
	'hotmail.fi',
	'hotmail.ca',
	'hotmail.ru',
	'hotmail.ph',
	'hotmail.my',
	'hotmail.kg',
	'hotmail.lt',
	'hotmail.bg',
	'hotmail.cz',
	'hotmail.hu',
	'hotmail.gr',
	'hotmail.sk',
	'hotmail.ee',
	'hotmail.lv',
	'hotmail.ro',
	'hotmail.rs',
	'hotmail.hr',
	'hotmail.sg',
	'live.com',
	'live.co.uk',
	'live.co.kr',
	'live.co.za',
	'live.ca',
	'live.cn',
	'live.cl',
	'live.com.ar',
	'live.com.au',
	'live.com.mx',
	'live.com.my',
	'live.com.pt',
	'live.com.sg',
	'live.fr',
	'live.de',
	'live.it',
	'live.es',
	'live.nl',
	'live.be',
	'live.at',
	'live.se',
	'live.no',
	'live.dk',
	'live.fi',
	'live.ie',
	'live.in',
	'live.jp',
	'live.ru',
	'live.hk',
	'livemail.tw',
	'msn.com',
	'msn.co.uk',
	'msn.ca',
	'msn.com.br',
	'msn.com.au',
	'msn.com.mx',
	'msn.com.sg',
	'msn.fr',
	'msn.de',
	'msn.it',
	'msn.es',
	'msn.nl',
	'msn.at',
	'msn.se',
	'msn.no',
	'msn.dk',
	'msn.fi',
	'msn.net',
	'windowslive.com',
	'passport.com',
	'passport.net',
	'yahoo.com',
	'yahoo.co.uk',
	'yahoo.co.jp',
	'yahoo.co.nz',
	'yahoo.co.in',
	'yahoo.co.id',
	'yahoo.co.th',
	'yahoo.co.kr',
	'yahoo.co.za',
	'yahoo.com.ar',
	'yahoo.com.au',
	'yahoo.com.br',
	'yahoo.com.hk',
	'yahoo.com.mx',
	'yahoo.com.my',
	'yahoo.com.ph',
	'yahoo.com.sa',
	'yahoo.com.sg',
	'yahoo.com.tr',
	'yahoo.com.tw',
	'yahoo.com.ua',
	'yahoo.com.vn',
	'yahoo.fr',
	'yahoo.de',
	'yahoo.it',
	'yahoo.es',
	'yahoo.nl',
	'yahoo.be',
	'yahoo.at',
	'yahoo.ch',
	'yahoo.se',
	'yahoo.no',
	'yahoo.dk',
	'yahoo.fi',
	'yahoo.ie',
	'yahoo.pl',
	'yahoo.pt',
	'yahoo.cz',
	'yahoo.hu',
	'yahoo.ro',
	'yahoo.gr',
	'yahoo.ca',
	'yahoo.ua',
	'ymail.com',
	'ymail.co.uk',
	'rocketmail.com',
	'myyahoo.com',
	'y7mail.com',
	'yahoomail.com',
	'icloud.com',
	'me.com',
	'mac.com',
	'hidden.icloud.com',
	'aol.com',
	'aim.com',
	'aol.co.uk',
	'aol.de',
	'aol.fr',
	'aol.it',
	'aol.es',
	'aol.jp',
	'love.com',
	'games.com',
	'wow.com',
	'ygm.com',
	'netscape.net',
	'netscape.com',
	'compuserve.com',
	'cs.com',
	'protonmail.com',
	'protonmail.ch',
	'proton.me',
	'pm.me',
	'tutanota.com',
	'tutanota.de',
	'tutamail.com',
	'tuta.io',
	'tuta.com',
	'fastmail.com',
	'fastmail.fm',
	'fastmail.us',
	'fastmail.to',
	'fastmail.co.uk',
	'fastmail.net',
	'fastmail.jp',
	'fastmail.dev',
	'hushmail.com',
	'hush.com',
	'hush.ai',
	'mac.hush.com',
	'mailfence.com',
	'startmail.com',
	'mailbox.org',
	'mailo.com',
	'posteo.de',
	'posteo.net',
	'runbox.com',
	'countermail.com',
	'kolabnow.com',
	'disroot.org',
	'riseup.net',
	'autistici.org',
	'ctemplar.com',
	'cock.li',
	'mail.com',
	'email.com',
	'zoho.com',
	'zohomail.com',
	'zoho.eu',
	'zoho.in',
	'inbox.com',
	'gmx.com',
	'gmx.us',
	'gmx.co.uk',
	'gmx.fr',
	'gmx.de',
	'gmx.at',
	'gmx.ch',
	'gmx.net',
	'mail.ru',
	'bk.ru',
	'list.ru',
	'inbox.ru',
	'internet.ru',
	'yandex.ru',
	'yandex.com',
	'yandex.ua',
	'yandex.by',
	'yandex.kz',
	'ya.ru',
	'narod.ru',
	'rambler.ru',
	'lenta.ru',
	'autorambler.ru',
	'myrambler.ru',
	'ro.ru',
	'rambler.com',
	'ukr.net',
	'i.ua',
	'meta.ua',
	'bigmir.net',
	'mail.ua',
	'tut.by',
	'mail.by',
	'web.de',
	't-online.de',
	'freenet.de',
	'arcor.de',
	'mail.de',
	'online.de',
	'vodafonemail.de',
	'tiscali.de',
	'1und1.de',
	'1und1.net',
	'versanet.de',
	'gmx.at',
	'aon.at',
	'a1.net',
	'chello.at',
	'bluewin.ch',
	'sunrise.ch',
	'hispeed.ch',
	'swissonline.ch',
	'laposte.net',
	'orange.fr',
	'wanadoo.fr',
	'sfr.fr',
	'free.fr',
	'bbox.fr',
	'neuf.fr',
	'aliceadsl.fr',
	'club-internet.fr',
	'9online.fr',
	'voila.fr',
	'numericable.fr',
	'noos.fr',
	'cegetel.net',
	'skynet.be',
	'telenet.be',
	'proximus.be',
	'belgacom.be',
	'scarlet.be',
	'pt.lu',
	'hotmail.lu',
	'libero.it',
	'virgilio.it',
	'tin.it',
	'alice.it',
	'tiscali.it',
	'poste.it',
	'tele2.it',
	'email.it',
	'inwind.it',
	'iol.it',
	'fastwebnet.it',
	'vodafone.it',
	'vodafoneemail.it',
	'telefonica.net',
	'movistar.es',
	'ya.com',
	'terra.es',
	'terra.com',
	'latinmail.com',
	'ono.com',
	'jazztel.com',
	'orange.es',
	'euskaltel.net',
	'sapo.pt',
	'netcabo.pt',
	'iol.pt',
	'clix.pt',
	'mail.pt',
	'net.pt',
	'meo.pt',
	'nos.pt',
	'telia.com',
	'tele2.se',
	'bredband.net',
	'swipnet.se',
	'spray.se',
	'passagen.se',
	'home.se',
	'online.no',
	'c2i.net',
	'broadpark.no',
	'chello.no',
	'tele.dk',
	'post.tele.dk',
	'mail.dk',
	'elisa.fi',
	'luukku.com',
	'suomi24.fi',
	'saunalahti.fi',
	'kolumbus.fi',
	'hetnet.nl',
	'home.nl',
	'ziggo.nl',
	'xs4all.nl',
	'quicknet.nl',
	'kpn.nl',
	'kpnmail.nl',
	'casema.nl',
	'planet.nl',
	'chello.nl',
	'online.nl',
	'wanadoo.nl',
	'btinternet.com',
	'tiscali.co.uk',
	'talktalk.net',
	'talktalk.co.uk',
	'plus.net',
	'plusnet.com',
	'virginmedia.com',
	'ntlworld.com',
	'blueyonder.co.uk',
	'sky.com',
	'virgin.net',
	'madasafish.com',
	'f2s.com',
	'fsnet.co.uk',
	'freeserve.co.uk',
	'supanet.com',
	'pipex.co.uk',
	'btconnect.com',
	'btopenworld.com',
	'eircom.net',
	'eir.ie',
	'iol.ie',
	'indigo.ie',
	'vodafone.ie',
	'rogers.com',
	'rogers.ca',
	'sympatico.ca',
	'videotron.ca',
	'bell.net',
	'bell.ca',
	'shaw.ca',
	'telus.net',
	'telus.com',
	'cogeco.ca',
	'eastlink.ca',
	'nbnet.nb.ca',
	'mts.net',
	'sasktel.net',
	'verizon.net',
	'att.net',
	'sbcglobal.net',
	'bellsouth.net',
	'comcast.net',
	'cox.net',
	'charter.net',
	'rr.com',
	'roadrunner.com',
	'twc.com',
	'earthlink.net',
	'juno.com',
	'netzero.net',
	'netzero.com',
	'frontier.com',
	'frontiernet.net',
	'centurylink.net',
	'centurylink.com',
	'windstream.net',
	'mediacombb.net',
	'mediacomcable.com',
	'optonline.net',
	'optimum.net',
	'suddenlink.net',
	'usa.net',
	'excite.com',
	'embarqmail.com',
	'prodigy.net',
	'swbell.net',
	'pacbell.net',
	'ameritech.net',
	'bellatlantic.net',
	'nycap.rr.com',
	'qq.com',
	'foxmail.com',
	'vip.qq.com',
	'163.com',
	'126.com',
	'yeah.net',
	'vip.163.com',
	'vip.126.com',
	'sina.com',
	'sina.cn',
	'sina.com.cn',
	'vip.sina.com',
	'sohu.com',
	'vip.sohu.com',
	'sogou.com',
	'aliyun.com',
	'139.com',
	'189.cn',
	'188.com',
	'21cn.com',
	'wo.cn',
	'wo.com.cn',
	'tom.com',
	'263.net',
	'chinaren.com',
	'netvigator.com',
	'biznetvigator.com',
	'pccw.com',
	'pchome.com.tw',
	'url.com.tw',
	'hinet.net',
	'seed.net.tw',
	'docomo.ne.jp',
	'ezweb.ne.jp',
	'softbank.ne.jp',
	'i.softbank.jp',
	'vodafone.ne.jp',
	'au.com',
	'au.jp',
	'nifty.com',
	'nifty.ne.jp',
	'ybb.ne.jp',
	'ocn.ne.jp',
	'plala.or.jp',
	'biglobe.ne.jp',
	'so-net.ne.jp',
	'dion.ne.jp',
	'infoseek.jp',
	'excite.co.jp',
	'goo.ne.jp',
	'asahi.net',
	'gol.com',
	'ff.iij4u.or.jp',
	'naver.com',
	'daum.net',
	'hanmail.net',
	'kakao.com',
	'nate.com',
	'lycos.co.kr',
	'korea.com',
	'empal.com',
	'hanafos.com',
	'netsgo.com',
	'chollian.net',
	'freechal.com',
	'rediffmail.com',
	'rediff.com',
	'in.com',
	'indiatimes.com',
	'sify.com',
	'vsnl.net',
	'vsnl.com',
	'vsnl.in',
	'vsnl.net.in',
	'airtelmail.in',
	'airtel.in',
	'bsnl.in',
	'bsnl.co.in',
	'bsnl.net.in',
	'singnet.com.sg',
	'pacific.net.sg',
	'starhub.com.sg',
	'tm.net.my',
	'streamyx.com.my',
	'unifi.com.my',
	'po.jaring.my',
	'pldt.net.ph',
	'smartbro.net',
	'smart.com.ph',
	'globe.com.ph',
	'loxinfo.co.th',
	'cscoms.com',
	'ji-net.com',
	'fpt.vn',
	'vnn.vn',
	'hcm.vnn.vn',
	'viettel.com.vn',
	'centrin.net.id',
	'indo.net.id',
	'cbn.net.id',
	'telkom.net.id',
	'xtra.co.nz',
	'clear.net.nz',
	'paradise.net.nz',
	'vodafone.co.nz',
	'bigpond.com',
	'bigpond.com.au',
	'bigpond.net.au',
	'optusnet.com.au',
	'iinet.net.au',
	'tpg.com.au',
	'internode.on.net',
	'westnet.com.au',
	'terra.com.br',
	'uol.com.br',
	'bol.com.br',
	'ig.com.br',
	'zipmail.com.br',
	'globo.com',
	'globomail.com',
	'ibest.com.br',
	'click21.com.br',
	'gbr.com.br',
	'oi.com.br',
	'pop.com.br',
	'speedy.com.ar',
	'fibertel.com.ar',
	'arnet.com.ar',
	'prodigy.net.mx',
	'terra.com.mx',
	'axtel.net',
	'cablevision.net.mx',
	'tvcable.net.co',
	'walla.co.il',
	'walla.com',
	'013.net.il',
	'012.net.il',
	'netvision.net.il',
	'bezeqint.net',
	'barak.net.il',
	'ttnet.com.tr',
	'superonline.com',
	'turk.net',
	'mynet.com',
	'etisalat.ae',
	'eim.ae',
	'emirates.net.ae',
	'stc.com.sa',
	'mobily.com.sa',
	'mweb.co.za',
	'webmail.co.za',
	'iafrica.com',
	'vodamail.co.za',
	'absamail.co.za',
	'telkomsa.net',
	'lycos.com',
	'excite.com',
	'tripod.com',
	'angelfire.com',
	'dnsmadeeasy.com',
	'contact.net',
	'hubpages.com',
	'mailnesia.com',
]);

export function isMajorEmailProvider(domain: string | null | undefined): boolean {
	if (!domain) return false;
	return MAJOR_EMAIL_PROVIDERS.has(domain.trim().toLowerCase());
}
