'use strict'; const htmlCommentRegex = require('html-comment-regex'); const isBinary = buffer => { const isBuffer = Buffer.isBuffer(buffer); for (let i = 0; i < 24; i++) { const characterCode = isBuffer ? buffer[i] : buffer.charCodeAt(i); if (characterCode === 65533 || characterCode <= 8) { return true; } } return false; }; const cleanEntities = svg => { const entityRegex = /\s*/img; // Remove entities return svg.replace(entityRegex, ''); }; const regex = /^\s*(?:<\?xml[^>]*>\s*)?(?:]*\s*(?:\[?(?:\s*]*>\s*)*\]?)*[^>]*>\s*)?(?:]*>[^]*<\/svg>|]*\/\s*>)\s*$/i; const isSvg = input => Boolean(input) && !isBinary(input) && regex.test(cleanEntities(input.toString()).replace(htmlCommentRegex, '')); module.exports = isSvg; // TODO: Remove this for the next major release module.exports.default = isSvg;