UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var linkify_it_1 = tslib_1.__importDefault(require("linkify-it"));
5var whitelistedURLPatterns = [
6 /^https?:\/\//im,
7 /^ftps?:\/\//im,
8 /^\//im,
9 /^mailto:/im,
10 /^skype:/im,
11 /^callto:/im,
12 /^facetime:/im,
13 /^git:/im,
14 /^irc6?:/im,
15 /^news:/im,
16 /^nntp:/im,
17 /^feed:/im,
18 /^cvs:/im,
19 /^svn:/im,
20 /^mvn:/im,
21 /^ssh:/im,
22 /^scp:\/\//im,
23 /^sftp:\/\//im,
24 /^itms:/im,
25 /^notes:/im,
26 /^hipchat:\/\//im,
27 /^sourcetree:/im,
28 /^urn:/im,
29 /^tel:/im,
30 /^xmpp:/im,
31 /^telnet:/im,
32 /^vnc:/im,
33 /^rdp:/im,
34 /^whatsapp:/im,
35 /^slack:/im,
36 /^sips?:/im,
37 /^magnet:/im,
38];
39exports.isSafeUrl = function (url) {
40 return whitelistedURLPatterns.some(function (p) { return p.test(url.trim()) === true; });
41};
42var linkify = linkify_it_1.default();
43linkify.add('sourcetree:', 'http:');
44function getLinkMatch(str) {
45 var match = str && linkify.match(str);
46 return match && match[0];
47}
48exports.getLinkMatch = getLinkMatch;
49/**
50 * Adds protocol to url if needed.
51 */
52function normalizeUrl(url) {
53 var match = getLinkMatch(url);
54 return (match && match.url) || url;
55}
56exports.normalizeUrl = normalizeUrl;
57//# sourceMappingURL=url.js.map
\No newline at end of file