1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const lodash_1 = require("lodash");
|
4 | const startsWithWildcardRegExp = /^\*\./;
|
5 | const endsWithWildcardRegExp = /\.\*$/;
|
6 | const trailingSlashesRegExp = /\/.*$/;
|
7 | const portRegExp = /:(\d+)$/;
|
8 | const protocolRegExp = /^(\w+):\/\//;
|
9 | const wildcardRegExp = /\\\.\\\*/g;
|
10 | function parseUrl(url) {
|
11 | if (!url || typeof url !== 'string')
|
12 | return null;
|
13 | let protocol = url.match(protocolRegExp);
|
14 | protocol = protocol ? protocol[1] : null;
|
15 | url = url.replace(protocolRegExp, '');
|
16 | url = url.replace(trailingSlashesRegExp, '');
|
17 | let port = url.match(portRegExp);
|
18 | port = port ? parseInt(port[1], 10) : null;
|
19 | url = url.replace(portRegExp, '');
|
20 | return { protocol, url, port };
|
21 | }
|
22 | function prepareRule(url) {
|
23 | const rule = parseUrl(url);
|
24 | if (rule) {
|
25 | rule.url = rule.url.replace(startsWithWildcardRegExp, '.');
|
26 | rule.url = rule.url.replace(endsWithWildcardRegExp, '.');
|
27 | }
|
28 | return rule;
|
29 | }
|
30 | function urlMatchRule(sourceUrl, rule) {
|
31 | if (!sourceUrl || !rule)
|
32 | return false;
|
33 | const matchByProtocols = !rule.protocol || !sourceUrl.protocol || rule.protocol === sourceUrl.protocol;
|
34 | const matchByPorts = !rule.port || sourceUrl.port === rule.port;
|
35 | const domainRequiredBeforeRule = rule.url.startsWith('.');
|
36 | const domainRequiredAfterRule = rule.url.endsWith('.');
|
37 | let regExStr = '^';
|
38 | if (domainRequiredBeforeRule)
|
39 | regExStr += '.+';
|
40 | regExStr += lodash_1.escapeRegExp(rule.url).replace(wildcardRegExp, '\\..*');
|
41 | if (domainRequiredAfterRule)
|
42 | regExStr += '.+';
|
43 | regExStr += '$';
|
44 | return new RegExp(regExStr).test(sourceUrl.url) && matchByProtocols && matchByPorts;
|
45 | }
|
46 | function default_1(url, rules) {
|
47 | if (!Array.isArray(rules))
|
48 | rules = [rules];
|
49 | return rules.some(rule => urlMatchRule(parseUrl(url), prepareRule(rule)));
|
50 | }
|
51 | exports.default = default_1;
|
52 | module.exports = exports.default;
|
53 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NoZWNrLXVybC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFrRDtBQUVsRCxNQUFNLHdCQUF3QixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLHNCQUFzQixHQUFLLE9BQU8sQ0FBQztBQUN6QyxNQUFNLHFCQUFxQixHQUFNLE9BQU8sQ0FBQztBQUN6QyxNQUFNLFVBQVUsR0FBaUIsU0FBUyxDQUFDO0FBQzNDLE1BQU0sY0FBYyxHQUFhLGFBQWEsQ0FBQztBQUMvQyxNQUFNLGNBQWMsR0FBYSxXQUFXLENBQUM7QUFFN0MsU0FBUyxRQUFRLENBQUUsR0FBRztJQUNsQixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFFaEIsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6QyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6QyxHQUFHLEdBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsR0FBRyxHQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbEQsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0MsR0FBRyxHQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRW5DLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ25DLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBRSxHQUFHO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixJQUFJLElBQUksRUFBRTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUM1RDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBRSxTQUFTLEVBQUUsSUFBSTtJQUNsQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUVqQixNQUFNLGdCQUFnQixHQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQy9HLE1BQU0sWUFBWSxHQUFlLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUUsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxNQUFNLHVCQUF1QixHQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhELElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUVuQixJQUFJLHdCQUF3QjtRQUN4QixRQUFRLElBQUksSUFBSSxDQUFDO0lBRXJCLFFBQVEsSUFBSSxxQkFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWhFLElBQUksdUJBQXVCO1FBQ3ZCLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFFckIsUUFBUSxJQUFJLEdBQUcsQ0FBQztJQUVoQixPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksZ0JBQWdCLElBQUksWUFBWSxDQUFDO0FBQ3hGLENBQUM7QUFFRCxtQkFBeUIsR0FBRyxFQUFFLEtBQUs7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3JCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBTEQsNEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlc2NhcGVSZWdFeHAgYXMgZXNjYXBlUmUgfSBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBzdGFydHNXaXRoV2lsZGNhcmRSZWdFeHAgPSAvXlxcKlxcLi87XG5jb25zdCBlbmRzV2l0aFdpbGRjYXJkUmVnRXhwICAgPSAvXFwuXFwqJC87XG5jb25zdCB0cmFpbGluZ1NsYXNoZXNSZWdFeHAgICAgPSAvXFwvLiokLztcbmNvbnN0IHBvcnRSZWdFeHAgICAgICAgICAgICAgICA9IC86KFxcZCspJC87XG5jb25zdCBwcm90b2NvbFJlZ0V4cCAgICAgICAgICAgPSAvXihcXHcrKTpcXC9cXC8vO1xuY29uc3Qgd2lsZGNhcmRSZWdFeHAgICAgICAgICAgID0gL1xcXFxcXC5cXFxcXFwqL2c7XG5cbmZ1bmN0aW9uIHBhcnNlVXJsICh1cmwpIHtcbiAgICBpZiAoIXVybCB8fCB0eXBlb2YgdXJsICE9PSAnc3RyaW5nJylcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgcHJvdG9jb2wgPSB1cmwubWF0Y2gocHJvdG9jb2xSZWdFeHApO1xuXG4gICAgcHJvdG9jb2wgPSBwcm90b2NvbCA/IHByb3RvY29sWzFdIDogbnVsbDtcbiAgICB1cmwgICAgICA9IHVybC5yZXBsYWNlKHByb3RvY29sUmVnRXhwLCAnJyk7XG4gICAgdXJsICAgICAgPSB1cmwucmVwbGFjZSh0cmFpbGluZ1NsYXNoZXNSZWdFeHAsICcnKTtcblxuICAgIGxldCBwb3J0ID0gdXJsLm1hdGNoKHBvcnRSZWdFeHApO1xuXG4gICAgcG9ydCA9IHBvcnQgPyBwYXJzZUludChwb3J0WzFdLCAxMCkgOiBudWxsO1xuICAgIHVybCAgPSB1cmwucmVwbGFjZShwb3J0UmVnRXhwLCAnJyk7XG5cbiAgICByZXR1cm4geyBwcm90b2NvbCwgdXJsLCBwb3J0IH07XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVSdWxlICh1cmwpIHtcbiAgICBjb25zdCBydWxlID0gcGFyc2VVcmwodXJsKTtcblxuICAgIGlmIChydWxlKSB7XG4gICAgICAgIHJ1bGUudXJsID0gcnVsZS51cmwucmVwbGFjZShzdGFydHNXaXRoV2lsZGNhcmRSZWdFeHAsICcuJyk7XG4gICAgICAgIHJ1bGUudXJsID0gcnVsZS51cmwucmVwbGFjZShlbmRzV2l0aFdpbGRjYXJkUmVnRXhwLCAnLicpO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlO1xufVxuXG5mdW5jdGlvbiB1cmxNYXRjaFJ1bGUgKHNvdXJjZVVybCwgcnVsZSkge1xuICAgIGlmICghc291cmNlVXJsIHx8ICFydWxlKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBtYXRjaEJ5UHJvdG9jb2xzICAgICAgICAgPSAhcnVsZS5wcm90b2NvbCB8fCAhc291cmNlVXJsLnByb3RvY29sIHx8IHJ1bGUucHJvdG9jb2wgPT09IHNvdXJjZVVybC5wcm90b2NvbDtcbiAgICBjb25zdCBtYXRjaEJ5UG9ydHMgICAgICAgICAgICAgPSAhcnVsZS5wb3J0IHx8IHNvdXJjZVVybC5wb3J0ID09PSBydWxlLnBvcnQ7XG4gICAgY29uc3QgZG9tYWluUmVxdWlyZWRCZWZvcmVSdWxlID0gcnVsZS51cmwuc3RhcnRzV2l0aCgnLicpO1xuICAgIGNvbnN0IGRvbWFpblJlcXVpcmVkQWZ0ZXJSdWxlICA9IHJ1bGUudXJsLmVuZHNXaXRoKCcuJyk7XG5cbiAgICBsZXQgcmVnRXhTdHIgPSAnXic7XG5cbiAgICBpZiAoZG9tYWluUmVxdWlyZWRCZWZvcmVSdWxlKVxuICAgICAgICByZWdFeFN0ciArPSAnLisnO1xuXG4gICAgcmVnRXhTdHIgKz0gZXNjYXBlUmUocnVsZS51cmwpLnJlcGxhY2Uod2lsZGNhcmRSZWdFeHAsICdcXFxcLi4qJyk7XG5cbiAgICBpZiAoZG9tYWluUmVxdWlyZWRBZnRlclJ1bGUpXG4gICAgICAgIHJlZ0V4U3RyICs9ICcuKyc7XG5cbiAgICByZWdFeFN0ciArPSAnJCc7XG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChyZWdFeFN0cikudGVzdChzb3VyY2VVcmwudXJsKSAmJiBtYXRjaEJ5UHJvdG9jb2xzICYmIG1hdGNoQnlQb3J0cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHVybCwgcnVsZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocnVsZXMpKVxuICAgICAgICBydWxlcyA9IFtydWxlc107XG5cbiAgICByZXR1cm4gcnVsZXMuc29tZShydWxlID0+IHVybE1hdGNoUnVsZShwYXJzZVVybCh1cmwpLCBwcmVwYXJlUnVsZShydWxlKSkpO1xufVxuIl19 |
\ | No newline at end of file |