(url)
| 46 | // Extract base64 body from a data URL of any mime type. Used for PDF |
| 47 | // payloads which don't match parseDataUrl's image-only regex. |
| 48 | export function parseGenericDataUrl(url) { |
| 49 | const clean = url.replace(/\s/g, ''); |
| 50 | const m = clean.match(/^data:([a-z0-9][a-z0-9.+/-]+);base64,(.+)$/i); |
| 51 | if (!m) return null; |
| 52 | if (m[2].length > MAX_BASE64_LEN) throw new Error(`Data URL exceeds ${MAX_SIZE} byte limit`); |
| 53 | return { base64_data: m[2], mime_type: m[1].toLowerCase() }; |
| 54 | } |
| 55 | |
| 56 | export async function assertPublicUrlHost(urlOrHost, lookupFn = dnsLookup) { |
| 57 | let host = urlOrHost; |
no outgoing calls
no test coverage detected