!function(a,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((a="undefined"!=typeof globalThis?globalThis:a||self).tldts={})}(this,(function(a){"use strict";function i(a,i){let o=0,n=a.length,e=!1;if(!i){if(a.startsWith("data:"))return null;for(;oo+1&&a.charCodeAt(n-1)<=32;)n-=1;if(47===a.charCodeAt(o)&&47===a.charCodeAt(o+1))o+=2;else{const i=a.indexOf(":/",o);if(-1!==i){const n=i-o,e=a.charCodeAt(o),s=a.charCodeAt(o+1),r=a.charCodeAt(o+2),t=a.charCodeAt(o+3),u=a.charCodeAt(o+4);if(5===n&&104===e&&116===s&&116===r&&112===t&&115===u);else if(4===n&&104===e&&116===s&&116===r&&112===t);else if(3===n&&119===e&&115===s&&115===r);else if(2===n&&119===e&&115===s);else for(let n=o;n=97&&i<=122||i>=48&&i<=57||46===i||45===i||43===i))return null}for(o=i+2;47===a.charCodeAt(o);)o+=1}}let i=-1,s=-1,r=-1;for(let t=o;t=65&&o<=90&&(e=!0)}if(-1!==i&&i>o&&io&&ro+1&&46===a.charCodeAt(n-1);)n-=1;const s=0!==o||n!==a.length?a.slice(o,n):a;return e?s.toLowerCase():s}function o(a){return a>=97&&a<=122||a>=48&&a<=57||a>127}function n(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 i=-1,n=-1;const e=a.length;for(let s=0;s64||46===n||45===n||95===n)return!1;i=s}else if(!o(e)&&45!==e&&95!==e)return!1;n=e}return e-i-1<=63&&45!==n}const e=function({allowIcannDomains:a=!0,allowPrivateDomains:i=!1,detectIp:o=!0,extractHostname:n=!0,mixedInputs:e=!0,validHosts:s=null,validateHostname:r=!0}){return{allowIcannDomains:a,allowPrivateDomains:i,detectIp:o,extractHostname:n,mixedInputs:e,validHosts:s,validateHostname:r}}({});function s(a,o,s,r,t){const u=function(a){return void 0===a?e:function({allowIcannDomains:a=!0,allowPrivateDomains:i=!1,detectIp:o=!0,extractHostname:n=!0,mixedInputs:e=!0,validHosts:s=null,validateHostname:r=!0}){return{allowIcannDomains:a,allowPrivateDomains:i,detectIp:o,extractHostname:n,mixedInputs:e,validHosts:s,validateHostname:r}}(a)}(r);return"string"!=typeof a?t:(u.extractHostname?u.mixedInputs?t.hostname=i(a,n(a)):t.hostname=i(a,!1):t.hostname=a,u.detectIp&&null!==t.hostname&&(t.isIp=function(a){if(a.length<3)return!1;let i=a.startsWith("[")?1:0,o=a.length;if("]"===a[o-1]&&(o-=1),o-i>39)return!1;let n=!1;for(;i=48&&o<=57||o>=97&&o<=102||o>=65&&o<=90))return!1}return n}(m=t.hostname)||function(a){if(a.length<7)return!1;if(a.length>15)return!1;let i=0;for(let o=0;o57)return!1}return 3===i&&46!==a.charCodeAt(0)&&46!==a.charCodeAt(a.length-1)}(m),t.isIp)?t:u.validateHostname&&u.extractHostname&&null!==t.hostname&&!n(t.hostname)?(t.hostname=null,t):0===o||null===t.hostname?t:(s(t.hostname,u,t),2===o||null===t.publicSuffix?t:(t.domain=function(a,i,o){if(null!==o.validHosts){const a=o.validHosts;for(const o of a)if(function(a,i){return!!a.endsWith(i)&&(a.length===i.length||"."===a[a.length-i.length-1])}(i,o))return o}let n=0;if(i.startsWith("."))for(;n3){const i=a.length-1,n=a.charCodeAt(i),e=a.charCodeAt(i-1),s=a.charCodeAt(i-2),r=a.charCodeAt(i-3);if(109===n&&111===e&&99===s&&46===r)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="com",!0;if(103===n&&114===e&&111===s&&46===r)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="org",!0;if(117===n&&100===e&&101===s&&46===r)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="edu",!0;if(118===n&&111===e&&103===s&&46===r)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="gov",!0;if(116===n&&101===e&&110===s&&46===r)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="net",!0;if(101===n&&100===e&&46===s)return o.isIcann=!0,o.isPrivate=!1,o.publicSuffix="de",!0}return!1}(a,i,o))return;const e=a.split("."),s=u(e,r,e.length-1);if(null!==s)return void(o.publicSuffix=e.slice(s.index+1).join("."));const m=u(e,t,e.length-1);o.publicSuffix=null===m?null!==(n=e[e.length-1])&&void 0!==n?n:null:e.slice(m.index).join(".")}const l={domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null};a.getDomain=function(a,i={}){var o;return(o=l).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.publicSuffix=null,o.subdomain=null,s(a,3,m,i,l).domain},a.getDomainWithoutSuffix=function(a,i={}){var o;return(o=l).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.publicSuffix=null,o.subdomain=null,s(a,5,m,i,l).domainWithoutSuffix},a.getHostname=function(a,i={}){var o;return(o=l).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.publicSuffix=null,o.subdomain=null,s(a,0,m,i,l).hostname},a.getPublicSuffix=function(a,i={}){var o;return(o=l).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.publicSuffix=null,o.subdomain=null,s(a,2,m,i,l).publicSuffix},a.getSubdomain=function(a,i={}){var o;return(o=l).domain=null,o.domainWithoutSuffix=null,o.hostname=null,o.isIcann=null,o.isIp=null,o.isPrivate=null,o.publicSuffix=null,o.subdomain=null,s(a,4,m,i,l).subdomain},a.parse=function(a,i={}){return s(a,5,m,i,{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null})}})); //# sourceMappingURL=index.umd.min.js.map