Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
notion-desktop / usr / lib / notion-desktop / resources / app / shared / urlHelpers.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const url = require("url");
function parse(str, args = {}) {
    try {
        return url.parse(str, true, args.slashesDenoteHost);
    }
    catch (err) {
        try {
            const result = url.parse(str);
            const resultWithQuery = {
                ...result,
                query: {},
            };
            return resultWithQuery;
        }
        catch (err) {
            return url.parse("", true);
        }
    }
}
exports.parse = parse;
function format(args) {
    return url.format(args);
}
exports.format = format;
function makeUrl(args) {
    const parsed = parse(args.url);
    parsed.query;
    delete parsed.search;
    parsed.query = args.query || {};
    parsed.hash = args.hash || null;
    return format(parsed);
}
exports.makeUrl = makeUrl;
function removeBaseUrl(str) {
    const parsed = parse(str);
    delete parsed.protocol;
    delete parsed.host;
    delete parsed.hostname;
    parsed.slashes = false;
    return format(parsed);
}
exports.removeBaseUrl = removeBaseUrl;
function isRelativeUrl(relativeUrl) {
    const parsed = parse(relativeUrl);
    return Boolean(!parsed.host && !parsed.hostname);
}
exports.isRelativeUrl = isRelativeUrl;
function setBaseUrl(args) {
    const parsed = parse(args.relativeUrl);
    const baseUrlParsed = parse(args.baseUrl);
    parsed.protocol = baseUrlParsed.protocol;
    parsed.host = baseUrlParsed.host;
    parsed.hostname = baseUrlParsed.hostname;
    return format(parsed);
}
exports.setBaseUrl = setBaseUrl;
function replacePathname(args) {
    const parsed = parse(args.url);
    delete parsed.path;
    parsed.pathname = args.pathname;
    return format(parsed);
}
exports.replacePathname = replacePathname;
function resolve(baseUrl, pathname) {
    return replacePathname({ url: baseUrl, pathname });
}
exports.resolve = resolve;
function removeQueryParam(str, param) {
    const parsed = parse(str);
    delete parsed.search;
    delete parsed.query[param];
    return format(parsed);
}
exports.removeQueryParam = removeQueryParam;
function addQueryParams(str, query) {
    const parsed = parse(str);
    delete parsed.search;
    parsed.query = { ...parsed.query, ...query };
    return format(parsed);
}
exports.addQueryParams = addQueryParams;
const hostBlacklist = {
    "thumpmagical.top": true,
    "geoloc8.com": true,
    "kutabminaj.top": true,
    "cutisbuhano.xyz": true,
    "bhapurimillat.xyz": true,
    "kingoffightermens.top": true,
    "boxgeneral.xyz": true,
    "ahnd.ga": true,
    "steptossmessage.top": true,
    "earthdiscover.xyz": true,
    "sopecasniteroi.com.br": true,
    "clangchapshop.xyz": true,
};
function sanitizeUrl(args) {
    const { str, allowNoProtocol } = args;
    if (!str || typeof str !== "string") {
        return;
    }
    try {
        const parsed = parse(str);
        if (parsed.host && hostBlacklist[parsed.host]) {
            return;
        }
        if (parsed.protocol === "http:" ||
            parsed.protocol === "https:" ||
            parsed.protocol === "mailto:" ||
            parsed.protocol === "itms-apps:" ||
            parsed.protocol === "tel:" ||
            (allowNoProtocol && !parsed.protocol)) {
            return str;
        }
    }
    catch (err) {
        return;
    }
}
exports.sanitizeUrl = sanitizeUrl;
function removeUrlFromString(str) {
    return (str || "").replace(/(?:https?|ftp):\/\/[\n\S]+/g, "");
}
exports.removeUrlFromString = removeUrlFromString;
//# sourceMappingURL=urlHelpers.js.map