UNPKG

google-photos-migrate

Version:

A tool to fix EXIF data and recover filenames from a Google Photos takeout.

61 lines (60 loc) 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.supportedExtensions = void 0; const MetaType_1 = require("../meta/MetaType"); // The extensions are identified by their suffix // A list of aliases will match each .<ext> with .<alias>.json // If an alias is an object, the output extension can forcibly // be set based on the extension found in the json file let extensions = [ { suffix: '.jpg', metaType: MetaType_1.MetaType.EXIF }, { suffix: '.jpeg', metaType: MetaType_1.MetaType.EXIF }, { suffix: '.png', metaType: MetaType_1.MetaType.EXIF }, { suffix: '.raw', metaType: MetaType_1.MetaType.EXIF }, // could be TIFF { suffix: '.dng', metaType: MetaType_1.MetaType.EXIF }, // based on TIFF { suffix: '.ico', metaType: MetaType_1.MetaType.NONE }, { suffix: '.tif', metaType: MetaType_1.MetaType.EXIF }, { suffix: '.tiff', metaType: MetaType_1.MetaType.EXIF }, { suffix: '.webp', metaType: MetaType_1.MetaType.EXIF }, // based on RIFF { suffix: '.heic', metaType: MetaType_1.MetaType.QUICKTIME }, { suffix: '.heif', metaType: MetaType_1.MetaType.QUICKTIME }, { suffix: '.gif', metaType: MetaType_1.MetaType.NONE }, { suffix: '.qt', metaType: MetaType_1.MetaType.QUICKTIME }, { suffix: '.mov.qt', metaType: MetaType_1.MetaType.QUICKTIME }, { suffix: '.3gp', metaType: MetaType_1.MetaType.QUICKTIME }, { suffix: '.mp4v', metaType: MetaType_1.MetaType.QUICKTIME }, { suffix: '.mkv', metaType: MetaType_1.MetaType.NONE }, { suffix: '.wmv', metaType: MetaType_1.MetaType.NONE }, { suffix: '.webm', metaType: MetaType_1.MetaType.NONE }, ...['.mp4', '.mov'].map((suf) => ({ suffix: suf, metaType: MetaType_1.MetaType.QUICKTIME, // Apple live photos aliases: ['.heic', '.jpg', '.jpeg'], })), // Google live photos ...['.mp', '.mvimg'].map((suf) => ({ suffix: suf, metaType: MetaType_1.MetaType.QUICKTIME, aliases: [ { suffix: '.jpg', out: '.mp4' }, { suffix: '.jpeg', out: '.mp4' }, ], })), ]; // match lower-/uppercase versions extensions = extensions.flatMap((e) => { const aliases = e.aliases?.flatMap((alias) => { return typeof alias === 'string' ? [alias.toLowerCase(), alias.toUpperCase()] : [ { ...alias, suffix: alias.suffix.toLowerCase() }, { ...alias, suffix: alias.suffix.toUpperCase() }, ]; }); return [ { ...e, suffix: e.suffix.toLowerCase(), aliases }, { ...e, suffix: e.suffix.toUpperCase(), aliases }, ]; }); exports.supportedExtensions = extensions;