From 91155295fe72d0f4a0e5ce30a0dbc1a77d87cf76 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sun, 11 Dec 2022 21:28:09 -0500 Subject: [PATCH] fix: Loosen url validation --- shared/utils/urls.test.ts | 3 ++- shared/utils/urls.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/shared/utils/urls.test.ts b/shared/utils/urls.test.ts index 6d40aa5c6..5ed28a294 100644 --- a/shared/utils/urls.test.ts +++ b/shared/utils/urls.test.ts @@ -15,6 +15,7 @@ describe("IsUrl Method", () => { expect(urlsUtils.isUrl("https://www.example.com")).toBe(true); expect(urlsUtils.isUrl("seafile://openfile")).toBe(true); expect(urlsUtils.isUrl("figma://launch")).toBe(true); + expect(urlsUtils.isUrl("outline:https://getoutline.com")).toBe(true); }); }); @@ -76,7 +77,7 @@ describe("sanitizeUrl Method", () => { expect(urlsUtils.sanitizeUrl("fax:0123456789")).toEqual("fax:0123456789"); expect(urlsUtils.sanitizeUrl("sms:0123456789")).toEqual("sms:0123456789"); }); - it("should return the url as it's if it's a special domain", () => { + it("should return the url as it's if it's a special protocol", () => { expect(urlsUtils.sanitizeUrl("mqtt://getoutline.com")).toEqual( "mqtt://getoutline.com" ); diff --git a/shared/utils/urls.ts b/shared/utils/urls.ts index 06ade6aa4..14f80c0fb 100644 --- a/shared/utils/urls.ts +++ b/shared/utils/urls.ts @@ -67,7 +67,7 @@ export function isUrl(text: string, options?: { requireHostname: boolean }) { return ( url.protocol !== "" && - url.pathname.startsWith("//") && + (url.pathname.startsWith("//") || url.pathname.startsWith("http")) && !options?.requireHostname ); } catch (err) {