function normalizeMediaPath(value) { if (value === undefined) return undefined if (value === null) return null const raw = String(value).trim() if (!raw) return null const lower = raw.toLowerCase() if ( lower.startsWith("javascript:") || lower.startsWith("data:") || lower.startsWith("vbscript:") ) { return null } try { if (raw.startsWith("http://") || raw.startsWith("https://")) { const parsed = new URL(raw) return parsed.pathname || "/" } if (raw.startsWith("//")) { const parsed = new URL(`https:${raw}`) return parsed.pathname || "/" } const domainLike = /^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(\/|$)/i.test(raw) if (domainLike) { const parsed = new URL(`https://${raw}`) return parsed.pathname || "/" } } catch {} if (raw.startsWith("/")) return raw return `/${raw.replace(/^\/+/, "")}` } module.exports = { normalizeMediaPath }