puny-coder 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +17 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +29 -28
- package/CHANGELOG.md +0 -5
package/README.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var m=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var b=(a,e)=>{for(var i in e)m(a,i,{get:e[i],enumerable:!0})},B=(a,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of N(e))!w.call(a,t)&&t!==i&&m(a,t,{get:()=>e[t],enumerable:!(o=S(e,t))||o.enumerable});return a};var C=a=>B(m({},"__esModule",{value:!0}),a);var L={};b(L,{asciiToUnicode:()=>X,unicodeToAscii:()=>y});module.exports=C(L);var x=require("querystring"),r=class{static utf16decode(e){let i=e.length,o=[],t=0,n,c;for(;t<i;){if(n=e.charCodeAt(t++),(n&63488)===55296){if(c=e.charCodeAt(t++),(n&64512)!==55296||(c&64512)!==56320)throw new RangeError("Punycode UTF-16 decode, illegal UTF-16 sequence");n=((n&1023)<<10)+(c&1023)+65536}o.push(n)}return o}static utf16encode(e){let i=e.length,o=[],t=0,n;for(;t<i;){if(n=e[t++],(n&63488)===55296)throw new RangeError("Punycode UTF-16 encode, illegal UTF-16 value");n>65535&&(n-=65536,o.push(String.fromCharCode(n>>>10&1023|55296)),n=56320|n&1023),o.push(String.fromCharCode(n))}return o.join("")}static decodeDigit(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:r.BASE}static encodeDigit(e,i){return e+22+75*(e<26)-((i!==0)<<5)}static adapt(e,i,o=!1){let t;for(e=o?Math.floor(e/r.DAMP):e>>1,e+=Math.floor(e/i),t=0;e>(r.BASE-r.T_MIN)*r.T_MAX>>1;t+=r.BASE)e=Math.floor(e/(r.BASE-r.T_MIN));return Math.floor(t+(r.BASE-r.T_MIN+1)*e/(e+r.SKEW))}static encodeBasic(e,i=!1){return e-=(e-97<26)<<5,e+((!i&&e-65<26)<<5)}static decode(e,i=!0){let o=[],t=[],n=e.length,c,p,d,l,h,I,M,g,u,A,T,E=r.INITIAL_N,f=0;for(p=r.INITIAL_BIAS,d=e.lastIndexOf(r.DELIMITER),d<0&&(d=0),l=0;l<d;++l){if(i&&(t[o.length]=e.charCodeAt(l)-65<26),e.charCodeAt(l)>=128)throw new RangeError("Punycode illegal input >= 0x80");o.push(e.charCodeAt(l))}for(h=d>0?d+1:0;h<n;){for(I=f,M=1,g=r.BASE;;g+=r.BASE){if(h>=n)throw RangeError("Punycode bad input 1");if(u=r.decodeDigit(e.charCodeAt(h++)),u>=r.BASE)throw RangeError("Punycode bad input 2");if(u>Math.floor((r.MAX_INT-f)/M))throw RangeError("Punycode overflow 1");if(f+=u*M,A=g<=p?r.T_MIN:g>=p+r.T_MAX?r.T_MAX:g-p,u<A)break;if(M>Math.floor(r.MAX_INT/(r.BASE-A)))throw RangeError("Punycode overflow 2");M*=r.BASE-A}if(c=o.length+1,p=r.adapt(f-I,c,I===0),Math.floor(f/c)>r.MAX_INT-E)throw RangeError("Punycode overflow 3");E+=Math.floor(f/c),f%=c,i&&t.splice(f,0,e.charCodeAt(h-1)-65<26),o.splice(f,0,E),f++}if(i)for(f=0,T=o.length;f<T;f++)t[f]&&(o[f]=String.fromCharCode(o[f]).toUpperCase().charCodeAt(0));return r.utf16encode(o)}static encode(e,i=!1){let o,t,n,c,p,d,l,h;i&&(h=r.utf16decode(e));let I=r.utf16decode(e.toLowerCase()),M=I.length;if(i)for(t=0;t<M;t++)h[t]=I[t]!==h[t];let g=[],u=r.INITIAL_N,A=0,T=r.INITIAL_BIAS;for(t=0;t<M;++t)I[t]<128&&g.push(String.fromCharCode(h?r.encodeBasic(I[t],h[t]):I[t]));let E=g.length;for(o=g.length,E>0&&g.push(r.DELIMITER);o<M;){for(n=r.MAX_INT,t=0;t<M;++t)l=I[t],l>=u&&l<n&&(n=l);if(n-u>Math.floor((r.MAX_INT-A)/(o+1)))throw RangeError("Punycode overflow 1");for(A+=(n-u)*(o+1),u=n,t=0;t<M;++t){if(l=I[t],l<u&&++A>r.MAX_INT)throw RangeError("Punycode overflow 2");if(l===u){for(c=A,p=r.BASE;d=p<=T?r.T_MIN:p>=T+r.T_MAX?r.T_MAX:p-T,!(c<d);p+=r.BASE)g.push(String.fromCharCode(r.encodeDigit(d+(c-d)%(r.BASE-d),0))),c=Math.floor((c-d)/(r.BASE-d));g.push(String.fromCharCode(r.encodeDigit(c,i&&h[t]?1:0))),T=r.adapt(A,o+1,o===E),A=0,++o}}++A,++u}return g.join("")}static toAscii(e,i=!0){let o=e.split("."),t=[];for(let n=0;n<o.length;++n){let c=o[n];t.push(c.match(/[^A-Za-z0-9-]/)?"xn--"+r.encode(c,i):c)}return t.join(".")}static toUnicode(e,i=!0){let o=e.split("."),t=[];for(let n=0;n<o.length;++n){let c=o[n];t.push(c.match(/^xn--/)?r.decode(c.slice(4),i):c)}return t.join(".")}},s=r;s.BASE=36,s.DAMP=700,s.DELIMITER="-",s.INITIAL_BIAS=72,s.INITIAL_N=128,s.MAX_INT=2147483647,s.SKEW=38,s.T_MAX=26,s.T_MIN=1;function y(a,e=a,i=!0,o=!0){try{let t;if(i?t=(0,x.stringify)({"":s.toAscii(a)},void 0," ").trim():t=s.toAscii(a),t===`xn--${a}`||t===`xn--${a}-`)return a;if(i&&o&&(a.includes("@")||a.includes("#"))){let n=a.replace(/@/g,"").replace(/#/g,""),c=t.replace(/%40/g,"").replace(/%23/g,"").replace(/[-.]+/g,".");if(c===`xn.${n}`||c===`xn.${n}-`)return a}return t}catch{return e}}function X(a,e=a,i=!0){try{return i?s.toUnicode(Object.keys((0,x.parse)(a))[0]):s.toUnicode(a)}catch{return e}}0&&(module.exports={asciiToUnicode,unicodeToAscii});
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { parse, stringify } from \"querystring\";\n\nabstract class Punycode {\n protected static readonly INITIAL_N = 0x80;\n protected static readonly INITIAL_BIAS = 72;\n protected static readonly DELIMITER = \"\\x2D\";\n protected static readonly BASE = 36;\n protected static readonly DAMP = 700;\n protected static readonly T_MIN = 1;\n protected static readonly T_MAX = 26;\n protected static readonly SKEW = 38;\n protected static readonly MAX_INT = 0x7fffffff;\n\n protected static utf16decode(input: string): number[] {\n let output = [];\n let index = 0;\n let length = input.length;\n let value;\n let extra;\n while (index < length) {\n value = input.charCodeAt(index++);\n if ((value & 0xf800) === 0xd800) {\n extra = input.charCodeAt(index++);\n if ((value & 0xfc00) !== 0xd800 || (extra & 0xfc00) !== 0xdc00) {\n throw new RangeError(\n \"Punycode UTF-16 decode, illegal UTF-16 sequence\"\n );\n }\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n output.push(value);\n }\n return output;\n }\n protected static utf16encode(input: string[]): string {\n let output = [];\n let index = 0;\n let length = input.length;\n let value;\n while (index < length) {\n value = input[index++];\n if ((value & 0xf800) === 0xd800) {\n throw new RangeError(\"Punycode UTF-16 encode, illegal UTF-16 value\");\n }\n if (value > 0xffff) {\n value -= 0x10000;\n output.push(String.fromCharCode(((value >>> 10) & 0x3ff) | 0xd800));\n value = 0xdc00 | (value & 0x3ff);\n }\n output.push(String.fromCharCode(value));\n }\n return output.join(\"\");\n }\n\n protected static decodeDigit(charPoint: number): number {\n return charPoint - 48 < 10\n ? charPoint - 22\n : charPoint - 65 < 26\n ? charPoint - 65\n : charPoint - 97 < 26\n ? charPoint - 97\n : Punycode.BASE;\n }\n\n protected static encodeDigit(digit: number, flag: 0 | 1): number {\n // @ts-ignore\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n\n protected static adapt(\n delta: number,\n numPoints: number,\n firstTime: boolean = false\n ): number {\n let index;\n delta = firstTime ? Math.floor(delta / Punycode.DAMP) : delta >> 1;\n delta += Math.floor(delta / numPoints);\n for (\n index = 0;\n delta > ((Punycode.BASE - Punycode.T_MIN) * Punycode.T_MAX) >> 1;\n index += Punycode.BASE\n ) {\n delta = Math.floor(delta / (Punycode.BASE - Punycode.T_MIN));\n }\n return Math.floor(\n index +\n ((Punycode.BASE - Punycode.T_MIN + 1) * delta) / (delta + Punycode.SKEW)\n );\n }\n\n protected static encodeBasic(bcp: number, flag: boolean = false): number {\n // @ts-ignore\n bcp -= (bcp - 97 < 26) << 5;\n // @ts-ignore\n return bcp + ((!flag && bcp - 65 < 26) << 5);\n }\n\n protected static decode(\n input: string,\n shouldRestoreCase: boolean = true\n ): string {\n const output = [];\n const caseFlags = [];\n const inputLength = input.length;\n let out, bias, basic, j, ic, oldIndex, w, k, digit, t, len;\n let initialN = Punycode.INITIAL_N;\n let index = 0;\n bias = Punycode.INITIAL_BIAS;\n basic = input.lastIndexOf(Punycode.DELIMITER);\n if (basic < 0) {\n basic = 0;\n }\n for (j = 0; j < basic; ++j) {\n if (shouldRestoreCase)\n caseFlags[output.length] = input.charCodeAt(j) - 65 < 26;\n if (input.charCodeAt(j) >= 0x80) {\n throw new RangeError(\"Punycode illegal input >= 0x80\");\n }\n output.push(input.charCodeAt(j));\n }\n for (ic = basic > 0 ? basic + 1 : 0; ic < inputLength; ) {\n for (oldIndex = index, w = 1, k = Punycode.BASE; ; k += Punycode.BASE) {\n if (ic >= inputLength) {\n throw RangeError(\"Punycode bad input 1\");\n }\n digit = Punycode.decodeDigit(input.charCodeAt(ic++));\n if (digit >= Punycode.BASE) {\n throw RangeError(\"Punycode bad input 2\");\n }\n if (digit > Math.floor((Punycode.MAX_INT - index) / w)) {\n throw RangeError(\"Punycode overflow 1\");\n }\n index += digit * w;\n t =\n k <= bias\n ? Punycode.T_MIN\n : k >= bias + Punycode.T_MAX\n ? Punycode.T_MAX\n : k - bias;\n if (digit < t) {\n break;\n }\n if (w > Math.floor(Punycode.MAX_INT / (Punycode.BASE - t))) {\n throw RangeError(\"Punycode overflow 2\");\n }\n w *= Punycode.BASE - t;\n }\n out = output.length + 1;\n bias = Punycode.adapt(index - oldIndex, out, oldIndex === 0);\n if (Math.floor(index / out) > Punycode.MAX_INT - initialN) {\n throw RangeError(\"Punycode overflow 3\");\n }\n initialN += Math.floor(index / out);\n index %= out;\n if (shouldRestoreCase) {\n caseFlags.splice(index, 0, input.charCodeAt(ic - 1) - 65 < 26);\n }\n output.splice(index, 0, initialN);\n index++;\n }\n if (shouldRestoreCase) {\n for (index = 0, len = output.length; index < len; index++) {\n if (caseFlags[index]) {\n output[index] = String.fromCharCode(output[index])\n .toUpperCase()\n .charCodeAt(0);\n }\n }\n }\n return Punycode.utf16encode(output);\n }\n\n protected static encode(\n input: string,\n shouldPreserveCase: boolean = false\n ): string {\n let head, base, index, max, q, k, t, ijv, caseFlags;\n if (shouldPreserveCase) {\n caseFlags = Punycode.utf16decode(input);\n }\n const inputNumbers = Punycode.utf16decode(input.toLowerCase());\n const inputLength = inputNumbers.length;\n if (shouldPreserveCase) {\n for (index = 0; index < inputLength; index++) {\n caseFlags[index] = inputNumbers[index] != caseFlags[index];\n }\n }\n const output = [];\n let initialN = Punycode.INITIAL_N;\n let delta = 0;\n let bias = Punycode.INITIAL_BIAS;\n for (index = 0; index < inputLength; ++index) {\n if (inputNumbers[index] < 0x80) {\n output.push(\n String.fromCharCode(\n caseFlags\n ? Punycode.encodeBasic(inputNumbers[index], caseFlags[index])\n : inputNumbers[index]\n )\n );\n }\n }\n head = base = output.length;\n if (base > 0) {\n output.push(Punycode.DELIMITER);\n }\n while (head < inputLength) {\n for (max = Punycode.MAX_INT, index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv >= initialN && ijv < max) max = ijv;\n }\n if (\n max - initialN >\n Math.floor((Punycode.MAX_INT - delta) / (head + 1))\n ) {\n throw RangeError(\"Punycode overflow 1\");\n }\n delta += (max - initialN) * (head + 1);\n initialN = max;\n for (index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv < initialN) {\n if (++delta > Punycode.MAX_INT) {\n throw RangeError(\"Punycode overflow 2\");\n }\n }\n if (ijv == initialN) {\n for (q = delta, k = Punycode.BASE; ; k += Punycode.BASE) {\n t =\n k <= bias\n ? Punycode.T_MIN\n : k >= bias + Punycode.T_MAX\n ? Punycode.T_MAX\n : k - bias;\n if (q < t) break;\n output.push(\n String.fromCharCode(\n Punycode.encodeDigit(t + ((q - t) % (Punycode.BASE - t)), 0)\n )\n );\n q = Math.floor((q - t) / (Punycode.BASE - t));\n }\n output.push(\n String.fromCharCode(\n Punycode.encodeDigit(\n q,\n shouldPreserveCase && caseFlags[index] ? 1 : 0\n )\n )\n );\n bias = Punycode.adapt(delta, head + 1, head == base);\n delta = 0;\n ++head;\n }\n }\n ++delta;\n ++initialN;\n }\n return output.join(\"\");\n }\n\n public static toAscii(\n domain: string,\n shouldPreserveCase: boolean = true\n ): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(\n element.match(/[^A-Za-z0-9-]/)\n ? \"xn--\" + Punycode.encode(element, shouldPreserveCase)\n : element\n );\n }\n return out.join(\".\");\n }\n\n public static toUnicode(\n domain: string,\n shouldRestoreCase: boolean = true\n ): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(\n element.match(/^xn--/)\n ? Punycode.decode(element.slice(4), shouldRestoreCase)\n : element\n );\n }\n return out.join(\".\");\n }\n}\n\nfunction unicodeToAscii(\n text: string,\n onError: string = text,\n urlEncode: boolean = true,\n skipOnValid: boolean = true\n): string {\n try {\n let result;\n if (urlEncode) {\n result = stringify({ \"\": Punycode.toAscii(text) }, undefined, \" \").trim();\n } else {\n result = Punycode.toAscii(text);\n }\n if (result === `xn--${text}` || result === `xn--${text}-`) {\n return text;\n }\n if (urlEncode && skipOnValid) {\n if (text.includes(\"@\") || text.includes(\"#\")) {\n const clean = text.replace(/@/g, \"\").replace(/#/g, \"\");\n const skip = result\n .replace(/%40/g, \"\")\n .replace(/%23/g, \"\")\n .replace(/[-.]+/g, \".\");\n console.dir({ clean, skip });\n if (skip === `xn.${clean}` || skip === `xn.${clean}-`) {\n return text;\n }\n }\n }\n return result;\n } catch {\n return onError;\n }\n}\n\nfunction asciiToUnicode(\n text: string,\n onError: string = text,\n urlDecode: boolean = true\n): string {\n try {\n if (urlDecode) {\n return Punycode.toUnicode(Object.keys(parse(text))[0]);\n } else {\n return Punycode.toUnicode(text);\n }\n } catch {\n return onError;\n }\n}\n\nexport { asciiToUnicode, unicodeToAscii };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import { parse, stringify } from \"querystring\";\n\nabstract class Punycode {\n protected static readonly BASE = 36;\n protected static readonly DAMP = 700;\n protected static readonly DELIMITER = \"\\x2D\";\n protected static readonly INITIAL_BIAS = 72;\n protected static readonly INITIAL_N = 0x80;\n protected static readonly MAX_INT = 0x7fffffff;\n protected static readonly SKEW = 38;\n protected static readonly T_MAX = 26;\n protected static readonly T_MIN = 1;\n\n protected static utf16decode(input: string): number[] {\n const length = input.length;\n const output = [];\n let index = 0;\n let value;\n let extra;\n while (index < length) {\n value = input.charCodeAt(index++);\n if ((value & 0xf800) === 0xd800) {\n extra = input.charCodeAt(index++);\n if ((value & 0xfc00) !== 0xd800 || (extra & 0xfc00) !== 0xdc00) {\n throw new RangeError(\"Punycode UTF-16 decode, illegal UTF-16 sequence\");\n }\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n output.push(value);\n }\n return output;\n }\n protected static utf16encode(input: string[]): string {\n const length = input.length;\n const output = [];\n let index = 0;\n let value;\n while (index < length) {\n value = input[index++];\n if ((value & 0xf800) === 0xd800) {\n throw new RangeError(\"Punycode UTF-16 encode, illegal UTF-16 value\");\n }\n if (value > 0xffff) {\n value -= 0x10000;\n output.push(String.fromCharCode(((value >>> 10) & 0x3ff) | 0xd800));\n value = 0xdc00 | (value & 0x3ff);\n }\n output.push(String.fromCharCode(value));\n }\n return output.join(\"\");\n }\n\n protected static decodeDigit(charPoint: number): number {\n return charPoint - 48 < 10\n ? charPoint - 22\n : charPoint - 65 < 26\n ? charPoint - 65\n : charPoint - 97 < 26\n ? charPoint - 97\n : Punycode.BASE;\n }\n\n protected static encodeDigit(digit: number, flag: 0 | 1): number {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return digit + 22 + 75 * (digit < 26) - ((flag !== 0) << 5);\n }\n\n protected static adapt(delta: number, numPoints: number, firstTime = false): number {\n let index;\n delta = firstTime ? Math.floor(delta / Punycode.DAMP) : delta >> 1;\n delta += Math.floor(delta / numPoints);\n for (index = 0; delta > ((Punycode.BASE - Punycode.T_MIN) * Punycode.T_MAX) >> 1; index += Punycode.BASE) {\n delta = Math.floor(delta / (Punycode.BASE - Punycode.T_MIN));\n }\n return Math.floor(index + ((Punycode.BASE - Punycode.T_MIN + 1) * delta) / (delta + Punycode.SKEW));\n }\n\n protected static encodeBasic(bcp: number, flag = false): number {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n bcp -= (bcp - 97 < 26) << 5;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return bcp + ((!flag && bcp - 65 < 26) << 5);\n }\n\n protected static decode(input: string, shouldRestoreCase = true): string {\n const output = [];\n const caseFlags = [];\n const inputLength = input.length;\n let out, bias, basic, indexCharCode, ic, oldIndex, width, key, digit, track, len;\n let initialN = Punycode.INITIAL_N;\n let index = 0;\n bias = Punycode.INITIAL_BIAS;\n basic = input.lastIndexOf(Punycode.DELIMITER);\n if (basic < 0) {\n basic = 0;\n }\n for (indexCharCode = 0; indexCharCode < basic; ++indexCharCode) {\n if (shouldRestoreCase) {\n caseFlags[output.length] = input.charCodeAt(indexCharCode) - 65 < 26;\n }\n if (input.charCodeAt(indexCharCode) >= 0x80) {\n throw new RangeError(\"Punycode illegal input >= 0x80\");\n }\n output.push(input.charCodeAt(indexCharCode));\n }\n for (ic = basic > 0 ? basic + 1 : 0; ic < inputLength; ) {\n for (oldIndex = index, width = 1, key = Punycode.BASE; ; key += Punycode.BASE) {\n if (ic >= inputLength) {\n throw RangeError(\"Punycode bad input 1\");\n }\n digit = Punycode.decodeDigit(input.charCodeAt(ic++));\n if (digit >= Punycode.BASE) {\n throw RangeError(\"Punycode bad input 2\");\n }\n if (digit > Math.floor((Punycode.MAX_INT - index) / width)) {\n throw RangeError(\"Punycode overflow 1\");\n }\n index += digit * width;\n track = key <= bias ? Punycode.T_MIN : key >= bias + Punycode.T_MAX ? Punycode.T_MAX : key - bias;\n if (digit < track) {\n break;\n }\n if (width > Math.floor(Punycode.MAX_INT / (Punycode.BASE - track))) {\n throw RangeError(\"Punycode overflow 2\");\n }\n width *= Punycode.BASE - track;\n }\n out = output.length + 1;\n bias = Punycode.adapt(index - oldIndex, out, oldIndex === 0);\n if (Math.floor(index / out) > Punycode.MAX_INT - initialN) {\n throw RangeError(\"Punycode overflow 3\");\n }\n initialN += Math.floor(index / out);\n index %= out;\n if (shouldRestoreCase) {\n caseFlags.splice(index, 0, input.charCodeAt(ic - 1) - 65 < 26);\n }\n output.splice(index, 0, initialN);\n index++;\n }\n if (shouldRestoreCase) {\n for (index = 0, len = output.length; index < len; index++) {\n if (caseFlags[index]) {\n output[index] = String.fromCharCode(output[index]).toUpperCase().charCodeAt(0);\n }\n }\n }\n return Punycode.utf16encode(output);\n }\n\n protected static encode(input: string, shouldPreserveCase = false): string {\n let head, index, max, digit, key, track, ijv, caseFlags;\n if (shouldPreserveCase) {\n caseFlags = Punycode.utf16decode(input);\n }\n const inputNumbers = Punycode.utf16decode(input.toLowerCase());\n const inputLength = inputNumbers.length;\n if (shouldPreserveCase) {\n for (index = 0; index < inputLength; index++) {\n caseFlags[index] = inputNumbers[index] !== caseFlags[index];\n }\n }\n const output = [];\n let initialN = Punycode.INITIAL_N;\n let delta = 0;\n let bias = Punycode.INITIAL_BIAS;\n for (index = 0; index < inputLength; ++index) {\n if (inputNumbers[index] < 0x80) {\n output.push(\n String.fromCharCode(\n caseFlags ? Punycode.encodeBasic(inputNumbers[index], caseFlags[index]) : inputNumbers[index],\n ),\n );\n }\n }\n const base = output.length;\n head = output.length;\n if (base > 0) {\n output.push(Punycode.DELIMITER);\n }\n while (head < inputLength) {\n for (max = Punycode.MAX_INT, index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv >= initialN && ijv < max) max = ijv;\n }\n if (max - initialN > Math.floor((Punycode.MAX_INT - delta) / (head + 1))) {\n throw RangeError(\"Punycode overflow 1\");\n }\n delta += (max - initialN) * (head + 1);\n initialN = max;\n for (index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv < initialN) {\n if (++delta > Punycode.MAX_INT) {\n throw RangeError(\"Punycode overflow 2\");\n }\n }\n if (ijv === initialN) {\n for (digit = delta, key = Punycode.BASE; ; key += Punycode.BASE) {\n track = key <= bias ? Punycode.T_MIN : key >= bias + Punycode.T_MAX ? Punycode.T_MAX : key - bias;\n if (digit < track) break;\n output.push(\n String.fromCharCode(Punycode.encodeDigit(track + ((digit - track) % (Punycode.BASE - track)), 0)),\n );\n digit = Math.floor((digit - track) / (Punycode.BASE - track));\n }\n output.push(String.fromCharCode(Punycode.encodeDigit(digit, shouldPreserveCase && caseFlags[index] ? 1 : 0)));\n bias = Punycode.adapt(delta, head + 1, head === base);\n delta = 0;\n ++head;\n }\n }\n ++delta;\n ++initialN;\n }\n return output.join(\"\");\n }\n\n public static toAscii(domain: string, shouldPreserveCase = true): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(element.match(/[^A-Za-z0-9-]/) ? \"xn--\" + Punycode.encode(element, shouldPreserveCase) : element);\n }\n return out.join(\".\");\n }\n\n public static toUnicode(domain: string, shouldRestoreCase = true): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(element.match(/^xn--/) ? Punycode.decode(element.slice(4), shouldRestoreCase) : element);\n }\n return out.join(\".\");\n }\n}\n\n/**\n * @name unicodeToAscii\n * @description Converts unicode domain names to ASCII.\n * @param {string} [text]\n * @param {string=} [onError=text]\n * @param {boolean=} [urlEncode=true]\n * @param {boolean=} [skipOnValid=true]\n * @returns {string}\n */\nfunction unicodeToAscii(text: string, onError: string = text, urlEncode = true, skipOnValid = true): string {\n try {\n let result;\n if (urlEncode) {\n result = stringify({ \"\": Punycode.toAscii(text) }, undefined, \" \").trim();\n } else {\n result = Punycode.toAscii(text);\n }\n if (result === `xn--${text}` || result === `xn--${text}-`) {\n return text;\n }\n if (urlEncode && skipOnValid) {\n if (text.includes(\"@\") || text.includes(\"#\")) {\n const clean = text.replace(/@/g, \"\").replace(/#/g, \"\");\n const skip = result.replace(/%40/g, \"\").replace(/%23/g, \"\").replace(/[-.]+/g, \".\");\n if (skip === `xn.${clean}` || skip === `xn.${clean}-`) {\n return text;\n }\n }\n }\n return result;\n } catch {\n return onError;\n }\n}\n\n/**\n * @name asciiToUnicode\n * @description Converts an ASCII domain name to Unicode.\n * @param {string} [text]\n * @param {string=} [onError=text]\n * @param {boolean} [urlDecode=true]\n * @returns {string}\n */\nfunction asciiToUnicode(text: string, onError: string = text, urlDecode = true): string {\n try {\n if (urlDecode) {\n return Punycode.toUnicode(Object.keys(parse(text))[0]);\n } else {\n return Punycode.toUnicode(text);\n }\n } catch {\n return onError;\n }\n}\n\nexport { asciiToUnicode, unicodeToAscii };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["src_exports", "__export", "asciiToUnicode", "unicodeToAscii", "__toCommonJS", "import_querystring", "_Punycode", "input", "length", "output", "index", "value", "extra", "charPoint", "digit", "flag", "delta", "numPoints", "firstTime", "bcp", "shouldRestoreCase", "caseFlags", "inputLength", "out", "bias", "basic", "indexCharCode", "ic", "oldIndex", "width", "key", "track", "len", "initialN", "shouldPreserveCase", "head", "max", "ijv", "inputNumbers", "base", "domain", "domainArray", "element", "Punycode", "text", "onError", "urlEncode", "skipOnValid", "result", "clean", "skip", "urlDecode"]
|
|
7
7
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name unicodeToAscii
|
|
3
|
+
* @description Converts unicode domain names to ASCII.
|
|
4
|
+
* @param {string} [text]
|
|
5
|
+
* @param {string=} [onError=text]
|
|
6
|
+
* @param {boolean=} [urlEncode=true]
|
|
7
|
+
* @param {boolean=} [skipOnValid=true]
|
|
8
|
+
* @returns {string}
|
|
9
|
+
*/
|
|
1
10
|
declare function unicodeToAscii(text: string, onError?: string, urlEncode?: boolean, skipOnValid?: boolean): string;
|
|
11
|
+
/**
|
|
12
|
+
* @name asciiToUnicode
|
|
13
|
+
* @description Converts an ASCII domain name to Unicode.
|
|
14
|
+
* @param {string} [text]
|
|
15
|
+
* @param {string=} [onError=text]
|
|
16
|
+
* @param {boolean} [urlDecode=true]
|
|
17
|
+
* @returns {string}
|
|
18
|
+
*/
|
|
2
19
|
declare function asciiToUnicode(text: string, onError?: string, urlDecode?: boolean): string;
|
|
3
20
|
export { asciiToUnicode, unicodeToAscii };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{parse as x,stringify as
|
|
1
|
+
import{parse as x,stringify as m}from"querystring";var t=class{static utf16decode(e){let c=e.length,n=[],r=0,o,i;for(;r<c;){if(o=e.charCodeAt(r++),(o&63488)===55296){if(i=e.charCodeAt(r++),(o&64512)!==55296||(i&64512)!==56320)throw new RangeError("Punycode UTF-16 decode, illegal UTF-16 sequence");o=((o&1023)<<10)+(i&1023)+65536}n.push(o)}return n}static utf16encode(e){let c=e.length,n=[],r=0,o;for(;r<c;){if(o=e[r++],(o&63488)===55296)throw new RangeError("Punycode UTF-16 encode, illegal UTF-16 value");o>65535&&(o-=65536,n.push(String.fromCharCode(o>>>10&1023|55296)),o=56320|o&1023),n.push(String.fromCharCode(o))}return n.join("")}static decodeDigit(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:t.BASE}static encodeDigit(e,c){return e+22+75*(e<26)-((c!==0)<<5)}static adapt(e,c,n=!1){let r;for(e=n?Math.floor(e/t.DAMP):e>>1,e+=Math.floor(e/c),r=0;e>(t.BASE-t.T_MIN)*t.T_MAX>>1;r+=t.BASE)e=Math.floor(e/(t.BASE-t.T_MIN));return Math.floor(r+(t.BASE-t.T_MIN+1)*e/(e+t.SKEW))}static encodeBasic(e,c=!1){return e-=(e-97<26)<<5,e+((!c&&e-65<26)<<5)}static decode(e,c=!0){let n=[],r=[],o=e.length,i,p,d,l,h,I,M,g,u,A,T,E=t.INITIAL_N,a=0;for(p=t.INITIAL_BIAS,d=e.lastIndexOf(t.DELIMITER),d<0&&(d=0),l=0;l<d;++l){if(c&&(r[n.length]=e.charCodeAt(l)-65<26),e.charCodeAt(l)>=128)throw new RangeError("Punycode illegal input >= 0x80");n.push(e.charCodeAt(l))}for(h=d>0?d+1:0;h<o;){for(I=a,M=1,g=t.BASE;;g+=t.BASE){if(h>=o)throw RangeError("Punycode bad input 1");if(u=t.decodeDigit(e.charCodeAt(h++)),u>=t.BASE)throw RangeError("Punycode bad input 2");if(u>Math.floor((t.MAX_INT-a)/M))throw RangeError("Punycode overflow 1");if(a+=u*M,A=g<=p?t.T_MIN:g>=p+t.T_MAX?t.T_MAX:g-p,u<A)break;if(M>Math.floor(t.MAX_INT/(t.BASE-A)))throw RangeError("Punycode overflow 2");M*=t.BASE-A}if(i=n.length+1,p=t.adapt(a-I,i,I===0),Math.floor(a/i)>t.MAX_INT-E)throw RangeError("Punycode overflow 3");E+=Math.floor(a/i),a%=i,c&&r.splice(a,0,e.charCodeAt(h-1)-65<26),n.splice(a,0,E),a++}if(c)for(a=0,T=n.length;a<T;a++)r[a]&&(n[a]=String.fromCharCode(n[a]).toUpperCase().charCodeAt(0));return t.utf16encode(n)}static encode(e,c=!1){let n,r,o,i,p,d,l,h;c&&(h=t.utf16decode(e));let I=t.utf16decode(e.toLowerCase()),M=I.length;if(c)for(r=0;r<M;r++)h[r]=I[r]!==h[r];let g=[],u=t.INITIAL_N,A=0,T=t.INITIAL_BIAS;for(r=0;r<M;++r)I[r]<128&&g.push(String.fromCharCode(h?t.encodeBasic(I[r],h[r]):I[r]));let E=g.length;for(n=g.length,E>0&&g.push(t.DELIMITER);n<M;){for(o=t.MAX_INT,r=0;r<M;++r)l=I[r],l>=u&&l<o&&(o=l);if(o-u>Math.floor((t.MAX_INT-A)/(n+1)))throw RangeError("Punycode overflow 1");for(A+=(o-u)*(n+1),u=o,r=0;r<M;++r){if(l=I[r],l<u&&++A>t.MAX_INT)throw RangeError("Punycode overflow 2");if(l===u){for(i=A,p=t.BASE;d=p<=T?t.T_MIN:p>=T+t.T_MAX?t.T_MAX:p-T,!(i<d);p+=t.BASE)g.push(String.fromCharCode(t.encodeDigit(d+(i-d)%(t.BASE-d),0))),i=Math.floor((i-d)/(t.BASE-d));g.push(String.fromCharCode(t.encodeDigit(i,c&&h[r]?1:0))),T=t.adapt(A,n+1,n===E),A=0,++n}}++A,++u}return g.join("")}static toAscii(e,c=!0){let n=e.split("."),r=[];for(let o=0;o<n.length;++o){let i=n[o];r.push(i.match(/[^A-Za-z0-9-]/)?"xn--"+t.encode(i,c):i)}return r.join(".")}static toUnicode(e,c=!0){let n=e.split("."),r=[];for(let o=0;o<n.length;++o){let i=n[o];r.push(i.match(/^xn--/)?t.decode(i.slice(4),c):i)}return r.join(".")}},f=t;f.BASE=36,f.DAMP=700,f.DELIMITER="-",f.INITIAL_BIAS=72,f.INITIAL_N=128,f.MAX_INT=2147483647,f.SKEW=38,f.T_MAX=26,f.T_MIN=1;function N(s,e=s,c=!0,n=!0){try{let r;if(c?r=m({"":f.toAscii(s)},void 0," ").trim():r=f.toAscii(s),r===`xn--${s}`||r===`xn--${s}-`)return s;if(c&&n&&(s.includes("@")||s.includes("#"))){let o=s.replace(/@/g,"").replace(/#/g,""),i=r.replace(/%40/g,"").replace(/%23/g,"").replace(/[-.]+/g,".");if(i===`xn.${o}`||i===`xn.${o}-`)return s}return r}catch{return e}}function w(s,e=s,c=!0){try{return c?f.toUnicode(Object.keys(x(s))[0]):f.toUnicode(s)}catch{return e}}export{w as asciiToUnicode,N as unicodeToAscii};
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { parse, stringify } from \"querystring\";\n\nabstract class Punycode {\n protected static readonly INITIAL_N = 0x80;\n protected static readonly INITIAL_BIAS = 72;\n protected static readonly DELIMITER = \"\\x2D\";\n protected static readonly BASE = 36;\n protected static readonly DAMP = 700;\n protected static readonly T_MIN = 1;\n protected static readonly T_MAX = 26;\n protected static readonly SKEW = 38;\n protected static readonly MAX_INT = 0x7fffffff;\n\n protected static utf16decode(input: string): number[] {\n let output = [];\n let index = 0;\n let length = input.length;\n let value;\n let extra;\n while (index < length) {\n value = input.charCodeAt(index++);\n if ((value & 0xf800) === 0xd800) {\n extra = input.charCodeAt(index++);\n if ((value & 0xfc00) !== 0xd800 || (extra & 0xfc00) !== 0xdc00) {\n throw new RangeError(\n \"Punycode UTF-16 decode, illegal UTF-16 sequence\"\n );\n }\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n output.push(value);\n }\n return output;\n }\n protected static utf16encode(input: string[]): string {\n let output = [];\n let index = 0;\n let length = input.length;\n let value;\n while (index < length) {\n value = input[index++];\n if ((value & 0xf800) === 0xd800) {\n throw new RangeError(\"Punycode UTF-16 encode, illegal UTF-16 value\");\n }\n if (value > 0xffff) {\n value -= 0x10000;\n output.push(String.fromCharCode(((value >>> 10) & 0x3ff) | 0xd800));\n value = 0xdc00 | (value & 0x3ff);\n }\n output.push(String.fromCharCode(value));\n }\n return output.join(\"\");\n }\n\n protected static decodeDigit(charPoint: number): number {\n return charPoint - 48 < 10\n ? charPoint - 22\n : charPoint - 65 < 26\n ? charPoint - 65\n : charPoint - 97 < 26\n ? charPoint - 97\n : Punycode.BASE;\n }\n\n protected static encodeDigit(digit: number, flag: 0 | 1): number {\n // @ts-ignore\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n\n protected static adapt(\n delta: number,\n numPoints: number,\n firstTime: boolean = false\n ): number {\n let index;\n delta = firstTime ? Math.floor(delta / Punycode.DAMP) : delta >> 1;\n delta += Math.floor(delta / numPoints);\n for (\n index = 0;\n delta > ((Punycode.BASE - Punycode.T_MIN) * Punycode.T_MAX) >> 1;\n index += Punycode.BASE\n ) {\n delta = Math.floor(delta / (Punycode.BASE - Punycode.T_MIN));\n }\n return Math.floor(\n index +\n ((Punycode.BASE - Punycode.T_MIN + 1) * delta) / (delta + Punycode.SKEW)\n );\n }\n\n protected static encodeBasic(bcp: number, flag: boolean = false): number {\n // @ts-ignore\n bcp -= (bcp - 97 < 26) << 5;\n // @ts-ignore\n return bcp + ((!flag && bcp - 65 < 26) << 5);\n }\n\n protected static decode(\n input: string,\n shouldRestoreCase: boolean = true\n ): string {\n const output = [];\n const caseFlags = [];\n const inputLength = input.length;\n let out, bias, basic, j, ic, oldIndex, w, k, digit, t, len;\n let initialN = Punycode.INITIAL_N;\n let index = 0;\n bias = Punycode.INITIAL_BIAS;\n basic = input.lastIndexOf(Punycode.DELIMITER);\n if (basic < 0) {\n basic = 0;\n }\n for (j = 0; j < basic; ++j) {\n if (shouldRestoreCase)\n caseFlags[output.length] = input.charCodeAt(j) - 65 < 26;\n if (input.charCodeAt(j) >= 0x80) {\n throw new RangeError(\"Punycode illegal input >= 0x80\");\n }\n output.push(input.charCodeAt(j));\n }\n for (ic = basic > 0 ? basic + 1 : 0; ic < inputLength; ) {\n for (oldIndex = index, w = 1, k = Punycode.BASE; ; k += Punycode.BASE) {\n if (ic >= inputLength) {\n throw RangeError(\"Punycode bad input 1\");\n }\n digit = Punycode.decodeDigit(input.charCodeAt(ic++));\n if (digit >= Punycode.BASE) {\n throw RangeError(\"Punycode bad input 2\");\n }\n if (digit > Math.floor((Punycode.MAX_INT - index) / w)) {\n throw RangeError(\"Punycode overflow 1\");\n }\n index += digit * w;\n t =\n k <= bias\n ? Punycode.T_MIN\n : k >= bias + Punycode.T_MAX\n ? Punycode.T_MAX\n : k - bias;\n if (digit < t) {\n break;\n }\n if (w > Math.floor(Punycode.MAX_INT / (Punycode.BASE - t))) {\n throw RangeError(\"Punycode overflow 2\");\n }\n w *= Punycode.BASE - t;\n }\n out = output.length + 1;\n bias = Punycode.adapt(index - oldIndex, out, oldIndex === 0);\n if (Math.floor(index / out) > Punycode.MAX_INT - initialN) {\n throw RangeError(\"Punycode overflow 3\");\n }\n initialN += Math.floor(index / out);\n index %= out;\n if (shouldRestoreCase) {\n caseFlags.splice(index, 0, input.charCodeAt(ic - 1) - 65 < 26);\n }\n output.splice(index, 0, initialN);\n index++;\n }\n if (shouldRestoreCase) {\n for (index = 0, len = output.length; index < len; index++) {\n if (caseFlags[index]) {\n output[index] = String.fromCharCode(output[index])\n .toUpperCase()\n .charCodeAt(0);\n }\n }\n }\n return Punycode.utf16encode(output);\n }\n\n protected static encode(\n input: string,\n shouldPreserveCase: boolean = false\n ): string {\n let head, base, index, max, q, k, t, ijv, caseFlags;\n if (shouldPreserveCase) {\n caseFlags = Punycode.utf16decode(input);\n }\n const inputNumbers = Punycode.utf16decode(input.toLowerCase());\n const inputLength = inputNumbers.length;\n if (shouldPreserveCase) {\n for (index = 0; index < inputLength; index++) {\n caseFlags[index] = inputNumbers[index] != caseFlags[index];\n }\n }\n const output = [];\n let initialN = Punycode.INITIAL_N;\n let delta = 0;\n let bias = Punycode.INITIAL_BIAS;\n for (index = 0; index < inputLength; ++index) {\n if (inputNumbers[index] < 0x80) {\n output.push(\n String.fromCharCode(\n caseFlags\n ? Punycode.encodeBasic(inputNumbers[index], caseFlags[index])\n : inputNumbers[index]\n )\n );\n }\n }\n head = base = output.length;\n if (base > 0) {\n output.push(Punycode.DELIMITER);\n }\n while (head < inputLength) {\n for (max = Punycode.MAX_INT, index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv >= initialN && ijv < max) max = ijv;\n }\n if (\n max - initialN >\n Math.floor((Punycode.MAX_INT - delta) / (head + 1))\n ) {\n throw RangeError(\"Punycode overflow 1\");\n }\n delta += (max - initialN) * (head + 1);\n initialN = max;\n for (index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv < initialN) {\n if (++delta > Punycode.MAX_INT) {\n throw RangeError(\"Punycode overflow 2\");\n }\n }\n if (ijv == initialN) {\n for (q = delta, k = Punycode.BASE; ; k += Punycode.BASE) {\n t =\n k <= bias\n ? Punycode.T_MIN\n : k >= bias + Punycode.T_MAX\n ? Punycode.T_MAX\n : k - bias;\n if (q < t) break;\n output.push(\n String.fromCharCode(\n Punycode.encodeDigit(t + ((q - t) % (Punycode.BASE - t)), 0)\n )\n );\n q = Math.floor((q - t) / (Punycode.BASE - t));\n }\n output.push(\n String.fromCharCode(\n Punycode.encodeDigit(\n q,\n shouldPreserveCase && caseFlags[index] ? 1 : 0\n )\n )\n );\n bias = Punycode.adapt(delta, head + 1, head == base);\n delta = 0;\n ++head;\n }\n }\n ++delta;\n ++initialN;\n }\n return output.join(\"\");\n }\n\n public static toAscii(\n domain: string,\n shouldPreserveCase: boolean = true\n ): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(\n element.match(/[^A-Za-z0-9-]/)\n ? \"xn--\" + Punycode.encode(element, shouldPreserveCase)\n : element\n );\n }\n return out.join(\".\");\n }\n\n public static toUnicode(\n domain: string,\n shouldRestoreCase: boolean = true\n ): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(\n element.match(/^xn--/)\n ? Punycode.decode(element.slice(4), shouldRestoreCase)\n : element\n );\n }\n return out.join(\".\");\n }\n}\n\nfunction unicodeToAscii(\n text: string,\n onError: string = text,\n urlEncode: boolean = true,\n skipOnValid: boolean = true\n): string {\n try {\n let result;\n if (urlEncode) {\n result = stringify({ \"\": Punycode.toAscii(text) }, undefined, \" \").trim();\n } else {\n result = Punycode.toAscii(text);\n }\n if (result === `xn--${text}` || result === `xn--${text}-`) {\n return text;\n }\n if (urlEncode && skipOnValid) {\n if (text.includes(\"@\") || text.includes(\"#\")) {\n const clean = text.replace(/@/g, \"\").replace(/#/g, \"\");\n const skip = result\n .replace(/%40/g, \"\")\n .replace(/%23/g, \"\")\n .replace(/[-.]+/g, \".\");\n console.dir({ clean, skip });\n if (skip === `xn.${clean}` || skip === `xn.${clean}-`) {\n return text;\n }\n }\n }\n return result;\n } catch {\n return onError;\n }\n}\n\nfunction asciiToUnicode(\n text: string,\n onError: string = text,\n urlDecode: boolean = true\n): string {\n try {\n if (urlDecode) {\n return Punycode.toUnicode(Object.keys(parse(text))[0]);\n } else {\n return Punycode.toUnicode(text);\n }\n } catch {\n return onError;\n }\n}\n\nexport { asciiToUnicode, unicodeToAscii };\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import { parse, stringify } from \"querystring\";\n\nabstract class Punycode {\n protected static readonly BASE = 36;\n protected static readonly DAMP = 700;\n protected static readonly DELIMITER = \"\\x2D\";\n protected static readonly INITIAL_BIAS = 72;\n protected static readonly INITIAL_N = 0x80;\n protected static readonly MAX_INT = 0x7fffffff;\n protected static readonly SKEW = 38;\n protected static readonly T_MAX = 26;\n protected static readonly T_MIN = 1;\n\n protected static utf16decode(input: string): number[] {\n const length = input.length;\n const output = [];\n let index = 0;\n let value;\n let extra;\n while (index < length) {\n value = input.charCodeAt(index++);\n if ((value & 0xf800) === 0xd800) {\n extra = input.charCodeAt(index++);\n if ((value & 0xfc00) !== 0xd800 || (extra & 0xfc00) !== 0xdc00) {\n throw new RangeError(\"Punycode UTF-16 decode, illegal UTF-16 sequence\");\n }\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n output.push(value);\n }\n return output;\n }\n protected static utf16encode(input: string[]): string {\n const length = input.length;\n const output = [];\n let index = 0;\n let value;\n while (index < length) {\n value = input[index++];\n if ((value & 0xf800) === 0xd800) {\n throw new RangeError(\"Punycode UTF-16 encode, illegal UTF-16 value\");\n }\n if (value > 0xffff) {\n value -= 0x10000;\n output.push(String.fromCharCode(((value >>> 10) & 0x3ff) | 0xd800));\n value = 0xdc00 | (value & 0x3ff);\n }\n output.push(String.fromCharCode(value));\n }\n return output.join(\"\");\n }\n\n protected static decodeDigit(charPoint: number): number {\n return charPoint - 48 < 10\n ? charPoint - 22\n : charPoint - 65 < 26\n ? charPoint - 65\n : charPoint - 97 < 26\n ? charPoint - 97\n : Punycode.BASE;\n }\n\n protected static encodeDigit(digit: number, flag: 0 | 1): number {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return digit + 22 + 75 * (digit < 26) - ((flag !== 0) << 5);\n }\n\n protected static adapt(delta: number, numPoints: number, firstTime = false): number {\n let index;\n delta = firstTime ? Math.floor(delta / Punycode.DAMP) : delta >> 1;\n delta += Math.floor(delta / numPoints);\n for (index = 0; delta > ((Punycode.BASE - Punycode.T_MIN) * Punycode.T_MAX) >> 1; index += Punycode.BASE) {\n delta = Math.floor(delta / (Punycode.BASE - Punycode.T_MIN));\n }\n return Math.floor(index + ((Punycode.BASE - Punycode.T_MIN + 1) * delta) / (delta + Punycode.SKEW));\n }\n\n protected static encodeBasic(bcp: number, flag = false): number {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n bcp -= (bcp - 97 < 26) << 5;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return bcp + ((!flag && bcp - 65 < 26) << 5);\n }\n\n protected static decode(input: string, shouldRestoreCase = true): string {\n const output = [];\n const caseFlags = [];\n const inputLength = input.length;\n let out, bias, basic, indexCharCode, ic, oldIndex, width, key, digit, track, len;\n let initialN = Punycode.INITIAL_N;\n let index = 0;\n bias = Punycode.INITIAL_BIAS;\n basic = input.lastIndexOf(Punycode.DELIMITER);\n if (basic < 0) {\n basic = 0;\n }\n for (indexCharCode = 0; indexCharCode < basic; ++indexCharCode) {\n if (shouldRestoreCase) {\n caseFlags[output.length] = input.charCodeAt(indexCharCode) - 65 < 26;\n }\n if (input.charCodeAt(indexCharCode) >= 0x80) {\n throw new RangeError(\"Punycode illegal input >= 0x80\");\n }\n output.push(input.charCodeAt(indexCharCode));\n }\n for (ic = basic > 0 ? basic + 1 : 0; ic < inputLength; ) {\n for (oldIndex = index, width = 1, key = Punycode.BASE; ; key += Punycode.BASE) {\n if (ic >= inputLength) {\n throw RangeError(\"Punycode bad input 1\");\n }\n digit = Punycode.decodeDigit(input.charCodeAt(ic++));\n if (digit >= Punycode.BASE) {\n throw RangeError(\"Punycode bad input 2\");\n }\n if (digit > Math.floor((Punycode.MAX_INT - index) / width)) {\n throw RangeError(\"Punycode overflow 1\");\n }\n index += digit * width;\n track = key <= bias ? Punycode.T_MIN : key >= bias + Punycode.T_MAX ? Punycode.T_MAX : key - bias;\n if (digit < track) {\n break;\n }\n if (width > Math.floor(Punycode.MAX_INT / (Punycode.BASE - track))) {\n throw RangeError(\"Punycode overflow 2\");\n }\n width *= Punycode.BASE - track;\n }\n out = output.length + 1;\n bias = Punycode.adapt(index - oldIndex, out, oldIndex === 0);\n if (Math.floor(index / out) > Punycode.MAX_INT - initialN) {\n throw RangeError(\"Punycode overflow 3\");\n }\n initialN += Math.floor(index / out);\n index %= out;\n if (shouldRestoreCase) {\n caseFlags.splice(index, 0, input.charCodeAt(ic - 1) - 65 < 26);\n }\n output.splice(index, 0, initialN);\n index++;\n }\n if (shouldRestoreCase) {\n for (index = 0, len = output.length; index < len; index++) {\n if (caseFlags[index]) {\n output[index] = String.fromCharCode(output[index]).toUpperCase().charCodeAt(0);\n }\n }\n }\n return Punycode.utf16encode(output);\n }\n\n protected static encode(input: string, shouldPreserveCase = false): string {\n let head, index, max, digit, key, track, ijv, caseFlags;\n if (shouldPreserveCase) {\n caseFlags = Punycode.utf16decode(input);\n }\n const inputNumbers = Punycode.utf16decode(input.toLowerCase());\n const inputLength = inputNumbers.length;\n if (shouldPreserveCase) {\n for (index = 0; index < inputLength; index++) {\n caseFlags[index] = inputNumbers[index] !== caseFlags[index];\n }\n }\n const output = [];\n let initialN = Punycode.INITIAL_N;\n let delta = 0;\n let bias = Punycode.INITIAL_BIAS;\n for (index = 0; index < inputLength; ++index) {\n if (inputNumbers[index] < 0x80) {\n output.push(\n String.fromCharCode(\n caseFlags ? Punycode.encodeBasic(inputNumbers[index], caseFlags[index]) : inputNumbers[index],\n ),\n );\n }\n }\n const base = output.length;\n head = output.length;\n if (base > 0) {\n output.push(Punycode.DELIMITER);\n }\n while (head < inputLength) {\n for (max = Punycode.MAX_INT, index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv >= initialN && ijv < max) max = ijv;\n }\n if (max - initialN > Math.floor((Punycode.MAX_INT - delta) / (head + 1))) {\n throw RangeError(\"Punycode overflow 1\");\n }\n delta += (max - initialN) * (head + 1);\n initialN = max;\n for (index = 0; index < inputLength; ++index) {\n ijv = inputNumbers[index];\n if (ijv < initialN) {\n if (++delta > Punycode.MAX_INT) {\n throw RangeError(\"Punycode overflow 2\");\n }\n }\n if (ijv === initialN) {\n for (digit = delta, key = Punycode.BASE; ; key += Punycode.BASE) {\n track = key <= bias ? Punycode.T_MIN : key >= bias + Punycode.T_MAX ? Punycode.T_MAX : key - bias;\n if (digit < track) break;\n output.push(\n String.fromCharCode(Punycode.encodeDigit(track + ((digit - track) % (Punycode.BASE - track)), 0)),\n );\n digit = Math.floor((digit - track) / (Punycode.BASE - track));\n }\n output.push(String.fromCharCode(Punycode.encodeDigit(digit, shouldPreserveCase && caseFlags[index] ? 1 : 0)));\n bias = Punycode.adapt(delta, head + 1, head === base);\n delta = 0;\n ++head;\n }\n }\n ++delta;\n ++initialN;\n }\n return output.join(\"\");\n }\n\n public static toAscii(domain: string, shouldPreserveCase = true): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(element.match(/[^A-Za-z0-9-]/) ? \"xn--\" + Punycode.encode(element, shouldPreserveCase) : element);\n }\n return out.join(\".\");\n }\n\n public static toUnicode(domain: string, shouldRestoreCase = true): string {\n const domainArray = domain.split(\".\");\n const out = [];\n for (let index = 0; index < domainArray.length; ++index) {\n const element = domainArray[index];\n out.push(element.match(/^xn--/) ? Punycode.decode(element.slice(4), shouldRestoreCase) : element);\n }\n return out.join(\".\");\n }\n}\n\n/**\n * @name unicodeToAscii\n * @description Converts unicode domain names to ASCII.\n * @param {string} [text]\n * @param {string=} [onError=text]\n * @param {boolean=} [urlEncode=true]\n * @param {boolean=} [skipOnValid=true]\n * @returns {string}\n */\nfunction unicodeToAscii(text: string, onError: string = text, urlEncode = true, skipOnValid = true): string {\n try {\n let result;\n if (urlEncode) {\n result = stringify({ \"\": Punycode.toAscii(text) }, undefined, \" \").trim();\n } else {\n result = Punycode.toAscii(text);\n }\n if (result === `xn--${text}` || result === `xn--${text}-`) {\n return text;\n }\n if (urlEncode && skipOnValid) {\n if (text.includes(\"@\") || text.includes(\"#\")) {\n const clean = text.replace(/@/g, \"\").replace(/#/g, \"\");\n const skip = result.replace(/%40/g, \"\").replace(/%23/g, \"\").replace(/[-.]+/g, \".\");\n if (skip === `xn.${clean}` || skip === `xn.${clean}-`) {\n return text;\n }\n }\n }\n return result;\n } catch {\n return onError;\n }\n}\n\n/**\n * @name asciiToUnicode\n * @description Converts an ASCII domain name to Unicode.\n * @param {string} [text]\n * @param {string=} [onError=text]\n * @param {boolean} [urlDecode=true]\n * @returns {string}\n */\nfunction asciiToUnicode(text: string, onError: string = text, urlDecode = true): string {\n try {\n if (urlDecode) {\n return Punycode.toUnicode(Object.keys(parse(text))[0]);\n } else {\n return Punycode.toUnicode(text);\n }\n } catch {\n return onError;\n }\n}\n\nexport { asciiToUnicode, unicodeToAscii };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["parse", "stringify", "_Punycode", "input", "length", "output", "index", "value", "extra", "charPoint", "digit", "flag", "delta", "numPoints", "firstTime", "bcp", "shouldRestoreCase", "caseFlags", "inputLength", "out", "bias", "basic", "indexCharCode", "ic", "oldIndex", "width", "key", "track", "len", "initialN", "shouldPreserveCase", "head", "max", "ijv", "inputNumbers", "base", "domain", "domainArray", "element", "Punycode", "unicodeToAscii", "text", "onError", "urlEncode", "skipOnValid", "result", "clean", "skip", "asciiToUnicode", "urlDecode"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
"author": "Anton
|
|
2
|
+
"author": "Anton Trofymenko",
|
|
3
3
|
"bugs": {
|
|
4
4
|
"url": "https://github.com/r37r0m0d3l/punycoder/issues"
|
|
5
5
|
},
|
|
6
6
|
"contributors": [
|
|
7
7
|
{
|
|
8
8
|
"email": "r37r0m0d3l@protonmail.com",
|
|
9
|
-
"name": "Anton
|
|
9
|
+
"name": "Anton Trofymenko"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
|
-
"description": "
|
|
12
|
+
"description": "Punycode converter.",
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@types/node": "
|
|
15
|
-
"@typescript-eslint/eslint-plugin": "
|
|
16
|
-
"@typescript-eslint/parser": "
|
|
17
|
-
"esbuild": "0.
|
|
18
|
-
"eslint": "
|
|
19
|
-
"eslint-config-prettier": "8.
|
|
20
|
-
"eslint-config-standard": "
|
|
21
|
-
"eslint-plugin-import": "2.
|
|
22
|
-
"eslint-plugin-jsdoc": "
|
|
14
|
+
"@types/node": "18.15.11",
|
|
15
|
+
"@typescript-eslint/eslint-plugin": "5.58.0",
|
|
16
|
+
"@typescript-eslint/parser": "5.58.0",
|
|
17
|
+
"esbuild": "0.17.16",
|
|
18
|
+
"eslint": "8.38.0",
|
|
19
|
+
"eslint-config-prettier": "8.8.0",
|
|
20
|
+
"eslint-config-standard": "17.0.0",
|
|
21
|
+
"eslint-plugin-import": "2.27.5",
|
|
22
|
+
"eslint-plugin-jsdoc": "41.1.1",
|
|
23
23
|
"eslint-plugin-node": "11.1.0",
|
|
24
|
-
"eslint-plugin-prettier": "4.
|
|
24
|
+
"eslint-plugin-prettier": "4.2.1",
|
|
25
25
|
"eslint-plugin-standard": "5.0.0",
|
|
26
|
-
"jest": "
|
|
27
|
-
"prettier": "2.
|
|
28
|
-
"typescript": "
|
|
26
|
+
"jest": "29.5.0",
|
|
27
|
+
"prettier": "2.8.7",
|
|
28
|
+
"typescript": "5.0.4"
|
|
29
29
|
},
|
|
30
30
|
"directories": {
|
|
31
31
|
"test": "test"
|
|
32
32
|
},
|
|
33
|
-
"engines": {
|
|
34
|
-
"node": ">= 12.20"
|
|
35
|
-
},
|
|
36
33
|
"exports": {
|
|
37
34
|
".": {
|
|
38
35
|
"browser": {
|
|
@@ -57,20 +54,24 @@
|
|
|
57
54
|
"dist/index.js.map"
|
|
58
55
|
],
|
|
59
56
|
"homepage": "https://github.com/r37r0m0d3l/punycoder",
|
|
60
|
-
"jest": {
|
|
61
|
-
"verbose": true
|
|
62
|
-
},
|
|
63
57
|
"keywords": [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
58
|
+
"ASCII",
|
|
59
|
+
"dns",
|
|
60
|
+
"domain",
|
|
61
|
+
"encoding",
|
|
62
|
+
"idn",
|
|
63
|
+
"idna",
|
|
64
|
+
"punycode",
|
|
65
|
+
"punycode",
|
|
66
|
+
"transcode",
|
|
67
|
+
"unicode",
|
|
68
|
+
"unicode",
|
|
69
|
+
"url"
|
|
68
70
|
],
|
|
69
71
|
"license": "MIT",
|
|
70
72
|
"main": "dist/index.cjs",
|
|
71
73
|
"module": "dist/index.js",
|
|
72
74
|
"name": "puny-coder",
|
|
73
|
-
"packageManager": "npm@6",
|
|
74
75
|
"private": false,
|
|
75
76
|
"readmeFilename": "README.md",
|
|
76
77
|
"repository": {
|
|
@@ -88,5 +89,5 @@
|
|
|
88
89
|
},
|
|
89
90
|
"type": "module",
|
|
90
91
|
"types": "dist/index.d.ts",
|
|
91
|
-
"version": "1.0.
|
|
92
|
+
"version": "1.0.1"
|
|
92
93
|
}
|