@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
28 lines (26 loc) • 1.79 kB
JavaScript
/**
* This file has been partially duplicated in packages/linking-platform/linking-common/src/url.ts
* Any changes made here should be mirrored there.
* Ticket for dedeplication: https://product-fabric.atlassian.net/browse/EDM-7138
* Ticket for fixing linkification of filename-like urls: https://product-fabric.atlassian.net/browse/EDM-7190
*/
var whitelistedURLPatterns = [/^http[s\u017F]?:\/\//im, /^ftp[s\u017F]?:\/\//im, /^gopher:\/\//im, /^integrity:\/\//im, /^file:\/\//im, /^[s\u017F]mb:\/\//im, /^dynamic[s\u017F]nav:\/\//im, /^jamf[s\u017F]elf[s\u017F]ervice:\/\//im, /^\//im, /^mailto:/im, /^[s\u017F][k\u212A]ype:/im, /^callto:/im, /^facetime:/im, /^git:/im, /^irc6?:/im, /^new[s\u017F]:/im, /^nntp:/im, /^feed:/im, /^cv[s\u017F]:/im, /^[s\u017F]vn:/im, /^mvn:/im, /^[s\u017F][s\u017F]h:/im, /^[s\u017F]cp:\/\//im, /^[s\u017F]ftp:\/\//im, /^itm[s\u017F]:/im,
// This is not a valid notes link, but we support this pattern for backwards compatibility
/^note[s\u017F]:/im, /^note[s\u017F]:\/\//im, /^hipchat:\/\//im,
// This is not a valid sourcetree link, but we support this pattern for backwards compatibility
/^[s\u017F]ourcetree:/im, /^[s\u017F]ourcetree:\/\//im, /^urn:/im, /^tel:/im, /^xmpp:/im, /^telnet:/im, /^vnc:/im, /^rdp:/im, /^what[s\u017F]app:/im, /^[s\u017F]lac[k\u212A]:/im, /^[s\u017F]ip[s\u017F]?:/im, /^magnet:/im, /^#/im];
/**
* Please notify the Editor Mobile team (Slack: #help-mobilekit) if the logic for this changes.
*/
export var isSafeUrl = function isSafeUrl(url) {
var urlTrimmed = url === null || url === void 0 ? void 0 : url.trim();
if (urlTrimmed === undefined) {
return true;
}
if (urlTrimmed.length === 0) {
return true;
}
return whitelistedURLPatterns.some(function (p) {
return p.test(urlTrimmed);
});
};