556 lines
17 KiB
JavaScript
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 };
|