// Bundled with fixed versions by build-metadata-vendor.mjs. Only byte input is accepted. import { load } from 'exifreader/src/exif-reader.js'; import { DOMParser } from '@xmldom/xmldom'; export async function readImageTags(buffer) { if (!(buffer instanceof ArrayBuffer)) throw new Error('bytes_required'); let partial = false; const domParser = { parseFromString(source, mime) { if (source.length > 512 * 1024 || / { throw new Error('invalid_xml'); } }).parseFromString(source, mime); } catch { partial = true; throw new Error('invalid_xml'); } }, }; const tags = await load(buffer, { expanded: true, includeOffsets: true, includeUnknown: true, async: true, domParser, decompress: { maxDecompressedSize: 2 * 1024 * 1024 }, }); return { tags, partial }; }