/* 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 http://mozilla.org/MPL/2.0/. */ "use strict"; /* globals module */ const GOOGLE_TLDS = [ "com", "ac", "ad", "ae", "com.af", "com.ag", "com.ai", "al", "am", "co.ao", "com.ar", "as", "at", "com.au", "az", "ba", "com.bd", "be", "bf", "bg", "com.bh", "bi", "bj", "com.bn", "com.bo", "com.br", "bs", "bt", "co.bw", "by", "com.bz", "ca", "com.kh", "cc", "cd", "cf", "cat", "cg", "ch", "ci", "co.ck", "cl", "cm", "cn", "com.co", "co.cr", "com.cu", "cv", "com.cy", "cz", "de", "dj", "dk", "dm", "com.do", "dz", "com.ec", "ee", "com.eg", "es", "com.et", "fi", "com.fj", "fm", "fr", "ga", "ge", "gf", "gg", "com.gh", "com.gi", "gl", "gm", "gp", "gr", "com.gt", "gy", "com.hk", "hn", "hr", "ht", "hu", "co.id", "iq", "ie", "co.il", "im", "co.in", "io", "is", "it", "je", "com.jm", "jo", "co.jp", "co.ke", "ki", "kg", "co.kr", "com.kw", "kz", "la", "com.lb", "com.lc", "li", "lk", "co.ls", "lt", "lu", "lv", "com.ly", "co.ma", "md", "me", "mg", "mk", "ml", "com.mm", "mn", "ms", "com.mt", "mu", "mv", "mw", "com.mx", "com.my", "co.mz", "com.na", "ne", "com.nf", "com.ng", "com.ni", "nl", "no", "com.np", "nr", "nu", "co.nz", "com.om", "com.pk", "com.pa", "com.pe", "com.ph", "pl", "com.pg", "pn", "com.pr", "ps", "pt", "com.py", "com.qa", "ro", "rs", "ru", "rw", "com.sa", "com.sb", "sc", "se", "com.sg", "sh", "si", "sk", "com.sl", "sn", "sm", "so", "st", "sr", "com.sv", "td", "tg", "co.th", "com.tj", "tk", "tl", "tm", "to", "tn", "com.tr", "tt", "com.tw", "co.tz", "com.ua", "co.ug", "co.uk", "com", "com.uy", "co.uz", "com.vc", "co.ve", "vg", "co.vi", "com.vn", "vu", "ws", "co.za", "co.zm", "co.zw", ]; var InterventionHelpers = { /** * Useful helper to generate a list of domains with a fixed base domain and * multiple country-TLDs or other cases with various TLDs. * * Example: * matchPatternsForTLDs("*://mozilla.", "/*", ["com", "org"]) * => ["*://mozilla.com/*", "*://mozilla.org/*"] */ matchPatternsForTLDs(base, suffix, tlds) { return tlds.map(tld => base + tld + suffix); }, /** * A modified version of matchPatternsForTLDs that always returns the match * list for all known Google country TLDs. */ matchPatternsForGoogle(base, suffix = "/*") { return InterventionHelpers.matchPatternsForTLDs(base, suffix, GOOGLE_TLDS); }, }; module.exports = InterventionHelpers;