From 89e9aac88634d3408eb8600c5a9e7cbb52f10d10 Mon Sep 17 00:00:00 2001 From: Navpreet Singh Date: Sun, 20 Sep 2026 23:02:16 +0100 Subject: [PATCH] fix(isDataURI): accept case-insensitive URI schemes --- src/lib/isDataURI.js | 2 +- test/validators.test.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/isDataURI.js b/src/lib/isDataURI.js index 506544807..0ed07649a 100644 --- a/src/lib/isDataURI.js +++ b/src/lib/isDataURI.js @@ -14,7 +14,7 @@ export default function isDataURI(str) { } const attributes = data.shift().trim().split(';'); const schemeAndMediaType = attributes.shift(); - if (schemeAndMediaType.slice(0, 5) !== 'data:') { + if (schemeAndMediaType.slice(0, 5).toLowerCase() !== 'data:') { return false; } const mediaType = schemeAndMediaType.slice(5); diff --git a/test/validators.test.js b/test/validators.test.js index 98d2a12ff..9bfea630a 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -12719,11 +12719,16 @@ describe('Validators', () => { 'data:,A%20brief%20note', 'data:text/html;charset=US-ASCII,%3Ch1%3EHello!%3C%2Fh1%3E', 'data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,dGVzdC5kb2N4', + 'DATA:,Hello', + 'DaTa:text/plain;base64,SGVsbG8=', + 'Data:text/html,%3Ch1%3EHello%3C%2Fh1%3E', ], invalid: [ 'dataxbase64', 'data:HelloWorld', + 'DATA:HelloWorld', 'data:,A%20brief%20invalid%20[note', + 'DaTa:,A%20brief%20invalid%20[note', 'file:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D', 'data:text/html;charset=,%3Ch1%3EHello!%3C%2Fh1%3E', 'data:text/html;charset,%3Ch1%3EHello!%3C%2Fh1%3E', 'data:base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC',