@wordpress/url 3.2.3 → 3.4.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/CHANGELOG.md +8 -0
- package/LICENSE.md +1 -1
- package/README.md +14 -0
- package/build/add-query-args.js +4 -1
- package/build/add-query-args.js.map +1 -1
- package/build/filter-url-for-display.js +2 -1
- package/build/filter-url-for-display.js.map +1 -1
- package/build/get-query-args.js +2 -2
- package/build/get-query-args.js.map +1 -1
- package/build/index.js +54 -46
- package/build/index.js.map +1 -1
- package/build/normalize-path.js +34 -0
- package/build/normalize-path.js.map +1 -0
- package/build/remove-query-args.js +6 -1
- package/build/remove-query-args.js.map +1 -1
- package/build-module/add-query-args.js +4 -1
- package/build-module/add-query-args.js.map +1 -1
- package/build-module/filter-url-for-display.js +2 -1
- package/build-module/filter-url-for-display.js.map +1 -1
- package/build-module/get-query-args.js +2 -2
- package/build-module/get-query-args.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/normalize-path.js +27 -0
- package/build-module/normalize-path.js.map +1 -0
- package/build-module/remove-query-args.js +6 -1
- package/build-module/remove-query-args.js.map +1 -1
- package/build-types/index.d.ts +1 -0
- package/build-types/normalize-path.d.ts +11 -0
- package/build-types/normalize-path.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/index.js +1 -0
- package/src/normalize-path.js +34 -0
- package/src/test/fixtures/wpt-data.json +1 -292
- package/src/test/index.js +24 -0
- package/src/test/index.native.js +12 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -17,7 +17,7 @@ import { buildQueryString } from './build-query-string';
|
|
|
17
17
|
* @return {string} Updated URL.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
export function removeQueryArgs(url
|
|
20
|
+
export function removeQueryArgs(url) {
|
|
21
21
|
const queryStringIndex = url.indexOf('?');
|
|
22
22
|
|
|
23
23
|
if (queryStringIndex === -1) {
|
|
@@ -26,6 +26,11 @@ export function removeQueryArgs(url, ...args) {
|
|
|
26
26
|
|
|
27
27
|
const query = getQueryArgs(url);
|
|
28
28
|
const baseURL = url.substr(0, queryStringIndex);
|
|
29
|
+
|
|
30
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
31
|
+
args[_key - 1] = arguments[_key];
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
args.forEach(arg => delete query[arg]);
|
|
30
35
|
const queryString = buildQueryString(query);
|
|
31
36
|
return queryString ? baseURL + '?' + queryString : baseURL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/url/src/remove-query-args.js"],"names":["getQueryArgs","buildQueryString","removeQueryArgs","url","
|
|
1
|
+
{"version":3,"sources":["@wordpress/url/src/remove-query-args.js"],"names":["getQueryArgs","buildQueryString","removeQueryArgs","url","queryStringIndex","indexOf","query","baseURL","substr","args","forEach","arg","queryString"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAT,QAA6B,kBAA7B;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAA0BC,GAA1B,EAAyC;AAC/C,QAAMC,gBAAgB,GAAGD,GAAG,CAACE,OAAJ,CAAa,GAAb,CAAzB;;AACA,MAAKD,gBAAgB,KAAK,CAAC,CAA3B,EAA+B;AAC9B,WAAOD,GAAP;AACA;;AAED,QAAMG,KAAK,GAAGN,YAAY,CAAEG,GAAF,CAA1B;AACA,QAAMI,OAAO,GAAGJ,GAAG,CAACK,MAAJ,CAAY,CAAZ,EAAeJ,gBAAf,CAAhB;;AAP+C,oCAAPK,IAAO;AAAPA,IAAAA,IAAO;AAAA;;AAQ/CA,EAAAA,IAAI,CAACC,OAAL,CAAgBC,GAAF,IAAW,OAAOL,KAAK,CAAEK,GAAF,CAArC;AACA,QAAMC,WAAW,GAAGX,gBAAgB,CAAEK,KAAF,CAApC;AACA,SAAOM,WAAW,GAAGL,OAAO,GAAG,GAAV,GAAgBK,WAAnB,GAAiCL,OAAnD;AACA","sourcesContent":["/**\n * Internal dependencies\n */\nimport { getQueryArgs } from './get-query-args';\nimport { buildQueryString } from './build-query-string';\n\n/**\n * Removes arguments from the query string of the url\n *\n * @param {string} url URL.\n * @param {...string} args Query Args.\n *\n * @example\n * ```js\n * const newUrl = removeQueryArgs( 'https://wordpress.org?foo=bar&bar=baz&baz=foobar', 'foo', 'bar' ); // https://wordpress.org?baz=foobar\n * ```\n *\n * @return {string} Updated URL.\n */\nexport function removeQueryArgs( url, ...args ) {\n\tconst queryStringIndex = url.indexOf( '?' );\n\tif ( queryStringIndex === -1 ) {\n\t\treturn url;\n\t}\n\n\tconst query = getQueryArgs( url );\n\tconst baseURL = url.substr( 0, queryStringIndex );\n\targs.forEach( ( arg ) => delete query[ arg ] );\n\tconst queryString = buildQueryString( query );\n\treturn queryString ? baseURL + '?' + queryString : baseURL;\n}\n"]}
|
package/build-types/index.d.ts
CHANGED
|
@@ -23,4 +23,5 @@ export { safeDecodeURIComponent } from "./safe-decode-uri-component";
|
|
|
23
23
|
export { filterURLForDisplay } from "./filter-url-for-display";
|
|
24
24
|
export { cleanForSlug } from "./clean-for-slug";
|
|
25
25
|
export { getFilename } from "./get-filename";
|
|
26
|
+
export { normalizePath } from "./normalize-path";
|
|
26
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a path, returns a normalized path where equal query parameter values
|
|
3
|
+
* will be treated as identical, regardless of order they appear in the original
|
|
4
|
+
* text.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} path Original path.
|
|
7
|
+
*
|
|
8
|
+
* @return {string} Normalized path.
|
|
9
|
+
*/
|
|
10
|
+
export function normalizePath(path: string): string;
|
|
11
|
+
//# sourceMappingURL=normalize-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-path.d.ts","sourceRoot":"","sources":["../src/normalize-path.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oCAJW,MAAM,GAEL,MAAM,CA0BjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/url",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "WordPress URL utilities.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"types": "build-types",
|
|
28
28
|
"sideEffects": false,
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@babel/runtime": "^7.
|
|
30
|
+
"@babel/runtime": "^7.16.0",
|
|
31
31
|
"lodash": "^4.17.21"
|
|
32
32
|
},
|
|
33
33
|
"publishConfig": {
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "d95ccb9366e249133cdb1d7b25c382446b9ee502"
|
|
37
37
|
}
|
package/src/index.js
CHANGED
|
@@ -23,3 +23,4 @@ export { safeDecodeURIComponent } from './safe-decode-uri-component';
|
|
|
23
23
|
export { filterURLForDisplay } from './filter-url-for-display';
|
|
24
24
|
export { cleanForSlug } from './clean-for-slug';
|
|
25
25
|
export { getFilename } from './get-filename';
|
|
26
|
+
export { normalizePath } from './normalize-path';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a path, returns a normalized path where equal query parameter values
|
|
3
|
+
* will be treated as identical, regardless of order they appear in the original
|
|
4
|
+
* text.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} path Original path.
|
|
7
|
+
*
|
|
8
|
+
* @return {string} Normalized path.
|
|
9
|
+
*/
|
|
10
|
+
export function normalizePath( path ) {
|
|
11
|
+
const splitted = path.split( '?' );
|
|
12
|
+
const query = splitted[ 1 ];
|
|
13
|
+
const base = splitted[ 0 ];
|
|
14
|
+
if ( ! query ) {
|
|
15
|
+
return base;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// 'b=1&c=2&a=5'
|
|
19
|
+
return (
|
|
20
|
+
base +
|
|
21
|
+
'?' +
|
|
22
|
+
query
|
|
23
|
+
// [ 'b=1', 'c=2', 'a=5' ]
|
|
24
|
+
.split( '&' )
|
|
25
|
+
// [ [ 'b, '1' ], [ 'c', '2' ], [ 'a', '5' ] ]
|
|
26
|
+
.map( ( entry ) => entry.split( '=' ) )
|
|
27
|
+
// [ [ 'a', '5' ], [ 'b, '1' ], [ 'c', '2' ] ]
|
|
28
|
+
.sort( ( a, b ) => a[ 0 ].localeCompare( b[ 0 ] ) )
|
|
29
|
+
// [ 'a=5', 'b=1', 'c=2' ]
|
|
30
|
+
.map( ( pair ) => pair.join( '=' ) )
|
|
31
|
+
// 'a=5&b=1&c=2'
|
|
32
|
+
.join( '&' )
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -1,292 +1 @@
|
|
|
1
|
-
[
|
|
2
|
-
{ "input": "https://test:@test" },
|
|
3
|
-
{ "input": "https://:@test" },
|
|
4
|
-
{ "input": "non-special://test:@test/x" },
|
|
5
|
-
{ "input": "non-special://:@test/x" },
|
|
6
|
-
{ "input": "lolscheme:x x#x x" },
|
|
7
|
-
{ "input": "file://example:1/", "failure": true },
|
|
8
|
-
{ "input": "file://example:test/", "failure": true },
|
|
9
|
-
{ "input": "file://example%/", "failure": true },
|
|
10
|
-
{ "input": "file://[example]/", "failure": true },
|
|
11
|
-
{ "input": "http://example.com/././foo" },
|
|
12
|
-
{ "input": "http://example.com/./.foo" },
|
|
13
|
-
{ "input": "http://example.com/foo/." },
|
|
14
|
-
{ "input": "http://example.com/foo/./" },
|
|
15
|
-
{ "input": "http://example.com/foo/bar/.." },
|
|
16
|
-
{ "input": "http://example.com/foo/bar/../" },
|
|
17
|
-
{ "input": "http://example.com/foo/..bar" },
|
|
18
|
-
{ "input": "http://example.com/foo/bar/../ton" },
|
|
19
|
-
{ "input": "http://example.com/foo/bar/../ton/../../a" },
|
|
20
|
-
{ "input": "http://example.com/foo/../../.." },
|
|
21
|
-
{ "input": "http://example.com/foo/../../../ton" },
|
|
22
|
-
{ "input": "http://example.com/foo/%2e" },
|
|
23
|
-
{ "input": "http://example.com/foo/%2e%2" },
|
|
24
|
-
{ "input": "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar" },
|
|
25
|
-
{ "input": "http://example.com////../.." },
|
|
26
|
-
{ "input": "http://example.com/foo/bar//../.." },
|
|
27
|
-
{ "input": "http://example.com/foo/bar//.." },
|
|
28
|
-
{ "input": "http://example.com/foo" },
|
|
29
|
-
{ "input": "http://example.com/%20foo" },
|
|
30
|
-
{ "input": "http://example.com/foo%" },
|
|
31
|
-
{ "input": "http://example.com/foo%2" },
|
|
32
|
-
{ "input": "http://example.com/foo%2zbar" },
|
|
33
|
-
{ "input": "http://example.com/foo%2©zbar" },
|
|
34
|
-
{ "input": "http://example.com/foo%41%7a" },
|
|
35
|
-
{ "input": "http://example.com/foo\t%91" },
|
|
36
|
-
{ "input": "http://example.com/foo%00%51" },
|
|
37
|
-
{ "input": "http://example.com/(%28:%3A%29)" },
|
|
38
|
-
{ "input": "http://example.com/%3A%3a%3C%3c" },
|
|
39
|
-
{ "input": "http://example.com/foo\tbar" },
|
|
40
|
-
{ "input": "http://example.com\\\\foo\\\\bar" },
|
|
41
|
-
{ "input": "http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd" },
|
|
42
|
-
{ "input": "http://example.com/@asdf%40" },
|
|
43
|
-
{ "input": "http://example.com/你好你好" },
|
|
44
|
-
{ "input": "http://example.com/‥/foo" },
|
|
45
|
-
{ "input": "http://example.com//foo" },
|
|
46
|
-
{ "input": "http://example.com//foo//bar" },
|
|
47
|
-
{ "input": "http://www.google.com/foo?bar=baz#" },
|
|
48
|
-
{ "input": "http://www.google.com/foo?bar=baz# »" },
|
|
49
|
-
{ "input": "data:test# »" },
|
|
50
|
-
{ "input": "http://www.google.com" },
|
|
51
|
-
{ "input": "http://192.0x00A80001" },
|
|
52
|
-
{ "input": "http://www/foo%2Ehtml" },
|
|
53
|
-
{ "input": "http://www/foo/%2E/html" },
|
|
54
|
-
{ "input": "http://user:pass@/", "failure": true },
|
|
55
|
-
{ "input": "http://%25DOMAIN:foobar@foodomain.com/" },
|
|
56
|
-
{ "input": "http:\\\\www.google.com\\foo" },
|
|
57
|
-
{ "input": "http://foo:80/" },
|
|
58
|
-
{ "input": "http://foo:81/" },
|
|
59
|
-
{ "input": "httpa://foo:80/" },
|
|
60
|
-
{ "input": "http://foo:-80/", "failure": true },
|
|
61
|
-
{ "input": "https://foo:443/" },
|
|
62
|
-
{ "input": "https://foo:80/" },
|
|
63
|
-
{ "input": "ftp://foo:21/" },
|
|
64
|
-
{ "input": "ftp://foo:80/" },
|
|
65
|
-
{ "input": "gopher://foo:70/" },
|
|
66
|
-
{ "input": "gopher://foo:443/" },
|
|
67
|
-
{ "input": "ws://foo:80/" },
|
|
68
|
-
{ "input": "ws://foo:81/" },
|
|
69
|
-
{ "input": "ws://foo:443/" },
|
|
70
|
-
{ "input": "ws://foo:815/" },
|
|
71
|
-
{ "input": "wss://foo:80/" },
|
|
72
|
-
{ "input": "wss://foo:81/" },
|
|
73
|
-
{ "input": "wss://foo:443/" },
|
|
74
|
-
{ "input": "wss://foo:815/" },
|
|
75
|
-
{ "input": "http:/example.com/" },
|
|
76
|
-
{ "input": "ftp:/example.com/" },
|
|
77
|
-
{ "input": "https:/example.com/" },
|
|
78
|
-
{ "input": "madeupscheme:/example.com/" },
|
|
79
|
-
{ "input": "file:/example.com/" },
|
|
80
|
-
{ "input": "ftps:/example.com/" },
|
|
81
|
-
{ "input": "gopher:/example.com/" },
|
|
82
|
-
{ "input": "ws:/example.com/" },
|
|
83
|
-
{ "input": "wss:/example.com/" },
|
|
84
|
-
{ "input": "data:/example.com/" },
|
|
85
|
-
{ "input": "javascript:/example.com/" },
|
|
86
|
-
{ "input": "mailto:/example.com/" },
|
|
87
|
-
{ "input": "http:example.com/" },
|
|
88
|
-
{ "input": "ftp:example.com/" },
|
|
89
|
-
{ "input": "https:example.com/" },
|
|
90
|
-
{ "input": "madeupscheme:example.com/" },
|
|
91
|
-
{ "input": "ftps:example.com/" },
|
|
92
|
-
{ "input": "gopher:example.com/" },
|
|
93
|
-
{ "input": "ws:example.com/" },
|
|
94
|
-
{ "input": "wss:example.com/" },
|
|
95
|
-
{ "input": "data:example.com/" },
|
|
96
|
-
{ "input": "javascript:example.com/" },
|
|
97
|
-
{ "input": "mailto:example.com/" },
|
|
98
|
-
{ "input": "http:@www.example.com" },
|
|
99
|
-
{ "input": "http:/@www.example.com" },
|
|
100
|
-
{ "input": "http://@www.example.com" },
|
|
101
|
-
{ "input": "http:a:b@www.example.com" },
|
|
102
|
-
{ "input": "http:/a:b@www.example.com" },
|
|
103
|
-
{ "input": "http://a:b@www.example.com" },
|
|
104
|
-
{ "input": "http://@pple.com" },
|
|
105
|
-
{ "input": "http::b@www.example.com" },
|
|
106
|
-
{ "input": "http:/:b@www.example.com" },
|
|
107
|
-
{ "input": "http://:b@www.example.com" },
|
|
108
|
-
{ "input": "http:/:@/www.example.com", "failure": true },
|
|
109
|
-
{ "input": "http://user@/www.example.com", "failure": true },
|
|
110
|
-
{ "input": "http:@/www.example.com", "failure": true },
|
|
111
|
-
{ "input": "http:/@/www.example.com", "failure": true },
|
|
112
|
-
{ "input": "http://@/www.example.com", "failure": true },
|
|
113
|
-
{ "input": "https:@/www.example.com", "failure": true },
|
|
114
|
-
{ "input": "http:a:b@/www.example.com", "failure": true },
|
|
115
|
-
{ "input": "http:/a:b@/www.example.com", "failure": true },
|
|
116
|
-
{ "input": "http://a:b@/www.example.com", "failure": true },
|
|
117
|
-
{ "input": "http::@/www.example.com", "failure": true },
|
|
118
|
-
{ "input": "http:a:@www.example.com" },
|
|
119
|
-
{ "input": "http:/a:@www.example.com" },
|
|
120
|
-
{ "input": "http://a:@www.example.com" },
|
|
121
|
-
{ "input": "http://www.@pple.com" },
|
|
122
|
-
{ "input": "http:@:www.example.com", "failure": true },
|
|
123
|
-
{ "input": "http:/@:www.example.com", "failure": true },
|
|
124
|
-
{ "input": "http://@:www.example.com", "failure": true },
|
|
125
|
-
{ "input": "http://:@www.example.com" },
|
|
126
|
-
{ "input": "\u0000\u001b\u0004\u0012 http://example.com/\u001f \r " },
|
|
127
|
-
{ "input": "https://�", "failure": true },
|
|
128
|
-
{ "input": "https://%EF%BF%BD", "failure": true },
|
|
129
|
-
{ "input": "https://x/�?�#�" },
|
|
130
|
-
{ "input": "https://faß.ExAmPlE/" },
|
|
131
|
-
{ "input": "sc://faß.ExAmPlE/" },
|
|
132
|
-
{ "input": "https://x x:12", "failure": true },
|
|
133
|
-
{ "input": "http://./" },
|
|
134
|
-
{ "input": "http://../" },
|
|
135
|
-
{ "input": "http://0..0x300/" },
|
|
136
|
-
{ "input": "http://[www.google.com]/", "failure": true },
|
|
137
|
-
{ "input": "http://host/?'" },
|
|
138
|
-
{ "input": "notspecial://host/?'" },
|
|
139
|
-
{ "input": "about:/../" },
|
|
140
|
-
{ "input": "data:/../" },
|
|
141
|
-
{ "input": "javascript:/../" },
|
|
142
|
-
{ "input": "mailto:/../" },
|
|
143
|
-
{ "input": "sc://ñ.test/" },
|
|
144
|
-
{ "input": "sc://\u0000/", "failure": true },
|
|
145
|
-
{ "input": "sc:// /", "failure": true },
|
|
146
|
-
{ "input": "sc://%/" },
|
|
147
|
-
{ "input": "sc://@/", "failure": true },
|
|
148
|
-
{ "input": "sc://te@s:t@/", "failure": true },
|
|
149
|
-
{ "input": "sc://:/", "failure": true },
|
|
150
|
-
{ "input": "sc://:12/", "failure": true },
|
|
151
|
-
{ "input": "sc://[/", "failure": true },
|
|
152
|
-
{ "input": "sc://\\/", "failure": true },
|
|
153
|
-
{ "input": "sc://]/", "failure": true },
|
|
154
|
-
{ "input": "sc:\\../" },
|
|
155
|
-
{ "input": "sc::a@example.net" },
|
|
156
|
-
{ "input": "wow:%NBD" },
|
|
157
|
-
{ "input": "wow:%1G" },
|
|
158
|
-
{ "input": "wow:" },
|
|
159
|
-
{ "input": "http://example.com/\ud800\udfff﷏ﷰ?\ud800\udfff﷏ﷰ" },
|
|
160
|
-
{ "input": "http://a<b", "failure": true },
|
|
161
|
-
{ "input": "http://a>b", "failure": true },
|
|
162
|
-
{ "input": "http://a^b", "failure": true },
|
|
163
|
-
{ "input": "non-special://a<b", "failure": true },
|
|
164
|
-
{ "input": "non-special://a>b", "failure": true },
|
|
165
|
-
{ "input": "non-special://a^b", "failure": true },
|
|
166
|
-
{ "input": "http://\u001f!\"$&'()*+,-.;=_`{|}~/" },
|
|
167
|
-
{ "input": "sc://\u001f!\"$&'()*+,-.;=_`{|}~/" },
|
|
168
|
-
{ "input": "ftp://example.com%80/", "failure": true },
|
|
169
|
-
{ "input": "ftp://example.com%A0/", "failure": true },
|
|
170
|
-
{ "input": "https://example.com%80/", "failure": true },
|
|
171
|
-
{ "input": "https://example.com%A0/", "failure": true },
|
|
172
|
-
{ "input": "ftp://%e2%98%83" },
|
|
173
|
-
{ "input": "https://%e2%98%83" },
|
|
174
|
-
{ "input": "http://127.0.0.1:10100/relative_import.html" },
|
|
175
|
-
{ "input": "http://facebook.com/?foo=%7B%22abc%22" },
|
|
176
|
-
{ "input": "https://localhost:3000/jqueryui@1.2.3" },
|
|
177
|
-
{
|
|
178
|
-
"input": "h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg"
|
|
179
|
-
},
|
|
180
|
-
{ "input": "http://foo.bar/baz?qux#foo\bbar" },
|
|
181
|
-
{ "input": "http://foo.bar/baz?qux#foo\"bar" },
|
|
182
|
-
{ "input": "http://foo.bar/baz?qux#foo<bar" },
|
|
183
|
-
{ "input": "http://foo.bar/baz?qux#foo>bar" },
|
|
184
|
-
{ "input": "http://foo.bar/baz?qux#foo`bar" },
|
|
185
|
-
{ "input": "https://0x.0x.0" },
|
|
186
|
-
{ "input": "https://0x100000000/test", "failure": true },
|
|
187
|
-
{ "input": "https://256.0.0.1/test", "failure": true },
|
|
188
|
-
{ "input": "file:///C%3A/" },
|
|
189
|
-
{ "input": "file:///C%7C/" },
|
|
190
|
-
{ "input": "file:\\\\//" },
|
|
191
|
-
{ "input": "file:\\\\\\\\" },
|
|
192
|
-
{ "input": "file:\\\\\\\\?fox" },
|
|
193
|
-
{ "input": "file:\\\\\\\\#guppy" },
|
|
194
|
-
{ "input": "file://spider///" },
|
|
195
|
-
{ "input": "file:\\\\localhost//" },
|
|
196
|
-
{ "input": "file:///localhost//cat" },
|
|
197
|
-
{ "input": "file://\\/localhost//cat" },
|
|
198
|
-
{ "input": "file://localhost//a//../..//" },
|
|
199
|
-
{ "input": "file://example.net/C:/" },
|
|
200
|
-
{ "input": "file://1.2.3.4/C:/" },
|
|
201
|
-
{ "input": "file://[1::8]/C:/" },
|
|
202
|
-
{ "input": "file:/C|/" },
|
|
203
|
-
{ "input": "file://C|/" },
|
|
204
|
-
{ "input": "file:" },
|
|
205
|
-
{ "input": "file:?q=v" },
|
|
206
|
-
{ "input": "file:#frag" },
|
|
207
|
-
{ "input": "file:///Y:" },
|
|
208
|
-
{ "input": "file:///Y:/" },
|
|
209
|
-
{ "input": "file:///./Y" },
|
|
210
|
-
{ "input": "file:///./Y:" },
|
|
211
|
-
{ "input": "\\\\\\.\\Y:", "failure": true },
|
|
212
|
-
{ "input": "file:///y:" },
|
|
213
|
-
{ "input": "file:///y:/" },
|
|
214
|
-
{ "input": "file:///./y" },
|
|
215
|
-
{ "input": "file:///./y:" },
|
|
216
|
-
{ "input": "\\\\\\.\\y:", "failure": true },
|
|
217
|
-
{ "input": "file://localhost//a//../..//foo" },
|
|
218
|
-
{ "input": "file://localhost////foo" },
|
|
219
|
-
{ "input": "file:////foo" },
|
|
220
|
-
{ "input": "file:.//p" },
|
|
221
|
-
{ "input": "file:/.//p" },
|
|
222
|
-
{ "input": "https://[0::0::0]", "failure": true },
|
|
223
|
-
{ "input": "https://[0:.0]", "failure": true },
|
|
224
|
-
{ "input": "https://[0:0:]", "failure": true },
|
|
225
|
-
{ "input": "https://[0:1:2:3:4:5:6:7.0.0.0.1]", "failure": true },
|
|
226
|
-
{ "input": "https://[0:1.00.0.0.0]", "failure": true },
|
|
227
|
-
{ "input": "https://[0:1.290.0.0.0]", "failure": true },
|
|
228
|
-
{ "input": "https://[0:1.23.23]", "failure": true },
|
|
229
|
-
{ "input": "http://?", "failure": true },
|
|
230
|
-
{ "input": "http://#", "failure": true },
|
|
231
|
-
{ "input": "sc://ñ" },
|
|
232
|
-
{ "input": "sc://ñ?x" },
|
|
233
|
-
{ "input": "sc://ñ#x" },
|
|
234
|
-
{ "input": "sc://?" },
|
|
235
|
-
{ "input": "sc://#" },
|
|
236
|
-
{ "input": "tftp://foobar.com/someconfig;mode=netascii" },
|
|
237
|
-
{ "input": "telnet://user:pass@foobar.com:23/" },
|
|
238
|
-
{ "input": "ut2004://10.10.10.10:7777/Index.ut2" },
|
|
239
|
-
{ "input": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz" },
|
|
240
|
-
{ "input": "rsync://foo@host:911/sup" },
|
|
241
|
-
{ "input": "git://github.com/foo/bar.git" },
|
|
242
|
-
{ "input": "irc://myserver.com:6999/channel?passwd" },
|
|
243
|
-
{ "input": "dns://fw.example.org:9999/foo.bar.org?type=TXT" },
|
|
244
|
-
{ "input": "ldap://localhost:389/ou=People,o=JNDITutorial" },
|
|
245
|
-
{ "input": "git+https://github.com/foo/bar" },
|
|
246
|
-
{ "input": "urn:ietf:rfc:2648" },
|
|
247
|
-
{ "input": "tag:joe@example.org,2001:foo/bar" },
|
|
248
|
-
{ "input": "non-spec:/.//" },
|
|
249
|
-
{ "input": "non-spec:/..//" },
|
|
250
|
-
{ "input": "non-spec:/a/..//" },
|
|
251
|
-
{ "input": "non-spec:/.//path" },
|
|
252
|
-
{ "input": "non-spec:/..//path" },
|
|
253
|
-
{ "input": "non-spec:/a/..//path" },
|
|
254
|
-
{ "input": "non-special://%E2%80%A0/" },
|
|
255
|
-
{ "input": "non-special://H%4fSt/path" },
|
|
256
|
-
{ "input": "non-special://[1:2:0:0:5:0:0:0]/" },
|
|
257
|
-
{ "input": "non-special://[1:2:0:0:0:0:0:3]/" },
|
|
258
|
-
{ "input": "non-special://[1:2::3]:80/" },
|
|
259
|
-
{ "input": "non-special://[:80/", "failure": true },
|
|
260
|
-
{ "input": "blob:https://example.com:443/" },
|
|
261
|
-
{ "input": "blob:d3958f5c-0777-0845-9dcf-2cb28783acaf" },
|
|
262
|
-
{ "input": "http://0177.0.0.0189" },
|
|
263
|
-
{ "input": "http://0x7f.0.0.0x7g" },
|
|
264
|
-
{ "input": "http://0X7F.0.0.0X7G" },
|
|
265
|
-
{ "input": "http://[::127.0.0.0.1]", "failure": true },
|
|
266
|
-
{ "input": "http://[0:1:0:1:0:1:0:1]" },
|
|
267
|
-
{ "input": "http://[1:0:1:0:1:0:1:0]" },
|
|
268
|
-
{ "input": "http://example.org/test?\"" },
|
|
269
|
-
{ "input": "http://example.org/test?#" },
|
|
270
|
-
{ "input": "http://example.org/test?<" },
|
|
271
|
-
{ "input": "http://example.org/test?>" },
|
|
272
|
-
{ "input": "http://example.org/test?⌣" },
|
|
273
|
-
{ "input": "http://example.org/test?%23%23" },
|
|
274
|
-
{ "input": "http://example.org/test?%GH" },
|
|
275
|
-
{ "input": "http://example.org/test?a#%EF" },
|
|
276
|
-
{ "input": "http://example.org/test?a#%GH" },
|
|
277
|
-
{ "input": "a", "failure": true },
|
|
278
|
-
{ "input": "a/", "failure": true },
|
|
279
|
-
{ "input": "a//", "failure": true },
|
|
280
|
-
{ "input": "http://example.org/test?a#b\u0000c" },
|
|
281
|
-
{ "input": "non-spec://example.org/test?a#b\u0000c" },
|
|
282
|
-
{ "input": "non-spec:/test?a#b\u0000c" },
|
|
283
|
-
{ "input": "file://ab/p" },
|
|
284
|
-
{ "input": "file://a%C2%ADb/p" },
|
|
285
|
-
{ "input": "file:///p", "failure": true },
|
|
286
|
-
{ "input": "file://%C2%AD/p", "failure": true },
|
|
287
|
-
{ "input": "file://xn--/p", "failure": true },
|
|
288
|
-
{ "input": "non-special:cannot-be-a-base-url-\u0000\u0001\u001f\u001e~" },
|
|
289
|
-
{
|
|
290
|
-
"input": "https://www.example.com/path{path.html?query'=query#fragment<fragment"
|
|
291
|
-
}
|
|
292
|
-
]
|
|
1
|
+
[{"input":"https://test:@test"},{"input":"https://:@test"},{"input":"non-special://test:@test/x"},{"input":"non-special://:@test/x"},{"input":"lolscheme:x x#x x"},{"input":"file://example:1/","failure":true},{"input":"file://example:test/","failure":true},{"input":"file://example%/","failure":true},{"input":"file://[example]/","failure":true},{"input":"http://example.com/././foo"},{"input":"http://example.com/./.foo"},{"input":"http://example.com/foo/."},{"input":"http://example.com/foo/./"},{"input":"http://example.com/foo/bar/.."},{"input":"http://example.com/foo/bar/../"},{"input":"http://example.com/foo/..bar"},{"input":"http://example.com/foo/bar/../ton"},{"input":"http://example.com/foo/bar/../ton/../../a"},{"input":"http://example.com/foo/../../.."},{"input":"http://example.com/foo/../../../ton"},{"input":"http://example.com/foo/%2e"},{"input":"http://example.com/foo/%2e%2"},{"input":"http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"},{"input":"http://example.com////../.."},{"input":"http://example.com/foo/bar//../.."},{"input":"http://example.com/foo/bar//.."},{"input":"http://example.com/foo"},{"input":"http://example.com/%20foo"},{"input":"http://example.com/foo%"},{"input":"http://example.com/foo%2"},{"input":"http://example.com/foo%2zbar"},{"input":"http://example.com/foo%2©zbar"},{"input":"http://example.com/foo%41%7a"},{"input":"http://example.com/foo\t%91"},{"input":"http://example.com/foo%00%51"},{"input":"http://example.com/(%28:%3A%29)"},{"input":"http://example.com/%3A%3a%3C%3c"},{"input":"http://example.com/foo\tbar"},{"input":"http://example.com\\\\foo\\\\bar"},{"input":"http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd"},{"input":"http://example.com/@asdf%40"},{"input":"http://example.com/你好你好"},{"input":"http://example.com/‥/foo"},{"input":"http://example.com//foo"},{"input":"http://example.com//foo//bar"},{"input":"http://www.google.com/foo?bar=baz#"},{"input":"http://www.google.com/foo?bar=baz# »"},{"input":"data:test# »"},{"input":"http://www.google.com"},{"input":"http://192.0x00A80001"},{"input":"http://www/foo%2Ehtml"},{"input":"http://www/foo/%2E/html"},{"input":"http://user:pass@/","failure":true},{"input":"http://%25DOMAIN:foobar@foodomain.com/"},{"input":"http:\\\\www.google.com\\foo"},{"input":"http://foo:80/"},{"input":"http://foo:81/"},{"input":"httpa://foo:80/"},{"input":"http://foo:-80/","failure":true},{"input":"https://foo:443/"},{"input":"https://foo:80/"},{"input":"ftp://foo:21/"},{"input":"ftp://foo:80/"},{"input":"gopher://foo:70/"},{"input":"gopher://foo:443/"},{"input":"ws://foo:80/"},{"input":"ws://foo:81/"},{"input":"ws://foo:443/"},{"input":"ws://foo:815/"},{"input":"wss://foo:80/"},{"input":"wss://foo:81/"},{"input":"wss://foo:443/"},{"input":"wss://foo:815/"},{"input":"http:/example.com/"},{"input":"ftp:/example.com/"},{"input":"https:/example.com/"},{"input":"madeupscheme:/example.com/"},{"input":"file:/example.com/"},{"input":"ftps:/example.com/"},{"input":"gopher:/example.com/"},{"input":"ws:/example.com/"},{"input":"wss:/example.com/"},{"input":"data:/example.com/"},{"input":"javascript:/example.com/"},{"input":"mailto:/example.com/"},{"input":"http:example.com/"},{"input":"ftp:example.com/"},{"input":"https:example.com/"},{"input":"madeupscheme:example.com/"},{"input":"ftps:example.com/"},{"input":"gopher:example.com/"},{"input":"ws:example.com/"},{"input":"wss:example.com/"},{"input":"data:example.com/"},{"input":"javascript:example.com/"},{"input":"mailto:example.com/"},{"input":"http:@www.example.com"},{"input":"http:/@www.example.com"},{"input":"http://@www.example.com"},{"input":"http:a:b@www.example.com"},{"input":"http:/a:b@www.example.com"},{"input":"http://a:b@www.example.com"},{"input":"http://@pple.com"},{"input":"http::b@www.example.com"},{"input":"http:/:b@www.example.com"},{"input":"http://:b@www.example.com"},{"input":"http:/:@/www.example.com","failure":true},{"input":"http://user@/www.example.com","failure":true},{"input":"http:@/www.example.com","failure":true},{"input":"http:/@/www.example.com","failure":true},{"input":"http://@/www.example.com","failure":true},{"input":"https:@/www.example.com","failure":true},{"input":"http:a:b@/www.example.com","failure":true},{"input":"http:/a:b@/www.example.com","failure":true},{"input":"http://a:b@/www.example.com","failure":true},{"input":"http::@/www.example.com","failure":true},{"input":"http:a:@www.example.com"},{"input":"http:/a:@www.example.com"},{"input":"http://a:@www.example.com"},{"input":"http://www.@pple.com"},{"input":"http:@:www.example.com","failure":true},{"input":"http:/@:www.example.com","failure":true},{"input":"http://@:www.example.com","failure":true},{"input":"http://:@www.example.com"},{"input":"\u0000\u001b\u0004\u0012 http://example.com/\u001f \r "},{"input":"https://�","failure":true},{"input":"https://%EF%BF%BD","failure":true},{"input":"https://x/�?�#�"},{"input":"http://a.b.c.xn--pokxncvks","failure":true},{"input":"http://10.0.0.xn--pokxncvks","failure":true},{"input":"https://faß.ExAmPlE/"},{"input":"sc://faß.ExAmPlE/"},{"input":"https://x x:12","failure":true},{"input":"http://./"},{"input":"http://../"},{"input":"http://0..0x300/"},{"input":"http://[www.google.com]/","failure":true},{"input":"http://host/?'"},{"input":"notspecial://host/?'"},{"input":"about:/../"},{"input":"data:/../"},{"input":"javascript:/../"},{"input":"mailto:/../"},{"input":"sc://ñ.test/"},{"input":"sc://\u0000/","failure":true},{"input":"sc:// /","failure":true},{"input":"sc://%/"},{"input":"sc://@/","failure":true},{"input":"sc://te@s:t@/","failure":true},{"input":"sc://:/","failure":true},{"input":"sc://:12/","failure":true},{"input":"sc://[/","failure":true},{"input":"sc://\\/","failure":true},{"input":"sc://]/","failure":true},{"input":"sc:\\../"},{"input":"sc::a@example.net"},{"input":"wow:%NBD"},{"input":"wow:%1G"},{"input":"wow:"},{"input":"http://example.com/\ud800\udfff﷏ﷰ?\ud800\udfff﷏ﷰ"},{"input":"http://a<b","failure":true},{"input":"http://a>b","failure":true},{"input":"http://a^b","failure":true},{"input":"non-special://a<b","failure":true},{"input":"non-special://a>b","failure":true},{"input":"non-special://a^b","failure":true},{"input":"foo://ho\u0000st/","failure":true},{"input":"foo://ho|st/","failure":true},{"input":"foo://ho\tst/"},{"input":"foo://ho\nst/"},{"input":"foo://ho\rst/"},{"input":"http://ho%00st/","failure":true},{"input":"http://ho%09st/","failure":true},{"input":"http://ho%0Ast/","failure":true},{"input":"http://ho%0Dst/","failure":true},{"input":"http://ho%20st/","failure":true},{"input":"http://ho%23st/","failure":true},{"input":"http://ho%2Fst/","failure":true},{"input":"http://ho%3Ast/","failure":true},{"input":"http://ho%3Cst/","failure":true},{"input":"http://ho%3Est/","failure":true},{"input":"http://ho%3Fst/","failure":true},{"input":"http://ho%40st/","failure":true},{"input":"http://ho%5Bst/","failure":true},{"input":"http://ho%5Cst/","failure":true},{"input":"http://ho%5Dst/","failure":true},{"input":"http://ho%7Cst/","failure":true},{"input":"http://\u001f!\"$&'()*+,-.;=_`{}~/"},{"input":"sc://\u001f!\"$&'()*+,-.;=_`{}~/"},{"input":"ftp://example.com%80/","failure":true},{"input":"ftp://example.com%A0/","failure":true},{"input":"https://example.com%80/","failure":true},{"input":"https://example.com%A0/","failure":true},{"input":"ftp://%e2%98%83"},{"input":"https://%e2%98%83"},{"input":"http://127.0.0.1:10100/relative_import.html"},{"input":"http://facebook.com/?foo=%7B%22abc%22"},{"input":"https://localhost:3000/jqueryui@1.2.3"},{"input":"h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg"},{"input":"http://foo.bar/baz?qux#foo\bbar"},{"input":"http://foo.bar/baz?qux#foo\"bar"},{"input":"http://foo.bar/baz?qux#foo<bar"},{"input":"http://foo.bar/baz?qux#foo>bar"},{"input":"http://foo.bar/baz?qux#foo`bar"},{"input":"https://0x.0x.0"},{"input":"https://0x100000000/test","failure":true},{"input":"https://256.0.0.1/test","failure":true},{"input":"file:///C%3A/"},{"input":"file:///C%7C/"},{"input":"file://%43%3A","failure":true},{"input":"file://%43%7C","failure":true},{"input":"file://%43|","failure":true},{"input":"file://C%7C","failure":true},{"input":"file://%43%7C/","failure":true},{"input":"https://%43%7C/","failure":true},{"input":"asdf://%43|/","failure":true},{"input":"asdf://%43%7C/"},{"input":"file:\\\\//"},{"input":"file:\\\\\\\\"},{"input":"file:\\\\\\\\?fox"},{"input":"file:\\\\\\\\#guppy"},{"input":"file://spider///"},{"input":"file:\\\\localhost//"},{"input":"file:///localhost//cat"},{"input":"file://\\/localhost//cat"},{"input":"file://localhost//a//../..//"},{"input":"file://example.net/C:/"},{"input":"file://1.2.3.4/C:/"},{"input":"file://[1::8]/C:/"},{"input":"file:/C|/"},{"input":"file://C|/"},{"input":"file:"},{"input":"file:?q=v"},{"input":"file:#frag"},{"input":"file:///Y:"},{"input":"file:///Y:/"},{"input":"file:///./Y"},{"input":"file:///./Y:"},{"input":"\\\\\\.\\Y:","failure":true},{"input":"file:///y:"},{"input":"file:///y:/"},{"input":"file:///./y"},{"input":"file:///./y:"},{"input":"\\\\\\.\\y:","failure":true},{"input":"file://localhost//a//../..//foo"},{"input":"file://localhost////foo"},{"input":"file:////foo"},{"input":"file:.//p"},{"input":"file:/.//p"},{"input":"https://[0::0::0]","failure":true},{"input":"https://[0:.0]","failure":true},{"input":"https://[0:0:]","failure":true},{"input":"https://[0:1:2:3:4:5:6:7.0.0.0.1]","failure":true},{"input":"https://[0:1.00.0.0.0]","failure":true},{"input":"https://[0:1.290.0.0.0]","failure":true},{"input":"https://[0:1.23.23]","failure":true},{"input":"http://?","failure":true},{"input":"http://#","failure":true},{"input":"sc://ñ"},{"input":"sc://ñ?x"},{"input":"sc://ñ#x"},{"input":"sc://?"},{"input":"sc://#"},{"input":"tftp://foobar.com/someconfig;mode=netascii"},{"input":"telnet://user:pass@foobar.com:23/"},{"input":"ut2004://10.10.10.10:7777/Index.ut2"},{"input":"redis://foo:bar@somehost:6379/0?baz=bam&qux=baz"},{"input":"rsync://foo@host:911/sup"},{"input":"git://github.com/foo/bar.git"},{"input":"irc://myserver.com:6999/channel?passwd"},{"input":"dns://fw.example.org:9999/foo.bar.org?type=TXT"},{"input":"ldap://localhost:389/ou=People,o=JNDITutorial"},{"input":"git+https://github.com/foo/bar"},{"input":"urn:ietf:rfc:2648"},{"input":"tag:joe@example.org,2001:foo/bar"},{"input":"non-spec:/.//"},{"input":"non-spec:/..//"},{"input":"non-spec:/a/..//"},{"input":"non-spec:/.//path"},{"input":"non-spec:/..//path"},{"input":"non-spec:/a/..//path"},{"input":"non-special://%E2%80%A0/"},{"input":"non-special://H%4fSt/path"},{"input":"non-special://[1:2:0:0:5:0:0:0]/"},{"input":"non-special://[1:2:0:0:0:0:0:3]/"},{"input":"non-special://[1:2::3]:80/"},{"input":"non-special://[:80/","failure":true},{"input":"blob:https://example.com:443/"},{"input":"blob:d3958f5c-0777-0845-9dcf-2cb28783acaf"},{"input":"http://0177.0.0.0189"},{"input":"http://0x7f.0.0.0x7g"},{"input":"http://0X7F.0.0.0X7G"},{"input":"http://[::127.0.0.0.1]","failure":true},{"input":"http://[0:1:0:1:0:1:0:1]"},{"input":"http://[1:0:1:0:1:0:1:0]"},{"input":"http://example.org/test?\""},{"input":"http://example.org/test?#"},{"input":"http://example.org/test?<"},{"input":"http://example.org/test?>"},{"input":"http://example.org/test?⌣"},{"input":"http://example.org/test?%23%23"},{"input":"http://example.org/test?%GH"},{"input":"http://example.org/test?a#%EF"},{"input":"http://example.org/test?a#%GH"},{"input":"a","failure":true},{"input":"a/","failure":true},{"input":"a//","failure":true},{"input":"http://example.org/test?a#b\u0000c"},{"input":"non-spec://example.org/test?a#b\u0000c"},{"input":"non-spec:/test?a#b\u0000c"},{"input":"file://ab/p"},{"input":"file://a%C2%ADb/p"},{"input":"file:///p","failure":true},{"input":"file://%C2%AD/p","failure":true},{"input":"file://xn--/p","failure":true},{"input":"non-special:cannot-be-a-base-url-\u0000\u0001\u001f\u001e~"},{"input":"https://www.example.com/path{path.html?query'=query#fragment<fragment"},{"input":"foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"},{"input":"wss:// !\"$%&'()*+,-.;<=>@[]^_`{|}~@host/"},{"input":"foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"},{"input":"wss://joe: !\"$%&'()*+,-.:;<=>@[]^_`{|}~@host/"},{"input":"foo://!\"$%&'()*+,-.;=_`{}~/"},{"input":"wss://!\"$&'()*+,-.;=_`{}~/"},{"input":"foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"},{"input":"wss://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"},{"input":"foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~"},{"input":"wss://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~"},{"input":"foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"},{"input":"wss://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"}]
|
package/src/test/index.js
CHANGED
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
cleanForSlug,
|
|
31
31
|
getQueryArgs,
|
|
32
32
|
getFilename,
|
|
33
|
+
normalizePath,
|
|
33
34
|
} from '../';
|
|
34
35
|
import wptData from './fixtures/wpt-data';
|
|
35
36
|
|
|
@@ -985,3 +986,26 @@ describe( 'cleanForSlug', () => {
|
|
|
985
986
|
expect( cleanForSlug( null ) ).toBe( '' );
|
|
986
987
|
} );
|
|
987
988
|
} );
|
|
989
|
+
|
|
990
|
+
describe( 'normalizePath', () => {
|
|
991
|
+
it( 'returns same value if no query parameters', () => {
|
|
992
|
+
const path = '/foo/bar';
|
|
993
|
+
|
|
994
|
+
expect( normalizePath( path ) ).toBe( path );
|
|
995
|
+
} );
|
|
996
|
+
|
|
997
|
+
it( 'returns a stable path', () => {
|
|
998
|
+
const abc = normalizePath( '/foo/bar?a=5&b=1&c=2' );
|
|
999
|
+
const bca = normalizePath( '/foo/bar?b=1&c=2&a=5' );
|
|
1000
|
+
const bac = normalizePath( '/foo/bar?b=1&a=5&c=2' );
|
|
1001
|
+
const acb = normalizePath( '/foo/bar?a=5&c=2&b=1' );
|
|
1002
|
+
const cba = normalizePath( '/foo/bar?c=2&b=1&a=5' );
|
|
1003
|
+
const cab = normalizePath( '/foo/bar?c=2&a=5&b=1' );
|
|
1004
|
+
|
|
1005
|
+
expect( abc ).toBe( bca );
|
|
1006
|
+
expect( bca ).toBe( bac );
|
|
1007
|
+
expect( bac ).toBe( acb );
|
|
1008
|
+
expect( acb ).toBe( cba );
|
|
1009
|
+
expect( cba ).toBe( cab );
|
|
1010
|
+
} );
|
|
1011
|
+
} );
|
package/src/test/index.native.js
CHANGED
|
@@ -35,6 +35,18 @@ jest.mock( './fixtures/wpt-data.json', () => {
|
|
|
35
35
|
'file:///p',
|
|
36
36
|
'file://%C2%AD/p',
|
|
37
37
|
'file://xn--/p',
|
|
38
|
+
'http://a.b.c.xn--pokxncvks',
|
|
39
|
+
'http://10.0.0.xn--pokxncvks',
|
|
40
|
+
'foo://ho|st/',
|
|
41
|
+
'http://ho%3Cst/',
|
|
42
|
+
'http://ho%3Est/',
|
|
43
|
+
'http://ho%7Cst/',
|
|
44
|
+
'file://%43%7C',
|
|
45
|
+
'file://%43|',
|
|
46
|
+
'file://C%7C',
|
|
47
|
+
'file://%43%7C/',
|
|
48
|
+
'https://%43%7C/',
|
|
49
|
+
'asdf://%43|/',
|
|
38
50
|
];
|
|
39
51
|
|
|
40
52
|
return data.filter( ( { input } ) => ! URL_EXCEPTIONS.includes( input ) );
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./src/get-query-string.js","./src/get-query-arg.js","./src/get-query-args.js","./src/build-query-string.js","./src/add-query-args.js","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","./src/clean-for-slug.js","./src/filter-url-for-display.js","./src/get-authority.js","./src/get-filename.js","./src/get-fragment.js","./src/is-url.js","./src/is-email.js","./src/get-protocol.js","./src/is-valid-protocol.js","./src/is-valid-authority.js","./src/get-path.js","./src/is-valid-path.js","./src/is-valid-query-string.js","./src/is-valid-fragment.js","./src/has-query-arg.js","./src/remove-query-args.js","./src/prepend-http.js","./src/safe-decode-uri.js","./src/safe-decode-uri-component.js","./src/index.js","./src/get-path-and-query-string.js"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"3d13e8d35928df6913cc508baea9212eeaf77ac6b8bcdeea6ef81417bd1ab796","93c18f1428bac34102b0df1c2b41dc3d12ce391e03c8a46d38c417479575a20e","c1707eb8fe5c7af9446740e91d599de82da8e8c5a478b20ad19e3a18a0691feb","7661a5ede28fb0d92e17e5336aba72b46117d6fa195dffe472a7a6c2bb63a882","d6918668a7ce2b5035cfc82a08fad8112030f7215046051d92777dd394428398","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"542de8a8716fbaecd313ee04aee251b94f4c4afe615c96ba84d3e138ae33a4df","96f041f6981479953955c224fcfc85fc3d7498b28f76259c62070cdc715d1fab","e17e8f3a2d2b70b82111a7caba0bd0469c15d54b7f5182249c11e86ec91d48c4","3b87fc45c25693533e915e1fedbfd81d1df691590507d34f1c0bfdb1fb8fdb4f","934bb323f6db147579270f1814fefb892cd740b41b3a502f0fc1fdea89c8bbdf","2e53b021189ff0a38763fa8b475e9e52b2f8ad5afb824b1bdd0ac4e75c672915","76c0f81779074a0f71553c9e64b24ed34a0eab70e2baeab19910924103714b29","45cf018e474510e7c5d1609f31f26aee0c8313123c667eebe6274a70359ac61b","63f54074d98d3460d320df957eb1a81370309dc146f4e75db5c41af8eaafb6f3","e21699f5f16e21f013325d7c2e3055e51a0ffd3905f70f2c9943146c537740c7","a3d241b40520c871a2abd8d1efa83a0ce5bada7c2cb8c2d47a0af5d6a01d7950","675f074197cc4af2fec6fdd2d402c4b79796bac84be27abe4a2fdf83f178bdfc","50445b9c70447cc93ebe21e8e84041687b477771bebc3335a437684d25e714fa","af42fd7aa201d45b2366759c7f5ef74df0be5a9175b29ae28eea3823c1726e4c","334aeb1ce0fc76ca31b758e041e232c0554278de6a3d84540822bab39d07b5e6","b4ff7cd115b5f5e1ed08311d65e8e8816c0ec3a71260ed2ddc5bddfc08c59f38","f73f85026d30aaa6d4c348ba9e4458482016ebe29956c99195e6434f8e81f5a4","7854cef32e2726edf5332d119686c31940e6ee63369f6e3fbb6add61a112f51b","7adb044d7fb892c86a142b1ecf264086e6c49593f31c72d1cb88d5541b14c362","cbe2a1d4db2f61f2fa78a2354a74d638654eab9f451ab97c9e896b7254560cee","5addef1234c8ad001752aa6d2ebb3008a5d2dd98635a82e9df171788b0203996"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[50,52,53,54,55,56,57,58,59,60,61,62],[50,51,53,54,55,56,57,58,59,60,61,62],[51,52,53,54,55,56,57,58,59,60,61,62],[50,51,52,54,55,56,57,58,59,60,61,62],[50,51,52,53,55,56,57,58,59,60,61,62],[50,51,52,53,54,56,57,58,59,60,61,62],[50,51,52,53,54,55,57,58,59,60,61,62],[50,51,52,53,54,55,56,58,59,60,61,62],[50,51,52,53,54,55,56,57,59,60,61,62],[50,51,52,53,54,55,56,57,58,60,61,62],[50,51,52,53,54,55,56,57,58,59,61,62],[50,51,52,53,54,55,56,57,58,59,60,62],[50,51,52,53,54,55,56,57,58,59,60,61],[47,48],[62],[82],[47],[45,46],[46],[45,46,47,48,49,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83],[69]],"referencedMap":[[51,1],[52,2],[50,3],[53,4],[54,5],[55,6],[56,7],[57,8],[58,9],[59,10],[60,11],[61,12],[62,13],[49,14],[63,15],[83,16],[46,17],[47,18],[77,19],[82,20],[79,21],[78,14]],"exportedModulesMap":[[51,1],[52,2],[50,3],[53,4],[54,5],[55,6],[56,7],[57,8],[58,9],[59,10],[60,11],[61,12],[62,13],[49,14],[63,15],[83,16],[46,17],[47,18],[77,19],[82,20],[79,21],[78,14]],"semanticDiagnosticsPerFile":[51,52,50,53,54,55,56,57,58,59,60,61,62,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,49,48,63,64,65,66,67,83,73,70,46,47,45,77,82,69,68,72,76,74,71,75,79,78,81,80]},"version":"4.4.2"}
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./src/get-query-string.js","./src/get-query-arg.js","./src/get-query-args.js","./src/build-query-string.js","./src/add-query-args.js","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","./src/clean-for-slug.js","./src/filter-url-for-display.js","./src/get-authority.js","./src/get-filename.js","./src/get-fragment.js","./src/is-url.js","./src/is-email.js","./src/get-protocol.js","./src/is-valid-protocol.js","./src/is-valid-authority.js","./src/get-path.js","./src/is-valid-path.js","./src/is-valid-query-string.js","./src/is-valid-fragment.js","./src/has-query-arg.js","./src/remove-query-args.js","./src/prepend-http.js","./src/safe-decode-uri.js","./src/safe-decode-uri-component.js","./src/normalize-path.js","./src/index.js","./src/get-path-and-query-string.js"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"3d13e8d35928df6913cc508baea9212eeaf77ac6b8bcdeea6ef81417bd1ab796","93c18f1428bac34102b0df1c2b41dc3d12ce391e03c8a46d38c417479575a20e","c1707eb8fe5c7af9446740e91d599de82da8e8c5a478b20ad19e3a18a0691feb","7661a5ede28fb0d92e17e5336aba72b46117d6fa195dffe472a7a6c2bb63a882","d6918668a7ce2b5035cfc82a08fad8112030f7215046051d92777dd394428398","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"542de8a8716fbaecd313ee04aee251b94f4c4afe615c96ba84d3e138ae33a4df","96f041f6981479953955c224fcfc85fc3d7498b28f76259c62070cdc715d1fab","e17e8f3a2d2b70b82111a7caba0bd0469c15d54b7f5182249c11e86ec91d48c4","3b87fc45c25693533e915e1fedbfd81d1df691590507d34f1c0bfdb1fb8fdb4f","934bb323f6db147579270f1814fefb892cd740b41b3a502f0fc1fdea89c8bbdf","2e53b021189ff0a38763fa8b475e9e52b2f8ad5afb824b1bdd0ac4e75c672915","76c0f81779074a0f71553c9e64b24ed34a0eab70e2baeab19910924103714b29","45cf018e474510e7c5d1609f31f26aee0c8313123c667eebe6274a70359ac61b","63f54074d98d3460d320df957eb1a81370309dc146f4e75db5c41af8eaafb6f3","e21699f5f16e21f013325d7c2e3055e51a0ffd3905f70f2c9943146c537740c7","a3d241b40520c871a2abd8d1efa83a0ce5bada7c2cb8c2d47a0af5d6a01d7950","675f074197cc4af2fec6fdd2d402c4b79796bac84be27abe4a2fdf83f178bdfc","50445b9c70447cc93ebe21e8e84041687b477771bebc3335a437684d25e714fa","af42fd7aa201d45b2366759c7f5ef74df0be5a9175b29ae28eea3823c1726e4c","334aeb1ce0fc76ca31b758e041e232c0554278de6a3d84540822bab39d07b5e6","b4ff7cd115b5f5e1ed08311d65e8e8816c0ec3a71260ed2ddc5bddfc08c59f38","f73f85026d30aaa6d4c348ba9e4458482016ebe29956c99195e6434f8e81f5a4","7854cef32e2726edf5332d119686c31940e6ee63369f6e3fbb6add61a112f51b","7adb044d7fb892c86a142b1ecf264086e6c49593f31c72d1cb88d5541b14c362","e6b09c6c5b1738d2e5e9825e24891fe9805ddc6c1ac68c4318af6038c7ca8e67","ee18fcd416bb49a7f03891a21290308ba54dae7895ab2b9837f29b4ff1d1c59f","5addef1234c8ad001752aa6d2ebb3008a5d2dd98635a82e9df171788b0203996"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[50,52,53,54,55,56,57,58,59,60,61,62],[50,51,53,54,55,56,57,58,59,60,61,62],[51,52,53,54,55,56,57,58,59,60,61,62],[50,51,52,54,55,56,57,58,59,60,61,62],[50,51,52,53,55,56,57,58,59,60,61,62],[50,51,52,53,54,56,57,58,59,60,61,62],[50,51,52,53,54,55,57,58,59,60,61,62],[50,51,52,53,54,55,56,58,59,60,61,62],[50,51,52,53,54,55,56,57,59,60,61,62],[50,51,52,53,54,55,56,57,58,60,61,62],[50,51,52,53,54,55,56,57,58,59,61,62],[50,51,52,53,54,55,56,57,58,59,60,62],[50,51,52,53,54,55,56,57,58,59,60,61],[47,48],[62],[83],[47],[45,46],[46],[45,46,47,48,49,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,84],[69]],"referencedMap":[[51,1],[52,2],[50,3],[53,4],[54,5],[55,6],[56,7],[57,8],[58,9],[59,10],[60,11],[61,12],[62,13],[49,14],[63,15],[84,16],[46,17],[47,18],[77,19],[83,20],[79,21],[78,14]],"exportedModulesMap":[[51,1],[52,2],[50,3],[53,4],[54,5],[55,6],[56,7],[57,8],[58,9],[59,10],[60,11],[61,12],[62,13],[49,14],[63,15],[84,16],[46,17],[47,18],[77,19],[83,20],[79,21],[78,14]],"semanticDiagnosticsPerFile":[51,52,50,53,54,55,56,57,58,59,60,61,62,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,49,48,63,64,65,66,67,84,73,70,46,47,45,77,83,69,68,72,76,74,71,75,82,79,78,81,80]},"version":"4.4.2"}
|