1package mimetype 2 3import "github.com/gabriel-vasile/mimetype/internal/matchers" 4 5// root is a matcher which passes for any slice of bytes. 6// When a matcher passes the check, the children matchers 7// are tried in order to find a more accurate MIME type. 8var root = newMIME("application/octet-stream", "", matchers.True, 9 sevenZ, zip, pdf, ole, ps, psd, ogg, png, jpg, jp2, jpx, jpm, gif, webp, 10 exe, elf, ar, tar, xar, bz2, fits, tiff, bmp, ico, mp3, flac, midi, ape, 11 musePack, amr, wav, aiff, au, mpeg, quickTime, mqv, mp4, webM, threeGP, 12 threeG2, avi, flv, mkv, asf, aac, voc, aMp4, m4a, utf32le, utf32be, utf16le, 13 utf16be, gzip, class, swf, crx, woff, woff2, otf, eot, wasm, shx, dbf, dcm, 14 rar, djvu, mobi, lit, bpg, sqlite3, dwg, nes, macho, qcp, icns, heic, 15 heicSeq, heif, heifSeq, mrc, mdb, accdb, zstd, cab, utf8, 16) 17 18// The list of nodes appended to the root node 19var ( 20 gzip = newMIME("application/gzip", ".gz", matchers.Gzip). 21 alias("application/x-gzip", "application/x-gunzip", "application/gzipped", "application/gzip-compressed", "application/x-gzip-compressed", "gzip/document") 22 sevenZ = newMIME("application/x-7z-compressed", ".7z", matchers.SevenZ) 23 zip = newMIME("application/zip", ".zip", matchers.Zip, xlsx, docx, pptx, epub, jar, odt, ods, odp, odg, odf). 24 alias("application/x-zip", "application/x-zip-compressed") 25 tar = newMIME("application/x-tar", ".tar", matchers.Tar) 26 xar = newMIME("application/x-xar", ".xar", matchers.Xar) 27 bz2 = newMIME("application/x-bzip2", ".bz2", matchers.Bz2) 28 pdf = newMIME("application/pdf", ".pdf", matchers.Pdf). 29 alias("application/x-pdf") 30 xlsx = newMIME("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ".xlsx", matchers.Xlsx) 31 docx = newMIME("application/vnd.openxmlformats-officedocument.wordprocessingml.document", ".docx", matchers.Docx) 32 pptx = newMIME("application/vnd.openxmlformats-officedocument.presentationml.presentation", ".pptx", matchers.Pptx) 33 epub = newMIME("application/epub+zip", ".epub", matchers.Epub) 34 jar = newMIME("application/jar", ".jar", matchers.Jar) 35 ole = newMIME("application/x-ole-storage", "", matchers.Ole, xls, pub, ppt, doc) 36 doc = newMIME("application/msword", ".doc", matchers.Doc). 37 alias("application/vnd.ms-word") 38 ppt = newMIME("application/vnd.ms-powerpoint", ".ppt", matchers.Ppt). 39 alias("application/mspowerpoint") 40 pub = newMIME("application/vnd.ms-publisher", ".pub", matchers.Pub) 41 xls = newMIME("application/vnd.ms-excel", ".xls", matchers.Xls). 42 alias("application/msexcel") 43 ps = newMIME("application/postscript", ".ps", matchers.Ps) 44 fits = newMIME("application/fits", ".fits", matchers.Fits) 45 ogg = newMIME("application/ogg", ".ogg", matchers.Ogg, oggAudio, oggVideo). 46 alias("application/x-ogg") 47 oggAudio = newMIME("audio/ogg", ".oga", matchers.OggAudio) 48 oggVideo = newMIME("video/ogg", ".ogv", matchers.OggVideo) 49 utf32le = newMIME("text/plain; charset=utf-32le", ".txt", matchers.Utf32le) 50 utf32be = newMIME("text/plain; charset=utf-32be", ".txt", matchers.Utf32be) 51 utf16le = newMIME("text/plain; charset=utf-16le", ".txt", matchers.Utf16le) 52 utf16be = newMIME("text/plain; charset=utf-16be", ".txt", matchers.Utf16be) 53 utf8 = newMIME("text/plain; charset=utf-8", ".txt", matchers.Utf8, html, svg, xml, php, js, lua, perl, python, json, ndJson, rtf, tcl, csv, tsv, vCard, iCalendar, warc) 54 xml = newMIME("text/xml; charset=utf-8", ".xml", matchers.Xml, rss, atom, x3d, kml, xliff, collada, gml, gpx, tcx, amf, threemf) 55 json = newMIME("application/json", ".json", matchers.Json, geoJson) 56 csv = newMIME("text/csv", ".csv", matchers.Csv) 57 tsv = newMIME("text/tab-separated-values", ".tsv", matchers.Tsv) 58 geoJson = newMIME("application/geo+json", ".geojson", matchers.GeoJson) 59 ndJson = newMIME("application/x-ndjson", ".ndjson", matchers.NdJson) 60 html = newMIME("text/html; charset=utf-8", ".html", matchers.Html) 61 php = newMIME("text/x-php; charset=utf-8", ".php", matchers.Php) 62 rtf = newMIME("text/rtf", ".rtf", matchers.Rtf) 63 js = newMIME("application/javascript", ".js", matchers.Js). 64 alias("application/x-javascript", "text/javascript") 65 lua = newMIME("text/x-lua", ".lua", matchers.Lua) 66 perl = newMIME("text/x-perl", ".pl", matchers.Perl) 67 python = newMIME("application/x-python", ".py", matchers.Python) 68 tcl = newMIME("text/x-tcl", ".tcl", matchers.Tcl). 69 alias("application/x-tcl") 70 vCard = newMIME("text/vcard", ".vcf", matchers.VCard) 71 iCalendar = newMIME("text/calendar", ".ics", matchers.ICalendar) 72 svg = newMIME("image/svg+xml", ".svg", matchers.Svg) 73 rss = newMIME("application/rss+xml", ".rss", matchers.Rss). 74 alias("text/rss") 75 atom = newMIME("application/atom+xml", ".atom", matchers.Atom) 76 x3d = newMIME("model/x3d+xml", ".x3d", matchers.X3d) 77 kml = newMIME("application/vnd.google-earth.kml+xml", ".kml", matchers.Kml) 78 xliff = newMIME("application/x-xliff+xml", ".xlf", matchers.Xliff) 79 collada = newMIME("model/vnd.collada+xml", ".dae", matchers.Collada) 80 gml = newMIME("application/gml+xml", ".gml", matchers.Gml) 81 gpx = newMIME("application/gpx+xml", ".gpx", matchers.Gpx) 82 tcx = newMIME("application/vnd.garmin.tcx+xml", ".tcx", matchers.Tcx) 83 amf = newMIME("application/x-amf", ".amf", matchers.Amf) 84 threemf = newMIME("application/vnd.ms-package.3dmanufacturing-3dmodel+xml", ".3mf", matchers.Threemf) 85 png = newMIME("image/png", ".png", matchers.Png) 86 jpg = newMIME("image/jpeg", ".jpg", matchers.Jpg) 87 jp2 = newMIME("image/jp2", ".jp2", matchers.Jp2) 88 jpx = newMIME("image/jpx", ".jpf", matchers.Jpx) 89 jpm = newMIME("image/jpm", ".jpm", matchers.Jpm). 90 alias("video/jpm") 91 bpg = newMIME("image/bpg", ".bpg", matchers.Bpg) 92 gif = newMIME("image/gif", ".gif", matchers.Gif) 93 webp = newMIME("image/webp", ".webp", matchers.Webp) 94 tiff = newMIME("image/tiff", ".tiff", matchers.Tiff) 95 bmp = newMIME("image/bmp", ".bmp", matchers.Bmp). 96 alias("image/x-bmp", "image/x-ms-bmp") 97 ico = newMIME("image/x-icon", ".ico", matchers.Ico) 98 icns = newMIME("image/x-icns", ".icns", matchers.Icns) 99 psd = newMIME("image/vnd.adobe.photoshop", ".psd", matchers.Psd). 100 alias("image/x-psd", "application/photoshop") 101 heic = newMIME("image/heic", ".heic", matchers.Heic) 102 heicSeq = newMIME("image/heic-sequence", ".heic", matchers.HeicSequence) 103 heif = newMIME("image/heif", ".heif", matchers.Heif) 104 heifSeq = newMIME("image/heif-sequence", ".heif", matchers.HeifSequence) 105 mp3 = newMIME("audio/mpeg", ".mp3", matchers.Mp3). 106 alias("audio/x-mpeg", "audio/mp3") 107 flac = newMIME("audio/flac", ".flac", matchers.Flac) 108 midi = newMIME("audio/midi", ".midi", matchers.Midi). 109 alias("audio/mid", "audio/sp-midi", "audio/x-mid", "audio/x-midi") 110 ape = newMIME("audio/ape", ".ape", matchers.Ape) 111 musePack = newMIME("audio/musepack", ".mpc", matchers.MusePack) 112 wav = newMIME("audio/wav", ".wav", matchers.Wav). 113 alias("audio/x-wav", "audio/vnd.wave", "audio/wave") 114 aiff = newMIME("audio/aiff", ".aiff", matchers.Aiff) 115 au = newMIME("audio/basic", ".au", matchers.Au) 116 amr = newMIME("audio/amr", ".amr", matchers.Amr). 117 alias("audio/amr-nb") 118 aac = newMIME("audio/aac", ".aac", matchers.Aac) 119 voc = newMIME("audio/x-unknown", ".voc", matchers.Voc) 120 aMp4 = newMIME("audio/mp4", ".mp4", matchers.AMp4). 121 alias("audio/x-m4a", "audio/x-mp4a") 122 m4a = newMIME("audio/x-m4a", ".m4a", matchers.M4a) 123 mp4 = newMIME("video/mp4", ".mp4", matchers.Mp4) 124 webM = newMIME("video/webm", ".webm", matchers.WebM). 125 alias("audio/webm") 126 mpeg = newMIME("video/mpeg", ".mpeg", matchers.Mpeg) 127 quickTime = newMIME("video/quicktime", ".mov", matchers.QuickTime) 128 mqv = newMIME("video/quicktime", ".mqv", matchers.Mqv) 129 threeGP = newMIME("video/3gpp", ".3gp", matchers.ThreeGP). 130 alias("video/3gp", "audio/3gpp") 131 threeG2 = newMIME("video/3gpp2", ".3g2", matchers.ThreeG2). 132 alias("video/3g2", "audio/3gpp2") 133 avi = newMIME("video/x-msvideo", ".avi", matchers.Avi). 134 alias("video/avi", "video/msvideo") 135 flv = newMIME("video/x-flv", ".flv", matchers.Flv) 136 mkv = newMIME("video/x-matroska", ".mkv", matchers.Mkv) 137 asf = newMIME("video/x-ms-asf", ".asf", matchers.Asf). 138 alias("video/asf", "video/x-ms-wmv") 139 class = newMIME("application/x-java-applet; charset=binary", ".class", matchers.Class) 140 swf = newMIME("application/x-shockwave-flash", ".swf", matchers.Swf) 141 crx = newMIME("application/x-chrome-extension", ".crx", matchers.Crx) 142 woff = newMIME("font/woff", ".woff", matchers.Woff) 143 woff2 = newMIME("font/woff2", ".woff2", matchers.Woff2) 144 otf = newMIME("font/otf", ".otf", matchers.Otf) 145 eot = newMIME("application/vnd.ms-fontobject", ".eot", matchers.Eot) 146 wasm = newMIME("application/wasm", ".wasm", matchers.Wasm) 147 shp = newMIME("application/octet-stream", ".shp", matchers.Shp) 148 shx = newMIME("application/octet-stream", ".shx", matchers.Shx, shp) 149 dbf = newMIME("application/x-dbf", ".dbf", matchers.Dbf) 150 exe = newMIME("application/vnd.microsoft.portable-executable", ".exe", matchers.Exe) 151 elf = newMIME("application/x-elf", "", matchers.Elf, elfObj, elfExe, elfLib, elfDump) 152 elfObj = newMIME("application/x-object", "", matchers.ElfObj) 153 elfExe = newMIME("application/x-executable", "", matchers.ElfExe) 154 elfLib = newMIME("application/x-sharedlib", ".so", matchers.ElfLib) 155 elfDump = newMIME("application/x-coredump", "", matchers.ElfDump) 156 ar = newMIME("application/x-archive", ".a", matchers.Ar, deb). 157 alias("application/x-unix-archive") 158 deb = newMIME("application/vnd.debian.binary-package", ".deb", matchers.Deb) 159 dcm = newMIME("application/dicom", ".dcm", matchers.Dcm) 160 odt = newMIME("application/vnd.oasis.opendocument.text", ".odt", matchers.Odt, ott). 161 alias("application/x-vnd.oasis.opendocument.text") 162 ott = newMIME("application/vnd.oasis.opendocument.text-template", ".ott", matchers.Ott). 163 alias("application/x-vnd.oasis.opendocument.text-template") 164 ods = newMIME("application/vnd.oasis.opendocument.spreadsheet", ".ods", matchers.Ods, ots). 165 alias("application/x-vnd.oasis.opendocument.spreadsheet") 166 ots = newMIME("application/vnd.oasis.opendocument.spreadsheet-template", ".ots", matchers.Ots). 167 alias("application/x-vnd.oasis.opendocument.spreadsheet-template") 168 odp = newMIME("application/vnd.oasis.opendocument.presentation", ".odp", matchers.Odp, otp). 169 alias("application/x-vnd.oasis.opendocument.presentation") 170 otp = newMIME("application/vnd.oasis.opendocument.presentation-template", ".otp", matchers.Otp). 171 alias("application/x-vnd.oasis.opendocument.presentation-template") 172 odg = newMIME("application/vnd.oasis.opendocument.graphics", ".odg", matchers.Odg, otg). 173 alias("application/x-vnd.oasis.opendocument.graphics") 174 otg = newMIME("application/vnd.oasis.opendocument.graphics-template", ".otg", matchers.Otg). 175 alias("application/x-vnd.oasis.opendocument.graphics-template") 176 odf = newMIME("application/vnd.oasis.opendocument.formula", ".odf", matchers.Odf). 177 alias("application/x-vnd.oasis.opendocument.formula") 178 rar = newMIME("application/x-rar-compressed", ".rar", matchers.Rar). 179 alias("application/x-rar") 180 djvu = newMIME("image/vnd.djvu", ".djvu", matchers.DjVu) 181 mobi = newMIME("application/x-mobipocket-ebook", ".mobi", matchers.Mobi) 182 lit = newMIME("application/x-ms-reader", ".lit", matchers.Lit) 183 sqlite3 = newMIME("application/x-sqlite3", ".sqlite", matchers.Sqlite) 184 dwg = newMIME("image/vnd.dwg", ".dwg", matchers.Dwg). 185 alias("image/x-dwg", "application/acad", "application/x-acad", "application/autocad_dwg", "application/dwg", "application/x-dwg", "application/x-autocad", "drawing/dwg") 186 warc = newMIME("application/warc", ".warc", matchers.Warc) 187 nes = newMIME("application/vnd.nintendo.snes.rom", ".nes", matchers.Nes) 188 macho = newMIME("application/x-mach-binary", ".macho", matchers.MachO) 189 qcp = newMIME("audio/qcelp", ".qcp", matchers.Qcp) 190 mrc = newMIME("application/marc", ".mrc", matchers.Marc) 191 mdb = newMIME("application/x-msaccess", ".mdb", matchers.MsAccessMdb) 192 accdb = newMIME("application/x-msaccess", ".accdb", matchers.MsAccessAce) 193 zstd = newMIME("application/zstd", ".zst", matchers.Zstd) 194 cab = newMIME("application/vnd.ms-cab-compressed", ".cab", matchers.Cab) 195) 196