@@ -64,38 +64,41 @@ describe('urlUtils', () => {
64
64
after ( ( ) => resetCaseSensitivePaths ( ) ) ;
65
65
66
66
it ( 'works for a simple posix path' , ( ) => {
67
- testUrlToRegex ( 'file:///a/b.js' , 'file:\\/\\/\\/a\\/b\\.js($|?)|\\/a\\/b\\.js($|?)' ) ;
67
+ testUrlToRegex ( 'file:///a/b.js' , 'file:\\/\\/\\/a\\/b\\.js($|\\ ?)|\\/a\\/b\\.js($|\\ ?)' ) ;
68
68
} ) ;
69
69
70
70
it ( 'works for a simple windows path' , ( ) => {
71
71
testUrlToRegex (
72
72
'file:///c:/a/b.js' ,
73
- 'file:\\/\\/\\/[Cc]:\\/a\\/b\\.js($|?)|[Cc]:\\\\a\\\\b\\.js($|?)' ,
73
+ 'file:\\/\\/\\/[Cc]:\\/a\\/b\\.js($|\\ ?)|[Cc]:\\\\a\\\\b\\.js($|\\ ?)' ,
74
74
) ;
75
75
} ) ;
76
76
77
77
it ( 'works for a url' , ( ) => {
78
- testUrlToRegex ( 'http://localhost:8080/a/b.js' , 'http:\\/\\/localhost:8080\\/a\\/b\\.js($|?)' ) ;
78
+ testUrlToRegex (
79
+ 'http://localhost:8080/a/b.js' ,
80
+ 'http:\\/\\/localhost:8080\\/a\\/b\\.js($|\\?)' ,
81
+ ) ;
79
82
} ) ;
80
83
81
84
it ( 'space in path' , ( ) => {
82
85
testUrlToRegex (
83
86
'file:///a/space%20path.js' ,
84
- 'file:\\/\\/\\/a\\/space(?: |%20)path\\.js($|?)|\\/a\\/space(?: |%20)path\\.js($|?)' ,
87
+ 'file:\\/\\/\\/a\\/space(?: |%20)path\\.js($|\\ ?)|\\/a\\/space(?: |%20)path\\.js($|\\ ?)' ,
85
88
) ;
86
89
} ) ;
87
90
it ( 'preserves high unicode (#496)' , ( ) => {
88
91
testUrlToRegex (
89
92
'file:///c:/foo/%E2%91%A0%E2%85%AB%E3%84%A8%E3%84%A9%20%E5%95%8A%E9%98%BF%E9%BC%BE%E9%BD%84%E4%B8%82%E4%B8%84%E7%8B%9A%E7%8B%9B%E7%8B%9C%E7%8B%9D%EF%A8%A8%EF%A8%A9%CB%8A%CB%8B%CB%99%E2%80%93%E2%BF%BB%E3%80%87%E3%90%80%E3%90%81%E4%B6%B4%E4%B6%B5U1[%EE%80%A5%EE%80%A6%EE%80%A7%EE%80%B8%EE%80%B9]U2[%EE%89%9A%EE%89%9B%EE%89%AC%EE%89%AD]U3[%EE%93%BE%EE%93%BF%EE%94%80%EE%94%8B%EE%94%8C].js' ,
90
- 'file:\\/\\/\\/[Cc]:\\/foo\\/(?:①|%E2%91%A0)(?:Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)U1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)U2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)U3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.js($|?)|[Cc]:\\\\foo\\\\(?:①|%E2%91%A0)(?:Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)U1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)U2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)U3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.js($|?)' ,
93
+ 'file:\\/\\/\\/[Cc]:\\/foo\\/(?:①|%E2%91%A0)(?:Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)U1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)U2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)U3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.js($|\\?)|[Cc]:\\\\foo\\\\(?:①|%E2%91%A0)(?:Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)U1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)U2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)U3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.js($|\\?)' ,
91
94
) ;
92
95
} ) ;
93
96
94
97
it ( 'works with a pre-escaped suffix' , ( ) => {
95
98
const url = 'file:///foo' ;
96
99
const escapedRe = '\\/?($|index(\\.html)?)' ;
97
100
expect ( urlToRegex ( `${ url } ${ escapedRe } ` , [ 0 , url . length ] ) ) . to . equal (
98
- 'file:\\/\\/\\/foo\\/?($|index(\\.html)?)($|?)|\\/foo\\/?($|index(\\.html)?)($|?)' ,
101
+ 'file:\\/\\/\\/foo\\/?($|index(\\.html)?)($|\\ ?)|\\/foo\\/?($|index(\\.html)?)($|\\ ?)' ,
99
102
) ;
100
103
} ) ;
101
104
@@ -104,7 +107,7 @@ describe('urlUtils', () => {
104
107
const wildcardHostname = 'https?:\\/\\/[^\\/]+\\/' ;
105
108
const url = `${ wildcardHostname } ${ path } ` ;
106
109
expect ( urlToRegex ( url , [ wildcardHostname . length , url . length ] ) ) . to . equal (
107
- 'https?:\\/\\/[^\\/]+\\/foo($|?)' ,
110
+ 'https?:\\/\\/[^\\/]+\\/foo($|\\ ?)' ,
108
111
) ;
109
112
} ) ;
110
113
} ) ;
@@ -116,42 +119,42 @@ describe('urlUtils', () => {
116
119
it ( 'works for a simple posix path' , ( ) => {
117
120
testUrlToRegex (
118
121
'file:///a/b.js' ,
119
- '[fF][iI][lL][eE]:\\/\\/\\/[aA]\\/[bB]\\.[jJ][sS]($|?)|\\/[aA]\\/[bB]\\.[jJ][sS]($|?)' ,
122
+ '[fF][iI][lL][eE]:\\/\\/\\/[aA]\\/[bB]\\.[jJ][sS]($|\\ ?)|\\/[aA]\\/[bB]\\.[jJ][sS]($|\\ ?)' ,
120
123
) ;
121
124
} ) ;
122
125
123
126
it ( 'works for a simple windows path' , ( ) => {
124
127
testUrlToRegex (
125
128
'file:///c:/a/b.js' ,
126
- '[fF][iI][lL][eE]:\\/\\/\\/[cC]:\\/[aA]\\/[bB]\\.[jJ][sS]($|?)|[cC]:\\\\[aA]\\\\[bB]\\.[jJ][sS]($|?)' ,
129
+ '[fF][iI][lL][eE]:\\/\\/\\/[cC]:\\/[aA]\\/[bB]\\.[jJ][sS]($|\\ ?)|[cC]:\\\\[aA]\\\\[bB]\\.[jJ][sS]($|\\ ?)' ,
127
130
) ;
128
131
} ) ;
129
132
130
133
it ( 'works for a url' , ( ) => {
131
134
testUrlToRegex (
132
135
'http://localhost:8080/a/b.js' ,
133
- '[hH][tT][tT][pP]:\\/\\/[lL][oO][cC][aA][lL][hH][oO][sS][tT]:8080\\/[aA]\\/[bB]\\.[jJ][sS]($|?)' ,
136
+ '[hH][tT][tT][pP]:\\/\\/[lL][oO][cC][aA][lL][hH][oO][sS][tT]:8080\\/[aA]\\/[bB]\\.[jJ][sS]($|\\ ?)' ,
134
137
) ;
135
138
} ) ;
136
139
137
140
it ( 'escapes component entities (#1174)' , ( ) => {
138
141
testUrlToRegex (
139
142
'file:///%23a/b.js' ,
140
- '[fF][iI][lL][eE]:\\/\\/\\/(?:#|%23)[aA]\\/[bB]\\.[jJ][sS]($|?)|\\/(?:#|%23)[aA]\\/[bB]\\.[jJ][sS]($|?)' ,
143
+ '[fF][iI][lL][eE]:\\/\\/\\/(?:#|%23)[aA]\\/[bB]\\.[jJ][sS]($|\\ ?)|\\/(?:#|%23)[aA]\\/[bB]\\.[jJ][sS]($|\\ ?)' ,
141
144
) ;
142
145
} ) ;
143
146
144
147
it ( 'space in path' , ( ) => {
145
148
testUrlToRegex (
146
149
'file:///a/space%20path.js' ,
147
- '[fF][iI][lL][eE]:\\/\\/\\/[aA]\\/[sS][pP][aA][cC][eE](?: |%20)[pP][aA][tT][hH]\\.[jJ][sS]($|?)|\\/[aA]\\/[sS][pP][aA][cC][eE](?: |%20)[pP][aA][tT][hH]\\.[jJ][sS]($|?)' ,
150
+ '[fF][iI][lL][eE]:\\/\\/\\/[aA]\\/[sS][pP][aA][cC][eE](?: |%20)[pP][aA][tT][hH]\\.[jJ][sS]($|\\ ?)|\\/[aA]\\/[sS][pP][aA][cC][eE](?: |%20)[pP][aA][tT][hH]\\.[jJ][sS]($|\\ ?)' ,
148
151
) ;
149
152
} ) ;
150
153
151
154
it ( 'preserves high unicode (#496)' , ( ) => {
152
155
testUrlToRegex (
153
156
'file:///c:/foo/%E2%91%A0%E2%85%AB%E3%84%A8%E3%84%A9%20%E5%95%8A%E9%98%BF%E9%BC%BE%E9%BD%84%E4%B8%82%E4%B8%84%E7%8B%9A%E7%8B%9B%E7%8B%9C%E7%8B%9D%EF%A8%A8%EF%A8%A9%CB%8A%CB%8B%CB%99%E2%80%93%E2%BF%BB%E3%80%87%E3%90%80%E3%90%81%E4%B6%B4%E4%B6%B5U1[%EE%80%A5%EE%80%A6%EE%80%A7%EE%80%B8%EE%80%B9]U2[%EE%89%9A%EE%89%9B%EE%89%AC%EE%89%AD]U3[%EE%93%BE%EE%93%BF%EE%94%80%EE%94%8B%EE%94%8C].js' ,
154
- '[fF][iI][lL][eE]:\\/\\/\\/[cC]:\\/[fF][oO][oO]\\/(?:①|%E2%91%A0)(?:ⅻ|%E2%85%BB|Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)[uU]1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)[uU]2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)[uU]3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.[jJ][sS]($|?)|[cC]:\\\\[fF][oO][oO]\\\\(?:①|%E2%91%A0)(?:ⅻ|%E2%85%BB|Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)[uU]1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)[uU]2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)[uU]3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.[jJ][sS]($|?)' ,
157
+ '[fF][iI][lL][eE]:\\/\\/\\/[cC]:\\/[fF][oO][oO]\\/(?:①|%E2%91%A0)(?:ⅻ|%E2%85%BB|Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)[uU]1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)[uU]2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)[uU]3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.[jJ][sS]($|\\?)|[cC]:\\\\[fF][oO][oO]\\\\(?:①|%E2%91%A0)(?:ⅻ|%E2%85%BB|Ⅻ|%E2%85%AB)(?:ㄨ|%E3%84%A8)(?:ㄩ|%E3%84%A9)(?: |%20)(?:啊|%E5%95%8A)(?:阿|%E9%98%BF)(?:鼾|%E9%BC%BE)(?:齄|%E9%BD%84)(?:丂|%E4%B8%82)(?:丄|%E4%B8%84)(?:狚|%E7%8B%9A)(?:狛|%E7%8B%9B)(?:狜|%E7%8B%9C)(?:狝|%E7%8B%9D)(?:﨨|%EF%A8%A8)(?:﨩|%EF%A8%A9)(?:ˊ|%CB%8A)(?:ˋ|%CB%8B)(?:˙|%CB%99)(?:–|%E2%80%93)(?:⿻|%E2%BF%BB)(?:〇|%E3%80%87)(?:㐀|%E3%90%80)(?:㐁|%E3%90%81)(?:䶴|%E4%B6%B4)(?:䶵|%E4%B6%B5)[uU]1(?:\\[|%5B)(?:|%EE%80%A5)(?:|%EE%80%A6)(?:|%EE%80%A7)(?:|%EE%80%B8)(?:|%EE%80%B9)(?:\\]|%5D)[uU]2(?:\\[|%5B)(?:|%EE%89%9A)(?:|%EE%89%9B)(?:|%EE%89%AC)(?:|%EE%89%AD)(?:\\]|%5D)[uU]3(?:\\[|%5B)(?:|%EE%93%BE)(?:|%EE%93%BF)(?:|%EE%94%80)(?:|%EE%94%8B)(?:|%EE%94%8C)(?:\\]|%5D)\\.[jJ][sS]($|\\?)' ,
155
158
) ;
156
159
} ) ;
157
160
} ) ;
0 commit comments