From 336d31ce39e96cfc21a1e966bb2953d543cf2a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=A4fer?= Date: Sun, 30 Nov 2025 02:41:03 +0100 Subject: [PATCH] fix(validators): restore 2+ char domain label requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace (?:[a-z\\d-]{0,61}[a-z\\d])? with (?:[a-z\\d-]{1,61}[a-z\\d]) to keep labels 2–63 chars - Avoid unintentionally allowing single-character labels (e.g. a.com) introduced by the previous regex change Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- server/lib/validators.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/validators.ts b/server/lib/validators.ts index 71182365..880a2ceb 100644 --- a/server/lib/validators.ts +++ b/server/lib/validators.ts @@ -68,7 +68,7 @@ export function isUrlValid(url: string | undefined) { if (!url) return true; // the link is optional in the schema so if it's empty it's valid var pattern = new RegExp( "^(https?:\\/\\/)?" + // protocol - "((([a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)\\.)+[a-z]{2,}|" + // domain name + "(((?:[a-z\\d-]{1,61}[a-z\\d])\\.)+[a-z]{2,}|" + // domain name "((\\d{1,3}\\.){3}\\d{1,3}))" + // OR ip (v4) address "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // port and path "(\\?[;&a-z\\d%_.~+=-]*)?" + // query string