"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function H(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}const b=2147483647,p=36,q=1,y=26,N=38,R=700,O=72,S=128,I="-",V=/^xn--/,W=/[^\0-\x7F]/,P=/[\x2E\u3002\uFF0E\uFF61]/g,G={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},z=p-q,u=Math.floor,x=String.fromCharCode;function h(a){throw new RangeError(G[a])}function U(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(P,".");const i=a.split("."),n=U(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),J=function(a){return a>=48&&a<58?26+(a-48):a>=65&&a<91?a-65:a>=97&&a<123?a-97:p},_=function(a,s){return a+22+75*(a<26)-((s!=0)<<5)},T=function(a,s,e){let o=0;for(a=e?u(a/R):a>>1,a+=u(a/s);a>z*y>>1;o+=p)a=u(a/z);return u(o+(z+1)*a/(a+N))},D=function(a){const s=[],e=a.length;let o=0,i=S,n=O,r=a.lastIndexOf(I);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 l=J(a.charCodeAt(t++));l>=p&&h("invalid-input"),l>u((b-o)/c)&&h("overflow"),o+=l*c;const j=k<=n?q:k>=n+y?y:k-n;if(lu(b/w)&&h("overflow"),c*=w}const g=s.length+1;n=T(o-m,g,m==0),u(o/g)>b-i&&h("overflow"),i+=u(o/g),o%=g,s.splice(o++,0,i)}return String.fromCodePoint(...s)},E=function(a){const s=[];a=L(a);const e=a.length;let o=S,i=0,n=O;for(const m of a)m<128&&s.push(x(m));const r=s.length;let t=r;for(r&&s.push(I);t=o&&cu((b-i)/g)&&h("overflow"),i+=(m-o)*g,o=m;for(const c of a)if(cb&&h("overflow"),c===o){let k=i;for(let l=p;;l+=p){const j=l<=n?q:l>=n+y?y:l-n;if(k255)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 f=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:B[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=v.toASCII(o.domain)),o.subdomain&&(o.subdomain=v.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()},M=function(a){return a&&f(a).domain||null},F=function(a){var s=f(a);return!!(s.domain&&s.listed)},aa={parse:f,get:M,isValid:F};exports.default=aa;exports.errorCodes=B;exports.get=M;exports.isValid=F;exports.parse=f;