@gmana/email-checker
Version:
1 lines • 8.07 kB
JavaScript
var e=`10minutemail.com,tempmail.com,guerrillamail.com,mailinator.com,yopmail.com,throwawaymail.com,getairmail.com,trashmail.com,sharklasers.com,guerrillamailblock.com,temp-mail.org,dispostable.com,maildrop.cc,fakeinbox.com,tempinbox.com,emailondeck.com,mohmal.com,thankyou2010.com,tempmailaddress.com,tmpmail.net,dropmail.me,spamgourmet.com,tempmailer.com,spam4.me,mailnesia.com,tempemail.net,mytemp.email,burnermail.io,temp-mail.io,eelmail.com,cs.email,vmani.com,10mail.org,burnthis.email,fakemail.net,tempr.email,discard.email,mailsac.com,inboxalias.com,emailtemp.org,anonbox.net,fastmail.com,tempmailgen.com,tempmail.ninja,cock.li,nada.email,harakirimail.com,developermail.com,getnada.com,mailcatch.com,tempmailhub.com,tempmail.plus,disbox.net,tempmail.dev,mailpoof.com,tafmail.com,trash-mail.com,spambox.us,jetable.org,meltmail.com,wegwerfmail.de,trashmail.de,privacy.com.br,qq.com,maildrop.xyz,tempmails.net,ahk.jp,shitmail.me,mailforspam.com,tempmailaddress.com,notsharingmy.info,incognitomail.com,tempmail.eu,mvrht.net,emailsensei.com,throwawaymail.com,anonymousemail.me,rootsh.com,mailinator2.com,nobulk.com,tempmail.space,10minutemail.net,tempail.com,tempemail.co,trashmail.net,mailexpire.com,temp-mail.ru,guerrillamail.biz,guerrillamail.de,guerrillamail.net,guerrillamail.org,guerrillamailblock.com,pokemail.net,spam4.me,grr.la,tempsky.com,dropjar.com,sneakemail.com,eyepaste.com,mintemail.com,opayq.com,spamfree24.org,tempomail.fr,temporary-mail.net,throwawaymail.com,yopmail.fr,yopmail.net,cool.fr.nf,jetable.fr.nf,nospam.ze.tc,nomail.xl.cx,mega.zik.dj,speed.1s.fr,courriel.fr.nf,moncourrier.fr.nf,monemail.fr.nf,monmail.fr.nf,trash-mail.cf,trash-mail.ga,trash-mail.gq,trash-mail.ml,trash-mail.tk,tempmail.net,10minutemail.de,disposablemail.com,oneoffmail.com,bobmail.info,emkei.cf,emkei.ga,emkei.gq,emkei.ml,emkei.tk,mailtemp.net,muellmail.com,tmail.ws,guerrillamail.info,guerrillamail.biz,guerrillamail.org,guerrillamail.de,guerrillamail.net,guerrillamail.com,sogetthis.com,spamgourmet.net,spamgourmet.org,tempemails.net,discardmail.com,discardmail.de,trashmail.ws,trashmail.at,emeil.ws,mailinator.net,mailinator.org,mailinator.info,mailinator.net,20minutemail.com,20minutemail.it,2prong.com,3d-painting.com,4warding.com,4warding.net,4warding.org,e4ward.com,recode.me,recursor.net,spamhole.com,tempmail.it,tempmails.de,tempmails.org,tempmailo.com,temporarymail.net,temporaryemail.net,temporaryemail.org,temporaryforwarding.com,tossmail.com,trashinbox.com,trashemail.de,incognitomail.org,incognitomail.net,incognitomail.com,anonymbox.com,guerillamail.org,guerillamail.net,guerillamail.info,guerillamail.biz,guerillamail.de,guerillamail.com,guerrillamail.biz,guerrillamail.com,guerrillamail.de,guerrillamail.info,guerrillamail.net,guerrillamail.org,tempmailaddresses.com,tempmailbox.net,tempmailboxes.com,tempmailer.net,tempmailer.org,tempemailbox.com,tempmailgenerator.com,tempinbox.org,tempinbox.net,tempmailbox.com,spambox.org,spambox.info,bccto.me,byom.de,deadfake.cf,deadfake.ga,deadfake.ml,deadfake.tk,emailmiser.com,emailto.de,emailwarden.com,fakemailgenerator.com,fakedisposableemail.com,fakeemail.net,fakeemailgenerator.net,fakeemails.net,fakemailbox.com,fakemails.net,fakemyemail.com,fudgerub.com,garbagecan.org,getonemail.com,gimemail.com,guerillamailblock.com,guerrillamailblock.com,hotpop.com,hulapla.de,incognitomail.com,instant-mail.de,junk1e.com,knilch.com,litetraveled.com,mailbidon.com,maildx.com,mailfreeonline.com,mailmeto.com,mailzilla.com,mvrht.com,noclickemail.com,no-spam.ws,nospamfor.us,nowmymail.com,objectmail.com,proxymail.eu,rcpt.at,safe-mail.net,safetymail.info,secmail.pw,selfdestructingmail.com,sharklasers.com,shieldedmail.com,smellfear.com,spamcannon.com,spamcannon.net,spamday.com,spamhole.com,spaml.com,spaml.de,spamstack.net,speed.1s.fr,spikio.com,spoofmail.de,stuffmail.de,super-auswahl.de,superrito.com,tagyourself.com,teewars.org,tempail.com,tempemail.biz,tempemail.com,tempm.com,tempmail.de,tempmail10.com,tempmail10.org,tempmail2.com,throwawayemailaddresses.com,trashdevil.com,turual.com,twinmail.de,upliftnow.com,venompen.com,veryrealemail.com,viditag.com,viewcastmedia.com,viewcastmedia.net,viewcastmedia.org,vubby.com,walala.org,walkmail.net,webemail.me,weg-werf-email.de,wegwerf-emails.de,wegwerfadresse.de,wegwerfemail.com,wegwerfemail.de,wegwerfemail.net,wegwerfemail.org,wegwerfmail.de,wegwerfmail.info,wegwerfmail.net,wegwerfmail.org,willhackforfood.biz,willselldrugs.com,wuzupmail.net,yep.it,yogamaven.com,zoemail.com,zoemail.net,zoemail.org`.split(`,`);const t=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,n=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,r=/[^\x20-\x7E]/;var i=class{cache=new Map;maxSize;constructor(e=1e3){this.maxSize=e}get(e){return this.cache.get(e.toLowerCase())}set(e,t){let n=e.toLowerCase();if(this.cache.size>=this.maxSize){let e=this.cache.keys().next().value;e&&this.cache.delete(e)}this.cache.set(n,t)}clear(){this.cache.clear()}size(){return this.cache.size}};const a=new i;function o(e,r=!1){if(!e||typeof e!=`string`)return!1;let i=r?n:t;return i.test(e.trim())}function s(e){if(!e||typeof e!=`string`)return null;let t=e.trim().toLowerCase(),n=t.lastIndexOf(`@`);if(n===-1||n===0||n===t.length-1)return null;let r=t.substring(n+1);return!r||r.includes(`..`)||r.startsWith(`.`)||r.endsWith(`.`)?null:r}function c(e){return e?e.toLowerCase().trim().replace(/^www\./,``).replace(/\/$/,``):``}function l(e){return r.test(e)}function u(e){if(!e)return!1;let t=e.split(`.`);return t.length>2}function d(e){if(!e)return``;let t=e.split(`.`);return t.length<=2?e:t.slice(-2).join(`.`)}function f(e,t={}){let n=[];return!t.allowInternational&&l(e)&&n.push(`International domains are not allowed`),!t.allowSubdomains&&u(e)&&n.push(`Subdomains are not allowed`),n}function p(e,t=[]){if(!e||!t.length)return!1;let n=c(e),r=d(n);return t.some(e=>{let t=c(e);return n===t||r===t})}function m(e,t){if(!e)return!1;let n=c(e),r=d(n),i=t instanceof Set?t:new Set(t);return!!(i.has(n)||n!==r&&i.has(r))}function h(e,t,n={}){let r=c(e),i=p(r,n.whitelistedDomains),a=m(r,t),o=m(r,n.customDisposableDomains||[]);return{domain:r,isDisposable:!i&&(a||o),isWhitelisted:i,isInternational:l(r)}}const g=new Set(e),_={allowInternational:!0,allowSubdomains:!0,customDisposableDomains:[],whitelistedDomains:[],strictMode:!1,enableCaching:!0,maxCacheSize:1e3};let v={..._};function y(e){v={...v,...e},e.maxCacheSize!==void 0&&a.clear()}function b(){v={..._},a.clear()}function x(){return{...v}}function S(e,t){let n=C(e,t);return n.isDisposable}function C(e,t){let n={...v,...t},r=[];if(!e||typeof e!=`string`)return{isValid:!1,isDisposable:!1,domain:null,errors:[`Email must be a non-empty string`],metadata:{isInternational:!1,hasSubdomains:!1,isWhitelisted:!1}};let i=o(e,n.strictMode);i||r.push(`Invalid email format`);let c=s(e);if(!c)return{isValid:!1,isDisposable:!1,domain:null,errors:[...r,`Could not extract domain from email`],metadata:{isInternational:!1,hasSubdomains:!1,isWhitelisted:!1}};let l=f(c,n);r.push(...l);let d;n.enableCaching&&(d=a.get(c)),d||(d=h(c,g,n),n.enableCaching&&a.set(c,d));let p={isValid:i&&r.length===0,isDisposable:d.isDisposable,domain:d.domain,errors:r,metadata:{isInternational:d.isInternational,hasSubdomains:u(d.domain),isWhitelisted:d.isWhitelisted}};return p}function w(e){if(!e)return!1;let t=h(e,g);return t.isDisposable}function T(){return Array.from(g)}function E(e,t){let n={...v,...t};return h(e,g,n)}function D(){a.clear()}function O(){return{size:a.size(),maxSize:v.maxCacheSize}}export{D as clearCache,y as configureEmailChecker,h as createDomainInfo,a as domainCache,s as extractDomain,O as getCacheStats,T as getDisposableDomains,E as getDomainInfo,x as getEmailCheckerConfig,d as getRootDomain,u as hasSubdomains,S as isDisposableEmail,w as isDomainDisposable,m as isDomainInList,l as isInternationalDomain,o as isValidEmailFormat,p as isWhitelistedDomain,c as normalizeDomain,b as resetEmailCheckerConfig,f as validateDomainOptions,C as validateEmail};