typedef (USVString or URLPatternInit) URLPatternInput; // https://urlpattern.spec.whatwg.org/#urlpattern [Exposed=(Window,Worker)] interface URLPattern { constructor(URLPatternInput input, USVString baseURL, optional URLPatternOptions options = {}); constructor(optional URLPatternInput input = {}, optional URLPatternOptions options = {}); boolean test(optional URLPatternInput input = {}, optional USVString baseURL); URLPatternResult? exec(optional URLPatternInput input = {}, optional USVString baseURL); readonly attribute USVString protocol; readonly attribute USVString username; readonly attribute USVString password; readonly attribute USVString hostname; readonly attribute USVString port; readonly attribute USVString pathname; readonly attribute USVString search; readonly attribute USVString hash; readonly attribute boolean hasRegExpGroups; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatterninit dictionary URLPatternInit { USVString protocol; USVString username; USVString password; USVString hostname; USVString port; USVString pathname; USVString search; USVString hash; USVString baseURL; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatternoptions dictionary URLPatternOptions { boolean ignoreCase = false; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatternresult dictionary URLPatternResult { [GenerateAsRequired] sequence inputs; [GenerateAsRequired] URLPatternComponentResult protocol; [GenerateAsRequired] URLPatternComponentResult username; [GenerateAsRequired] URLPatternComponentResult password; [GenerateAsRequired] URLPatternComponentResult hostname; [GenerateAsRequired] URLPatternComponentResult port; [GenerateAsRequired] URLPatternComponentResult pathname; [GenerateAsRequired] URLPatternComponentResult search; [GenerateAsRequired] URLPatternComponentResult hash; }; // https://urlpattern.spec.whatwg.org/#dictdef-urlpatterncomponentresult dictionary URLPatternComponentResult { [GenerateAsRequired] USVString input; [GenerateAsRequired] record groups; };