// Metro module 4800 (f4801). import Module4801 from "./Module4801"; import { dataUriToBuffer, objectAssign, getStringValueFromArray } from "./Module4802"; import DataView2 from "./DataView"; import Module4804 from "./Module4804"; import Module4805 from "./Module4805"; import Module4818 from "./Module4818"; import Module4820 from "./Module4820"; import Module4821 from "./Module4821"; import parseTags from "./parseTags"; import readTags from "./readTags"; import getTagName from "./getTagName"; import parseTags2 from "./parseTags_4843"; import Module4845 from "./Module4845"; import Module4846 from "./Module4846"; import Module4847 from "./Module4847"; import Module4848 from "./Module4848"; import constructTag from "./constructTag"; import Module4850 from "./Module4850"; import Module4851 from "./Module4851"; import Module4852 from "./Module4852"; import Module4853 from "./Module4853"; import Module4854 from "./Module4854"; import { getCalculatedGpsValue } from "./Module4827"; function $mk75004() { return function isNodeBuffer(a0) { let isBuffer; try { isBuffer = Buffer.isBuffer(a0); } catch ($e) { return false; } return isBuffer; }; } function $mk75005($env) { return function getDataView(a0) { let dataView; try { dataView = new DataView(a0); } catch ($e) { return new DataView2(a0); } return dataView; }; } let loadView; let env2944 = {}; export function load(a0, r9 = {}) { let r25, r52, r71; const r6 = env2944; let c14438_0 = r9; if (typeof a0 === "string") { r9.async = true; if (/^\w+:\/\//.test(a0)) { if (typeof globalThis.fetch !== "undefined") { if (r9 === void 0) { r9 = {}; } const length3 = r9.length; const r75 = Number.isInteger(length3) && length3 >= 0; const r77 = { method: "GET" }; if (r75) { r77.headers = { range: "bytes=0-" + (length3 - 1) }; } r71 = fetch(a0, r77).then((result) => result.arrayBuffer()); } else { let c14441_0 = a0; const length2 = (r9 === void 0 ? {} : r9).length; r71 = new Promise((c31361_0, c31361_1) => { const r10 = Number.isInteger(length2) && length2 >= 0; const r11 = {}; if (r10) { r11.headers = { range: "bytes=0-" + (length2 - 1) }; } const r20 = /^https:\/\//.test(c14441_0); const r21 = __non_webpack_require__; (r20 ? r21("https").get : r21("http").get)(c14441_0, r11, (a0) => { if (a0.statusCode >= 200 && a0.statusCode <= 299) { let c31932_0 = []; a0.on("data", (a0) => c31932_0.push(Buffer.from(a0))); a0.on("error", (a0) => c31361_1(a0)); a0.on("end", () => c31361_0(Buffer.concat(c31932_0))); } else { c31361_1(`Could not fetch file: ${a0.statusCode} ${a0.statusMessage}`); a0.resume(); } }).on("error", (a0) => c31361_1(a0)); }); } r52 = r71; } else if (/^data:[^;,]*(;base64)?,/.test(a0)) { r52 = Promise.resolve(dataUriToBuffer(a0)); } else { let c14440_0 = a0; const length = (r9 === void 0 ? {} : r9).length; r52 = new Promise((c31362_0, c31362_1) => { let c31362_2; const r5 = (function requireNodeFs() { let r4; try { r4 = __non_webpack_require__("fs"); } catch ($e) { return void 0; } return r4; })(); c31362_2 = r5; r5.open(c14440_0, (a0, c31933_0) => { if (a0) { c31362_1(a0); } else { c31362_2.stat(c14440_0, (a0, a1) => { if (a0) { c31362_1(a0); } else { const r8 = Math; const size = a1.size; const r4 = length !== void 0 ? length : a1.size; const length3 = r8.min(size, r4); const buffer = Buffer.alloc(length3); let c32119_0 = buffer; c31362_2.read(c31933_0, { buffer, length: length3 }, (a0) => { if (a0) { c31362_1(a0); } else { c31362_2.close(c31933_0, (a0) => { if (a0) { console.warn(`Could not close file ${c14440_0}:`, a0); } c31362_0(c32119_0); }); } }); } }); } }); }); } r25 = r52.then((result) => { const r5 = $mk75004()(result) ? new Uint8Array(result).buffer : result; return loadView($mk75005(env2944)(r5), c14438_0); }); } else { const File2 = globalThis.File; if (typeof File2 !== "undefined" ? a0 instanceof File : typeof File2 !== "undefined") { r9.async = true; let c14439_0 = a0; r25 = new Promise((c29442_0, c29442_1) => { const fileReader = new FileReader(); let c29442_2 = fileReader; fileReader.onload = (a0) => c29442_0(a0.target.result); fileReader.onerror = () => c29442_1(c29442_2.error); fileReader.readAsArrayBuffer(c14439_0); }).then((result) => { const r5 = $mk75004()(result) ? new Uint8Array(result).buffer : result; return loadView($mk75005(env2944)(r5), c14438_0); }); } else { const r11 = $mk75004()(a0) ? new Uint8Array(a0).buffer : a0; r25 = loadView($mk75005(r6)(r11), r9); } } return r25; } loadView = function loadView(a0, r7 = { expanded: false, async: false, includeUnknown: false, domParser: void 0 }) { let r319, r326; let expanded = r7.expanded; if (expanded === void 0) { expanded = false; } let c14442_1; let c14442_0 = expanded; const { async = false, includeUnknown = false, domParser } = r7; const addPngTextTags2 = function addPngTextTags(a0) { if (c14442_0) { for (const item of ["exif", "iptc"]) { const r56 = `__${item}`; if (a0[r56]) { const r12 = c14442_1; r12[item] = r12[item] ? objectAssign({}, c14442_1.exif, a0[r56]) : a0[r56]; delete a0[r56]; } } const r71 = c14442_1; r71.png = r71.png ? objectAssign({}, c14442_1.png, a0) : a0; const r82 = c14442_1; r82.pngText = r82.pngText ? objectAssign({}, c14442_1.png, a0) : a0; } else { const r39 = objectAssign({}, c14442_1, a0.__exif ? a0.__exif : {}, a0.__iptc ? a0.__iptc : {}, a0); c14442_1 = r39; delete r39["__exif"]; delete c14442_1["__iptc"]; } }; c14442_1 = {}; const r44 = Module4804.parseAppMarkers(a0, async); const { fileType, fileDataOffset, jfifDataOffset, tiffHeaderOffset, iptcDataOffset, xmpChunks, iccChunks, mpfDataOffset, pngHeaderOffset, pngTextChunks, pngChunkOffsets, vp8xChunkOffset, gifHeaderOffset } = r44; let r2 = false; if (Module4805.USE_JPEG) { r2 = false; if (Module4805.USE_FILE) { r2 = false; if (fileDataOffset !== void 0) { const file = Module4818.read(a0, fileDataOffset); if (expanded) { c14442_1.file = file; r2 = true; } else { c14442_1 = objectAssign({}, c14442_1, file); r2 = true; } } } } let r1 = r2; if (Module4805.USE_JPEG) { r1 = r2; if (Module4805.USE_JFIF) { r1 = r2; if (jfifDataOffset !== void 0) { const jfif = Module4820.read(a0, jfifDataOffset); if (expanded) { c14442_1.jfif = jfif; r1 = true; } else { c14442_1 = objectAssign({}, c14442_1, jfif); r1 = true; } } } } let r82 = r1; if (Module4805.USE_EXIF) { r82 = r1; if (tiffHeaderOffset !== void 0) { const r86 = Module4821.read(a0, tiffHeaderOffset, includeUnknown); const { tags, byteOrder } = r86; if (tags.Thumbnail) { c14442_1.Thumbnail = tags.Thumbnail; delete tags["Thumbnail"]; } if (expanded) { c14442_1.exif = tags; (function addGpsGroup(a0) { if (a0.exif) { if (a0.exif.GPSLatitude && a0.exif.GPSLatitudeRef) { try { a0.gps = a0.gps || {}; a0.gps.Latitude = getCalculatedGpsValue(a0.exif.GPSLatitude.value); if (a0.exif.GPSLatitudeRef.value.join("") === "S") { a0.gps.Latitude = -a0.gps.Latitude; } } catch ($e) {} } if (a0.exif.GPSLongitude && a0.exif.GPSLongitudeRef) { try { a0.gps = a0.gps || {}; a0.gps.Longitude = getCalculatedGpsValue(a0.exif.GPSLongitude.value); if (a0.exif.GPSLongitudeRef.value.join("") === "W") { a0.gps.Longitude = -a0.gps.Longitude; } } catch ($e) {} } if (a0.exif.GPSAltitude && a0.exif.GPSAltitudeRef) { try { a0.gps = a0.gps || {}; a0.gps.Altitude = a0.exif.GPSAltitude.value[0] / a0.exif.GPSAltitude.value[1]; if (a0.exif.GPSAltitudeRef.value === 1) { a0.gps.Altitude = -a0.gps.Altitude; } } catch ($e) {} } } })(c14442_1); } else { c14442_1 = objectAssign({}, c14442_1, tags); } if (Module4805.USE_TIFF && Module4805.USE_IPTC && tags["IPTC-NAA"] && iptcDataOffset === void 0) { const iptc = parseTags.read(tags["IPTC-NAA"].value, 0, includeUnknown); if (expanded) { c14442_1.iptc = iptc; } else { c14442_1 = objectAssign({}, c14442_1, iptc); } } if (Module4805.USE_TIFF && Module4805.USE_XMP && tags.ApplicationNotes && !(Array.isArray(xmpChunks) && xmpChunks.length > 0)) { const xmp = readTags.read(getStringValueFromArray(tags.ApplicationNotes.value), void 0, domParser); if (expanded) { c14442_1.xmp = xmp; } else { delete xmp["_raw"]; c14442_1 = objectAssign({}, c14442_1, xmp); } } if (Module4805.USE_PHOTOSHOP && tags.ImageSourceData && tags.PhotoshopSettings) { const photoshop = getTagName.read(tags.PhotoshopSettings.value, includeUnknown); if (expanded) { c14442_1.photoshop = photoshop; } else { c14442_1 = objectAssign({}, c14442_1, photoshop); } } if (Module4805.USE_TIFF && Module4805.USE_ICC && tags.ICC_Profile && !(Array.isArray(iccChunks) && iccChunks.length > 0)) { const icc = parseTags2.read(tags.ICC_Profile.value, [{ offset: 0, length: tags.ICC_Profile.value.length, chunkNumber: 1, chunksTotal: 1 }]); if (expanded) { c14442_1.icc = icc; } else { c14442_1 = objectAssign({}, c14442_1, icc); } } if (Module4805.USE_MAKER_NOTES && tags.MakerNote) { if (tags.Make && tags.Make.value && Array.isArray(tags.Make.value) && tags.Make.value[0] === "Canon" && tags.MakerNote && tags.MakerNote.__offset) { const makerNotes2 = Module4845.read(a0, tiffHeaderOffset, tags.MakerNote.__offset, byteOrder, includeUnknown); if (expanded) { c14442_1.makerNotes = makerNotes2; } else { c14442_1 = objectAssign({}, c14442_1, makerNotes2); } } else if (tags.MakerNote.value.length > "PENTAX ".length && getStringValueFromArray(tags.MakerNote.value.slice(0, "PENTAX ".length)) === "PENTAX " && tags.MakerNote.__offset) { const makerNotes = Module4846.read(a0, tiffHeaderOffset, tags.MakerNote.__offset, includeUnknown); if (expanded) { c14442_1.makerNotes = makerNotes; } else { c14442_1 = objectAssign({}, c14442_1, makerNotes); } } } const MakerNote = tags.MakerNote; r82 = true; if (MakerNote) { delete tags.MakerNote["__offset"]; r82 = true; } } } let r279 = r82; if (Module4805.USE_JPEG) { r279 = r82; if (Module4805.USE_IPTC) { r279 = r82; if (iptcDataOffset !== void 0) { const iptc2 = parseTags.read(a0, iptcDataOffset, includeUnknown); if (expanded) { c14442_1.iptc = iptc2; r279 = true; } else { c14442_1 = objectAssign({}, c14442_1, iptc2); r279 = true; } } } } let r298 = r279; if (Module4805.USE_XMP) { const r302 = Array.isArray(xmpChunks) && xmpChunks.length > 0; r298 = r279; if (r302) { const xmp2 = readTags.read(a0, xmpChunks, domParser); if (expanded) { c14442_1.xmp = xmp2; r298 = true; } else { delete xmp2["_raw"]; c14442_1 = objectAssign({}, c14442_1, xmp2); r298 = true; } } } L108: { r319 = []; if (!Module4805.USE_JPEG) { r326 = r298; if (!Module4805.USE_WEBP) { break L108; } } r326 = r298; if (Module4805.USE_ICC) { const r333 = Array.isArray(iccChunks) && iccChunks.length > 0; r326 = r298; if (r333) { const icc2 = parseTags2.read(a0, iccChunks, async); if (icc2 instanceof Promise) { r319.push(icc2.then(function addIccTags(result) { if (c14442_0) { c14442_1.icc = result; } else { c14442_1 = objectAssign({}, c14442_1, result); } })); r326 = true; } else if (expanded) { c14442_1.icc = icc2; r326 = true; } else { c14442_1 = objectAssign({}, c14442_1, icc2); r326 = true; } } } } let r358 = r326; if (Module4805.USE_MPF) { r358 = r326; if (mpfDataOffset !== void 0) { const mpf = Module4847.read(a0, mpfDataOffset, includeUnknown); if (expanded) { c14442_1.mpf = mpf; r358 = true; } else { c14442_1 = objectAssign({}, c14442_1, mpf); r358 = true; } } } let r374 = r358; if (Module4805.USE_PNG) { r374 = r358; if (Module4805.USE_PNG_FILE) { r374 = r358; if (pngHeaderOffset !== void 0) { const pngFile = Module4848.read(a0, pngHeaderOffset); if (expanded) { const r389 = c14442_1; r389.png = r389.png ? objectAssign({}, c14442_1.png, pngFile) : pngFile; c14442_1.pngFile = pngFile; r374 = true; } else { c14442_1 = objectAssign({}, c14442_1, pngFile); r374 = true; } } } } let r403 = r374; if (Module4805.USE_PNG) { r403 = r374; if (pngTextChunks !== void 0) { const r412 = constructTag.read(a0, pngTextChunks, async, includeUnknown); const { readTags: readTags2, readTagsPromise } = r412; addPngTextTags2(readTags2); r403 = true; if (readTagsPromise) { r319.push(readTagsPromise.then((result) => result.forEach(addPngTextTags2))); r403 = true; } } } let r424 = r403; if (Module4805.USE_PNG) { r424 = r403; if (pngChunkOffsets !== void 0) { const r428 = Module4850.read(a0, pngChunkOffsets); if (expanded) { const r436 = c14442_1; r436.png = r436.png ? objectAssign({}, c14442_1.png, r428) : r428; r424 = true; } else { c14442_1 = objectAssign({}, c14442_1, r428); r424 = true; } } } let r449 = r424; if (Module4805.USE_WEBP) { r449 = r424; if (vp8xChunkOffset !== void 0) { const r453 = Module4851.read(a0, vp8xChunkOffset); if (expanded) { const r461 = c14442_1; r461.riff = r461.riff ? objectAssign({}, c14442_1.riff, r453) : r453; r449 = true; } else { c14442_1 = objectAssign({}, c14442_1, r453); r449 = true; } } } let r474 = r449; if (Module4805.USE_GIF) { r474 = r449; if (gifHeaderOffset !== void 0) { const r478 = Module4852.read(a0, gifHeaderOffset); if (expanded) { const r486 = c14442_1; r486.gif = r486.gif ? objectAssign({}, c14442_1.gif, r478) : r478; r474 = true; } else { c14442_1 = objectAssign({}, c14442_1, r478); r474 = true; } } } const composite = Module4853.get(c14442_1, expanded); if (composite) { if (expanded) { c14442_1.composite = composite; } else { c14442_1 = objectAssign({}, c14442_1, composite); } } const Thumbnail = (Module4805.USE_JPEG || Module4805.USE_WEBP) && Module4805.USE_EXIF && Module4805.USE_THUMBNAIL && Module4854.get(a0, c14442_1.Thumbnail, tiffHeaderOffset); const r523 = c14442_1; if (Thumbnail) { r523.Thumbnail = Thumbnail; r474 = true; } else { delete r523["Thumbnail"]; } if (fileType) { const r526 = c14442_1; if (expanded) { if (!r526.file) { c14442_1.file = {}; } c14442_1.file.FileType = fileType; r474 = true; } else { r526.FileType = fileType; r474 = true; } } if (r474) { return async ? Promise.all(r319).then(() => c14442_1) : c14442_1; } throw new Module4801.MetadataMissingError(); }; export default { load, loadView, errors: Module4801 }; export { Module4801 as errors }; export { loadView };