function a(a,o){let e=0,i=a.length,n=!1;if(!o){if(a.startsWith("data:"))return null;for(;ee+1&&a.charCodeAt(i-1)<=32;)i-=1;if(47===a.charCodeAt(e)&&47===a.charCodeAt(e+1))e+=2;else{const o=a.indexOf(":/",e);if(-1!==o){const i=o-e,n=a.charCodeAt(e),s=a.charCodeAt(e+1),t=a.charCodeAt(e+2),r=a.charCodeAt(e+3),u=a.charCodeAt(e+4);if(5===i&&104===n&&116===s&&116===t&&112===r&&115===u);else if(4===i&&104===n&&116===s&&116===t&&112===r);else if(3===i&&119===n&&115===s&&115===t);else if(2===i&&119===n&&115===s);else for(let i=e;i=97&&o<=122||o>=48&&o<=57||46===o||45===o||43===o))return null}for(e=o+2;47===a.charCodeAt(e);)e+=1}}let o=-1,s=-1,t=-1;for(let r=e;r=65&&e<=90&&(n=!0)}if(-1!==o&&o>e&&oe&&te+1&&46===a.charCodeAt(i-1);)i-=1;const s=0!==e||i!==a.length?a.slice(e,i):a;return n?s.toLowerCase():s}function o(a){return a>=97&&a<=122||a>=48&&a<=57||a>127}function e(a){if(a.length>255)return!1;if(0===a.length)return!1;if(!o(a.charCodeAt(0))&&46!==a.charCodeAt(0)&&95!==a.charCodeAt(0))return!1;let e=-1,i=-1;const n=a.length;for(let s=0;s64||46===i||45===i||95===i)return!1;e=s}else if(!o(n)&&45!==n&&95!==n)return!1;i=n}return n-e-1<=63&&45!==i}const i=function({allowIcannDomains:a=!0,allowPrivateDomains:o=!1,detectIp:e=!0,extractHostname:i=!0,mixedInputs:n=!0,validHosts:s=null,validateHostname:t=!0}){return{allowIcannDomains:a,allowPrivateDomains:o,detectIp:e,extractHostname:i,mixedInputs:n,validHosts:s,validateHostname:t}}({});function n(o,n,s,t,r){const u=function(a){return void 0===a?i:function({allowIcannDomains:a=!0,allowPrivateDomains:o=!1,detectIp:e=!0,extractHostname:i=!0,mixedInputs:n=!0,validHosts:s=null,validateHostname:t=!0}){return{allowIcannDomains:a,allowPrivateDomains:o,detectIp:e,extractHostname:i,mixedInputs:n,validHosts:s,validateHostname:t}}(a)}(t);return"string"!=typeof o?r:(u.extractHostname?u.mixedInputs?r.hostname=a(o,e(o)):r.hostname=a(o,!1):r.hostname=o,0===n||null===r.hostname||u.detectIp&&(r.isIp=function(a){if(a.length<3)return!1;let o=a.startsWith("[")?1:0,e=a.length;if("]"===a[e-1]&&(e-=1),e-o>39)return!1;let i=!1;for(;o=48&&e<=57||e>=97&&e<=102||e>=65&&e<=90))return!1}return i}(l=r.hostname)||function(a){if(a.length<7)return!1;if(a.length>15)return!1;let o=0;for(let e=0;e57)return!1}return 3===o&&46!==a.charCodeAt(0)&&46!==a.charCodeAt(a.length-1)}(l),r.isIp)?r:u.validateHostname&&u.extractHostname&&!e(r.hostname)?(r.hostname=null,r):(s(r.hostname,u,r),2===n||null===r.publicSuffix?r:(r.domain=function(a,o,e){if(null!==e.validHosts){const a=e.validHosts;for(const e of a)if(function(a,o){return!!a.endsWith(o)&&(a.length===o.length||"."===a[a.length-o.length-1])}(o,e))return e}let i=0;if(o.startsWith("."))for(;i3){const o=a.length-1,i=a.charCodeAt(o),n=a.charCodeAt(o-1),s=a.charCodeAt(o-2),t=a.charCodeAt(o-3);if(109===i&&111===n&&99===s&&46===t)return e.isIcann=!0,e.isPrivate=!1,e.publicSuffix="com",!0;if(103===i&&114===n&&111===s&&46===t)return e.isIcann=!0,e.isPrivate=!1,e.publicSuffix="org",!0;if(117===i&&100===n&&101===s&&46===t)return e.isIcann=!0,e.isPrivate=!1,e.publicSuffix="edu",!0;if(118===i&&111===n&&103===s&&46===t)return e.isIcann=!0,e.isPrivate=!1,e.publicSuffix="gov",!0;if(116===i&&101===n&&110===s&&46===t)return e.isIcann=!0,e.isPrivate=!1,e.publicSuffix="net",!0;if(101===i&&100===n&&46===s)return e.isIcann=!0,e.isPrivate=!1,e.publicSuffix="de",!0}return!1}(a,o,e))return;const n=a.split("."),u=(o.allowPrivateDomains?2:0)|(o.allowIcannDomains?1:0),l=r(n,s,n.length-1,u);if(null!==l)return e.isIcann=l.isIcann,e.isPrivate=l.isPrivate,void(e.publicSuffix=n.slice(l.index+1).join("."));const m=r(n,t,n.length-1,u);if(null!==m)return e.isIcann=m.isIcann,e.isPrivate=m.isPrivate,void(e.publicSuffix=n.slice(m.index).join("."));e.isIcann=!1,e.isPrivate=!1,e.publicSuffix=null!==(i=n[n.length-1])&&void 0!==i?i:null}const l={domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null};function m(a,o={}){return n(a,5,u,o,{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null})}function c(a,o={}){var e;return(e=l).domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null,n(a,0,u,o,l).hostname}function d(a,o={}){var e;return(e=l).domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null,n(a,2,u,o,l).publicSuffix}function g(a,o={}){var e;return(e=l).domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null,n(a,3,u,o,l).domain}function h(a,o={}){var e;return(e=l).domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null,n(a,4,u,o,l).subdomain}function k(a,o={}){var e;return(e=l).domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null,n(a,5,u,o,l).domainWithoutSuffix}export{g as getDomain,k as getDomainWithoutSuffix,c as getHostname,d as getPublicSuffix,h as getSubdomain,m as parse}; //# sourceMappingURL=index.esm.min.js.map