@wordpress/url 3.3.2-next.33ec3857e2.0 → 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 CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.4.0 (2022-01-27)
6
+
5
7
  ## 3.3.0 (2021-11-07)
6
8
 
7
9
  ### New Feature
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## Gutenberg
2
2
 
3
- Copyright 2016-2021 by the contributors
3
+ Copyright 2016-2022 by the contributors
4
4
 
5
5
  **License for Contributions (on and after April 15, 2021)**
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/url",
3
- "version": "3.3.2-next.33ec3857e2.0",
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",
@@ -33,5 +33,5 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "gitHead": "51c7917ea7fac72953702f24d6daac87d99e7617"
36
+ "gitHead": "d95ccb9366e249133cdb1d7b25c382446b9ee502"
37
37
  }
@@ -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://a­b/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://a­b/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/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"}]
@@ -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 ) );