puny-coder 1.0.0 → 2.0.0
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 +56 -34
- package/dist/index.d.ts +18 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -7
- package/package.json +33 -50
- package/CHANGELOG.md +0 -5
- package/dist/index.cjs +0 -1
- package/dist/index.cjs.map +0 -7
package/README.md
CHANGED
|
@@ -1,35 +1,29 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Puny-coder
|
|
2
2
|
|
|
3
3
|
Punycode converter.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Representation of Unicode with the limited ASCII character subset.
|
|
6
|
+
|
|
7
|
+
Only Unicode and ASCII and vice versa converting.
|
|
8
|
+
|
|
9
|
+
## 🚀 Installation
|
|
6
10
|
|
|
7
11
|
```sh
|
|
8
12
|
npm install puny-coder
|
|
9
13
|
```
|
|
10
14
|
|
|
11
|
-
##
|
|
15
|
+
## 🏗️ Examples
|
|
12
16
|
|
|
13
17
|
<!-- eslint-disable no-unused-vars -->
|
|
14
18
|
|
|
15
|
-
```js
|
|
16
|
-
const {
|
|
17
|
-
asciiToUnicode, unicodeToAscii,
|
|
18
|
-
} = require("puny-coder");
|
|
19
|
-
```
|
|
20
|
-
|
|
21
19
|
```typescript
|
|
22
|
-
import {
|
|
23
|
-
asciiToUnicode, unicodeToAscii,
|
|
24
|
-
} from "puny-coder";
|
|
20
|
+
import { asciiToUnicode, unicodeToAscii } from "puny-coder";
|
|
25
21
|
```
|
|
26
22
|
|
|
27
23
|
### asciiToUnicode(text, onError, urlDecode)
|
|
28
24
|
|
|
29
25
|
```typescript
|
|
30
|
-
import {
|
|
31
|
-
asciiToUnicode,
|
|
32
|
-
} from "puny-coder";
|
|
26
|
+
import { asciiToUnicode } from "puny-coder";
|
|
33
27
|
|
|
34
28
|
declare function asciiToUnicode(
|
|
35
29
|
text: string,
|
|
@@ -38,18 +32,27 @@ declare function asciiToUnicode(
|
|
|
38
32
|
): string;
|
|
39
33
|
```
|
|
40
34
|
|
|
41
|
-
| Parameter | Type
|
|
42
|
-
|
|
43
|
-
| `text` | `string`
|
|
44
|
-
| `onError` | `string`
|
|
45
|
-
| `urlDecode` | `boolean`
|
|
35
|
+
| Parameter | Type | Description |
|
|
36
|
+
|:------------|:----------|:----------------------------------------|
|
|
37
|
+
| `text` | `string` | **Required**. Size in bytes. |
|
|
38
|
+
| `onError` | `string` | String that would be returned on error. |
|
|
39
|
+
| `urlDecode` | `boolean` | Additional decode URL. |
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { asciiToUnicode } from 'puny-coder';
|
|
43
|
+
|
|
44
|
+
asciiToUnicode("xn--%2C%20!-5cdkcjkOy7esao5p"); // "Здравей, свят!"
|
|
45
|
+
asciiToUnicode("xn--Ahoj%2C%20svte!-nsb"); // "Ahoj, světe!"
|
|
46
|
+
asciiToUnicode("xn--mxacd"); // "αβγ"
|
|
47
|
+
asciiToUnicode("xn--22cdfh1b8fsa"); // "ยจฆฟคฏข"
|
|
48
|
+
asciiToUnicode("xn--hq1bm8jm9l"); // "도메인"
|
|
49
|
+
asciiToUnicode("xn--eckwd4c7cu47r2wf"); // "ドメイン名例"
|
|
50
|
+
```
|
|
46
51
|
|
|
47
52
|
### asciiToUnicode(text, onError, urlDecode)
|
|
48
53
|
|
|
49
54
|
```typescript
|
|
50
|
-
import {
|
|
51
|
-
unicodeToAscii,
|
|
52
|
-
} from "puny-coder";
|
|
55
|
+
import { unicodeToAscii } from "puny-coder";
|
|
53
56
|
|
|
54
57
|
declare function unicodeToAscii(
|
|
55
58
|
text: string,
|
|
@@ -59,20 +62,39 @@ declare function unicodeToAscii(
|
|
|
59
62
|
): string;
|
|
60
63
|
```
|
|
61
64
|
|
|
62
|
-
| Parameter | Type
|
|
63
|
-
|
|
64
|
-
| `text` | `string`
|
|
65
|
-
| `onError` | `string`
|
|
66
|
-
| `urlEncode` | `boolean`
|
|
67
|
-
| `skipOnValid` | `boolean`
|
|
65
|
+
| Parameter | Type | Description |
|
|
66
|
+
|:--------------|:----------|:----------------------------------------|
|
|
67
|
+
| `text` | `string` | **Required**. Size in bytes. |
|
|
68
|
+
| `onError` | `string` | String that would be returned on error. |
|
|
69
|
+
| `urlEncode` | `boolean` | Additional encode URL. |
|
|
70
|
+
| `skipOnValid` | `boolean` | Skip conversion on valid input. |
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { unicodeToAscii } from 'puny-coder';
|
|
74
|
+
|
|
75
|
+
unicodeToAscii("Здравей, свят!"); // "xn--%2C%20!-5cdkcjkOy7esao5p"
|
|
76
|
+
unicodeToAscii("Ahoj, světe!"); // "xn--Ahoj%2C%20svte!-nsb"
|
|
77
|
+
unicodeToAscii("αβγ"); // "xn--mxacd"
|
|
78
|
+
unicodeToAscii("ยจฆฟคฏข"); // "xn--22cdfh1b8fsa"
|
|
79
|
+
unicodeToAscii("도메인"); // "xn--hq1bm8jm9l"
|
|
80
|
+
unicodeToAscii("ドメイン名例"); // "xn--eckwd4c7cu47r2wf"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 📄 License
|
|
84
|
+
|
|
85
|
+
[MIT](https://choosealicense.com/licenses/mit/)
|
|
86
|
+
|
|
68
87
|
|
|
69
|
-
## See also
|
|
88
|
+
[//]: # (## See also)
|
|
70
89
|
|
|
71
|
-
[
|
|
90
|
+
[//]: # ()
|
|
91
|
+
[//]: # ([💾 My other projects](https://r37r0m0d3l.icu/open_source_map))
|
|
72
92
|
|
|
73
|
-
|
|
93
|
+
[//]: # ()
|
|
94
|
+
[//]: # (<img alt="Open Source" src="https://raw.githubusercontent.com/r37r0m0d3l/r37r0m0d3l/master/osmap.svg?sanitize=true" width="960" height="520" style="display:block;height:auto;margin-left:auto;margin-right:auto;min-height:520px;min-width:960px;width:100%;">)
|
|
74
95
|
|
|
75
|
-
|
|
96
|
+
[//]: # ()
|
|
97
|
+
[//]: # (<!-- Badges -->)
|
|
76
98
|
|
|
77
99
|
[npm-version-img]: https://badgen.net/npm/v/punycoder?&icon=npm&label=npm&color=DD3636&v=1.0.0
|
|
78
100
|
[npm-version-url]: https://npmjs.com/package/punycoder
|
|
@@ -111,4 +133,4 @@ declare function unicodeToAscii(
|
|
|
111
133
|
[dependabot-url]: https://github.com/r37r0m0d3l/punycoder
|
|
112
134
|
|
|
113
135
|
[codefactor-img]: https://www.codefactor.io/repository/github/r37r0m0d3l/punycoder/badge?&style=flat-square&v=1.0.0
|
|
114
|
-
[codefactor-url]: https://www.codefactor.io/repository/github/r37r0m0d3l/punycoder
|
|
136
|
+
[codefactor-url]: https://www.codefactor.io/repository/github/r37r0m0d3l/punycoder
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
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;
|
|
20
|
+
|
|
3
21
|
export { asciiToUnicode, unicodeToAscii };
|
package/dist/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var e=class e{static utf16decode(r){let c=r.length,n=[],t=0,o,i;for(;t<c;){if(o=r.charCodeAt(t++),(o&63488)===55296){if(i=r.charCodeAt(t++),(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(r){let c=r.length,n=[],t=0,o;for(;t<c;){if(o=r[t++],(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(r){return r-48<10?r-22:r-65<26?r-65:r-97<26?r-97:e.BASE}static encodeDigit(r,c){return r+22+75*(r<26)-((c!==0)<<5)}static adapt(r,c,n=false){let t;for(r=n?Math.floor(r/e.DAMP):r>>1,r+=Math.floor(r/c),t=0;r>(e.BASE-e.T_MIN)*e.T_MAX>>1;t+=e.BASE)r=Math.floor(r/(e.BASE-e.T_MIN));return Math.floor(t+(e.BASE-e.T_MIN+1)*r/(r+e.SKEW))}static encodeBasic(r,c=false){return r-=(r-97<26)<<5,r+((!c&&r-65<26)<<5)}static decode(r,c=true){let n=[],t=[],o=r.length,i,A,s,d,u,p,I,l,g,h,M,T=e.INITIAL_N,a=0;for(A=e.INITIAL_BIAS,s=r.lastIndexOf(e.DELIMITER),s<0&&(s=0),d=0;d<s;++d){if(c&&(t[n.length]=r.charCodeAt(d)-65<26),r.charCodeAt(d)>=128)throw new RangeError("Punycode illegal input >= 0x80");n.push(r.charCodeAt(d));}for(u=s>0?s+1:0;u<o;){for(p=a,I=1,l=e.BASE;;l+=e.BASE){if(u>=o)throw RangeError("Punycode bad input 1");if(g=e.decodeDigit(r.charCodeAt(u++)),g>=e.BASE)throw RangeError("Punycode bad input 2");if(g>Math.floor((e.MAX_INT-a)/I))throw RangeError("Punycode overflow 1");if(a+=g*I,h=l<=A?e.T_MIN:l>=A+e.T_MAX?e.T_MAX:l-A,g<h)break;if(I>Math.floor(e.MAX_INT/(e.BASE-h)))throw RangeError("Punycode overflow 2");I*=e.BASE-h;}if(i=n.length+1,A=e.adapt(a-p,i,p===0),Math.floor(a/i)>e.MAX_INT-T)throw RangeError("Punycode overflow 3");T+=Math.floor(a/i),a%=i,c&&t.splice(a,0,r.charCodeAt(u-1)-65<26),n.splice(a,0,T),a++;}if(c)for(a=0,M=n.length;a<M;a++)t[a]&&(n[a]=String.fromCharCode(n[a]).toUpperCase().charCodeAt(0));return e.utf16encode(n)}static encode(r,c=false){let n,t,o,i,A,s,d,u;c&&(u=e.utf16decode(r));let p=e.utf16decode(r.toLowerCase()),I=p.length;if(c)for(t=0;t<I;t++)u[t]=p[t]!==u[t];let l=[],g=e.INITIAL_N,h=0,M=e.INITIAL_BIAS;for(t=0;t<I;++t)p[t]<128&&l.push(String.fromCharCode(u?e.encodeBasic(p[t],u[t]):p[t]));let T=l.length;for(n=l.length,T>0&&l.push(e.DELIMITER);n<I;){for(o=e.MAX_INT,t=0;t<I;++t)d=p[t],d>=g&&d<o&&(o=d);if(o-g>Math.floor((e.MAX_INT-h)/(n+1)))throw RangeError("Punycode overflow 1");for(h+=(o-g)*(n+1),g=o,t=0;t<I;++t){if(d=p[t],d<g&&++h>e.MAX_INT)throw RangeError("Punycode overflow 2");if(d===g){for(i=h,A=e.BASE;s=A<=M?e.T_MIN:A>=M+e.T_MAX?e.T_MAX:A-M,!(i<s);A+=e.BASE)l.push(String.fromCharCode(e.encodeDigit(s+(i-s)%(e.BASE-s),0))),i=Math.floor((i-s)/(e.BASE-s));l.push(String.fromCharCode(e.encodeDigit(i,c&&u[t]?1:0))),M=e.adapt(h,n+1,n===T),h=0,++n;}}++h,++g;}return l.join("")}static toAscii(r,c=true){let n=r.split("."),t=[];for(let o=0;o<n.length;++o){let i=n[o];t.push(i.match(/[^A-Za-z0-9-]/)?"xn--"+e.encode(i,c):i);}return t.join(".")}static toUnicode(r,c=true){let n=r.split("."),t=[];for(let o=0;o<n.length;++o){let i=n[o];t.push(i.match(/^xn--/)?e.decode(i.slice(4),c):i);}return t.join(".")}};e.BASE=36,e.DAMP=700,e.DELIMITER="-",e.INITIAL_BIAS=72,e.INITIAL_N=128,e.MAX_INT=2147483647,e.SKEW=38,e.T_MAX=26,e.T_MIN=1;var E=e;function x(f,r=f,c=true,n=true){try{let t;if(c?t=encodeURIComponent(E.toAscii(f)):t=E.toAscii(f),t===`xn--${f}`||t===`xn--${f}-`)return f;if(c&&n&&(f.includes("@")||f.includes("#"))){let o=f.replace(/@/g,"").replace(/#/g,""),i=t.replace(/%40/g,"").replace(/%23/g,"").replace(/[-.]+/g,".");if(i===`xn.${o}`||i===`xn.${o}-`)return f}return t}catch(t){return r}}function m(f,r=f,c=true){try{if(c){let n=new URLSearchParams(f),t="";for(let[o]of n){t=o;break}return E.toUnicode(t)}else return E.toUnicode(f)}catch(n){return r}}export{m as asciiToUnicode,x as unicodeToAscii};//# sourceMappingURL=index.js.map
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 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": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["_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","e","asciiToUnicode","urlDecode","params","firstKey"],"mappings":"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","file":"index.js","sourcesContent":["\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 // Encode using browser-compatible API to match previous behavior (no leading key or '=')\n result = encodeURIComponent(Punycode.toAscii(text));\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 const params = new URLSearchParams(text);\n let firstKey = \"\";\n for (const [key] of params) {\n firstKey = key;\n break;\n }\n return Punycode.toUnicode(firstKey);\n } else {\n return Punycode.toUnicode(text);\n }\n } catch {\n return onError;\n }\n}\n\nexport { asciiToUnicode, unicodeToAscii };\n"]}
|
package/package.json
CHANGED
|
@@ -1,92 +1,75 @@
|
|
|
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
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"esbuild": "0.13.3",
|
|
18
|
-
"eslint": "7.32.0",
|
|
19
|
-
"eslint-config-prettier": "8.3.0",
|
|
20
|
-
"eslint-config-standard": "16.0.3",
|
|
21
|
-
"eslint-plugin-import": "2.24.2",
|
|
22
|
-
"eslint-plugin-jsdoc": "36.1.0",
|
|
23
|
-
"eslint-plugin-node": "11.1.0",
|
|
24
|
-
"eslint-plugin-prettier": "4.0.0",
|
|
25
|
-
"eslint-plugin-standard": "5.0.0",
|
|
26
|
-
"jest": "27.2.4",
|
|
27
|
-
"prettier": "2.4.1",
|
|
28
|
-
"typescript": "4.4.3"
|
|
29
|
-
},
|
|
30
|
-
"directories": {
|
|
31
|
-
"test": "test"
|
|
14
|
+
"@types/node": "^25.2.0",
|
|
15
|
+
"tsup": "^8.5.1",
|
|
16
|
+
"typescript": "^5.9.3"
|
|
32
17
|
},
|
|
33
18
|
"engines": {
|
|
34
|
-
"node": ">=
|
|
19
|
+
"node": ">=22.18.0",
|
|
20
|
+
"npm": ">=8.12.0"
|
|
35
21
|
},
|
|
22
|
+
"engineStrict": true,
|
|
36
23
|
"exports": {
|
|
37
24
|
".": {
|
|
38
25
|
"browser": {
|
|
39
|
-
"import": "./dist/index.js"
|
|
40
|
-
"require": "./dist/index.cjs"
|
|
26
|
+
"import": "./dist/index.js"
|
|
41
27
|
},
|
|
28
|
+
"import": "./dist/index.js",
|
|
42
29
|
"node": {
|
|
43
|
-
"import": "./dist/index.js"
|
|
44
|
-
"require": "./dist/index.cjs"
|
|
30
|
+
"import": "./dist/index.js"
|
|
45
31
|
},
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"default": "./dist/index.js",
|
|
49
|
-
"types": "./dist/index.d.ts"
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"default": "./dist/index.js"
|
|
50
34
|
}
|
|
51
35
|
},
|
|
52
36
|
"files": [
|
|
53
|
-
"dist/index.cjs",
|
|
54
|
-
"dist/index.cjs.map",
|
|
55
37
|
"dist/index.d.ts",
|
|
56
38
|
"dist/index.js",
|
|
57
39
|
"dist/index.js.map"
|
|
58
40
|
],
|
|
59
41
|
"homepage": "https://github.com/r37r0m0d3l/punycoder",
|
|
60
|
-
"jest": {
|
|
61
|
-
"verbose": true
|
|
62
|
-
},
|
|
63
42
|
"keywords": [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
43
|
+
"ASCII",
|
|
44
|
+
"dns",
|
|
45
|
+
"domain",
|
|
46
|
+
"encoding",
|
|
47
|
+
"idn",
|
|
48
|
+
"idna",
|
|
49
|
+
"punycode",
|
|
50
|
+
"punycode",
|
|
51
|
+
"transcode",
|
|
52
|
+
"unicode",
|
|
53
|
+
"unicode",
|
|
54
|
+
"url"
|
|
68
55
|
],
|
|
69
56
|
"license": "MIT",
|
|
70
|
-
"main": "dist/index.
|
|
57
|
+
"main": "dist/index.js",
|
|
71
58
|
"module": "dist/index.js",
|
|
72
59
|
"name": "puny-coder",
|
|
73
|
-
"packageManager": "npm@6",
|
|
74
60
|
"private": false,
|
|
75
|
-
"readmeFilename": "README.md",
|
|
76
61
|
"repository": {
|
|
77
62
|
"type": "git",
|
|
78
63
|
"url": "git+https://github.com/r37r0m0d3l/punycoder.git"
|
|
79
64
|
},
|
|
80
65
|
"scripts": {
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"build:dev": "node ./build.cjs -- --minify=false --sourcemap=true",
|
|
87
|
-
"build:prod": "node ./build.cjs -- --minify=true --sourcemap=true"
|
|
66
|
+
"build": "tsup src/index.ts --format esm --dts --sourcemap --clean --minify --treeshake",
|
|
67
|
+
"dev": "tsup src/index.ts --format esm --watch --dts",
|
|
68
|
+
"package:upgrade": "npx npm-check --update",
|
|
69
|
+
"prepublishOnly": "npm run build",
|
|
70
|
+
"test": "node --test"
|
|
88
71
|
},
|
|
89
72
|
"type": "module",
|
|
90
73
|
"types": "dist/index.d.ts",
|
|
91
|
-
"version": "
|
|
74
|
+
"version": "2.0.0"
|
|
92
75
|
}
|
package/CHANGELOG.md
DELETED
package/dist/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var S=Object.create;var x=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var m=i=>x(i,"__esModule",{value:!0});var y=(i,e)=>{m(i);for(var n in e)x(i,n,{get:e[n],enumerable:!0})},X=(i,e,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of w(e))!C.call(i,o)&&o!=="default"&&x(i,o,{get:()=>e[o],enumerable:!(n=N(e,o))||n.enumerable});return i},L=i=>X(m(x(i!=null?S(B(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);y(exports,{asciiToUnicode:()=>R,unicodeToAscii:()=>D});var b=L(require("querystring")),r=class{static utf16decode(e){let n=[],o=0,c=e.length,t,a;for(;o<c;){if(t=e.charCodeAt(o++),(t&63488)==55296){if(a=e.charCodeAt(o++),(t&64512)!=55296||(a&64512)!=56320)throw new RangeError("Punycode UTF-16 decode, illegal UTF-16 sequence");t=((t&1023)<<10)+(a&1023)+65536}n.push(t)}return n}static utf16encode(e){let n=[],o=0,c=e.length,t;for(;o<c;){if(t=e[o++],(t&63488)==55296)throw new RangeError("Punycode UTF-16 encode, illegal UTF-16 value");t>65535&&(t-=65536,n.push(String.fromCharCode(t>>>10&1023|55296)),t=56320|t&1023),n.push(String.fromCharCode(t))}return n.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,n){return e+22+75*(e<26)-((n!=0)<<5)}static adapt(e,n,o=!1){let c;for(e=o?Math.floor(e/r.DAMP):e>>1,e+=Math.floor(e/n),c=0;e>(r.BASE-r.T_MIN)*r.T_MAX>>1;c+=r.BASE)e=Math.floor(e/(r.BASE-r.T_MIN));return Math.floor(c+(r.BASE-r.T_MIN+1)*e/(e+r.SKEW))}static encodeBasic(e,n=!1){return e-=(e-97<26)<<5,e+((!n&&e-65<26)<<5)}static decode(e,n=!0){let o=[],c=[],t=e.length,a,g,h,l,d,M,u,I,A,p,T,E=r.INITIAL_N,f=0;for(g=r.INITIAL_BIAS,h=e.lastIndexOf(r.DELIMITER),h<0&&(h=0),l=0;l<h;++l){if(n&&(c[o.length]=e.charCodeAt(l)-65<26),e.charCodeAt(l)>=128)throw new RangeError("Punycode illegal input >= 0x80");o.push(e.charCodeAt(l))}for(d=h>0?h+1:0;d<t;){for(M=f,u=1,I=r.BASE;;I+=r.BASE){if(d>=t)throw RangeError("Punycode bad input 1");if(A=r.decodeDigit(e.charCodeAt(d++)),A>=r.BASE)throw RangeError("Punycode bad input 2");if(A>Math.floor((r.MAX_INT-f)/u))throw RangeError("Punycode overflow 1");if(f+=A*u,p=I<=g?r.T_MIN:I>=g+r.T_MAX?r.T_MAX:I-g,A<p)break;if(u>Math.floor(r.MAX_INT/(r.BASE-p)))throw RangeError("Punycode overflow 2");u*=r.BASE-p}if(a=o.length+1,g=r.adapt(f-M,a,M===0),Math.floor(f/a)>r.MAX_INT-E)throw RangeError("Punycode overflow 3");E+=Math.floor(f/a),f%=a,n&&c.splice(f,0,e.charCodeAt(d-1)-65<26),o.splice(f,0,E),f++}if(n)for(f=0,T=o.length;f<T;f++)c[f]&&(o[f]=String.fromCharCode(o[f]).toUpperCase().charCodeAt(0));return r.utf16encode(o)}static encode(e,n=!1){let o,c,t,a,g,h,l,d,M;n&&(M=r.utf16decode(e));let u=r.utf16decode(e.toLowerCase()),I=u.length;if(n)for(t=0;t<I;t++)M[t]=u[t]!=M[t];let A=[],p=r.INITIAL_N,T=0,E=r.INITIAL_BIAS;for(t=0;t<I;++t)u[t]<128&&A.push(String.fromCharCode(M?r.encodeBasic(u[t],M[t]):u[t]));for(o=c=A.length,c>0&&A.push(r.DELIMITER);o<I;){for(a=r.MAX_INT,t=0;t<I;++t)d=u[t],d>=p&&d<a&&(a=d);if(a-p>Math.floor((r.MAX_INT-T)/(o+1)))throw RangeError("Punycode overflow 1");for(T+=(a-p)*(o+1),p=a,t=0;t<I;++t){if(d=u[t],d<p&&++T>r.MAX_INT)throw RangeError("Punycode overflow 2");if(d==p){for(g=T,h=r.BASE;l=h<=E?r.T_MIN:h>=E+r.T_MAX?r.T_MAX:h-E,!(g<l);h+=r.BASE)A.push(String.fromCharCode(r.encodeDigit(l+(g-l)%(r.BASE-l),0))),g=Math.floor((g-l)/(r.BASE-l));A.push(String.fromCharCode(r.encodeDigit(g,n&&M[t]?1:0))),E=r.adapt(T,o+1,o==c),T=0,++o}}++T,++p}return A.join("")}static toAscii(e,n=!0){let o=e.split("."),c=[];for(let t=0;t<o.length;++t){let a=o[t];c.push(a.match(/[^A-Za-z0-9-]/)?"xn--"+r.encode(a,n):a)}return c.join(".")}static toUnicode(e,n=!0){let o=e.split("."),c=[];for(let t=0;t<o.length;++t){let a=o[t];c.push(a.match(/^xn--/)?r.decode(a.slice(4),n):a)}return c.join(".")}},s=r;s.INITIAL_N=128,s.INITIAL_BIAS=72,s.DELIMITER="-",s.BASE=36,s.DAMP=700,s.T_MIN=1,s.T_MAX=26,s.SKEW=38,s.MAX_INT=2147483647;function D(i,e=i,n=!0,o=!0){try{let c;if(n?c=(0,b.stringify)({"":s.toAscii(i)},void 0," ").trim():c=s.toAscii(i),c===`xn--${i}`||c===`xn--${i}-`)return i;if(n&&o&&(i.includes("@")||i.includes("#"))){let t=i.replace(/@/g,"").replace(/#/g,""),a=c.replace(/%40/g,"").replace(/%23/g,"").replace(/[-.]+/g,".");if(console.dir({clean:t,skip:a}),a===`xn.${t}`||a===`xn.${t}-`)return i}return c}catch{return e}}function R(i,e=i,n=!0){try{return n?s.toUnicode(Object.keys((0,b.parse)(i))[0]):s.toUnicode(i)}catch{return e}}0&&(module.exports={asciiToUnicode,unicodeToAscii});
|
package/dist/index.cjs.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 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": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|