const a=/[\t\n\r]/g;let e=!1;function o(a){return a>=97&&a<=122||a>=48&&a<=57||a>127||a>=65&&a<=90||45===a||95===a}function i(a,e,o){const i=o-e,n=32|a.charCodeAt(e);if(2===i)return 119===n&&115==(32|a.charCodeAt(e+1))?1:0;if(3===i){const o=32|a.charCodeAt(e+1),i=32|a.charCodeAt(e+2);return 119===n&&115===o&&115===i||102===n&&116===o&&112===i?1:0}if(4===i){const o=32|a.charCodeAt(e+1),i=32|a.charCodeAt(e+2),s=32|a.charCodeAt(e+3);return 104===n&&116===o&&116===i&&112===s?1:102===n&&105===o&&108===i&&101===s?2:0}return 5===i&&104===n&&116==(32|a.charCodeAt(e+1))&&116==(32|a.charCodeAt(e+2))&&112==(32|a.charCodeAt(e+3))&&115==(32|a.charCodeAt(e+4))?1:0}function n(s,t,r=!1){let u=0,l=s.length,m=!1,c=!1;if(e=!1,!t){if(s.startsWith("data:"))return null;for(;uu+1&&s.charCodeAt(l-1)<=32;)l-=1;if(47===s.charCodeAt(u)&&47===s.charCodeAt(u+1))u+=2;else{const e=s.indexOf(":/",u);if(-1!==e){const o=i(s,u,e);if(1===o)for(c=!0,u=e+2;47===s.charCodeAt(u)||92===s.charCodeAt(u);)u+=1;else if(2===o){c=!0,u=e+1;let a=0;for(;(47===s.charCodeAt(u)||92===s.charCodeAt(u))&&a<2;)u+=1,a+=1;if(a<2)return null}else{for(let o=u;o=97&&e<=122||e>=48&&e<=57||46===e||45===e||43===e)){const e=s.charCodeAt(o);return 9===e||10===e||13===e?n(s.replace(a,""),t,r):null}}if(47!==s.charCodeAt(e+2))return null;u=e+3}}else if(91!==s.charCodeAt(u)){let e=-1;for(let o=u;o57){a=!1;break}}if(o===e+1&&(a=!1),!a){const a=i(s,u,e);if(0===a){let a=!1;for(let o=e+1;o64||46===f||45===f)&&(b=!1),y=a):(e<48||e>57)&&(45===e&&46!==f||(b=!1)))}else{if(c&&92===e){l=a;break}64===e?(d=a,k=-1):93===e?h=a:e>=65&&e<=90?m=!0:r&&!function(a){return a>=97&&a<=122||a>=48&&a<=57||a>127||a>=65&&a<=90||45===a||95===a}(e)&&(b=!1)}r&&(f=e)}if(p)return n(s.replace(a,""),t,r);if(-1!==d&&d>=u&&du&&g=l)return null;r&&b&&-1===d&&-1===g&&-1===h&&46!==s.charCodeAt(l-1)&&l-u<=255&&l-y-1<=63&&45!==f&&(e=!0)}for(;l>u+1&&46===s.charCodeAt(l-1);)l-=1;const d=0!==u||l!==s.length?s.slice(u,l):s;return m?d.toLowerCase():d}const s=["test","localhost","invalid","example","example.com","example.net","example.org","local","onion","alt","home.arpa","ipv4only.arpa","resolver.arpa","service.arpa","6tisch.arpa","eap.arpa"];function t(a){return a>=97&&a<=122||a>=48&&a<=57||a>127}function r(a){if(a.length>255)return!1;if(0===a.length)return!1;if(!t(a.charCodeAt(0))&&46!==a.charCodeAt(0)&&95!==a.charCodeAt(0))return!1;let e=-1,o=-1;const i=a.length;for(let n=0;n64||46===o||45===o)return!1;e=n}else if(!t(i)&&45!==i&&95!==i||45===i&&46===o)return!1;o=i}return i-e-1<=63&&45!==o}const u=function({allowIcannDomains:a=!0,allowPrivateDomains:e=!1,detectIp:o=!0,detectSpecialUse:i=!1,extractHostname:n=!0,mixedInputs:s=!0,validHosts:t=null,validateHostname:r=!0}){return{allowIcannDomains:a,allowPrivateDomains:e,detectIp:o,detectSpecialUse:i,extractHostname:n,mixedInputs:s,validHosts:t,validateHostname:r}}({});function l(a,o,i,t,l){const m=function(a){return void 0===a?u:function({allowIcannDomains:a=!0,allowPrivateDomains:e=!1,detectIp:o=!0,detectSpecialUse:i=!1,extractHostname:n=!0,mixedInputs:s=!0,validHosts:t=null,validateHostname:r=!0}){return{allowIcannDomains:a,allowPrivateDomains:e,detectIp:o,detectSpecialUse:i,extractHostname:n,mixedInputs:s,validHosts:t,validateHostname:r}}(a)}(t);if("string"!=typeof a)return l;let c=!1;return m.extractHostname?m.mixedInputs?(c=r(a),l.hostname=n(a,c,m.validateHostname)):l.hostname=n(a,!1,m.validateHostname):l.hostname=a,m.detectIp&&null!==l.hostname&&(l.isIp=function(a){if(a.length<3)return!1;let e=a.startsWith("[")?1:0,o=a.length;if("]"===a[o-1]&&(o-=1),o-e>39)return!1;let i=!1;for(;e=48&&o<=57||o>=97&&o<=102||o>=65&&o<=70))return!1}return i}(d=l.hostname)||function(a){if(a.length<7)return!1;if(a.length>15)return!1;let e=0;for(let o=0;o57)return!1}return 3===e&&46!==a.charCodeAt(0)&&46!==a.charCodeAt(a.length-1)}(d),l.isIp)?l:!m.validateHostname||!m.extractHostname||null===l.hostname||c&&l.hostname===a||e||r(l.hostname)?0===o||null===l.hostname?l:(5===o&&m.detectSpecialUse&&(l.isSpecialUse=function(a){for(const e of s)if(a.endsWith(e)&&(a.length===e.length||46===a.charCodeAt(a.length-e.length-1)))return!0;return!1}(l.hostname)),i(l.hostname,m,l),2===o||null===l.publicSuffix?l:(l.domain=function(a,e,o){if(null!==o.validHosts){const a=o.validHosts;for(const o of a)if(function(a,e){return!!a.endsWith(e)&&(a.length===e.length||"."===a[a.length-e.length-1])}(e,o))return o}let i=0;if(e.startsWith("."))for(;i=e;a-=1)n=33*n^g.charCodeAt(a);v[o]=n>>>0,1===d[o]&&42===g.charCodeAt(e)&&(w[a]=o),e=i}let x=-1,z=0,j=0;function q(a,e,o,i){if(d[a]!==i)return!1;const n=f[a];for(let a=0;a>>1,r=v[a];if(re)){for(let t=a;t>=s&&v[t]===e;t-=1)if(q(t,o,i,n))return t;for(let s=a+1;s=0;e-=1){const t=a.charCodeAt(e);if(46===t){const t=e+1;let r=A(i,s>>>0,a,t,n-t);if(-1===r&&(r=w[i]),-1===r)return-1!==x;i=h[r],m[i]&o&&(x=i,z=t,j=n),n=e,s=5381}else s=33*s^t}let t=A(i,s>>>0,a,0,n);return-1===t&&(t=w[i]),-1!==t&&(i=h[t],m[i]&o&&(x=i,z=0,j=n)),-1!==x}function I(a,e,o){if(function(a,e,o){if(!e.allowPrivateDomains&&a.length>3){const e=a.length-1,i=a.charCodeAt(e),n=a.charCodeAt(e-1),s=a.charCodeAt(e-2),t=a.charCodeAt(e-3);if(109===i&&111===n&&99===s&&46===t)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="com",!0;if(103===i&&114===n&&111===s&&46===t)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="org",!0;if(117===i&&100===n&&101===s&&46===t)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="edu",!0;if(118===i&&111===n&&103===s&&46===t)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="gov",!0;if(116===i&&101===n&&110===s&&46===t)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="net",!0;if(101===i&&100===n&&46===s)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="de",!0}return!1}(a,e,o))return;const i=(e.allowPrivateDomains?2:0)|(e.allowIcannDomains?1:0);if(C(a,p,i))return o.isIcann=!!(1&m[x]),o.isPrivate=!!(2&m[x]),void(o.publicSuffix=a.slice(j+1));if(C(a,k,i))return o.isIcann=!!(1&m[x]),o.isPrivate=!!(2&m[x]),void(o.publicSuffix=a.slice(z));o.isIcann=!1,o.isPrivate=!1;const n=a.lastIndexOf(".");o.publicSuffix=-1===n?a:a.slice(n+1)}const S={domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null};function P(a,e){return l(a,5,I,e,{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null})}function U(a,e){var o;return(o=S).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.isSpecialUse=null,o.publicSuffix=null,o.subdomain=null,l(a,0,I,e,S).hostname}function H(a,e){var o;return(o=S).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.isSpecialUse=null,o.publicSuffix=null,o.subdomain=null,l(a,2,I,e,S).publicSuffix}function W(a,e){var o;return(o=S).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.isSpecialUse=null,o.publicSuffix=null,o.subdomain=null,l(a,3,I,e,S).domain}function D(a,e){!function(a){a.domain=null,a.domainWithoutSuffix=null,a.hostname=null,a.isIcann=null,a.isIp=null,a.isPrivate=null,a.isSpecialUse=null,a.publicSuffix=null,a.subdomain=null}(S);const o=l(a,3,I,e,S);return null===o.domain?null:o.hostname}function O(a,e){var o;return(o=S).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.isSpecialUse=null,o.publicSuffix=null,o.subdomain=null,l(a,4,I,e,S).subdomain}function L(a,e){var o;return(o=S).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.isSpecialUse=null,o.publicSuffix=null,o.subdomain=null,l(a,5,I,e,S).domainWithoutSuffix}export{W as getDomain,L as getDomainWithoutSuffix,D as getFullDomain,U as getHostname,H as getPublicSuffix,O as getSubdomain,P as parse}; //# sourceMappingURL=index.esm.min.js.map