Socket
Socket
Sign inDemoInstall

@adraffy/ens-normalize

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adraffy/ens-normalize - npm Package Compare versions

Comparing version 1.5.4 to 1.5.5

2

dist/all.min.js

@@ -1,1 +0,1 @@

function A(A){return 1&A?~A>>1:A>>1}function e(A,e){let t=Array(A);for(let n=0,o=-1;n<A;n++)t[n]=o+=1+e();return t}function t(e,t){let n=Array(e);for(let o=0,r=0;o<e;o++)n[o]=r+=A(t());return n}function n(A,t){let n=e(A(),A),o=A(),r=e(o,A),i=function(A,e){let t=Array(A);for(let n=0;n<A;n++)t[n]=1+e();return t}(o,A);for(let A=0;A<o;A++)for(let e=0;e<i[A];e++)n.push(r[A]+e);return t?n.map((A=>t[A])):n}function o(A,e,n){let o=Array(A).fill().map((()=>[]));for(let r=0;r<e;r++)t(A,n).forEach(((A,e)=>o[e].push(A)));return o}function r(A,e){let t=1+e(),n=e(),r=function(A){let e=[];for(;;){let t=A();if(0==t)break;e.push(t)}return e}(e);return o(r.length,1+A,e).flatMap(((A,e)=>{let[o,...i]=A;return Array(r[e]).fill().map(((A,e)=>{let r=e*n;return[o+e*t,i.map((A=>A+r))]}))}))}function i(A,e){return o(1+e(),1+A,e).map((A=>[A[0],A.slice(1)]))}var l=function(A){let e=0;return()=>A[e++]}(function(A){let e=0;function t(){return A[e++]<<8|A[e++]}let n=t(),o=1,r=[0,1];for(let A=1;A<n;A++)r.push(o+=t());let i=t(),l=e;e+=i;let g=0,a=0;function s(){return 0==g&&(a=a<<8|A[e++],g=8),a>>--g&1}const c=2**31,p=c>>>1,B=c-1;let f=0;for(let A=0;A<31;A++)f=f<<1|s();let d=[],C=0,u=c;for(;;){let A=Math.floor(((f-C+1)*o-1)/u),e=0,t=n;for(;t-e>1;){let n=e+t>>>1;A<r[n]?t=n:e=n}if(0==e)break;d.push(e);let i=C+Math.floor(u*r[e]/o),l=C+Math.floor(u*r[e+1]/o)-1;for(;0==((i^l)&p);)f=f<<1&B|s(),i=i<<1&B,l=l<<1&B|1;for(;i&~l&536870912;)f=f&p|f<<1&B>>>1|s(),i=i<<1^p,l=(l^p)<<1|p|1;C=i,u=1+l-i}let w=n-4;return d.map((e=>{switch(e-w){case 3:return w+65792+(A[l++]<<16|A[l++]<<8|A[l++]);case 2:return w+256+(A[l++]<<8|A[l++]);case 1:return w+A[l++];default:return e-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0)))));function g(A){return A.toString(16).toUpperCase()}function a(A){return`{${g(A)}}`}function s(A){return[...A].map((A=>A.codePointAt(0)))}function c(A){return A.filter((A=>65039!=A))}function p(A,e=a){return A.replace(/(?:([\x00-\x20\x7F\xA0\s\u200C\u200D\u{E0020}-\u{E007F}])|([^\x21-\x25\x27-\x3B\x3D\x3F-\x7E]))/gu,((A,t,n)=>t?e(t.codePointAt(0)):`&#${n.codePointAt(0)}`))}function B(A){return A.replace(/[^\x21\x23-\x7A\x7C\x7E]/gu,(A=>a(A.codePointAt(0))))}function f(A){return/^[\x21-\x7E]+$/gu.test(A)}function d(A,e){let{length:t}=A,n=t-e.length;for(let o=0;0==n&&o<t;o++)n=A[o]-e[o];return n}const C=new Set(n(l)),u=new Set(n(l)),w=function(A){let e=[];for(;;){let t=A();if(0==t)break;e.push(r(t,A))}for(;;){let t=A()-1;if(t<0)break;e.push(i(t,A))}return Object.fromEntries(e.flat())}(l),h=function(A){let e=n(A).sort(((A,e)=>A-e));return function t(){let o=[];for(;;){let r=n(A,e);if(0==r.length)break;o.push({set:new Set(r),node:t()})}o.sort(((A,e)=>e.set.size-A.set.size));let r=A(),i=r%3;r=r/3|0;let l=!!(1&r);return r>>=1,{branches:o,valid:i,fe0f:l,save:1==r,check:2==r}}()}(l),Q=new Set(n(l,[...C].sort(((A,e)=>A-e))));function E(A){return A.normalize("NFC")}function I(A){return D(A,(A=>A))}function m(A){return D(A,c)}function D(A,e){let t=s(A).reverse(),n=[];for(;t.length;){let A=y(t);if(A){n.push(...e(A));continue}let o=t.pop();if(C.has(o)){n.push(o);continue}if(u.has(o))continue;let r=w[o];if(!r)throw new Error(`Disallowed codepoint: 0x${o.toString(16).toUpperCase()}`);n.push(...r)}return E(String.fromCodePoint(...n))}function y(A,e){let t,n,o=h,r=[],i=A.length;for(e&&(e.length=0);i;){let l=A[--i];if(o=o.branches.find((A=>A.set.has(l)))?.node,!o)break;if(o.save)n=l;else if(o.check&&l===n)break;r.push(l),o.fe0f&&(r.push(65039),i>0&&65039==A[i-1]&&i--),o.valid&&(t=r.slice(),2==o.valid&&t.splice(1,1),e&&e.push(...A.slice(i).reverse()),A.length=i)}return t}function k(A){let e=s(A).reverse(),t=[],n=[];for(;e.length;){let A=y(e,t);if(A)n.push({type:"emoji",emoji:A,input:t.slice(),cps:c(A)});else{let A=e.pop();if(46===A)n.push({type:"stop"});else if(C.has(A))n.push({type:"valid",cps:[A]});else if(u.has(A))n.push({type:"ignored",cp:A});else{let e=w[A];e?n.push({type:"mapped",cp:A,cps:e}):n.push({type:"disallowed",cp:A})}}}for(let A=0,e=-1;A<n.length;A++){let t=n[A];if(M(t.type))if(T(t.cps)){let t=A+1;for(let A=t;A<n.length;A++){let{type:e,cps:o}=n[A];if(M(e)){if(!T(o))break;t=A+1}else if("ignored"!==e||"disallowed"!==e)break}e<0&&(e=A);let o=n.slice(e,t),r=o.flatMap((A=>M(A.type)?A.cps:[])),i=String.fromCodePoint(...r),l=E(i);i===l?A=t-1:(n.splice(e,t-e,{type:"nfc",input:r,cps:s(l),tokens:H(o)}),A=e),e=-1}else e=A;else"emoji"===t.type&&(e=-1)}return H(n)}function M(A){return"valid"===A||"mapped"===A}function T(A){return A.some((A=>Q.has(A)))}function H(A){for(let e=0;e<A.length;e++)if("valid"===A[e].type){let t=e+1;for(;t<A.length&&"valid"===A[t].type;)t++;A.splice(e,t-e,{type:"valid",cps:A.slice(e,t).flatMap((A=>A.cps))})}return A}function F(A){return A<26?97+A:22+A}function G(A,e){let t=A-e;return t<=0?1:t>=26?26:t}function x(A,e,t){A=Math.floor(A/(t?700:2)),A+=Math.floor(A/e);let n=0;for(;A>455;)A=Math.floor(A/35),n+=36;return n+Math.floor(36*A/(A+38))}const K=new Set(s("-.0123456789abcdefghijklmnopqrstuvwxyz"));function L(A){let e=0;return A.split(".").map(((A,t)=>{if(t>0&&e++,!A)return"";let n=s(A),o=function(A){if(!Array.isArray(A)||!A.every((A=>Number.isSafeInteger(A)&&A>=0&&A<=1114111)))throw new TypeError("expected array of Unicode codepoints");let e=A.filter((A=>A<128)),t=e.length;if(t==A.length)return A;t&&e.push(45);let n=128,o=72,r=0,i=t;for(;i<A.length;){let l=A.reduce(((A,e)=>e>=n&&e<A?e:A),1114111);r+=(l-n)*(i+1);for(let n of A)if(n<l)r++;else if(n==l){let A=r;for(let t=36;;t+=36){let n=G(t,o),r=A-n;if(r<0)break;let i=36-n;e.push(F(n+r%i)),A=Math.floor(r/i)}e.push(F(A)),o=x(r,i+1,i==t),r=0,i++}r++,n=l+1}return e}(n);try{for(let A of o)if(!K.has(A))throw new Error(`invalid ASCII: "${B(String.fromCodePoint(A))}"`);if(e+=o.length,o===n){if(A.startsWith("xn--"))throw new Error("punycode literal");if("--"===A.slice(2,4))throw Error("invalid label extension");if(A.startsWith("-"))throw Error("leading hyphen");if(A.endsWith("-"))throw Error("trailing hyphen")}else e+=4,A="xn--"+String.fromCodePoint(...o);if(A.length>63)throw new Error(`too long: ${A.length} > 63`)}catch(e){throw new Error(`Invalid label "${B(A)}": ${e.message}`)}if(e>253)throw new Error(`Name too long: ${e} > 253`);return A})).join(".")}function v(A){return p(String.fromCodePoint(...A),(A=>8204==A?'<span class="mod zwj">ZWNJ</span>':8205==A?'<span class="mod zwj">ZWJ</span>':`<code>${g(A)}</code>`))}function Y(A){return`Hex: 0x${A.map(g).join(" ")}\nDec: ${A.join(" ")}`}function P(){let A=document.createElement("span");return A.classList.add("arrow"),A.innerHTML="➔",A}function b(A,e){let t=document.createElement("div");return t.classList.add("tokens"),e&&(A=A.flatMap((A=>"nfc"===A.type?A.tokens:A))),t.append(...A.flatMap((A=>{let t;if("emoji"===A.type){let n=e?A.input:A.cps;t=document.createElement("a"),t.href=`https://emojipedia.org/${String.fromCodePoint(...A.emoji)}`,t.classList.add("glyph"),t.append(...n.map(((A,e)=>{let t=document.createElement("span");if(8205==A)t.classList.add("mod","zwj"),t.innerHTML="ZWJ";else if(65039==A)t.classList.add("mod","dropped","style"),t.innerHTML="FE0F";else if(8419==A)t.classList.add("mod","keycap"),t.innerHTML="Keycap";else if(A>=917536&&A<=917631){A-=917504;let e=String.fromCodePoint(A);127===A?(t.classList.add("mod"),t.innerHTML="TagEnd"):(f(e)?t.innerHTML=e:(t=document.createElement("code"),t.innerHTML=g(A)),t.classList.add("mod","tag"))}else t.classList.add("emoji"),t.innerHTML=String.fromCodePoint(A);return t})))}else if("nfc"===A.type){t=document.createElement("div"),t.classList.add("nfc");let e=b(A.tokens,!1);e.classList.add("before");let n=document.createElement("div");n.classList.add("valid"),n.innerHTML=v(A.cps),n.title=Y(A.cps),t.append(e,P(),n)}else if(t=document.createElement("div"),"valid"===A.type)t.classList.add("valid"),t.innerHTML=v(A.cps),t.title=Y(A.cps);else if("mapped"===A.type){t.classList.add("mapped");let n=document.createElement("span");n.classList.add("before"),n.innerHTML=v([A.cp]),n.title=Y([A.cp]),t.append(n),e||t.append(P(),...A.cps.map((A=>{let e=document.createElement("span");return e.innerHTML=v([A]),e.title=Y([A]),e})))}else if("ignored"===A.type)t=document.createElement("code"),t.innerHTML=g(A.cp),t.title=Y([A.cp]),t.classList.add("ignored");else if("disallowed"===A.type)t.classList.add("disallowed"),t.innerHTML=v([A.cp]),t.title=Y([A.cp]);else{if("stop"!==A.type)throw new TypeError(`unknown token type: ${A.type}`);t.classList.add("stop"),t.innerHTML="."}return t}))),t}function J(){let A=document.createElement("style");A.innerText="\n\t.tokens {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 2px;\n\t}\n\t.tokens > * {\n\t\tpadding: 2px 4px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\t}\n\t.tokens a {\n\t\ttext-decoration: none;\n\t}\n\t.tokens a:hover {\n\t\toutline: 2px solid #00f;\n\t}\n\t.tokens .valid {\n\t\tborder-radius: 5px;\n\t\tbackground: #cfc;\n\t\tborder: 2px solid #0a0;\n\t\tline-break: anywhere;\n\t}\n\t.tokens .ignored {\n\t\tcolor: #fff;\n\t\tbackground: #aaa;\n\t\tmin-width: 5px;\n\t}\n\t.tokens .disallowed {\n\t\tbackground: #f66;\t\n\t}\n\t.tokens .mapped {\n\t\tdisplay: flex;\n\t\tborder: 2px solid #66f;\n\t\tbackground: #ccf;\n\t\tborder-radius: 5px;\n\t}\n\t.tokens .mapped span:first-child {\n\t\tmargin-bottom: -4px;\n\t\tborder-bottom: 4px solid #000;\n\t}\n\t.tokens .stop {\n\t\tfont-weight: bold;\n\t}\n\t.tokens .glyph {\n\t\tborder: 2px solid #0aa;\n\t\tborder-radius: 0.5rem;\n\t\tbackground: #cff;\n\t}\n\t.tokens .mod {\n\t\tfont-size: 70%;\n\t\tpadding: 2px;\n\t\tbackground: #333;\n\t\tcolor: #fff;\n\t\tborder-radius: 5px;\n\t}\n\t.tokens .mod.zwj {\n\t\tbackground: #0aa;\n\t}\n\t.tokens .mod.tag {\n\t\tbackground: #33f;\n\t}\n\t.tokens .mod.dropped {\n\t\tbackground: #aaa;\n\t\tmin-width: 5px;\n\t}\n\t.tokens .arrow {\n\t\tcolor: rgba(0, 0, 0, 0.35);\n\t}\n\t.tokens .nfc {\n\t\tdisplay: flex;\n\t\tborder: 2px solid #fa0;\n\t\tbackground: #fd8;\n\t\tborder-radius: 5px;\n\t}\n\t.tokens code {\n\t\tfont-size: 90%;\n\t\tpadding: 2px;\n\t\tborder-radius: 5px;\n\t\tcolor: #fff;\n\t\tbackground: rgba(0, 0, 0, .3);\n\t\talign-self: center;\n\t}",document.body.append(A)}export{d as compare_arrays,L as dns_from_normalized_ens,b as dom_from_tokens,I as ens_beautify,m as ens_normalize,k as ens_tokenize,p as escape_for_html,B as escape_unicode,s as explode_cp,c as filter_fe0f,g as hex_cp,f as is_printable_ascii,a as quote_cp,J as use_default_style};
function A(A){return 1&A?~A>>1:A>>1}function e(A,e){let t=Array(A);for(let n=0,o=-1;n<A;n++)t[n]=o+=1+e();return t}function t(e,t){let n=Array(e);for(let o=0,r=0;o<e;o++)n[o]=r+=A(t());return n}function n(A,t){let n=e(A(),A),o=A(),r=e(o,A),i=function(A,e){let t=Array(A);for(let n=0;n<A;n++)t[n]=1+e();return t}(o,A);for(let A=0;A<o;A++)for(let e=0;e<i[A];e++)n.push(r[A]+e);return t?n.map((A=>t[A])):n}function o(A,e,n){let o=Array(A).fill().map((()=>[]));for(let r=0;r<e;r++)t(A,n).forEach(((A,e)=>o[e].push(A)));return o}function r(A,e){let t=1+e(),n=e(),r=function(A){let e=[];for(;;){let t=A();if(0==t)break;e.push(t)}return e}(e);return o(r.length,1+A,e).flatMap(((A,e)=>{let[o,...i]=A;return Array(r[e]).fill().map(((A,e)=>{let r=e*n;return[o+e*t,i.map((A=>A+r))]}))}))}function i(A,e){return o(1+e(),1+A,e).map((A=>[A[0],A.slice(1)]))}var s=function(A){let e=0;return()=>A[e++]}(function(A){let e=0;function t(){return A[e++]<<8|A[e++]}let n=t(),o=1,r=[0,1];for(let A=1;A<n;A++)r.push(o+=t());let i=t(),s=e;e+=i;let l=0,g=0;function a(){return 0==l&&(g=g<<8|A[e++],l=8),g>>--l&1}const c=2**31,p=c>>>1,d=c-1;let w=0;for(let A=0;A<31;A++)w=w<<1|a();let f=[],B=0,C=c;for(;;){let A=Math.floor(((w-B+1)*o-1)/C),e=0,t=n;for(;t-e>1;){let n=e+t>>>1;A<r[n]?t=n:e=n}if(0==e)break;f.push(e);let i=B+Math.floor(C*r[e]/o),s=B+Math.floor(C*r[e+1]/o)-1;for(;0==((i^s)&p);)w=w<<1&d|a(),i=i<<1&d,s=s<<1&d|1;for(;i&~s&536870912;)w=w&p|w<<1&d>>>1|a(),i=i<<1^p,s=(s^p)<<1|p|1;B=i,C=1+s-i}let u=n-4;return f.map((e=>{switch(e-u){case 3:return u+65792+(A[s++]<<16|A[s++]<<8|A[s++]);case 2:return u+256+(A[s++]<<8|A[s++]);case 1:return u+A[s++];default:return e-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0)))));function l(A){return A.toString(16).toUpperCase()}function g(A){return`{${l(A)}}`}function a(A){return[...A].map((A=>A.codePointAt(0)))}function c(A){return A.filter((A=>65039!=A))}function p(A,e=g){return A.replace(/(?:([\x00-\x20\x7F\xA0\s\u200C\u200D\u{E0020}-\u{E007F}])|([^\x21-\x25\x27-\x3B\x3D\x3F-\x7E]))/gu,((A,t,n)=>t?e(t.codePointAt(0)):`&#${n.codePointAt(0)}`))}function d(A){return A.replace(/[^\x21\x23-\x7A\x7C\x7E]/gu,(A=>g(A.codePointAt(0))))}function w(A){return/^[\x21-\x7E]+$/gu.test(A)}function f(A,e){let{length:t}=A,n=t-e.length;for(let o=0;0==n&&o<t;o++)n=A[o]-e[o];return n}const B=new Set(n(s)),C=new Set(n(s)),u=function(A){let e=[];for(;;){let t=A();if(0==t)break;e.push(r(t,A))}for(;;){let t=A()-1;if(t<0)break;e.push(i(t,A))}return Object.fromEntries(e.flat())}(s),Q=function(A){let e=n(A).sort(((A,e)=>A-e));return function t(){let o=[];for(;;){let r=n(A,e);if(0==r.length)break;o.push({set:new Set(r),node:t()})}o.sort(((A,e)=>e.set.size-A.set.size));let r=A(),i=r%3;r=r/3|0;let s=!!(1&r);return r>>=1,{branches:o,valid:i,fe0f:s,save:1==r,check:2==r}}()}(s),E=new Set(n(s,[...B].sort(((A,e)=>A-e))));function h(A){return m(A,c)}function D(A){return m(A,(A=>A))}function m(A,e){let t=a(A).reverse(),n=[];for(;t.length;){let A=k(t);if(A){n.push(...e(A));continue}let o=t.pop();if(B.has(o)){n.push(o);continue}if(C.has(o))continue;let r=u[o];if(!r)throw new Error(`Disallowed codepoint: 0x${o.toString(16).toUpperCase()}`);n.push(...r)}return M(String.fromCodePoint(...n))}function M(A){return A.normalize("NFC")}function k(A,e){let t,n,o=Q,r=[],i=A.length;for(e&&(e.length=0);i;){let s=A[--i];if(o=o.branches.find((A=>A.set.has(s)))?.node,!o)break;if(o.save)n=s;else if(o.check&&s===n)break;r.push(s),o.fe0f&&(r.push(65039),i>0&&65039==A[i-1]&&i--),o.valid&&(t=r.slice(),2==o.valid&&t.splice(1,1),e&&e.push(...A.slice(i).reverse()),A.length=i)}return t}function I(A){let e=a(A).reverse(),t=[],n=[];for(;e.length;){let A=k(e,t);if(A)n.push({type:"emoji",emoji:A,input:t.slice(),cps:c(A)});else{let A=e.pop();if(46===A)n.push({type:"stop"});else if(B.has(A))n.push({type:"valid",cps:[A]});else if(C.has(A))n.push({type:"ignored",cp:A});else{let e=u[A];e?n.push({type:"mapped",cp:A,cps:e}):n.push({type:"disallowed",cp:A})}}}for(let A=0,e=-1;A<n.length;A++){let t=n[A];if(Y(t.type))if(H(t.cps)){let t=A+1;for(let A=t;A<n.length;A++){let{type:e,cps:o}=n[A];if(Y(e)){if(!H(o))break;t=A+1}else if("ignored"!==e)break}e<0&&(e=A);let o=n.slice(e,t),r=o.flatMap((A=>Y(A.type)?A.cps:[])),i=String.fromCodePoint(...r),s=M(i);i===s?A=t-1:(n.splice(e,t-e,{type:"nfc",input:r,cps:a(s),tokens:T(o)}),A=e),e=-1}else e=A;else"emoji"===t.type&&(e=-1)}return T(n)}function Y(A){return"valid"===A||"mapped"===A}function H(A){return A.some((A=>E.has(A)))}function T(A){for(let e=0;e<A.length;e++)if("valid"===A[e].type){let t=e+1;for(;t<A.length&&"valid"===A[t].type;)t++;A.splice(e,t-e,{type:"valid",cps:A.slice(e,t).flatMap((A=>A.cps))})}return A}function U(A){return A<26?97+A:22+A}function x(A,e){let t=A-e;return t<=0?1:t>=26?26:t}function J(A,e,t){A=Math.floor(A/(t?700:2)),A+=Math.floor(A/e);let n=0;for(;A>455;)A=Math.floor(A/35),n+=36;return n+Math.floor(36*A/(A+38))}const F=new Set(a("-.0123456789abcdefghijklmnopqrstuvwxyz"));function K(A){if((A=A.split(".").map((A=>{if(!A)return"";let e=A;try{let A=a(e),t=function(A){if(!Array.isArray(A)||!A.every((A=>Number.isSafeInteger(A)&&A>=0&&A<=1114111)))throw new TypeError("expected array of Unicode codepoints");let e=A.filter((A=>A<128)),t=e.length;if(t==A.length)return A;t&&e.push(45);let n=128,o=72,r=0,i=t;for(;i<A.length;){let s=A.reduce(((A,e)=>e>=n&&e<A?e:A),1114111);r+=(s-n)*(i+1);for(let n of A)if(n<s)r++;else if(n==s){let A=r;for(let t=36;;t+=36){let n=x(t,o),r=A-n;if(r<0)break;let i=36-n;e.push(U(n+r%i)),A=Math.floor(r/i)}e.push(U(A)),o=J(r,i+1,i==t),r=0,i++}r++,n=s+1}return e}(A);for(let A of t)if(!F.has(A))throw new Error(`invalid ASCII: "${d(String.fromCodePoint(A))}"`);if(t===A){if(e.startsWith("xn--"))throw new Error("punycode literal");if("--"===e.slice(2,4))throw new Error("invalid label extension");if(e.startsWith("-"))throw new Error("leading hyphen");if(e.endsWith("-"))throw new Error("trailing hyphen")}else e="xn--"+String.fromCodePoint(...t);if(e.length>63)throw new Error(`too long: ${e.length} > 63`)}catch(e){throw new Error(`Invalid label "${d(A)}": ${e.message}`)}return e})).join(".")).length>253)throw new Error(`Name too long: ${A.length} > 253`);return A}function L(A){return p(String.fromCodePoint(...A),(A=>8204==A?'<span class="mod zwj">ZWNJ</span>':8205==A?'<span class="mod zwj">ZWJ</span>':`<code>${l(A)}</code>`))}function y(A){return`Hex: 0x${A.map(l).join(" ")}\nDec: ${A.join(" ")}`}function G(){let A=document.createElement("span");return A.classList.add("arrow"),A.innerHTML="➔",A}function S(A,e){let t=document.createElement("div");return t.classList.add("tokens"),e&&(A=A.flatMap((A=>"nfc"===A.type?A.tokens:A))),t.append(...A.flatMap((A=>{let t;if("emoji"===A.type){let n=e?A.input:A.cps;t=document.createElement("a"),t.href=`https://emojipedia.org/${String.fromCodePoint(...A.emoji)}`,t.classList.add("glyph"),t.append(...n.map(((A,e)=>{let t=document.createElement("span");if(8205==A)t.classList.add("mod","zwj"),t.innerHTML="ZWJ";else if(65039==A)t.classList.add("mod","dropped","style"),t.innerHTML="FE0F";else if(8419==A)t.classList.add("mod","keycap"),t.innerHTML="Keycap";else if(A>=917536&&A<=917631){A-=917504;let e=String.fromCodePoint(A);127===A?(t.classList.add("mod"),t.innerHTML="TagEnd"):(w(e)?t.innerHTML=e:(t=document.createElement("code"),t.innerHTML=l(A)),t.classList.add("mod","tag"))}else t.classList.add("emoji"),t.innerHTML=String.fromCodePoint(A);return t})))}else if("nfc"===A.type){t=document.createElement("div"),t.classList.add("nfc");let e=S(A.tokens,!1);e.classList.add("before");let n=document.createElement("div");n.classList.add("valid"),n.innerHTML=L(A.cps),n.title=y(A.cps),t.append(e,G(),n)}else if(t=document.createElement("div"),"valid"===A.type)t.classList.add("valid"),t.innerHTML=L(A.cps),t.title=y(A.cps);else if("mapped"===A.type){t.classList.add("mapped");let n=document.createElement("span");n.classList.add("before"),n.innerHTML=L([A.cp]),n.title=y([A.cp]),t.append(n),e||t.append(G(),...A.cps.map((A=>{let e=document.createElement("span");return e.innerHTML=L([A]),e.title=y([A]),e})))}else if("ignored"===A.type)t=document.createElement("code"),t.innerHTML=l(A.cp),t.title=y([A.cp]),t.classList.add("ignored");else if("disallowed"===A.type)t.classList.add("disallowed"),t.innerHTML=L([A.cp]),t.title=y([A.cp]);else{if("stop"!==A.type)throw new TypeError(`unknown token type: ${A.type}`);t.classList.add("stop"),t.innerHTML="."}return t}))),t}function N(){let A=document.createElement("style");A.innerText="\n\t.tokens {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 2px;\n\t}\n\t.tokens > * {\n\t\tpadding: 2px 4px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 4px;\n\t}\n\t.tokens a {\n\t\ttext-decoration: none;\n\t}\n\t.tokens a:hover {\n\t\toutline: 2px solid #00f;\n\t}\n\t.tokens .valid {\n\t\tborder-radius: 5px;\n\t\tbackground: #cfc;\n\t\tborder: 2px solid #0a0;\n\t\tline-break: anywhere;\n\t}\n\t.tokens .ignored {\n\t\tcolor: #fff;\n\t\tbackground: #aaa;\n\t\tmin-width: 5px;\n\t}\n\t.tokens .disallowed {\n\t\tbackground: #f66;\t\n\t}\n\t.tokens .mapped {\n\t\tdisplay: flex;\n\t\tborder: 2px solid #66f;\n\t\tbackground: #ccf;\n\t\tborder-radius: 5px;\n\t}\n\t.tokens .mapped span:first-child {\n\t\tmargin-bottom: -4px;\n\t\tborder-bottom: 4px solid #000;\n\t}\n\t.tokens .stop {\n\t\tfont-weight: bold;\n\t}\n\t.tokens .glyph {\n\t\tborder: 2px solid #0aa;\n\t\tborder-radius: 0.5rem;\n\t\tbackground: #cff;\n\t}\n\t.tokens .mod {\n\t\tfont-size: 70%;\n\t\tpadding: 2px;\n\t\tbackground: #333;\n\t\tcolor: #fff;\n\t\tborder-radius: 5px;\n\t}\n\t.tokens .mod.zwj {\n\t\tbackground: #0aa;\n\t}\n\t.tokens .mod.tag {\n\t\tbackground: #33f;\n\t}\n\t.tokens .mod.dropped {\n\t\tbackground: #aaa;\n\t\tmin-width: 5px;\n\t}\n\t.tokens .arrow {\n\t\tcolor: rgba(0, 0, 0, 0.35);\n\t}\n\t.tokens .nfc {\n\t\tdisplay: flex;\n\t\tborder: 2px solid #fa0;\n\t\tbackground: #fd8;\n\t\tborder-radius: 5px;\n\t}\n\t.tokens code {\n\t\tfont-size: 90%;\n\t\tpadding: 2px;\n\t\tborder-radius: 5px;\n\t\tcolor: #fff;\n\t\tbackground: rgba(0, 0, 0, .3);\n\t\talign-self: center;\n\t}",document.body.append(A)}export{f as compare_arrays,K as dns_from_normalized_ens,S as dom_from_tokens,D as ens_beautify,h as ens_normalize,I as ens_tokenize,p as escape_for_html,d as escape_unicode,a as explode_cp,c as filter_fe0f,l as hex_cp,w as is_printable_ascii,g as quote_cp,N as use_default_style};

@@ -1,1 +0,1 @@

function r(r){return[...r].map((r=>r.codePointAt(0)))}function t(r){return r.replace(/[^\x21\x23-\x7A\x7C\x7E]/gu,(r=>{return`{${t=r.codePointAt(0),t.toString(16).toUpperCase()}}`;var t}))}function e(r){return r<26?97+r:22+r}function o(r,t){let e=r-t;return e<=0?1:e>=26?26:e}function n(r,t,e){r=Math.floor(r/(e?700:2)),r+=Math.floor(r/t);let o=0;for(;r>455;)r=Math.floor(r/35),o+=36;return o+Math.floor(36*r/(r+38))}const i=new Set(r("-.0123456789abcdefghijklmnopqrstuvwxyz"));function l(l){let f=0;return l.split(".").map(((l,h)=>{if(h>0&&f++,!l)return"";let a=r(l),u=function(r){if(!Array.isArray(r)||!r.every((r=>Number.isSafeInteger(r)&&r>=0&&r<=1114111)))throw new TypeError("expected array of Unicode codepoints");let t=r.filter((r=>r<128)),i=t.length;if(i==r.length)return r;i&&t.push(45);let l=128,f=72,h=0,a=i;for(;a<r.length;){let u=r.reduce(((r,t)=>t>=l&&t<r?t:r),1114111);h+=(u-l)*(a+1);for(let l of r)if(l<u)h++;else if(l==u){let r=h;for(let n=36;;n+=36){let i=o(n,f),l=r-i;if(l<0)break;let h=36-i;t.push(e(i+l%h)),r=Math.floor(l/h)}t.push(e(r)),f=n(h,a+1,a==i),h=0,a++}h++,l=u+1}return t}(a);try{for(let r of u)if(!i.has(r))throw new Error(`invalid ASCII: "${t(String.fromCodePoint(r))}"`);if(f+=u.length,u===a){if(l.startsWith("xn--"))throw new Error("punycode literal");if("--"===l.slice(2,4))throw Error("invalid label extension");if(l.startsWith("-"))throw Error("leading hyphen");if(l.endsWith("-"))throw Error("trailing hyphen")}else f+=4,l="xn--"+String.fromCodePoint(...u);if(l.length>63)throw new Error(`too long: ${l.length} > 63`)}catch(r){throw new Error(`Invalid label "${t(l)}": ${r.message}`)}if(f>253)throw new Error(`Name too long: ${f} > 253`);return l})).join(".")}export{l as dns_from_normalized_ens};
function r(r){return[...r].map((r=>r.codePointAt(0)))}function e(r){return r.replace(/[^\x21\x23-\x7A\x7C\x7E]/gu,(r=>{return`{${e=r.codePointAt(0),e.toString(16).toUpperCase()}}`;var e}))}function t(r){return r<26?97+r:22+r}function n(r,e){let t=r-e;return t<=0?1:t>=26?26:t}function o(r,e,t){r=Math.floor(r/(t?700:2)),r+=Math.floor(r/e);let n=0;for(;r>455;)r=Math.floor(r/35),n+=36;return n+Math.floor(36*r/(r+38))}const i=new Set(r("-.0123456789abcdefghijklmnopqrstuvwxyz"));function l(l){if((l=l.split(".").map((l=>{if(!l)return"";let f=l;try{let l=r(f),h=function(r){if(!Array.isArray(r)||!r.every((r=>Number.isSafeInteger(r)&&r>=0&&r<=1114111)))throw new TypeError("expected array of Unicode codepoints");let e=r.filter((r=>r<128)),i=e.length;if(i==r.length)return r;i&&e.push(45);let l=128,f=72,h=0,a=i;for(;a<r.length;){let u=r.reduce(((r,e)=>e>=l&&e<r?e:r),1114111);h+=(u-l)*(a+1);for(let l of r)if(l<u)h++;else if(l==u){let r=h;for(let o=36;;o+=36){let i=n(o,f),l=r-i;if(l<0)break;let h=36-i;e.push(t(i+l%h)),r=Math.floor(l/h)}e.push(t(r)),f=o(h,a+1,a==i),h=0,a++}h++,l=u+1}return e}(l);for(let r of h)if(!i.has(r))throw new Error(`invalid ASCII: "${e(String.fromCodePoint(r))}"`);if(h===l){if(f.startsWith("xn--"))throw new Error("punycode literal");if("--"===f.slice(2,4))throw new Error("invalid label extension");if(f.startsWith("-"))throw new Error("leading hyphen");if(f.endsWith("-"))throw new Error("trailing hyphen")}else f="xn--"+String.fromCodePoint(...h);if(f.length>63)throw new Error(`too long: ${f.length} > 63`)}catch(r){throw new Error(`Invalid label "${e(l)}": ${r.message}`)}return f})).join(".")).length>253)throw new Error(`Name too long: ${l.length} > 253`);return l}export{l as dns_from_normalized_ens};

@@ -211,4 +211,4 @@ function decode_arithmetic(bytes) {

// created 2022-08-11T04:31:10.660Z
var r = read_compressed_payload(Uint8Array.from(atob('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'), c => c.charCodeAt(0)));
// created 2022-08-12T20:08:32.842Z
var r = read_compressed_payload(Uint8Array.from(atob('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'), c => c.charCodeAt(0)));

@@ -229,12 +229,8 @@ function explode_cp(s) {

function nfc(s) {
return s.normalize('NFC');
function ens_normalize(name) {
return normalize(name, filter_fe0f);
}
function ens_beautify(name) {
return normalize(name, x => x);
}
function ens_normalize(name) {
return normalize(name, filter_fe0f);
}

@@ -268,2 +264,6 @@ function normalize(name, emoji_filter) {

function nfc(s) {
return s.normalize('NFC'); // this might be incorrect on old browsers
}
function consume_emoji_reversed(cps, eaten) {

@@ -345,3 +345,3 @@ let node = EMOJI_ROOT;

end = pos + 1;
} else if (type !== TY_IGNORED || type !== TY_DISALLOWED) {
} else if (type !== TY_IGNORED) { // || type !== TY_DISALLOWED) {
break;

@@ -380,3 +380,2 @@ }

// collapse adjacent valid tokens
function collapse_valid_tokens(tokens) {

@@ -383,0 +382,0 @@ for (let i = 0; i < tokens.length; i++) {

@@ -1,1 +0,1 @@

function A(A){return 1&A?~A>>1:A>>1}function e(A,e){let g=Array(A);for(let B=0,o=-1;B<A;B++)g[B]=o+=1+e();return g}function g(e,g){let B=Array(e);for(let o=0,C=0;o<e;o++)B[o]=C+=A(g());return B}function B(A,g){let B=e(A(),A),o=A(),C=e(o,A),t=function(A,e){let g=Array(A);for(let B=0;B<A;B++)g[B]=1+e();return g}(o,A);for(let A=0;A<o;A++)for(let e=0;e<t[A];e++)B.push(C[A]+e);return g?B.map((A=>g[A])):B}function o(A,e,B){let o=Array(A).fill().map((()=>[]));for(let C=0;C<e;C++)g(A,B).forEach(((A,e)=>o[e].push(A)));return o}function C(A,e){let g=1+e(),B=e(),C=function(A){let e=[];for(;;){let g=A();if(0==g)break;e.push(g)}return e}(e);return o(C.length,1+A,e).flatMap(((A,e)=>{let[o,...t]=A;return Array(C[e]).fill().map(((A,e)=>{let C=e*B;return[o+e*g,t.map((A=>A+C))]}))}))}function t(A,e){return o(1+e(),1+A,e).map((A=>[A[0],A.slice(1)]))}var n=function(A){let e=0;return()=>A[e++]}(function(A){let e=0;function g(){return A[e++]<<8|A[e++]}let B=g(),o=1,C=[0,1];for(let A=1;A<B;A++)C.push(o+=g());let t=g(),n=e;e+=t;let r=0,Q=0;function w(){return 0==r&&(Q=Q<<8|A[e++],r=8),Q>>--r&1}const l=2**31,i=l>>>1,I=l-1;let c=0;for(let A=0;A<31;A++)c=c<<1|w();let u=[],D=0,s=l;for(;;){let A=Math.floor(((c-D+1)*o-1)/s),e=0,g=B;for(;g-e>1;){let B=e+g>>>1;A<C[B]?g=B:e=B}if(0==e)break;u.push(e);let t=D+Math.floor(s*C[e]/o),n=D+Math.floor(s*C[e+1]/o)-1;for(;0==((t^n)&i);)c=c<<1&I|w(),t=t<<1&I,n=n<<1&I|1;for(;t&~n&536870912;)c=c&i|c<<1&I>>>1|w(),t=t<<1^i,n=(n^i)<<1|i|1;D=t,s=1+n-t}let f=B-4;return u.map((e=>{switch(e-f){case 3:return f+65792+(A[n++]<<16|A[n++]<<8|A[n++]);case 2:return f+256+(A[n++]<<8|A[n++]);case 1:return f+A[n++];default:return e-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0)))));function r(A){return[...A].map((A=>A.codePointAt(0)))}function Q(A){return A.filter((A=>65039!=A))}const w=new Set(B(n)),l=new Set(B(n)),i=function(A){let e=[];for(;;){let g=A();if(0==g)break;e.push(C(g,A))}for(;;){let g=A()-1;if(g<0)break;e.push(t(g,A))}return Object.fromEntries(e.flat())}(n),I=function(A){let e=B(A).sort(((A,e)=>A-e));return function g(){let o=[];for(;;){let C=B(A,e);if(0==C.length)break;o.push({set:new Set(C),node:g()})}o.sort(((A,e)=>e.set.size-A.set.size));let C=A(),t=C%3;C=C/3|0;let n=!!(1&C);return C>>=1,{branches:o,valid:t,fe0f:n,save:1==C,check:2==C}}()}(n),c=new Set(B(n,[...w].sort(((A,e)=>A-e))));function u(A){return A.normalize("NFC")}function D(A){return f(A,(A=>A))}function s(A){return f(A,Q)}function f(A,e){let g=r(A).reverse(),B=[];for(;g.length;){let A=h(g);if(A){B.push(...e(A));continue}let o=g.pop();if(w.has(o)){B.push(o);continue}if(l.has(o))continue;let C=i[o];if(!C)throw new Error(`Disallowed codepoint: 0x${o.toString(16).toUpperCase()}`);B.push(...C)}return u(String.fromCodePoint(...B))}function h(A,e){let g,B,o=I,C=[],t=A.length;for(e&&(e.length=0);t;){let n=A[--t];if(o=o.branches.find((A=>A.set.has(n)))?.node,!o)break;if(o.save)B=n;else if(o.check&&n===B)break;C.push(n),o.fe0f&&(C.push(65039),t>0&&65039==A[t-1]&&t--),o.valid&&(g=C.slice(),2==o.valid&&g.splice(1,1),e&&e.push(...A.slice(t).reverse()),A.length=t)}return g}function E(A){let e=r(A).reverse(),g=[],B=[];for(;e.length;){let A=h(e,g);if(A)B.push({type:"emoji",emoji:A,input:g.slice(),cps:Q(A)});else{let A=e.pop();if(46===A)B.push({type:"stop"});else if(w.has(A))B.push({type:"valid",cps:[A]});else if(l.has(A))B.push({type:"ignored",cp:A});else{let e=i[A];e?B.push({type:"mapped",cp:A,cps:e}):B.push({type:"disallowed",cp:A})}}}for(let A=0,e=-1;A<B.length;A++){let g=B[A];if(p(g.type))if(a(g.cps)){let g=A+1;for(let A=g;A<B.length;A++){let{type:e,cps:o}=B[A];if(p(e)){if(!a(o))break;g=A+1}else if("ignored"!==e||"disallowed"!==e)break}e<0&&(e=A);let o=B.slice(e,g),C=o.flatMap((A=>p(A.type)?A.cps:[])),t=String.fromCodePoint(...C),n=u(t);t===n?A=g-1:(B.splice(e,g-e,{type:"nfc",input:C,cps:r(n),tokens:T(o)}),A=e),e=-1}else e=A;else"emoji"===g.type&&(e=-1)}return T(B)}function p(A){return"valid"===A||"mapped"===A}function a(A){return A.some((A=>c.has(A)))}function T(A){for(let e=0;e<A.length;e++)if("valid"===A[e].type){let g=e+1;for(;g<A.length&&"valid"===A[g].type;)g++;A.splice(e,g-e,{type:"valid",cps:A.slice(e,g).flatMap((A=>A.cps))})}return A}export{D as ens_beautify,s as ens_normalize,E as ens_tokenize};
function A(A){return 1&A?~A>>1:A>>1}function e(A,e){let g=Array(A);for(let B=0,o=-1;B<A;B++)g[B]=o+=1+e();return g}function g(e,g){let B=Array(e);for(let o=0,t=0;o<e;o++)B[o]=t+=A(g());return B}function B(A,g){let B=e(A(),A),o=A(),t=e(o,A),C=function(A,e){let g=Array(A);for(let B=0;B<A;B++)g[B]=1+e();return g}(o,A);for(let A=0;A<o;A++)for(let e=0;e<C[A];e++)B.push(t[A]+e);return g?B.map((A=>g[A])):B}function o(A,e,B){let o=Array(A).fill().map((()=>[]));for(let t=0;t<e;t++)g(A,B).forEach(((A,e)=>o[e].push(A)));return o}function t(A,e){let g=1+e(),B=e(),t=function(A){let e=[];for(;;){let g=A();if(0==g)break;e.push(g)}return e}(e);return o(t.length,1+A,e).flatMap(((A,e)=>{let[o,...C]=A;return Array(t[e]).fill().map(((A,e)=>{let t=e*B;return[o+e*g,C.map((A=>A+t))]}))}))}function C(A,e){return o(1+e(),1+A,e).map((A=>[A[0],A.slice(1)]))}var r=function(A){let e=0;return()=>A[e++]}(function(A){let e=0;function g(){return A[e++]<<8|A[e++]}let B=g(),o=1,t=[0,1];for(let A=1;A<B;A++)t.push(o+=g());let C=g(),r=e;e+=C;let w=0,n=0;function s(){return 0==w&&(n=n<<8|A[e++],w=8),n>>--w&1}const Q=2**31,i=Q>>>1,l=Q-1;let D=0;for(let A=0;A<31;A++)D=D<<1|s();let c=[],p=0,E=Q;for(;;){let A=Math.floor(((D-p+1)*o-1)/E),e=0,g=B;for(;g-e>1;){let B=e+g>>>1;A<t[B]?g=B:e=B}if(0==e)break;c.push(e);let C=p+Math.floor(E*t[e]/o),r=p+Math.floor(E*t[e+1]/o)-1;for(;0==((C^r)&i);)D=D<<1&l|s(),C=C<<1&l,r=r<<1&l|1;for(;C&~r&536870912;)D=D&i|D<<1&l>>>1|s(),C=C<<1^i,r=(r^i)<<1|i|1;p=C,E=1+r-C}let Y=B-4;return c.map((e=>{switch(e-Y){case 3:return Y+65792+(A[r++]<<16|A[r++]<<8|A[r++]);case 2:return Y+256+(A[r++]<<8|A[r++]);case 1:return Y+A[r++];default:return e-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0)))));function w(A){return[...A].map((A=>A.codePointAt(0)))}function n(A){return A.filter((A=>65039!=A))}const s=new Set(B(r)),Q=new Set(B(r)),i=function(A){let e=[];for(;;){let g=A();if(0==g)break;e.push(t(g,A))}for(;;){let g=A()-1;if(g<0)break;e.push(C(g,A))}return Object.fromEntries(e.flat())}(r),l=function(A){let e=B(A).sort(((A,e)=>A-e));return function g(){let o=[];for(;;){let t=B(A,e);if(0==t.length)break;o.push({set:new Set(t),node:g()})}o.sort(((A,e)=>e.set.size-A.set.size));let t=A(),C=t%3;t=t/3|0;let r=!!(1&t);return t>>=1,{branches:o,valid:C,fe0f:r,save:1==t,check:2==t}}()}(r),D=new Set(B(r,[...s].sort(((A,e)=>A-e))));function c(A){return E(A,n)}function p(A){return E(A,(A=>A))}function E(A,e){let g=w(A).reverse(),B=[];for(;g.length;){let A=f(g);if(A){B.push(...e(A));continue}let o=g.pop();if(s.has(o)){B.push(o);continue}if(Q.has(o))continue;let t=i[o];if(!t)throw new Error(`Disallowed codepoint: 0x${o.toString(16).toUpperCase()}`);B.push(...t)}return Y(String.fromCodePoint(...B))}function Y(A){return A.normalize("NFC")}function f(A,e){let g,B,o=l,t=[],C=A.length;for(e&&(e.length=0);C;){let r=A[--C];if(o=o.branches.find((A=>A.set.has(r)))?.node,!o)break;if(o.save)B=r;else if(o.check&&r===B)break;t.push(r),o.fe0f&&(t.push(65039),C>0&&65039==A[C-1]&&C--),o.valid&&(g=t.slice(),2==o.valid&&g.splice(1,1),e&&e.push(...A.slice(C).reverse()),A.length=C)}return g}function I(A){let e=w(A).reverse(),g=[],B=[];for(;e.length;){let A=f(e,g);if(A)B.push({type:"emoji",emoji:A,input:g.slice(),cps:n(A)});else{let A=e.pop();if(46===A)B.push({type:"stop"});else if(s.has(A))B.push({type:"valid",cps:[A]});else if(Q.has(A))B.push({type:"ignored",cp:A});else{let e=i[A];e?B.push({type:"mapped",cp:A,cps:e}):B.push({type:"disallowed",cp:A})}}}for(let A=0,e=-1;A<B.length;A++){let g=B[A];if(a(g.type))if(M(g.cps)){let g=A+1;for(let A=g;A<B.length;A++){let{type:e,cps:o}=B[A];if(a(e)){if(!M(o))break;g=A+1}else if("ignored"!==e)break}e<0&&(e=A);let o=B.slice(e,g),t=o.flatMap((A=>a(A.type)?A.cps:[])),C=String.fromCodePoint(...t),r=Y(C);C===r?A=g-1:(B.splice(e,g-e,{type:"nfc",input:t,cps:w(r),tokens:u(o)}),A=e),e=-1}else e=A;else"emoji"===g.type&&(e=-1)}return u(B)}function a(A){return"valid"===A||"mapped"===A}function M(A){return A.some((A=>D.has(A)))}function u(A){for(let e=0;e<A.length;e++)if("valid"===A[e].type){let g=e+1;for(;g<A.length&&"valid"===A[g].type;)g++;A.splice(e,g-e,{type:"valid",cps:A.slice(e,g).flatMap((A=>A.cps))})}return A}export{p as ens_beautify,c as ens_normalize,I as ens_tokenize};

@@ -1,1 +0,1 @@

function A(A){return 1&A?~A>>1:A>>1}function g(A,g){let B=Array(A);for(let C=0,o=-1;C<A;C++)B[C]=o+=1+g();return B}function B(g,B){let C=Array(g);for(let o=0,e=0;o<g;o++)C[o]=e+=A(B());return C}function C(A,B){let C=g(A(),A),o=A(),e=g(o,A),Q=function(A,g){let B=Array(A);for(let C=0;C<A;C++)B[C]=1+g();return B}(o,A);for(let A=0;A<o;A++)for(let g=0;g<Q[A];g++)C.push(e[A]+g);return B?C.map((A=>B[A])):C}function o(A,g,C){let o=Array(A).fill().map((()=>[]));for(let e=0;e<g;e++)B(A,C).forEach(((A,g)=>o[g].push(A)));return o}function e(A,g){let B=1+g(),C=g(),e=function(A){let g=[];for(;;){let B=A();if(0==B)break;g.push(B)}return g}(g);return o(e.length,1+A,g).flatMap(((A,g)=>{let[o,...Q]=A;return Array(e[g]).fill().map(((A,g)=>{let e=g*C;return[o+g*B,Q.map((A=>A+e))]}))}))}function Q(A,g){return o(1+g(),1+A,g).map((A=>[A[0],A.slice(1)]))}var r=function(A){let g=0;return()=>A[g++]}(function(A){let g=0;function B(){return A[g++]<<8|A[g++]}let C=B(),o=1,e=[0,1];for(let A=1;A<C;A++)e.push(o+=B());let Q=B(),r=g;g+=Q;let n=0,w=0;function t(){return 0==n&&(w=w<<8|A[g++],n=8),w>>--n&1}const I=2**31,D=I>>>1,E=I-1;let l=0;for(let A=0;A<31;A++)l=l<<1|t();let h=[],u=0,c=I;for(;;){let A=Math.floor(((l-u+1)*o-1)/c),g=0,B=C;for(;B-g>1;){let C=g+B>>>1;A<e[C]?B=C:g=C}if(0==g)break;h.push(g);let Q=u+Math.floor(c*e[g]/o),r=u+Math.floor(c*e[g+1]/o)-1;for(;0==((Q^r)&D);)l=l<<1&E|t(),Q=Q<<1&E,r=r<<1&E|1;for(;Q&~r&536870912;)l=l&D|l<<1&E>>>1|t(),Q=Q<<1^D,r=(r^D)<<1|D|1;u=Q,c=1+r-Q}let T=C-4;return h.map((g=>{switch(g-T){case 3:return T+65792+(A[r++]<<16|A[r++]<<8|A[r++]);case 2:return T+256+(A[r++]<<8|A[r++]);case 1:return T+A[r++];default:return g-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0)))));function n(A){return A.filter((A=>65039!=A))}const w=new Set(C(r)),t=new Set(C(r)),I=function(A){let g=[];for(;;){let B=A();if(0==B)break;g.push(e(B,A))}for(;;){let B=A()-1;if(B<0)break;g.push(Q(B,A))}return Object.fromEntries(g.flat())}(r),D=function(A){let g=C(A).sort(((A,g)=>A-g));return function B(){let o=[];for(;;){let e=C(A,g);if(0==e.length)break;o.push({set:new Set(e),node:B()})}o.sort(((A,g)=>g.set.size-A.set.size));let e=A(),Q=e%3;e=e/3|0;let r=!!(1&e);return e>>=1,{branches:o,valid:Q,fe0f:r,save:1==e,check:2==e}}()}(r);function E(A){return function(A,g){let B=(o=A,[...o].map((A=>A.codePointAt(0)))).reverse(),C=[];for(var o;B.length;){let A=l(B);if(A){C.push(...g(A));continue}let o=B.pop();if(w.has(o)){C.push(o);continue}if(t.has(o))continue;let e=I[o];if(!e)throw new Error(`Disallowed codepoint: 0x${o.toString(16).toUpperCase()}`);C.push(...e)}return function(A){return A.normalize("NFC")}(String.fromCodePoint(...C))}(A,n)}function l(A,g){let B,C,o=D,e=[],Q=A.length;for(g&&(g.length=0);Q;){let r=A[--Q];if(o=o.branches.find((A=>A.set.has(r)))?.node,!o)break;if(o.save)C=r;else if(o.check&&r===C)break;e.push(r),o.fe0f&&(e.push(65039),Q>0&&65039==A[Q-1]&&Q--),o.valid&&(B=e.slice(),2==o.valid&&B.splice(1,1),g&&g.push(...A.slice(Q).reverse()),A.length=Q)}return B}new Set(C(r,[...w].sort(((A,g)=>A-g))));export{E as ens_normalize};
function A(A){return 1&A?~A>>1:A>>1}function g(A,g){let B=Array(A);for(let e=0,C=-1;e<A;e++)B[e]=C+=1+g();return B}function B(g,B){let e=Array(g);for(let C=0,w=0;C<g;C++)e[C]=w+=A(B());return e}function e(A,B){let e=g(A(),A),C=A(),w=g(C,A),o=function(A,g){let B=Array(A);for(let e=0;e<A;e++)B[e]=1+g();return B}(C,A);for(let A=0;A<C;A++)for(let g=0;g<o[A];g++)e.push(w[A]+g);return B?e.map((A=>B[A])):e}function C(A,g,e){let C=Array(A).fill().map((()=>[]));for(let w=0;w<g;w++)B(A,e).forEach(((A,g)=>C[g].push(A)));return C}function w(A,g){let B=1+g(),e=g(),w=function(A){let g=[];for(;;){let B=A();if(0==B)break;g.push(B)}return g}(g);return C(w.length,1+A,g).flatMap(((A,g)=>{let[C,...o]=A;return Array(w[g]).fill().map(((A,g)=>{let w=g*e;return[C+g*B,o.map((A=>A+w))]}))}))}function o(A,g){return C(1+g(),1+A,g).map((A=>[A[0],A.slice(1)]))}var r=function(A){let g=0;return()=>A[g++]}(function(A){let g=0;function B(){return A[g++]<<8|A[g++]}let e=B(),C=1,w=[0,1];for(let A=1;A<e;A++)w.push(C+=B());let o=B(),r=g;g+=o;let Q=0,t=0;function D(){return 0==Q&&(t=t<<8|A[g++],Q=8),t>>--Q&1}const n=2**31,E=n>>>1,s=n-1;let Y=0;for(let A=0;A<31;A++)Y=Y<<1|D();let i=[],I=0,M=n;for(;;){let A=Math.floor(((Y-I+1)*C-1)/M),g=0,B=e;for(;B-g>1;){let e=g+B>>>1;A<w[e]?B=e:g=e}if(0==g)break;i.push(g);let o=I+Math.floor(M*w[g]/C),r=I+Math.floor(M*w[g+1]/C)-1;for(;0==((o^r)&E);)Y=Y<<1&s|D(),o=o<<1&s,r=r<<1&s|1;for(;o&~r&536870912;)Y=Y&E|Y<<1&s>>>1|D(),o=o<<1^E,r=(r^E)<<1|E|1;I=o,M=1+r-o}let c=e-4;return i.map((g=>{switch(g-c){case 3:return c+65792+(A[r++]<<16|A[r++]<<8|A[r++]);case 2:return c+256+(A[r++]<<8|A[r++]);case 1:return c+A[r++];default:return g-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0)))));function Q(A){return A.filter((A=>65039!=A))}const t=new Set(e(r)),D=new Set(e(r)),n=function(A){let g=[];for(;;){let B=A();if(0==B)break;g.push(w(B,A))}for(;;){let B=A()-1;if(B<0)break;g.push(o(B,A))}return Object.fromEntries(g.flat())}(r),E=function(A){let g=e(A).sort(((A,g)=>A-g));return function B(){let C=[];for(;;){let w=e(A,g);if(0==w.length)break;C.push({set:new Set(w),node:B()})}C.sort(((A,g)=>g.set.size-A.set.size));let w=A(),o=w%3;w=w/3|0;let r=!!(1&w);return w>>=1,{branches:C,valid:o,fe0f:r,save:1==w,check:2==w}}()}(r);function s(A){return function(A,g){let B=(C=A,[...C].map((A=>A.codePointAt(0)))).reverse(),e=[];for(var C;B.length;){let A=Y(B);if(A){e.push(...g(A));continue}let C=B.pop();if(t.has(C)){e.push(C);continue}if(D.has(C))continue;let w=n[C];if(!w)throw new Error(`Disallowed codepoint: 0x${C.toString(16).toUpperCase()}`);e.push(...w)}return function(A){return A.normalize("NFC")}(String.fromCodePoint(...e))}(A,Q)}function Y(A,g){let B,e,C=E,w=[],o=A.length;for(g&&(g.length=0);o;){let r=A[--o];if(C=C.branches.find((A=>A.set.has(r)))?.node,!C)break;if(C.save)e=r;else if(C.check&&r===e)break;w.push(r),C.fe0f&&(w.push(65039),o>0&&65039==A[o-1]&&o--),C.valid&&(B=w.slice(),2==C.valid&&B.splice(1,1),g&&g.push(...A.slice(o).reverse()),A.length=o)}return B}new Set(e(r,[...t].sort(((A,g)=>A-g))));export{s as ens_normalize};

@@ -38,2 +38,2 @@ interface DisallowedToken {

export function ens_beautify(name: string): string;
export function ens_tokenize(name: string): Token[];
export function ens_tokenize(name: string): Token[];

@@ -1,1 +0,1 @@

export * from './src/lib.js';
export * from './src/lib.js';
{
"name": "@adraffy/ens-normalize",
"version": "1.5.4",
"version": "1.5.5",
"description": "Compact ES6 Ethereum Name Service (ENS) Name Normalizer",

@@ -35,3 +35,3 @@ "keywords": [

"devDependencies": {
"@adraffy/ensip-norm": "^0.0.4",
"@adraffy/ensip-norm": "^0.0.5",
"@adraffy/punycode": "^0.0.2",

@@ -38,0 +38,0 @@ "@rollup/plugin-node-resolve": "^13.3.0",

# ens-normalize.js
0-dependancy Compact ES6 Ethereum Name Service (ENS) Name Normalizer.
0-dependancy Compact ES6 Ethereum Name Service (ENS) Name Normalizer that works in the browser.

@@ -4,0 +4,0 @@ * Passes **100%** [ENSIP Norm](https://github.com/adraffy/ensip-norm/) Validation Tests [(Latest)](https://adraffy.github.io/ens-norm-tests/test-validation/output/ens_normalize_1.5.0.html)

@@ -13,3 +13,3 @@ // https://en.wikipedia.org/wiki/Domain_Name_System

// root label is implicit 0 length
// longest: [1,<61>] [1,<63>][1,<63>][1,<63>][1,<0>]
// longest: [1,<61>][1,<63>][1,<63>][1,<63>][1,<0>]
// (1+61)+(1+63)+(1+63)+(1+63)+(1+0) = 255

@@ -22,9 +22,8 @@ // string form: "a.b.c"

export function dns_from_normalized_ens(name) {
let acc = 0;
return name.split('.').map((label, i) => {
if (i > 0) acc++; // separator
if (!label) return ''; // empty label
let cps = explode_cp(label);
let encoded = puny_encode(cps);
name = name.split('.').map(label0 => {
if (!label0) return ''; // empty label
let label = label0;
try {
let cps = explode_cp(label);
let encoded = puny_encode(cps);
for (let cp of encoded) {

@@ -35,10 +34,8 @@ if (!VALID.has(cp)) {

}
acc += encoded.length;
if (encoded === cps) {
if (label.startsWith('xn--')) throw new Error('punycode literal');
if (label.slice(2, 4) === '--') throw Error('invalid label extension');
if (label.startsWith('-')) throw Error('leading hyphen');
if (label.endsWith('-')) throw Error('trailing hyphen');
if (label.slice(2, 4) === '--') throw new Error('invalid label extension');
if (label.startsWith('-')) throw new Error('leading hyphen');
if (label.endsWith('-')) throw new Error('trailing hyphen');
} else {
acc += 4;
label = 'xn--' + String.fromCodePoint(...encoded);

@@ -48,7 +45,8 @@ }

} catch (err) {
throw new Error(`Invalid label "${escape_unicode(label)}": ${err.message}`);
throw new Error(`Invalid label "${escape_unicode(label0)}": ${err.message}`);
}
if (acc > MAX_NAME) throw new Error(`Name too long: ${acc} > ${MAX_NAME}`);
return label;
}).join('.');
}
if (name.length > MAX_NAME) throw new Error(`Name too long: ${name.length} > ${MAX_NAME}`);
return name;
}

@@ -1,3 +0,3 @@

// created 2022-08-11T04:31:10.660Z
// created 2022-08-12T20:08:32.842Z
import {read_compressed_payload} from './decoder.js';
export default read_compressed_payload(Uint8Array.from(atob('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'), c => c.charCodeAt(0)));
export default read_compressed_payload(Uint8Array.from(atob('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'), c => c.charCodeAt(0)));

@@ -11,12 +11,8 @@ import r from './include.js';

function nfc(s) {
return s.normalize('NFC');
export function ens_normalize(name) {
return normalize(name, filter_fe0f);
}
export function ens_beautify(name) {
return normalize(name, x => x);
}
export function ens_normalize(name) {
return normalize(name, filter_fe0f);
}

@@ -50,2 +46,6 @@ function normalize(name, emoji_filter) {

function nfc(s) {
return s.normalize('NFC'); // this might be incorrect on old browsers
}
function consume_emoji_reversed(cps, eaten) {

@@ -127,3 +127,3 @@ let node = EMOJI_ROOT;

end = pos + 1;
} else if (type !== TY_IGNORED || type !== TY_DISALLOWED) {
} else if (type !== TY_IGNORED) { // || type !== TY_DISALLOWED) {
break;

@@ -162,3 +162,2 @@ }

// collapse adjacent valid tokens
function collapse_valid_tokens(tokens) {

@@ -173,2 +172,2 @@ for (let i = 0; i < tokens.length; i++) {

return tokens;
}
}

@@ -52,2 +52,3 @@ import {CHARS, EMOJI} from '@adraffy/ensip-norm';

// insert every emoji sequence
let root = new Node();

@@ -94,2 +95,3 @@ for (let cps of EMOJI) {

// check every emoji sequence for non-standard FE0F handling
for (let cps0 of EMOJI) {

@@ -106,2 +108,4 @@ let node = root;

} else {
if (index != 0) throw new Error('expected first FE0F');
if (i != 1) throw new Error('expected second character');
bits |= 1 << index;

@@ -112,4 +116,3 @@ }

}
if (bits >= 2) throw new Error('expected fe0f correction only at position 1');
node.bits = bits; // 0 or 1
node.bits = bits; // 0 or 1
}

@@ -129,3 +132,3 @@

enc.write_member([]);
let valid = node.valid ? 1 + node.bits : 0;
let valid = node.bits ? 2 : node.valid ? 1 : 0;
let mod = node.check_mod ? 2 : node.save_mod ? 1 : 0;

@@ -164,3 +167,3 @@ let fe0f = node.fe0f ? 1 : 0;

// [4, 1, 0],
], CHARS.mapped);
], CHARS.mapped); //.map(kv => [kv[0], kv[1].map(x => sorted_valid_map[x])]));
enc.write_member(sorted_emoji);

@@ -181,2 +184,1 @@ encode_emoji(enc, root, sorted_emoji_map);

}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc