/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://urlpattern.spec.whatwg.org/#urlpattern typedef (USVString or URLPatternInit) URLPatternInput; [Exposed=(Window,Worker)] interface URLPattern { [Throws] constructor(URLPatternInput input, USVString baseURL, optional URLPatternOptions options = {}); [Throws] constructor(optional URLPatternInput input = {}, optional URLPatternOptions options = {}); [Throws] boolean test(optional URLPatternInput input = {}, optional USVString baseURL); [Throws] 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; }; dictionary URLPatternInit { USVString protocol; USVString username; USVString password; USVString hostname; USVString port; USVString pathname; USVString search; USVString hash; USVString baseURL; }; dictionary URLPatternOptions { boolean ignoreCase = false; }; dictionary URLPatternResult { sequence inputs; URLPatternComponentResult protocol; URLPatternComponentResult username; URLPatternComponentResult password; URLPatternComponentResult hostname; URLPatternComponentResult port; URLPatternComponentResult pathname; URLPatternComponentResult search; URLPatternComponentResult hash; }; dictionary URLPatternComponentResult { USVString input; record groups; };