(function(p,y){typeof exports=="object"&&typeof module!="undefined"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(p=typeof globalThis!="undefined"?globalThis:p||self,y(p.psl={}))})(this,function(p){"use strict";function y(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}const w=2147483647,u=36,q=1,v=26,R=38,V=700,S=72,I=128,O="-",W=/^xn--/,P=/[^\0-\x7F]/,G=/[\x2E\u3002\uFF0E\uFF61]/g,U={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=u-q,k=Math.floor,_=String.fromCharCode;function h(a){throw new RangeError(U[a])}function $(a,s){const e=[];let o=a.length;for(;o--;)e[o]=s(a[o]);return e}function C(a,s){const e=a.split("@");let o="";e.length>1&&(o=e[0]+"@",a=e[1]),a=a.replace(G,".");const i=a.split("."),n=$(i,s).join(".");return o+n}function L(a){const s=[];let e=0;const o=a.length;for(;e=55296&&i<=56319&&eString.fromCodePoint(...a),K=function(a){return a>=48&&a<58?26+(a-48):a>=65&&a<91?a-65:a>=97&&a<123?a-97:u},T=function(a,s){return a+22+75*(a<26)-((s!=0)<<5)},D=function(a,s,e){let o=0;for(a=e?k(a/V):a>>1,a+=k(a/s);a>A*v>>1;o+=u)a=k(a/A);return k(o+(A+1)*a/(a+R))},E=function(a){const s=[],e=a.length;let o=0,i=I,n=S,r=a.lastIndexOf(O);r<0&&(r=0);for(let t=0;t=128&&h("not-basic"),s.push(a.charCodeAt(t));for(let t=r>0?r+1:0;t=e&&h("invalid-input");const g=K(a.charCodeAt(t++));g>=u&&h("invalid-input"),g>k((w-o)/c)&&h("overflow"),o+=g*c;const b=l<=n?q:l>=n+v?v:l-n;if(gk(w/z)&&h("overflow"),c*=z}const j=s.length+1;n=D(o-m,j,m==0),k(o/j)>w-i&&h("overflow"),i+=k(o/j),o%=j,s.splice(o++,0,i)}return String.fromCodePoint(...s)},B=function(a){const s=[];a=L(a);const e=a.length;let o=I,i=0,n=S;for(const m of a)m<128&&s.push(_(m));const r=s.length;let t=r;for(r&&s.push(O);t=o&&ck((w-i)/j)&&h("overflow"),i+=(m-o)*j,o=m;for(const c of a)if(cw&&h("overflow"),c===o){let l=i;for(let g=u;;g+=u){const b=g<=n?q:g>=n+v?v:g-n;if(l255)return"DOMAIN_TOO_LONG";for(var e=s.split("."),o,i=0;i63)return"LABEL_TOO_LONG";if(o.charAt(0)==="-")return"LABEL_STARTS_WITH_DASH";if(o.charAt(o.length-1)==="-")return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(o))return"LABEL_INVALID_CHARS"}};const x=function(a){if(typeof a!="string")throw new TypeError("Domain name must be a string.");var s=a.slice(0).toLowerCase();s.charAt(s.length-1)==="."&&(s=s.slice(0,s.length-1));var e=d.validate(s);if(e)return{input:a,error:{message:M[e],code:e}};var o={input:a,tld:null,sld:null,domain:null,subdomain:null,listed:!1},i=s.split(".");if(i[i.length-1]==="local")return o;var n=function(){return/xn--/.test(s)&&(o.domain&&(o.domain=f.toASCII(o.domain)),o.subdomain&&(o.subdomain=f.toASCII(o.subdomain))),o},r=d.findRule(s);if(!r)return i.length<2?o:(o.tld=i.pop(),o.sld=i.pop(),o.domain=[o.sld,o.tld].join("."),i.length&&(o.subdomain=i.pop()),n());o.listed=!0;var t=r.suffix.split("."),m=i.slice(0,i.length-t.length);return r.exception&&m.push(t.shift()),o.tld=t.join("."),!m.length||(r.wildcard&&(t.unshift(m.pop()),o.tld=t.join(".")),!m.length)||(o.sld=m.pop(),o.domain=[o.sld,o.tld].join("."),m.length&&(o.subdomain=m.join("."))),n()},F=function(a){return a&&x(a).domain||null},H=function(a){var s=x(a);return!!(s.domain&&s.listed)},Y={parse:x,get:F,isValid:H};p.default=Y,p.errorCodes=M,p.get=F,p.isValid=H,p.parse=x,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});