Files
discord-decomp/_bundle/loadView.js
T
2026-11-01 12:12:55 +02:00

556 lines
17 KiB
JavaScript

// 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 };