diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2023-09-02 19:12:47 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2023-09-02 19:12:47 -0400 |
commit | e4450c8417624b71d779cb4f41692538f9165e10 (patch) | |
tree | b70826542223ecdf8a7a259f61b0a1abb8a217d8 /node_modules/magic-bytes.js/dist/model/pattern-tree.js | |
download | sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.tar.gz sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.tar.bz2 sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.zip |
first commit
Diffstat (limited to 'node_modules/magic-bytes.js/dist/model/pattern-tree.js')
-rw-r--r-- | node_modules/magic-bytes.js/dist/model/pattern-tree.js | 764 |
1 files changed, 764 insertions, 0 deletions
diff --git a/node_modules/magic-bytes.js/dist/model/pattern-tree.js b/node_modules/magic-bytes.js/dist/model/pattern-tree.js new file mode 100644 index 0000000..68228fe --- /dev/null +++ b/node_modules/magic-bytes.js/dist/model/pattern-tree.js @@ -0,0 +1,764 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const toHex_1 = require("./toHex"); +const tree_1 = require("./tree"); +// https://en.wikipedia.org/wiki/List_of_file_signatures +let fileType = new Map(); +let tree = { + noOffset: null, + offset: {}, +}; +const add = (typename, signature, additionalInfo, offset) => { + fileType.set(typename, signature); + if (offset) { + const existing = tree.offset[toHex_1.toHex(offset)]; + if (!existing) { + tree.offset[toHex_1.toHex(offset)] = tree_1.createComplexNode(typename, signature.map((e) => e.toLowerCase()), additionalInfo); + } + else { + const merged = tree_1.merge(tree_1.createNode(typename, signature.map((e) => e.toLowerCase()), additionalInfo), { ...existing }); + tree.offset[toHex_1.toHex(offset)] = merged; + } + } + else { + if (tree.noOffset === null) { + tree.noOffset = tree_1.createComplexNode(typename, signature.map((e) => e.toLowerCase()), additionalInfo); + } + else { + tree.noOffset = tree_1.merge(tree_1.createNode(typename, signature.map((e) => e.toLowerCase()), additionalInfo), tree.noOffset); + } + } +}; +add("gif", ["0x47", "0x49", "0x46", "0x38", "0x37", "0x61"], { + mime: "image/gif", + extension: "gif", +}); +add("gif", ["0x47", "0x49", "0x46", "0x38", "0x39", "0x61"], { + mime: "image/gif", + extension: "gif", +}); +add("jpg", ["0xFF", "0xD8", "0xFF", "0xDB"], { + mime: "image/jpeg", + extension: "jpeg", +}); +add("jpg", [ + "0xFF", + "0xD8", + "0xFF", + "0xE0", + "?", + "?", + "0x4A", + "0x46", + "0x49", + "0x46", + "0x00", + "0x01", +], { mime: "image/jpeg", extension: "jpeg" }); +add("jpg", [ + "0xFF", + "0xD8", + "0xFF", + "0xE1", + "?", + "?", + "0x45", + "0x78", + "0x69", + "0x66", + "0x00", + "0x00", +], { mime: "image/jpeg", extension: "jpeg" }); +add("webp", [ + "0x52", + "0x49", + "0x46", + "0x46", + "?", + "?", + "?", + "?", + "0x57", + "0x45", + "0x42", + "0x50", +], { mime: "image/webp", extension: "webp" }); +add("heif", ["0x66", "0x74", "0x79", "0x70", "0x6D", "0x69", "0x66", "0x31"], { mime: "image/heif", extension: "heif" }, 4); +add("heif", ["0x66", "0x74", "0x79", "0x70", "0x68", "0x65", "0x69", "0x63"], { mime: "image/heif", extension: "heic" }, 4); +add("rpm", ["0xed", "0xab", "0xee", "0xdb"]); +add("bin", ["0x53", "0x50", "0x30", "0x31"], { + mime: "application/octet-stream", + extension: "bin", +}); +add("pic", ["0x00"]); +add("pif", ["0x00"]); +add("sea", ["0x00"]); +add("ytr", ["0x00"]); +// 66747970 +// 6D703432 +add("mp4", ["0x66", "0x74", "0x79", "0x70"], { mime: "video/mp4", extension: "mp4" }, 0x4); +add("pdb", [ + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", +]); +add("dba", ["0xBE", "0xBA", "0xFE", "0xCA"]); +add("dba2", ["0x00", "0x01", "0x42", "0x44"]); +add("tda", ["0x00", "0x01", "0x44", "0x54"]); +add("tda2", ["0x00", "0x01", "0x00", "0x00"]); +add("ico", ["0x00", "0x00", "0x01", "0x00"], { + mime: "image/x-icon", + extension: "ico", +}); +add("3gp", ["0x66", "0x74", "0x79", "0x70", "0x33", "0x67"]); +add("z", ["0x1F", "0x9D"]); +add("tar.z", ["0x1F", "0xA0"]); +add("bac", [ + "0x42", + "0x41", + "0x43", + "0x4B", + "0x4D", + "0x49", + "0x4B", + "0x45", + "0x44", + "0x49", + "0x53", + "0x4B", +]); +add("bz2", ["0x42", "0x5A", "0x68"], { + mime: "application/x-bzip2", + extension: "bz2", +}); +add("tif", ["0x49", "0x49", "0x2A", "0x00"], { + mime: "image/tiff", + extension: "tif", +}); +add("tiff", ["0x4D", "0x4D", "0x00", "0x2A"], { + mime: "image/tiff", + extension: "tiff", +}); +add("cr2", [ + "0x49", + "0x49", + "0x2A", + "0x00", + "0x10", + "0x00", + "0x00", + "0x00", + "0x43", + "0x52", +]); +add("cin", ["0x80", "0x2A", "0x5F", "0xD7"]); +add("cin1", ["0x52", "0x4E", "0x43", "0x01"]); +add("cin2", ["0x52", "0x4E", "0x43", "0x02"]); +add("dpx", ["0x53", "0x44", "0x50", "0x58"]); +add("dpx2", ["0x58", "0x50", "0x44", "0x53"]); +add("exr", ["0x76", "0x2F", "0x31", "0x01"]); +add("bpg", ["0x42", "0x50", "0x47", "0xFB"]); +add("ilbm", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x49", + "0x4C", + "0x42", + "0x4D", +]); +add("8svx", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x38", + "0x53", + "0x56", + "0x58", +]); +add("acbm", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x41", + "0x43", + "0x42", + "0x4D", +]); +add("anbm", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x41", + "0x4E", + "0x42", + "0x4D", +]); +add("anim", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x41", + "0x4E", + "0x49", + "0x4D", +]); +add("faxx", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x46", + "0x41", + "0x58", + "0x58", +]); +add("ftxt", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x46", + "0x54", + "0x58", + "0x54", +]); +add("smus", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x53", + "0x4D", + "0x55", + "0x53", +]); +add("cmus", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x43", + "0x4D", + "0x55", + "0x53", +]); +add("yuvn", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x59", + "0x55", + "0x56", + "0x4E", +]); +add("iff", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x46", + "0x41", + "0x4E", + "0x54", +]); +add("aiff", [ + "0x46", + "0x4F", + "0x52", + "0x4D", + "?", + "?", + "?", + "?", + "0x41", + "0x49", + "0x46", + "0x46", +], { mime: "audio/x-aiff", extension: "aiff" }); +add("idx", ["0x49", "0x4E", "0x44", "0x58"]); +add("lz", ["0x4C", "0x5A", "0x49", "0x50"]); +add("exe", ["0x4D", "0x5A"]); +add("zip", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/zip", + extension: "zip", +}); +add("zip", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/zip", + extension: "zip", +}); +add("zip", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/zip", + extension: "zip", +}); +add("jar", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/java-archive", + extension: "jar", +}); +add("jar", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/java-archive", + extension: "jar", +}); +add("jar", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/java-archive", + extension: "jar", +}); +add("odt", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/vnd.oasis.opendocument.text", + extension: "odt", +}); +add("odt", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/vnd.oasis.opendocument.text", + extension: "odt", +}); +add("odt", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/vnd.oasis.opendocument.text", + extension: "odt", +}); +add("ods", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/vnd.oasis.opendocument.spreadsheet", + extension: "ods", +}); +add("ods", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/vnd.oasis.opendocument.spreadsheet", + extension: "ods", +}); +add("ods", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/vnd.oasis.opendocument.spreadsheet", + extension: "ods", +}); +add("odp", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/vnd.oasis.opendocument.presentation", + extension: "odp", +}); +add("odp", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/vnd.oasis.opendocument.presentation", + extension: "odp", +}); +add("odp", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/vnd.oasis.opendocument.presentation", + extension: "odp", +}); +add("docx", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + extension: "docx", +}); +add("docx", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + extension: "docx", +}); +add("docx", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + extension: "docx", +}); +add("xlsx", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + extension: "xlsx", +}); +add("xlsx", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + extension: "xlsx", +}); +add("xlsx", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + extension: "xlsx", +}); +add("pptx", ["0x50", "0x4B", "0x03", "0x04"], { + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + extension: "pptx", +}); +add("pptx", ["0x50", "0x4B", "0x05", "0x06"], { + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + extension: "pptx", +}); +add("pptx", ["0x50", "0x4B", "0x07", "0x08"], { + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + extension: "pptx", +}); +add("vsdx", ["0x50", "0x4B", "0x03", "0x04"]); +add("vsdx", ["0x50", "0x4B", "0x05", "0x06"]); +add("vsdx", ["0x50", "0x4B", "0x07", "0x08"]); +add("apk", ["0x50", "0x4B", "0x03", "0x04"]); +add("apk", ["0x50", "0x4B", "0x05", "0x06"]); +add("apk", ["0x50", "0x4B", "0x07", "0x08"]); +add("aar", ["0x50", "0x4B", "0x03", "0x04"]); +add("aar", ["0x50", "0x4B", "0x05", "0x06"]); +add("aar", ["0x50", "0x4B", "0x07", "0x08"]); +add("rar", ["0x52", "0x61", "0x72", "0x21", "0x1A", "0x07", "0x00"], { + mime: "application/vnd.rar", + extension: "rar", +}); +add("rar", ["0x52", "0x61", "0x72", "0x21", "0x1A", "0x07", "0x01", "0x00"], { + mime: "application/vnd.rar", + extension: "rar", +}); +add("rar", ["0x7F", "0x45", "0x4C", "0x46"], { + mime: "application/vnd.rar", + extension: "rar", +}); +add("png", ["0x89", "0x50", "0x4E", "0x47", "0x0D", "0x0A", "0x1A", "0x0A"], { + mime: "image/png", + extension: "png", +}); +add("apng", ["0x89", "0x50", "0x4E", "0x47", "0x0D", "0x0A", "0x1A", "0x0A"], { + mime: "image/apng", + extension: "apng", +}); +add("class", ["0xCA", "0xFE", "0xBA", "0xBE"]); +add("class", ["0xEF", "0xBB", "0xBF"]); +add("class", ["0xFE", "0xed", "0xFA", "0xCE"], undefined, 0x1000); +add("class", ["0xFE", "0xed", "0xFA", "0xCF"], undefined, 0x1000); +add("class", ["0xCE", "0xFA", "0xed", "0xFE"]); +add("class", ["0xCF", "0xFA", "0xed", "0xFE"]); +add("class", ["0xFF", "0xFE"]); +add("class", ["0xFF", "0xFE"]); +add("class", ["0xFF", "0xFE", "0x00", "0x00"]); +add("ps", ["0x25", "0x21", "0x50", "0x53"]); +add("pdf", ["0x25", "0x50", "0x44", "0x46"], { + mime: "application/pdf", + extension: "pdf", +}); +add("asf", [ + "0x30", + "0x26", + "0xB2", + "0x75", + "0x8E", + "0x66", + "0xCF", + "0x11", + "0xA6", + "0xD9", + "0x00", + "0xAA", + "0x00", + "0x62", + "0xCE", + "0x6C", +]); +add("wma", [ + "0x30", + "0x26", + "0xB2", + "0x75", + "0x8E", + "0x66", + "0xCF", + "0x11", + "0xA6", + "0xD9", + "0x00", + "0xAA", + "0x00", + "0x62", + "0xCE", + "0x6C", +]); +add("wmv", [ + "0x30", + "0x26", + "0xB2", + "0x75", + "0x8E", + "0x66", + "0xCF", + "0x11", + "0xA6", + "0xD9", + "0x00", + "0xAA", + "0x00", + "0x62", + "0xCE", + "0x6C", +]); +add("deploymentimage", [ + "0x24", + "0x53", + "0x44", + "0x49", + "0x30", + "0x30", + "0x30", + "0x31", +]); +add("ogg", ["0x4F", "0x67", "0x67", "0x53"], { + mime: "audio/ogg", + extension: "ogg", +}); +add("oga", ["0x4F", "0x67", "0x67", "0x53"], { + mime: "audio/ogg", + extension: "oga", +}); +add("ogv", ["0x4F", "0x67", "0x67", "0x53"], { + mime: "video/ogg", + extension: "ogv", +}); +add("psd", ["0x38", "0x42", "0x50", "0x53"], { + mime: "application/x-photoshop", + extension: "psd", +}); +add("clip", ["0x43", "0x53", "0x46", "0x43", "0x48", "0x55", "0x4e", "0x4b"]); +add("wav", [ + "0x52", + "0x49", + "0x46", + "0x46", + "?", + "?", + "?", + "?", + "0x57", + "0x41", + "0x56", + "0x45", +], { mime: "audio/x-wav", extension: "wav" }); +add("avi", [ + "0x52", + "0x49", + "0x46", + "0x46", + "?", + "?", + "?", + "?", + "0x41", + "0x56", + "0x49", + "0x20", +], { mime: "video/x-msvideo", extension: "avi" }); +add("mp3", ["0xFF", "0xFB"], { mime: "audio/mpeg", extension: "mp3" }); +add("mp3", ["0xFF", "0xF3"], { mime: "audio/mpeg", extension: "mp3" }); +add("mp3", ["0xFF", "0xF2"], { mime: "audio/mpeg", extension: "mp3" }); +add("mp3", ["0x49", "0x44", "0x33"], { mime: "audio/mpeg", extension: "mp3" }); +add("bmp", ["0x42", "0x4D"], { mime: "image/bmp", extension: "bmp" }); +add("iso", ["0x43", "0x44", "0x30", "0x30", "0x31"]); +add("flac", ["0x66", "0x4C", "0x61", "0x43"]); +add("mid", ["0x4D", "0x54", "0x68", "0x64"], { + mime: "audio/midi", + extension: "mid", +}); +add("midi", ["0x4D", "0x54", "0x68", "0x64"], { + mime: "audio/midi", + extension: "midi", +}); +add("doc", ["0xD0", "0xCF", "0x11", "0xE0", "0xA1", "0xB1", "0x1A", "0xE1"], { + mime: "application/msword", + extension: "doc", +}); +add("xls", ["0xD0", "0xCF", "0x11", "0xE0", "0xA1", "0xB1", "0x1A", "0xE1"], { + mime: "application/vnd.ms-excel", + extension: "xls", +}); +add("ppt", ["0xD0", "0xCF", "0x11", "0xE0", "0xA1", "0xB1", "0x1A", "0xE1"], { + mime: "application/vnd.ms-powerpoint", + extension: "ppt", +}); +add("msg", ["0xD0", "0xCF", "0x11", "0xE0", "0xA1", "0xB1", "0x1A", "0xE1"]); +add("dex", ["0x64", "0x65", "0x78", "0x0A", "0x30", "0x33", "0x35", "0x00"]); +add("vmdk", ["0x4B", "0x44", "0x4D"]); +add("crx", ["0x43", "0x72", "0x32", "0x34"]); +add("fh8", ["0x41", "0x47", "0x44", "0x33"]); +add("cwk", [ + "0x05", + "0x07", + "0x00", + "0x00", + "0x42", + "0x4F", + "0x42", + "0x4F", + "0x05", + "0x07", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x01", +]); +add("cwk", [ + "0x06", + "0x07", + "0xE1", + "0x00", + "0x42", + "0x4F", + "0x42", + "0x4F", + "0x06", + "0x07", + "0xE1", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x00", + "0x01", +]); +add("toast", ["0x45", "0x52", "0x02", "0x00", "0x00", "0x00"]); +add("toast", ["0x8B", "0x45", "0x52", "0x02", "0x00", "0x00", "0x00"]); +add("dmg", ["0x78", "0x01", "0x73", "0x0D", "0x62", "0x62", "0x60"]); +add("xar", ["0x78", "0x61", "0x72", "0x21"]); +add("dat", ["0x50", "0x4D", "0x4F", "0x43", "0x43", "0x4D", "0x4F", "0x43"]); +add("nes", ["0x4E", "0x45", "0x53", "0x1A"]); +add("tar", ["0x75", "0x73", "0x74", "0x61", "0x72", "0x00", "0x30", "0x30"], undefined, 0x101); +add("tar", ["0x75", "0x73", "0x74", "0x61", "0x72", "0x20", "0x20", "0x00"], undefined, 0x101); +add("tox", ["0x74", "0x6F", "0x78", "0x33"]); +add("mlv", ["0x4D", "0x4C", "0x56", "0x49"]); +add("windowsupdate", [ + "0x44", + "0x43", + "0x4D", + "0x01", + "0x50", + "0x41", + "0x33", + "0x30", +]); +add("7z", ["0x37", "0x7A", "0xBC", "0xAF", "0x27", "0x1C"], { + mime: "application/x-7z-compressed", + extension: "7z", +}); +add("gz", ["0x1F", "0x8B"], { mime: "application/gzip", extension: "gz" }); +add("tar.gz", ["0x1F", "0x8B"], { + mime: "application/gzip", + extension: "tar.gz", +}); +add("xz", ["0xFD", "0x37", "0x7A", "0x58", "0x5A", "0x00", "0x00"], { + mime: "application/gzip", + extension: "xz", +}); +add("tar.xz", ["0xFD", "0x37", "0x7A", "0x58", "0x5A", "0x00", "0x00"], { + mime: "application/gzip", + extension: "tar.xz", +}); +add("lz2", ["0x04", "0x22", "0x4D", "0x18"]); +add("cab", ["0x4D", "0x53", "0x43", "0x46"]); +add("mkv", ["0x1A", "0x45", "0xDF", "0xA3"]); +add("mka", ["0x1A", "0x45", "0xDF", "0xA3"]); +add("mks", ["0x1A", "0x45", "0xDF", "0xA3"]); +add("mk3d", ["0x1A", "0x45", "0xDF", "0xA3"]); +add("webm", ["0x1A", "0x45", "0xDF", "0xA3"], { + mime: "audio/webm", + extension: "webm", +}); +add("dcm", ["0x44", "0x49", "0x43", "0x4D"], undefined, 0x80); +add("xml", ["0x3C", "0x3f", "0x78", "0x6d", "0x6C", "0x20"], { + mime: "application/xml", + extension: "xml", +}); +add("wasm", ["0x00", "0x61", "0x73", "0x6d"]); +add("lep", ["0xCF", "0x84", "0x01"]); +add("swf", ["0x43", "0x57", "0x53"], { + mime: "application/x-shockwave-flash", + extension: "swf", +}); +add("swf", ["0x46", "0x57", "0x53"], { + mime: "application/x-shockwave-flash", + extension: "swf", +}); +add("deb", ["0x21", "0x3C", "0x61", "0x72", "0x63", "0x68", "0x3E"]); +add("rtf", ["0x7B", "0x5C", "0x72", "0x74", "0x66", "0x31"], { + mime: "application/rtf", + extension: "rtf", +}); +add("m2p", ["0x00", "0x00", "0x01", "0xBA"]); +add("vob", ["0x00", "0x00", "0x01", "0xBA"]); +add("mpg", ["0x00", "0x00", "0x01", "0xBA"], { + mime: "video/mpeg", + extension: "mpg", +}); +add("mpeg", ["0x00", "0x00", "0x01", "0xBA"], { + mime: "video/mpeg", + extension: "mpeg", +}); +add("mpeg", ["0x47"], { mime: "video/mpeg", extension: "mpeg" }); +add("mpeg", ["0x00", "0x00", "0x01", "0xB3"], { + mime: "video/mpeg", + extension: "mpeg", +}); +add("hl2demo", ["48", "4C", "32", "44", "45", "4D", "4F"]); +exports.default = () => tree; |