[Mime] update types map

This commit is contained in:
Nicolas Grekas 2021-05-01 15:37:51 +02:00
parent 83fd6ed8fb
commit bcf63398b9
2 changed files with 159 additions and 79 deletions

View File

@ -163,6 +163,7 @@ final class MimeTypes implements MimeTypesInterface
'application/atsc-held+xml' => ['held'], 'application/atsc-held+xml' => ['held'],
'application/atsc-rsat+xml' => ['rsat'], 'application/atsc-rsat+xml' => ['rsat'],
'application/bdoc' => ['bdoc'], 'application/bdoc' => ['bdoc'],
'application/bzip2' => ['bz2', 'bz'],
'application/calendar+xml' => ['xcs'], 'application/calendar+xml' => ['xcs'],
'application/ccxml+xml' => ['ccxml'], 'application/ccxml+xml' => ['ccxml'],
'application/cdfx+xml' => ['cdfx'], 'application/cdfx+xml' => ['cdfx'],
@ -262,15 +263,16 @@ final class MimeTypes implements MimeTypesInterface
'application/ogg' => ['ogx'], 'application/ogg' => ['ogx'],
'application/omdoc+xml' => ['omdoc'], 'application/omdoc+xml' => ['omdoc'],
'application/onenote' => ['onetoc', 'onetoc2', 'onetmp', 'onepkg'], 'application/onenote' => ['onetoc', 'onetoc2', 'onetmp', 'onepkg'],
'application/ovf' => ['ova'],
'application/owl+xml' => ['owx'], 'application/owl+xml' => ['owx'],
'application/oxps' => ['oxps', 'xps'], 'application/oxps' => ['oxps'],
'application/p2p-overlay+xml' => ['relo'], 'application/p2p-overlay+xml' => ['relo'],
'application/patch-ops-error+xml' => ['xer'], 'application/patch-ops-error+xml' => ['xer'],
'application/pcap' => ['pcap', 'cap', 'dmp'], 'application/pcap' => ['pcap', 'cap', 'dmp'],
'application/pdf' => ['pdf'], 'application/pdf' => ['pdf'],
'application/pgp' => ['pgp', 'gpg', 'asc'], 'application/pgp' => ['pgp', 'gpg', 'asc'],
'application/pgp-encrypted' => ['pgp', 'gpg', 'asc'], 'application/pgp-encrypted' => ['pgp', 'gpg', 'asc'],
'application/pgp-keys' => ['skr', 'pkr', 'asc', 'pgp', 'gpg'], 'application/pgp-keys' => ['skr', 'pkr', 'asc', 'pgp', 'gpg', 'key'],
'application/pgp-signature' => ['asc', 'sig', 'pgp', 'gpg'], 'application/pgp-signature' => ['asc', 'sig', 'pgp', 'gpg'],
'application/photoshop' => ['psd'], 'application/photoshop' => ['psd'],
'application/pics-rules' => ['prf'], 'application/pics-rules' => ['prf'],
@ -331,9 +333,10 @@ final class MimeTypes implements MimeTypesInterface
'application/sru+xml' => ['sru'], 'application/sru+xml' => ['sru'],
'application/ssdl+xml' => ['ssdl'], 'application/ssdl+xml' => ['ssdl'],
'application/ssml+xml' => ['ssml'], 'application/ssml+xml' => ['ssml'],
'application/stuffit' => ['sit'], 'application/stuffit' => ['sit', 'hqx'],
'application/swid+xml' => ['swidtag'], 'application/swid+xml' => ['swidtag'],
'application/tei+xml' => ['tei', 'teicorpus'], 'application/tei+xml' => ['tei', 'teicorpus'],
'application/tga' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'application/thraud+xml' => ['tfi'], 'application/thraud+xml' => ['tfi'],
'application/timestamped-data' => ['tsd'], 'application/timestamped-data' => ['tsd'],
'application/toml' => ['toml'], 'application/toml' => ['toml'],
@ -361,6 +364,7 @@ final class MimeTypes implements MimeTypesInterface
'application/vnd.airzip.filesecure.azf' => ['azf'], 'application/vnd.airzip.filesecure.azf' => ['azf'],
'application/vnd.airzip.filesecure.azs' => ['azs'], 'application/vnd.airzip.filesecure.azs' => ['azs'],
'application/vnd.amazon.ebook' => ['azw'], 'application/vnd.amazon.ebook' => ['azw'],
'application/vnd.amazon.mobi8-ebook' => ['azw3', 'kfx'],
'application/vnd.americandynamics.acc' => ['acc'], 'application/vnd.americandynamics.acc' => ['acc'],
'application/vnd.amiga.ami' => ['ami'], 'application/vnd.amiga.ami' => ['ami'],
'application/vnd.android.package-archive' => ['apk'], 'application/vnd.android.package-archive' => ['apk'],
@ -592,7 +596,7 @@ final class MimeTypes implements MimeTypesInterface
'application/vnd.ms-word.template.macroenabled.12' => ['dotm'], 'application/vnd.ms-word.template.macroenabled.12' => ['dotm'],
'application/vnd.ms-works' => ['wps', 'wks', 'wcm', 'wdb', 'xlr'], 'application/vnd.ms-works' => ['wps', 'wks', 'wcm', 'wdb', 'xlr'],
'application/vnd.ms-wpl' => ['wpl'], 'application/vnd.ms-wpl' => ['wpl'],
'application/vnd.ms-xpsdocument' => ['xps', 'oxps'], 'application/vnd.ms-xpsdocument' => ['xps'],
'application/vnd.msaccess' => ['mdb'], 'application/vnd.msaccess' => ['mdb'],
'application/vnd.mseq' => ['mseq'], 'application/vnd.mseq' => ['mseq'],
'application/vnd.musician' => ['mus'], 'application/vnd.musician' => ['mus'],
@ -769,7 +773,7 @@ final class MimeTypes implements MimeTypesInterface
'application/wspolicy+xml' => ['wspolicy'], 'application/wspolicy+xml' => ['wspolicy'],
'application/wwf' => ['wwf'], 'application/wwf' => ['wwf'],
'application/x-123' => ['123', 'wk1', 'wk3', 'wk4', 'wks'], 'application/x-123' => ['123', 'wk1', 'wk3', 'wk4', 'wks'],
'application/x-7z-compressed' => ['7z'], 'application/x-7z-compressed' => ['7z', '7z.001'],
'application/x-abiword' => ['abw', 'abw.CRASHED', 'abw.gz', 'zabw'], 'application/x-abiword' => ['abw', 'abw.CRASHED', 'abw.gz', 'zabw'],
'application/x-ace' => ['ace'], 'application/x-ace' => ['ace'],
'application/x-ace-compressed' => ['ace'], 'application/x-ace-compressed' => ['ace'],
@ -779,6 +783,8 @@ final class MimeTypes implements MimeTypesInterface
'application/x-annodex' => ['anx'], 'application/x-annodex' => ['anx'],
'application/x-aportisdoc' => ['pdb', 'pdc'], 'application/x-aportisdoc' => ['pdb', 'pdc'],
'application/x-apple-diskimage' => ['dmg'], 'application/x-apple-diskimage' => ['dmg'],
'application/x-apple-systemprofiler+xml' => ['spx'],
'application/x-appleworks-document' => ['cwk'],
'application/x-applix-spreadsheet' => ['as'], 'application/x-applix-spreadsheet' => ['as'],
'application/x-applix-word' => ['aw'], 'application/x-applix-word' => ['aw'],
'application/x-archive' => ['a', 'ar'], 'application/x-archive' => ['a', 'ar'],
@ -796,6 +802,7 @@ final class MimeTypes implements MimeTypesInterface
'application/x-bittorrent' => ['torrent'], 'application/x-bittorrent' => ['torrent'],
'application/x-blender' => ['blender', 'blend', 'BLEND'], 'application/x-blender' => ['blender', 'blend', 'BLEND'],
'application/x-blorb' => ['blb', 'blorb'], 'application/x-blorb' => ['blb', 'blorb'],
'application/x-bps-patch' => ['bps'],
'application/x-bsdiff' => ['bsdiff'], 'application/x-bsdiff' => ['bsdiff'],
'application/x-bzdvi' => ['dvi.bz2'], 'application/x-bzdvi' => ['dvi.bz2'],
'application/x-bzip' => ['bz', 'bz2'], 'application/x-bzip' => ['bz', 'bz2'],
@ -820,6 +827,7 @@ final class MimeTypes implements MimeTypesInterface
'application/x-cisco-vpn-settings' => ['pcf'], 'application/x-cisco-vpn-settings' => ['pcf'],
'application/x-cocoa' => ['cco'], 'application/x-cocoa' => ['cco'],
'application/x-compress' => ['Z'], 'application/x-compress' => ['Z'],
'application/x-compressed-iso' => ['cso'],
'application/x-compressed-tar' => ['tar.gz', 'tgz'], 'application/x-compressed-tar' => ['tar.gz', 'tgz'],
'application/x-conference' => ['nsc'], 'application/x-conference' => ['nsc'],
'application/x-coreldraw' => ['cdr'], 'application/x-coreldraw' => ['cdr'],
@ -839,9 +847,11 @@ final class MimeTypes implements MimeTypesInterface
'application/x-dia-diagram' => ['dia'], 'application/x-dia-diagram' => ['dia'],
'application/x-dia-shape' => ['shape'], 'application/x-dia-shape' => ['shape'],
'application/x-director' => ['dir', 'dcr', 'dxr', 'cst', 'cct', 'cxt', 'w3d', 'fgd', 'swa'], 'application/x-director' => ['dir', 'dcr', 'dxr', 'cst', 'cct', 'cxt', 'w3d', 'fgd', 'swa'],
'application/x-discjuggler-cd-image' => ['cdi'],
'application/x-docbook+xml' => ['dbk', 'docbook'], 'application/x-docbook+xml' => ['dbk', 'docbook'],
'application/x-doom' => ['wad'], 'application/x-doom' => ['wad'],
'application/x-doom-wad' => ['wad'], 'application/x-doom-wad' => ['wad'],
'application/x-dreamcast-rom' => ['iso'],
'application/x-dtbncx+xml' => ['ncx'], 'application/x-dtbncx+xml' => ['ncx'],
'application/x-dtbook+xml' => ['dtb'], 'application/x-dtbook+xml' => ['dtb'],
'application/x-dtbresource+xml' => ['res'], 'application/x-dtbresource+xml' => ['res'],
@ -879,9 +889,10 @@ final class MimeTypes implements MimeTypesInterface
'application/x-gamegear-rom' => ['gg'], 'application/x-gamegear-rom' => ['gg'],
'application/x-gba-rom' => ['gba', 'agb'], 'application/x-gba-rom' => ['gba', 'agb'],
'application/x-gca-compressed' => ['gca'], 'application/x-gca-compressed' => ['gca'],
'application/x-gd-rom-cue' => ['gdi'],
'application/x-gedcom' => ['ged', 'gedcom'], 'application/x-gedcom' => ['ged', 'gedcom'],
'application/x-genesis-32x-rom' => ['32x', 'mdx'], 'application/x-genesis-32x-rom' => ['32x', 'mdx'],
'application/x-genesis-rom' => ['gen', 'smd'], 'application/x-genesis-rom' => ['gen', 'smd', 'sgd'],
'application/x-gettext' => ['po'], 'application/x-gettext' => ['po'],
'application/x-gettext-translation' => ['gmo', 'mo'], 'application/x-gettext-translation' => ['gmo', 'mo'],
'application/x-glade' => ['glade'], 'application/x-glade' => ['glade'],
@ -910,11 +921,14 @@ final class MimeTypes implements MimeTypesInterface
'application/x-hwt' => ['hwt'], 'application/x-hwt' => ['hwt'],
'application/x-ica' => ['ica'], 'application/x-ica' => ['ica'],
'application/x-install-instructions' => ['install'], 'application/x-install-instructions' => ['install'],
'application/x-ips-patch' => ['ips'],
'application/x-ipynb+json' => ['ipynb'], 'application/x-ipynb+json' => ['ipynb'],
'application/x-iso9660-appimage' => ['appimage'], 'application/x-iso9660-appimage' => ['appimage'],
'application/x-iso9660-image' => ['iso', 'iso9660'], 'application/x-iso9660-image' => ['iso', 'iso9660'],
'application/x-it87' => ['it87'], 'application/x-it87' => ['it87'],
'application/x-iwork-keynote-sffkey' => ['key'], 'application/x-iwork-keynote-sffkey' => ['key'],
'application/x-iwork-numbers-sffnumbers' => ['numbers'],
'application/x-iwork-pages-sffpages' => ['pages'],
'application/x-jar' => ['jar'], 'application/x-jar' => ['jar'],
'application/x-java' => ['class'], 'application/x-java' => ['class'],
'application/x-java-archive' => ['jar'], 'application/x-java-archive' => ['jar'],
@ -966,12 +980,14 @@ final class MimeTypes implements MimeTypesInterface
'application/x-m4' => ['m4'], 'application/x-m4' => ['m4'],
'application/x-magicpoint' => ['mgp'], 'application/x-magicpoint' => ['mgp'],
'application/x-makeself' => ['run'], 'application/x-makeself' => ['run'],
'application/x-mame-chd' => ['chd'],
'application/x-markaby' => ['mab'], 'application/x-markaby' => ['mab'],
'application/x-mathematica' => ['nb'], 'application/x-mathematica' => ['nb'],
'application/x-mdb' => ['mdb'], 'application/x-mdb' => ['mdb'],
'application/x-mie' => ['mie'], 'application/x-mie' => ['mie'],
'application/x-mif' => ['mif'], 'application/x-mif' => ['mif'],
'application/x-mimearchive' => ['mhtml', 'mht'], 'application/x-mimearchive' => ['mhtml', 'mht'],
'application/x-mobi8-ebook' => ['azw3', 'kfx'],
'application/x-mobipocket-ebook' => ['prc', 'mobi'], 'application/x-mobipocket-ebook' => ['prc', 'mobi'],
'application/x-ms-application' => ['application'], 'application/x-ms-application' => ['application'],
'application/x-ms-asx' => ['asx', 'wax', 'wvx', 'wmx'], 'application/x-ms-asx' => ['asx', 'wax', 'wvx', 'wmx'],
@ -1007,6 +1023,8 @@ final class MimeTypes implements MimeTypesInterface
'application/x-nes-rom' => ['nes', 'nez', 'unf', 'unif'], 'application/x-nes-rom' => ['nes', 'nez', 'unf', 'unif'],
'application/x-netcdf' => ['nc', 'cdf'], 'application/x-netcdf' => ['nc', 'cdf'],
'application/x-netshow-channel' => ['nsc'], 'application/x-netshow-channel' => ['nsc'],
'application/x-nintendo-3ds-executable' => ['3dsx'],
'application/x-nintendo-3ds-rom' => ['3ds', 'cci'],
'application/x-nintendo-ds-rom' => ['nds'], 'application/x-nintendo-ds-rom' => ['nds'],
'application/x-ns-proxy-autoconfig' => ['pac'], 'application/x-ns-proxy-autoconfig' => ['pac'],
'application/x-nzb' => ['nzb'], 'application/x-nzb' => ['nzb'],
@ -1031,7 +1049,11 @@ final class MimeTypes implements MimeTypesInterface
'application/x-planperfect' => ['pln'], 'application/x-planperfect' => ['pln'],
'application/x-pocket-word' => ['psw'], 'application/x-pocket-word' => ['psw'],
'application/x-pw' => ['pw'], 'application/x-pw' => ['pw'],
'application/x-pyspread-bz-spreadsheet' => ['pys'],
'application/x-pyspread-spreadsheet' => ['pysu'],
'application/x-python-bytecode' => ['pyc', 'pyo'], 'application/x-python-bytecode' => ['pyc', 'pyo'],
'application/x-qed-disk' => ['qed'],
'application/x-qemu-disk' => ['qcow2', 'qcow'],
'application/x-qpress' => ['qp'], 'application/x-qpress' => ['qp'],
'application/x-qtiplot' => ['qti', 'qti.gz'], 'application/x-qtiplot' => ['qti', 'qti.gz'],
'application/x-quattropro' => ['wb1', 'wb2', 'wb3'], 'application/x-quattropro' => ['wb1', 'wb2', 'wb3'],
@ -1051,10 +1073,11 @@ final class MimeTypes implements MimeTypesInterface
'application/x-ruby' => ['rb'], 'application/x-ruby' => ['rb'],
'application/x-sami' => ['smi', 'sami'], 'application/x-sami' => ['smi', 'sami'],
'application/x-sap-file' => ['sap'], 'application/x-sap-file' => ['sap'],
'application/x-saturn-rom' => ['bin', 'iso'], 'application/x-saturn-rom' => ['iso'],
'application/x-sdp' => ['sdp'], 'application/x-sdp' => ['sdp'],
'application/x-sea' => ['sea'], 'application/x-sea' => ['sea'],
'application/x-sega-cd-rom' => ['bin', 'iso'], 'application/x-sega-cd-rom' => ['iso'],
'application/x-sega-pico-rom' => ['iso'],
'application/x-sg1000-rom' => ['sg'], 'application/x-sg1000-rom' => ['sg'],
'application/x-sh' => ['sh'], 'application/x-sh' => ['sh'],
'application/x-shar' => ['shar'], 'application/x-shar' => ['shar'],
@ -1086,6 +1109,7 @@ final class MimeTypes implements MimeTypesInterface
'application/x-t602' => ['602'], 'application/x-t602' => ['602'],
'application/x-tads' => ['gam'], 'application/x-tads' => ['gam'],
'application/x-tar' => ['tar', 'gtar', 'gem'], 'application/x-tar' => ['tar', 'gtar', 'gem'],
'application/x-targa' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'application/x-tarz' => ['tar.Z', 'taz'], 'application/x-tarz' => ['tar.Z', 'taz'],
'application/x-tcl' => ['tcl', 'tk'], 'application/x-tcl' => ['tcl', 'tk'],
'application/x-tex' => ['tex', 'ltx', 'sty', 'cls', 'dtx', 'ins', 'latex'], 'application/x-tex' => ['tex', 'ltx', 'sty', 'cls', 'dtx', 'ins', 'latex'],
@ -1093,6 +1117,7 @@ final class MimeTypes implements MimeTypesInterface
'application/x-tex-pk' => ['pk'], 'application/x-tex-pk' => ['pk'],
'application/x-tex-tfm' => ['tfm'], 'application/x-tex-tfm' => ['tfm'],
'application/x-texinfo' => ['texinfo', 'texi'], 'application/x-texinfo' => ['texinfo', 'texi'],
'application/x-tga' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'application/x-tgif' => ['obj'], 'application/x-tgif' => ['obj'],
'application/x-theme' => ['theme'], 'application/x-theme' => ['theme'],
'application/x-thomson-cartridge-memo7' => ['m7'], 'application/x-thomson-cartridge-memo7' => ['m7'],
@ -1105,6 +1130,9 @@ final class MimeTypes implements MimeTypesInterface
'application/x-tzo' => ['tar.lzo', 'tzo'], 'application/x-tzo' => ['tar.lzo', 'tzo'],
'application/x-ufraw' => ['ufraw'], 'application/x-ufraw' => ['ufraw'],
'application/x-ustar' => ['ustar'], 'application/x-ustar' => ['ustar'],
'application/x-vdi-disk' => ['vdi'],
'application/x-vhd-disk' => ['vhd', 'vpc'],
'application/x-vhdx-disk' => ['vhdx'],
'application/x-virtual-boy-rom' => ['vb'], 'application/x-virtual-boy-rom' => ['vb'],
'application/x-virtualbox-hdd' => ['hdd'], 'application/x-virtualbox-hdd' => ['hdd'],
'application/x-virtualbox-ova' => ['ova'], 'application/x-virtualbox-ova' => ['ova'],
@ -1112,8 +1140,10 @@ final class MimeTypes implements MimeTypesInterface
'application/x-virtualbox-vbox' => ['vbox'], 'application/x-virtualbox-vbox' => ['vbox'],
'application/x-virtualbox-vbox-extpack' => ['vbox-extpack'], 'application/x-virtualbox-vbox-extpack' => ['vbox-extpack'],
'application/x-virtualbox-vdi' => ['vdi'], 'application/x-virtualbox-vdi' => ['vdi'],
'application/x-virtualbox-vhd' => ['vhd'], 'application/x-virtualbox-vhd' => ['vhd', 'vpc'],
'application/x-virtualbox-vhdx' => ['vhdx'],
'application/x-virtualbox-vmdk' => ['vmdk'], 'application/x-virtualbox-vmdk' => ['vmdk'],
'application/x-vmdk-disk' => ['vmdk'],
'application/x-vnd.kde.kexi' => ['kexi'], 'application/x-vnd.kde.kexi' => ['kexi'],
'application/x-wais-source' => ['src'], 'application/x-wais-source' => ['src'],
'application/x-wbfs' => ['iso'], 'application/x-wbfs' => ['iso'],
@ -1146,6 +1176,7 @@ final class MimeTypes implements MimeTypesInterface
'application/x-zip-compressed-fb2' => ['fb2.zip'], 'application/x-zip-compressed-fb2' => ['fb2.zip'],
'application/x-zmachine' => ['z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7', 'z8'], 'application/x-zmachine' => ['z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7', 'z8'],
'application/x-zoo' => ['zoo'], 'application/x-zoo' => ['zoo'],
'application/x-zstd-compressed-tar' => ['tar.zst', 'tzst'],
'application/xaml+xml' => ['xaml'], 'application/xaml+xml' => ['xaml'],
'application/xcap-att+xml' => ['xav'], 'application/xcap-att+xml' => ['xav'],
'application/xcap-caps+xml' => ['xca'], 'application/xcap-caps+xml' => ['xca'],
@ -1154,14 +1185,14 @@ final class MimeTypes implements MimeTypesInterface
'application/xcap-error+xml' => ['xer'], 'application/xcap-error+xml' => ['xer'],
'application/xcap-ns+xml' => ['xns'], 'application/xcap-ns+xml' => ['xns'],
'application/xenc+xml' => ['xenc'], 'application/xenc+xml' => ['xenc'],
'application/xhtml+xml' => ['xhtml', 'xht'], 'application/xhtml+xml' => ['xhtml', 'xht', 'html', 'htm'],
'application/xliff+xml' => ['xlf', 'xliff'], 'application/xliff+xml' => ['xlf', 'xliff'],
'application/xml' => ['xml', 'xsl', 'xsd', 'rng', 'xbl'], 'application/xml' => ['xml', 'xsl', 'xsd', 'rng', 'xbl'],
'application/xml-dtd' => ['dtd'], 'application/xml-dtd' => ['dtd'],
'application/xml-external-parsed-entity' => ['ent'], 'application/xml-external-parsed-entity' => ['ent'],
'application/xop+xml' => ['xop'], 'application/xop+xml' => ['xop'],
'application/xproc+xml' => ['xpl'], 'application/xproc+xml' => ['xpl'],
'application/xps' => ['oxps', 'xps'], 'application/xps' => ['xps'],
'application/xslt+xml' => ['xslt', 'xsl'], 'application/xslt+xml' => ['xslt', 'xsl'],
'application/xspf+xml' => ['xspf'], 'application/xspf+xml' => ['xspf'],
'application/xv+xml' => ['mxml', 'xhvml', 'xvml', 'xvm'], 'application/xv+xml' => ['mxml', 'xhvml', 'xvml', 'xvm'],
@ -1169,6 +1200,7 @@ final class MimeTypes implements MimeTypesInterface
'application/yin+xml' => ['yin'], 'application/yin+xml' => ['yin'],
'application/zip' => ['zip'], 'application/zip' => ['zip'],
'application/zlib' => ['zz'], 'application/zlib' => ['zz'],
'application/zstd' => ['zst'],
'audio/3gpp' => ['3gpp', '3gp', '3ga'], 'audio/3gpp' => ['3gpp', '3gp', '3ga'],
'audio/3gpp-encrypted' => ['3gp', '3gpp', '3ga'], 'audio/3gpp-encrypted' => ['3gp', '3gpp', '3ga'],
'audio/3gpp2' => ['3g2', '3gp2', '3gpp2'], 'audio/3gpp2' => ['3g2', '3gp2', '3gpp2'],
@ -1192,7 +1224,7 @@ final class MimeTypes implements MimeTypesInterface
'audio/mp4' => ['m4a', 'mp4a', 'f4a'], 'audio/mp4' => ['m4a', 'mp4a', 'f4a'],
'audio/mpeg' => ['mp3', 'mpga', 'mp2', 'mp2a', 'm2a', 'm3a'], 'audio/mpeg' => ['mp3', 'mpga', 'mp2', 'mp2a', 'm2a', 'm3a'],
'audio/mpegurl' => ['m3u', 'm3u8', 'vlc'], 'audio/mpegurl' => ['m3u', 'm3u8', 'vlc'],
'audio/ogg' => ['oga', 'ogg', 'spx', 'opus'], 'audio/ogg' => ['ogg', 'oga', 'spx', 'opus'],
'audio/prs.sid' => ['sid', 'psid'], 'audio/prs.sid' => ['sid', 'psid'],
'audio/s3m' => ['s3m'], 'audio/s3m' => ['s3m'],
'audio/scpls' => ['pls'], 'audio/scpls' => ['pls'],
@ -1200,7 +1232,7 @@ final class MimeTypes implements MimeTypesInterface
'audio/tta' => ['tta'], 'audio/tta' => ['tta'],
'audio/usac' => ['loas', 'xhe'], 'audio/usac' => ['loas', 'xhe'],
'audio/vnd.audible' => ['aa', 'aax'], 'audio/vnd.audible' => ['aa', 'aax'],
'audio/vnd.audible.aax' => ['aa', 'aax'], 'audio/vnd.audible.aax' => ['aax'],
'audio/vnd.dece.audio' => ['uva', 'uvva'], 'audio/vnd.dece.audio' => ['uva', 'uvva'],
'audio/vnd.digital-winds' => ['eol'], 'audio/vnd.digital-winds' => ['eol'],
'audio/vnd.dra' => ['dra'], 'audio/vnd.dra' => ['dra'],
@ -1273,7 +1305,7 @@ final class MimeTypes implements MimeTypesInterface
'audio/x-scpls' => ['pls'], 'audio/x-scpls' => ['pls'],
'audio/x-shorten' => ['shn'], 'audio/x-shorten' => ['shn'],
'audio/x-speex' => ['spx'], 'audio/x-speex' => ['spx'],
'audio/x-speex+ogg' => ['oga', 'ogg'], 'audio/x-speex+ogg' => ['oga', 'ogg', 'spx'],
'audio/x-stm' => ['stm'], 'audio/x-stm' => ['stm'],
'audio/x-tta' => ['tta'], 'audio/x-tta' => ['tta'],
'audio/x-voc' => ['voc'], 'audio/x-voc' => ['voc'],
@ -1297,10 +1329,13 @@ final class MimeTypes implements MimeTypesInterface
'font/collection' => ['ttc'], 'font/collection' => ['ttc'],
'font/otf' => ['otf'], 'font/otf' => ['otf'],
'font/ttf' => ['ttf'], 'font/ttf' => ['ttf'],
'font/woff' => ['woff', 'woff2'], 'font/woff' => ['woff'],
'font/woff2' => ['woff2'], 'font/woff2' => ['woff2'],
'image/aces' => ['exr'], 'image/aces' => ['exr'],
'image/apng' => ['apng'], 'image/apng' => ['apng'],
'image/astc' => ['astc'],
'image/avif' => ['avif', 'avifs'],
'image/avif-sequence' => ['avif', 'avifs'],
'image/bmp' => ['bmp', 'dib'], 'image/bmp' => ['bmp', 'dib'],
'image/cdr' => ['cdr'], 'image/cdr' => ['cdr'],
'image/cgm' => ['cgm'], 'image/cgm' => ['cgm'],
@ -1336,6 +1371,7 @@ final class MimeTypes implements MimeTypesInterface
'image/jxsi' => ['jxsi'], 'image/jxsi' => ['jxsi'],
'image/jxss' => ['jxss'], 'image/jxss' => ['jxss'],
'image/ktx' => ['ktx'], 'image/ktx' => ['ktx'],
'image/ktx2' => ['ktx2'],
'image/openraster' => ['ora'], 'image/openraster' => ['ora'],
'image/pdf' => ['pdf'], 'image/pdf' => ['pdf'],
'image/photoshop' => ['psd'], 'image/photoshop' => ['psd'],
@ -1350,6 +1386,8 @@ final class MimeTypes implements MimeTypesInterface
'image/svg+xml' => ['svg', 'svgz'], 'image/svg+xml' => ['svg', 'svgz'],
'image/svg+xml-compressed' => ['svgz'], 'image/svg+xml-compressed' => ['svgz'],
'image/t38' => ['t38'], 'image/t38' => ['t38'],
'image/targa' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'image/tga' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'image/tiff' => ['tif', 'tiff'], 'image/tiff' => ['tif', 'tiff'],
'image/tiff-fx' => ['tfx'], 'image/tiff-fx' => ['tfx'],
'image/vnd.adobe.photoshop' => ['psd'], 'image/vnd.adobe.photoshop' => ['psd'],
@ -1421,6 +1459,7 @@ final class MimeTypes implements MimeTypesInterface
'image/x-ms-bmp' => ['bmp', 'dib'], 'image/x-ms-bmp' => ['bmp', 'dib'],
'image/x-msod' => ['msod'], 'image/x-msod' => ['msod'],
'image/x-nikon-nef' => ['nef'], 'image/x-nikon-nef' => ['nef'],
'image/x-nikon-nrw' => ['nrw'],
'image/x-olympus-orf' => ['orf'], 'image/x-olympus-orf' => ['orf'],
'image/x-panasonic-raw' => ['raw'], 'image/x-panasonic-raw' => ['raw'],
'image/x-panasonic-raw2' => ['rw2'], 'image/x-panasonic-raw2' => ['rw2'],
@ -1445,6 +1484,7 @@ final class MimeTypes implements MimeTypesInterface
'image/x-sony-sr2' => ['sr2'], 'image/x-sony-sr2' => ['sr2'],
'image/x-sony-srf' => ['srf'], 'image/x-sony-srf' => ['srf'],
'image/x-sun-raster' => ['sun'], 'image/x-sun-raster' => ['sun'],
'image/x-targa' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'image/x-tga' => ['tga', 'icb', 'tpic', 'vda', 'vst'], 'image/x-tga' => ['tga', 'icb', 'tpic', 'vda', 'vst'],
'image/x-win-bitmap' => ['cur'], 'image/x-win-bitmap' => ['cur'],
'image/x-win-metafile' => ['wmf'], 'image/x-win-metafile' => ['wmf'],
@ -1523,9 +1563,12 @@ final class MimeTypes implements MimeTypesInterface
'text/spreadsheet' => ['sylk', 'slk'], 'text/spreadsheet' => ['sylk', 'slk'],
'text/stylus' => ['stylus', 'styl'], 'text/stylus' => ['stylus', 'styl'],
'text/tab-separated-values' => ['tsv'], 'text/tab-separated-values' => ['tsv'],
'text/tcl' => ['tcl', 'tk'],
'text/troff' => ['t', 'tr', 'roff', 'man', 'me', 'ms'], 'text/troff' => ['t', 'tr', 'roff', 'man', 'me', 'ms'],
'text/turtle' => ['ttl'], 'text/turtle' => ['ttl'],
'text/uri-list' => ['uri', 'uris', 'urls'], 'text/uri-list' => ['uri', 'uris', 'urls'],
'text/vbs' => ['vbs'],
'text/vbscript' => ['vbs'],
'text/vcard' => ['vcard', 'vcf', 'vct', 'gcrd'], 'text/vcard' => ['vcard', 'vcf', 'vct', 'gcrd'],
'text/vnd.curl' => ['curl'], 'text/vnd.curl' => ['curl'],
'text/vnd.curl.dcurl' => ['dcurl'], 'text/vnd.curl.dcurl' => ['dcurl'],
@ -1539,6 +1582,7 @@ final class MimeTypes implements MimeTypesInterface
'text/vnd.in3d.spot' => ['spot'], 'text/vnd.in3d.spot' => ['spot'],
'text/vnd.qt.linguist' => ['ts'], 'text/vnd.qt.linguist' => ['ts'],
'text/vnd.rn-realtext' => ['rt'], 'text/vnd.rn-realtext' => ['rt'],
'text/vnd.senx.warpscript' => ['mc2'],
'text/vnd.sun.j2me.app-descriptor' => ['jad'], 'text/vnd.sun.j2me.app-descriptor' => ['jad'],
'text/vnd.trolltech.linguist' => ['ts'], 'text/vnd.trolltech.linguist' => ['ts'],
'text/vnd.wap.wml' => ['wml'], 'text/vnd.wap.wml' => ['wml'],
@ -1554,10 +1598,12 @@ final class MimeTypes implements MimeTypesInterface
'text/x-cmake' => ['cmake'], 'text/x-cmake' => ['cmake'],
'text/x-cobol' => ['cbl', 'cob'], 'text/x-cobol' => ['cbl', 'cob'],
'text/x-comma-separated-values' => ['csv'], 'text/x-comma-separated-values' => ['csv'],
'text/x-common-lisp' => ['asd', 'fasl', 'lisp', 'ros'],
'text/x-component' => ['htc'], 'text/x-component' => ['htc'],
'text/x-csharp' => ['cs'], 'text/x-csharp' => ['cs'],
'text/x-csrc' => ['c'], 'text/x-csrc' => ['c'],
'text/x-csv' => ['csv'], 'text/x-csv' => ['csv'],
'text/x-dart' => ['dart'],
'text/x-dbus-service' => ['service'], 'text/x-dbus-service' => ['service'],
'text/x-dcl' => ['dcl'], 'text/x-dcl' => ['dcl'],
'text/x-diff' => ['diff', 'patch'], 'text/x-diff' => ['diff', 'patch'],
@ -1574,6 +1620,8 @@ final class MimeTypes implements MimeTypesInterface
'text/x-gherkin' => ['feature'], 'text/x-gherkin' => ['feature'],
'text/x-go' => ['go'], 'text/x-go' => ['go'],
'text/x-google-video-pointer' => ['gvp'], 'text/x-google-video-pointer' => ['gvp'],
'text/x-gradle' => ['gradle'],
'text/x-groovy' => ['groovy', 'gvy', 'gy', 'gsh'],
'text/x-handlebars-template' => ['hbs'], 'text/x-handlebars-template' => ['hbs'],
'text/x-haskell' => ['hs'], 'text/x-haskell' => ['hs'],
'text/x-idl' => ['idl'], 'text/x-idl' => ['idl'],
@ -1581,6 +1629,8 @@ final class MimeTypes implements MimeTypesInterface
'text/x-iptables' => ['iptables'], 'text/x-iptables' => ['iptables'],
'text/x-java' => ['java'], 'text/x-java' => ['java'],
'text/x-java-source' => ['java'], 'text/x-java-source' => ['java'],
'text/x-kaitai-struct' => ['ksy'],
'text/x-kotlin' => ['kt'],
'text/x-ldif' => ['ldif'], 'text/x-ldif' => ['ldif'],
'text/x-lilypond' => ['ly'], 'text/x-lilypond' => ['ly'],
'text/x-literate-haskell' => ['lhs'], 'text/x-literate-haskell' => ['lhs'],
@ -1619,6 +1669,8 @@ final class MimeTypes implements MimeTypesInterface
'text/x-qml' => ['qml', 'qmltypes', 'qmlproject'], 'text/x-qml' => ['qml', 'qmltypes', 'qmlproject'],
'text/x-reject' => ['rej'], 'text/x-reject' => ['rej'],
'text/x-rpm-spec' => ['spec'], 'text/x-rpm-spec' => ['spec'],
'text/x-rst' => ['rst'],
'text/x-sagemath' => ['sage'],
'text/x-sass' => ['sass'], 'text/x-sass' => ['sass'],
'text/x-scala' => ['scala'], 'text/x-scala' => ['scala'],
'text/x-scheme' => ['scm', 'ss'], 'text/x-scheme' => ['scm', 'ss'],
@ -1679,7 +1731,7 @@ final class MimeTypes implements MimeTypesInterface
'video/mpeg-system' => ['mpeg', 'mpg', 'mp2', 'mpe', 'vob'], 'video/mpeg-system' => ['mpeg', 'mpg', 'mp2', 'mpe', 'vob'],
'video/msvideo' => ['avi', 'avf', 'divx'], 'video/msvideo' => ['avi', 'avf', 'divx'],
'video/ogg' => ['ogv', 'ogg'], 'video/ogg' => ['ogv', 'ogg'],
'video/quicktime' => ['qt', 'mov', 'moov', 'qtvr'], 'video/quicktime' => ['mov', 'qt', 'moov', 'qtvr'],
'video/vivo' => ['viv', 'vivo'], 'video/vivo' => ['viv', 'vivo'],
'video/vnd.dece.hd' => ['uvh', 'uvvh'], 'video/vnd.dece.hd' => ['uvh', 'uvvh'],
'video/vnd.dece.mobile' => ['uvm', 'uvvm'], 'video/vnd.dece.mobile' => ['uvm', 'uvvm'],
@ -1691,6 +1743,8 @@ final class MimeTypes implements MimeTypesInterface
'video/vnd.fvt' => ['fvt'], 'video/vnd.fvt' => ['fvt'],
'video/vnd.mpegurl' => ['mxu', 'm4u', 'm1u'], 'video/vnd.mpegurl' => ['mxu', 'm4u', 'm1u'],
'video/vnd.ms-playready.media.pyv' => ['pyv'], 'video/vnd.ms-playready.media.pyv' => ['pyv'],
'video/vnd.radgamettools.bink' => ['bik', 'bk2'],
'video/vnd.radgamettools.smacker' => ['smk'],
'video/vnd.rn-realvideo' => ['rv', 'rvx'], 'video/vnd.rn-realvideo' => ['rv', 'rvx'],
'video/vnd.uvvu.mp4' => ['uvu', 'uvvu'], 'video/vnd.uvvu.mp4' => ['uvu', 'uvvu'],
'video/vnd.vivo' => ['viv', 'vivo'], 'video/vnd.vivo' => ['viv', 'vivo'],
@ -1746,7 +1800,8 @@ final class MimeTypes implements MimeTypesInterface
'1km' => ['application/vnd.1000minds.decision-model+xml'], '1km' => ['application/vnd.1000minds.decision-model+xml'],
'32x' => ['application/x-genesis-32x-rom'], '32x' => ['application/x-genesis-32x-rom'],
'3dml' => ['text/vnd.in3d.3dml'], '3dml' => ['text/vnd.in3d.3dml'],
'3ds' => ['image/x-3ds'], '3ds' => ['application/x-nintendo-3ds-rom', 'image/x-3ds'],
'3dsx' => ['application/x-nintendo-3ds-executable'],
'3g2' => ['audio/3gpp2', 'video/3gpp2'], '3g2' => ['audio/3gpp2', 'video/3gpp2'],
'3ga' => ['audio/3gpp', 'audio/3gpp-encrypted', 'audio/x-rn-3gpp-amr', 'audio/x-rn-3gpp-amr-encrypted', 'audio/x-rn-3gpp-amr-wb', 'audio/x-rn-3gpp-amr-wb-encrypted', 'video/3gp', 'video/3gpp', 'video/3gpp-encrypted'], '3ga' => ['audio/3gpp', 'audio/3gpp-encrypted', 'audio/x-rn-3gpp-amr', 'audio/x-rn-3gpp-amr-encrypted', 'audio/x-rn-3gpp-amr-wb', 'audio/x-rn-3gpp-amr-wb-encrypted', 'video/3gp', 'video/3gpp', 'video/3gpp-encrypted'],
'3gp' => ['audio/3gpp', 'audio/3gpp-encrypted', 'audio/x-rn-3gpp-amr', 'audio/x-rn-3gpp-amr-encrypted', 'audio/x-rn-3gpp-amr-wb', 'audio/x-rn-3gpp-amr-wb-encrypted', 'video/3gp', 'video/3gpp', 'video/3gpp-encrypted'], '3gp' => ['audio/3gpp', 'audio/3gpp-encrypted', 'audio/x-rn-3gpp-amr', 'audio/x-rn-3gpp-amr-encrypted', 'audio/x-rn-3gpp-amr-wb', 'audio/x-rn-3gpp-amr-wb-encrypted', 'video/3gp', 'video/3gpp', 'video/3gpp-encrypted'],
@ -1755,6 +1810,7 @@ final class MimeTypes implements MimeTypesInterface
'3gpp2' => ['audio/3gpp2', 'video/3gpp2'], '3gpp2' => ['audio/3gpp2', 'video/3gpp2'],
'3mf' => ['model/3mf'], '3mf' => ['model/3mf'],
'7z' => ['application/x-7z-compressed'], '7z' => ['application/x-7z-compressed'],
'7z.001' => ['application/x-7z-compressed'],
'BLEND' => ['application/x-blender'], 'BLEND' => ['application/x-blender'],
'C' => ['text/x-c++src'], 'C' => ['text/x-c++src'],
'PAR2' => ['application/x-par2'], 'PAR2' => ['application/x-par2'],
@ -1763,7 +1819,7 @@ final class MimeTypes implements MimeTypesInterface
'a' => ['application/x-archive'], 'a' => ['application/x-archive'],
'a26' => ['application/x-atari-2600-rom'], 'a26' => ['application/x-atari-2600-rom'],
'a78' => ['application/x-atari-7800-rom'], 'a78' => ['application/x-atari-7800-rom'],
'aa' => ['audio/vnd.audible', 'audio/vnd.audible.aax', 'audio/x-pn-audibleaudio'], 'aa' => ['audio/vnd.audible', 'audio/x-pn-audibleaudio'],
'aab' => ['application/x-authorware-bin'], 'aab' => ['application/x-authorware-bin'],
'aac' => ['audio/aac', 'audio/x-aac', 'audio/x-hx-aac-adts'], 'aac' => ['audio/aac', 'audio/x-aac', 'audio/x-hx-aac-adts'],
'aam' => ['application/x-authorware-map'], 'aam' => ['application/x-authorware-map'],
@ -1811,18 +1867,19 @@ final class MimeTypes implements MimeTypesInterface
'appimage' => ['application/vnd.appimage', 'application/x-iso9660-appimage'], 'appimage' => ['application/vnd.appimage', 'application/x-iso9660-appimage'],
'application' => ['application/x-ms-application'], 'application' => ['application/x-ms-application'],
'apr' => ['application/vnd.lotus-approach'], 'apr' => ['application/vnd.lotus-approach'],
'aps' => ['application/postscript'],
'ar' => ['application/x-archive'], 'ar' => ['application/x-archive'],
'arc' => ['application/x-freearc'], 'arc' => ['application/x-freearc'],
'arj' => ['application/x-arj'], 'arj' => ['application/x-arj'],
'arw' => ['image/x-sony-arw'], 'arw' => ['image/x-sony-arw'],
'as' => ['application/x-applix-spreadsheet'], 'as' => ['application/x-applix-spreadsheet'],
'asc' => ['application/pgp', 'application/pgp-encrypted', 'application/pgp-keys', 'application/pgp-signature', 'text/plain'], 'asc' => ['application/pgp', 'application/pgp-encrypted', 'application/pgp-keys', 'application/pgp-signature', 'text/plain'],
'asd' => ['text/x-common-lisp'],
'asf' => ['application/vnd.ms-asf', 'video/x-ms-asf', 'video/x-ms-asf-plugin', 'video/x-ms-wm'], 'asf' => ['application/vnd.ms-asf', 'video/x-ms-asf', 'video/x-ms-asf-plugin', 'video/x-ms-wm'],
'asm' => ['text/x-asm'], 'asm' => ['text/x-asm'],
'aso' => ['application/vnd.accpac.simply.aso'], 'aso' => ['application/vnd.accpac.simply.aso'],
'asp' => ['application/x-asp'], 'asp' => ['application/x-asp'],
'ass' => ['audio/aac', 'audio/x-aac', 'audio/x-hx-aac-adts', 'text/x-ssa'], 'ass' => ['audio/aac', 'audio/x-aac', 'audio/x-hx-aac-adts', 'text/x-ssa'],
'astc' => ['image/astc'],
'asx' => ['application/x-ms-asx', 'audio/x-ms-asx', 'video/x-ms-asf', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'], 'asx' => ['application/x-ms-asx', 'audio/x-ms-asx', 'video/x-ms-asf', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'],
'atc' => ['application/vnd.acucorp'], 'atc' => ['application/vnd.acucorp'],
'atom' => ['application/atom+xml'], 'atom' => ['application/atom+xml'],
@ -1834,6 +1891,8 @@ final class MimeTypes implements MimeTypesInterface
'automount' => ['text/x-systemd-unit'], 'automount' => ['text/x-systemd-unit'],
'avf' => ['video/avi', 'video/divx', 'video/msvideo', 'video/vnd.divx', 'video/x-avi', 'video/x-msvideo'], 'avf' => ['video/avi', 'video/divx', 'video/msvideo', 'video/vnd.divx', 'video/x-avi', 'video/x-msvideo'],
'avi' => ['video/avi', 'video/divx', 'video/msvideo', 'video/vnd.divx', 'video/x-avi', 'video/x-msvideo'], 'avi' => ['video/avi', 'video/divx', 'video/msvideo', 'video/vnd.divx', 'video/x-avi', 'video/x-msvideo'],
'avif' => ['image/avif', 'image/avif-sequence'],
'avifs' => ['image/avif', 'image/avif-sequence'],
'aw' => ['application/applixware', 'application/x-applix-word'], 'aw' => ['application/applixware', 'application/x-applix-word'],
'awb' => ['audio/amr-wb', 'audio/amr-wb-encrypted'], 'awb' => ['audio/amr-wb', 'audio/amr-wb-encrypted'],
'awk' => ['application/x-awk'], 'awk' => ['application/x-awk'],
@ -1843,6 +1902,7 @@ final class MimeTypes implements MimeTypesInterface
'azs' => ['application/vnd.airzip.filesecure.azs'], 'azs' => ['application/vnd.airzip.filesecure.azs'],
'azv' => ['image/vnd.airzip.accelerator.azv'], 'azv' => ['image/vnd.airzip.accelerator.azv'],
'azw' => ['application/vnd.amazon.ebook'], 'azw' => ['application/vnd.amazon.ebook'],
'azw3' => ['application/vnd.amazon.mobi8-ebook', 'application/x-mobi8-ebook'],
'bak' => ['application/x-trash'], 'bak' => ['application/x-trash'],
'bat' => ['application/x-msdownload'], 'bat' => ['application/x-msdownload'],
'bcpio' => ['application/x-bcpio'], 'bcpio' => ['application/x-bcpio'],
@ -1853,7 +1913,9 @@ final class MimeTypes implements MimeTypesInterface
'bed' => ['application/vnd.realvnc.bed'], 'bed' => ['application/vnd.realvnc.bed'],
'bh2' => ['application/vnd.fujitsu.oasysprs'], 'bh2' => ['application/vnd.fujitsu.oasysprs'],
'bib' => ['text/x-bibtex'], 'bib' => ['text/x-bibtex'],
'bin' => ['application/octet-stream', 'application/x-saturn-rom', 'application/x-sega-cd-rom'], 'bik' => ['video/vnd.radgamettools.bink'],
'bin' => ['application/octet-stream'],
'bk2' => ['video/vnd.radgamettools.bink'],
'blb' => ['application/x-blorb'], 'blb' => ['application/x-blorb'],
'blend' => ['application/x-blender'], 'blend' => ['application/x-blender'],
'blender' => ['application/x-blender'], 'blender' => ['application/x-blender'],
@ -1864,11 +1926,12 @@ final class MimeTypes implements MimeTypesInterface
'book' => ['application/vnd.framemaker'], 'book' => ['application/vnd.framemaker'],
'box' => ['application/vnd.previewsystems.box'], 'box' => ['application/vnd.previewsystems.box'],
'boz' => ['application/x-bzip2'], 'boz' => ['application/x-bzip2'],
'bps' => ['application/x-bps-patch'],
'bsdiff' => ['application/x-bsdiff'], 'bsdiff' => ['application/x-bsdiff'],
'bsp' => ['model/vnd.valve.source.compiled-map'], 'bsp' => ['model/vnd.valve.source.compiled-map'],
'btif' => ['image/prs.btif'], 'btif' => ['image/prs.btif'],
'bz' => ['application/x-bzip', 'application/x-bzip2'], 'bz' => ['application/bzip2', 'application/x-bzip', 'application/x-bzip2'],
'bz2' => ['application/x-bz2', 'application/x-bzip', 'application/x-bzip2'], 'bz2' => ['application/x-bz2', 'application/bzip2', 'application/x-bzip', 'application/x-bzip2'],
'c' => ['text/x-c', 'text/x-csrc'], 'c' => ['text/x-c', 'text/x-csrc'],
'c++' => ['text/x-c++src'], 'c++' => ['text/x-c++src'],
'c11amc' => ['application/vnd.cluetrust.cartomobile-config'], 'c11amc' => ['application/vnd.cluetrust.cartomobile-config'],
@ -1890,6 +1953,7 @@ final class MimeTypes implements MimeTypesInterface
'cbt' => ['application/x-cbr', 'application/x-cbt'], 'cbt' => ['application/x-cbr', 'application/x-cbt'],
'cbz' => ['application/vnd.comicbook+zip', 'application/x-cbr', 'application/x-cbz'], 'cbz' => ['application/vnd.comicbook+zip', 'application/x-cbr', 'application/x-cbz'],
'cc' => ['text/x-c', 'text/x-c++src'], 'cc' => ['text/x-c', 'text/x-c++src'],
'cci' => ['application/x-nintendo-3ds-rom'],
'ccmx' => ['application/x-ccmx'], 'ccmx' => ['application/x-ccmx'],
'cco' => ['application/x-cocoa'], 'cco' => ['application/x-cocoa'],
'cct' => ['application/x-director'], 'cct' => ['application/x-director'],
@ -1897,6 +1961,7 @@ final class MimeTypes implements MimeTypesInterface
'cdbcmsg' => ['application/vnd.contact.cmsg'], 'cdbcmsg' => ['application/vnd.contact.cmsg'],
'cdf' => ['application/x-netcdf'], 'cdf' => ['application/x-netcdf'],
'cdfx' => ['application/cdfx+xml'], 'cdfx' => ['application/cdfx+xml'],
'cdi' => ['application/x-discjuggler-cd-image'],
'cdkey' => ['application/vnd.mediastation.cdkey'], 'cdkey' => ['application/vnd.mediastation.cdkey'],
'cdmia' => ['application/cdmi-capability'], 'cdmia' => ['application/cdmi-capability'],
'cdmic' => ['application/cdmi-container'], 'cdmic' => ['application/cdmi-container'],
@ -1913,6 +1978,7 @@ final class MimeTypes implements MimeTypesInterface
'cgb' => ['application/x-gameboy-color-rom'], 'cgb' => ['application/x-gameboy-color-rom'],
'cgm' => ['image/cgm'], 'cgm' => ['image/cgm'],
'chat' => ['application/x-chat'], 'chat' => ['application/x-chat'],
'chd' => ['application/x-mame-chd'],
'chm' => ['application/vnd.ms-htmlhelp', 'application/x-chm'], 'chm' => ['application/vnd.ms-htmlhelp', 'application/x-chm'],
'chrt' => ['application/vnd.kde.kchart', 'application/x-kchart'], 'chrt' => ['application/vnd.kde.kchart', 'application/x-kchart'],
'cif' => ['chemical/x-cif'], 'cif' => ['chemical/x-cif'],
@ -1958,15 +2024,17 @@ final class MimeTypes implements MimeTypesInterface
'csh' => ['application/x-csh'], 'csh' => ['application/x-csh'],
'csl' => ['application/vnd.citationstyles.style+xml'], 'csl' => ['application/vnd.citationstyles.style+xml'],
'csml' => ['chemical/x-csml'], 'csml' => ['chemical/x-csml'],
'cso' => ['application/x-compressed-iso'],
'csp' => ['application/vnd.commonspace'], 'csp' => ['application/vnd.commonspace'],
'css' => ['text/css'], 'css' => ['text/css'],
'cst' => ['application/x-director'], 'cst' => ['application/x-director'],
'csv' => ['text/csv', 'text/x-comma-separated-values', 'text/x-csv', 'application/csv'], 'csv' => ['text/csv', 'application/csv', 'text/x-comma-separated-values', 'text/x-csv'],
'csvs' => ['text/csv-schema'], 'csvs' => ['text/csv-schema'],
'cu' => ['application/cu-seeme'], 'cu' => ['application/cu-seeme'],
'cue' => ['application/x-cue'], 'cue' => ['application/x-cue'],
'cur' => ['image/x-win-bitmap'], 'cur' => ['image/x-win-bitmap'],
'curl' => ['text/vnd.curl'], 'curl' => ['text/vnd.curl'],
'cwk' => ['application/x-appleworks-document'],
'cww' => ['application/prs.cww'], 'cww' => ['application/prs.cww'],
'cxt' => ['application/x-director'], 'cxt' => ['application/x-director'],
'cxx' => ['text/x-c', 'text/x-c++src'], 'cxx' => ['text/x-c', 'text/x-c++src'],
@ -1974,7 +2042,7 @@ final class MimeTypes implements MimeTypesInterface
'dae' => ['model/vnd.collada+xml'], 'dae' => ['model/vnd.collada+xml'],
'daf' => ['application/vnd.mobius.daf'], 'daf' => ['application/vnd.mobius.daf'],
'dar' => ['application/x-dar'], 'dar' => ['application/x-dar'],
'dart' => ['application/vnd.dart'], 'dart' => ['application/vnd.dart', 'text/x-dart'],
'dataless' => ['application/vnd.fdsn.seed'], 'dataless' => ['application/vnd.fdsn.seed'],
'davmount' => ['application/davmount+xml'], 'davmount' => ['application/davmount+xml'],
'dbf' => ['application/dbase', 'application/dbf', 'application/x-dbase', 'application/x-dbf'], 'dbf' => ['application/dbase', 'application/dbf', 'application/x-dbase', 'application/x-dbf'],
@ -2097,6 +2165,7 @@ final class MimeTypes implements MimeTypesInterface
'f77' => ['text/x-fortran'], 'f77' => ['text/x-fortran'],
'f90' => ['text/x-fortran'], 'f90' => ['text/x-fortran'],
'f95' => ['text/x-fortran'], 'f95' => ['text/x-fortran'],
'fasl' => ['text/x-common-lisp'],
'fb2' => ['application/x-fictionbook', 'application/x-fictionbook+xml'], 'fb2' => ['application/x-fictionbook', 'application/x-fictionbook+xml'],
'fb2.zip' => ['application/x-zip-compressed-fb2'], 'fb2.zip' => ['application/x-zip-compressed-fb2'],
'fbs' => ['image/vnd.fastbidsheet'], 'fbs' => ['image/vnd.fastbidsheet'],
@ -2160,6 +2229,7 @@ final class MimeTypes implements MimeTypesInterface
'gca' => ['application/x-gca-compressed'], 'gca' => ['application/x-gca-compressed'],
'gcode' => ['text/x.gcode'], 'gcode' => ['text/x.gcode'],
'gcrd' => ['text/directory', 'text/vcard', 'text/x-vcard'], 'gcrd' => ['text/directory', 'text/vcard', 'text/x-vcard'],
'gdi' => ['application/x-gd-rom-cue'],
'gdl' => ['model/vnd.gdl'], 'gdl' => ['model/vnd.gdl'],
'gdoc' => ['application/vnd.google-apps.document'], 'gdoc' => ['application/vnd.google-apps.document'],
'ged' => ['application/x-gedcom', 'text/gedcom'], 'ged' => ['application/x-gedcom', 'text/gedcom'],
@ -2198,13 +2268,16 @@ final class MimeTypes implements MimeTypesInterface
'gqf' => ['application/vnd.grafeq'], 'gqf' => ['application/vnd.grafeq'],
'gqs' => ['application/vnd.grafeq'], 'gqs' => ['application/vnd.grafeq'],
'gra' => ['application/x-graphite'], 'gra' => ['application/x-graphite'],
'gradle' => ['text/x-gradle'],
'gram' => ['application/srgs'], 'gram' => ['application/srgs'],
'gramps' => ['application/x-gramps-xml'], 'gramps' => ['application/x-gramps-xml'],
'gre' => ['application/vnd.geometry-explorer'], 'gre' => ['application/vnd.geometry-explorer'],
'groovy' => ['text/x-groovy'],
'grv' => ['application/vnd.groove-injector'], 'grv' => ['application/vnd.groove-injector'],
'grxml' => ['application/srgs+xml'], 'grxml' => ['application/srgs+xml'],
'gs' => ['text/x-genie'], 'gs' => ['text/x-genie'],
'gsf' => ['application/x-font-ghostscript', 'application/x-font-type1'], 'gsf' => ['application/x-font-ghostscript', 'application/x-font-type1'],
'gsh' => ['text/x-groovy'],
'gsheet' => ['application/vnd.google-apps.spreadsheet'], 'gsheet' => ['application/vnd.google-apps.spreadsheet'],
'gslides' => ['application/vnd.google-apps.presentation'], 'gslides' => ['application/vnd.google-apps.presentation'],
'gsm' => ['audio/x-gsm'], 'gsm' => ['audio/x-gsm'],
@ -2213,8 +2286,10 @@ final class MimeTypes implements MimeTypesInterface
'gtw' => ['model/vnd.gtw'], 'gtw' => ['model/vnd.gtw'],
'gv' => ['text/vnd.graphviz'], 'gv' => ['text/vnd.graphviz'],
'gvp' => ['text/google-video-pointer', 'text/x-google-video-pointer'], 'gvp' => ['text/google-video-pointer', 'text/x-google-video-pointer'],
'gvy' => ['text/x-groovy'],
'gxf' => ['application/gxf'], 'gxf' => ['application/gxf'],
'gxt' => ['application/vnd.geonext'], 'gxt' => ['application/vnd.geonext'],
'gy' => ['text/x-groovy'],
'gz' => ['application/x-gzip', 'application/gzip'], 'gz' => ['application/x-gzip', 'application/gzip'],
'h' => ['text/x-c', 'text/x-chdr'], 'h' => ['text/x-c', 'text/x-chdr'],
'h++' => ['text/x-c++hdr'], 'h++' => ['text/x-c++hdr'],
@ -2250,8 +2325,8 @@ final class MimeTypes implements MimeTypesInterface
'hsj2' => ['image/hsj2'], 'hsj2' => ['image/hsj2'],
'htc' => ['text/x-component'], 'htc' => ['text/x-component'],
'htke' => ['application/vnd.kenameaapp'], 'htke' => ['application/vnd.kenameaapp'],
'htm' => ['text/html'], 'htm' => ['text/html', 'application/xhtml+xml'],
'html' => ['text/html'], 'html' => ['text/html', 'application/xhtml+xml'],
'hvd' => ['application/vnd.yamaha.hv-dic'], 'hvd' => ['application/vnd.yamaha.hv-dic'],
'hvp' => ['application/vnd.yamaha.hv-voice'], 'hvp' => ['application/vnd.yamaha.hv-voice'],
'hvs' => ['application/vnd.yamaha.hv-script'], 'hvs' => ['application/vnd.yamaha.hv-script'],
@ -2260,7 +2335,7 @@ final class MimeTypes implements MimeTypesInterface
'hxx' => ['text/x-c++hdr'], 'hxx' => ['text/x-c++hdr'],
'i2g' => ['application/vnd.intergeo'], 'i2g' => ['application/vnd.intergeo'],
'ica' => ['application/x-ica'], 'ica' => ['application/x-ica'],
'icb' => ['image/x-icb', 'image/x-tga'], 'icb' => ['application/tga', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
'icc' => ['application/vnd.iccprofile'], 'icc' => ['application/vnd.iccprofile'],
'ice' => ['x-conference/x-cooltalk'], 'ice' => ['x-conference/x-cooltalk'],
'icm' => ['application/vnd.iccprofile'], 'icm' => ['application/vnd.iccprofile'],
@ -2294,11 +2369,12 @@ final class MimeTypes implements MimeTypesInterface
'iota' => ['application/vnd.astraea-software.iota'], 'iota' => ['application/vnd.astraea-software.iota'],
'ipfix' => ['application/ipfix'], 'ipfix' => ['application/ipfix'],
'ipk' => ['application/vnd.shana.informed.package'], 'ipk' => ['application/vnd.shana.informed.package'],
'ips' => ['application/x-ips-patch'],
'iptables' => ['text/x-iptables'], 'iptables' => ['text/x-iptables'],
'ipynb' => ['application/x-ipynb+json'], 'ipynb' => ['application/x-ipynb+json'],
'irm' => ['application/vnd.ibm.rights-management'], 'irm' => ['application/vnd.ibm.rights-management'],
'irp' => ['application/vnd.irepository.package+xml'], 'irp' => ['application/vnd.irepository.package+xml'],
'iso' => ['application/x-cd-image', 'application/x-gamecube-iso-image', 'application/x-gamecube-rom', 'application/x-iso9660-image', 'application/x-saturn-rom', 'application/x-sega-cd-rom', 'application/x-wbfs', 'application/x-wia', 'application/x-wii-iso-image', 'application/x-wii-rom'], 'iso' => ['application/x-cd-image', 'application/x-dreamcast-rom', 'application/x-gamecube-iso-image', 'application/x-gamecube-rom', 'application/x-iso9660-image', 'application/x-saturn-rom', 'application/x-sega-cd-rom', 'application/x-sega-pico-rom', 'application/x-wbfs', 'application/x-wia', 'application/x-wii-iso-image', 'application/x-wii-rom'],
'iso9660' => ['application/x-cd-image', 'application/x-iso9660-image'], 'iso9660' => ['application/x-cd-image', 'application/x-iso9660-image'],
'it' => ['audio/x-it'], 'it' => ['audio/x-it'],
'it87' => ['application/x-it87'], 'it87' => ['application/x-it87'],
@ -2362,9 +2438,10 @@ final class MimeTypes implements MimeTypesInterface
'kexi' => ['application/x-kexiproject-sqlite', 'application/x-kexiproject-sqlite2', 'application/x-kexiproject-sqlite3', 'application/x-vnd.kde.kexi'], 'kexi' => ['application/x-kexiproject-sqlite', 'application/x-kexiproject-sqlite2', 'application/x-kexiproject-sqlite3', 'application/x-vnd.kde.kexi'],
'kexic' => ['application/x-kexi-connectiondata'], 'kexic' => ['application/x-kexi-connectiondata'],
'kexis' => ['application/x-kexiproject-shortcut'], 'kexis' => ['application/x-kexiproject-shortcut'],
'key' => ['application/vnd.apple.keynote', 'application/x-iwork-keynote-sffkey'], 'key' => ['application/vnd.apple.keynote', 'application/pgp-keys', 'application/x-iwork-keynote-sffkey'],
'keynote' => ['application/vnd.apple.keynote'], 'keynote' => ['application/vnd.apple.keynote'],
'kfo' => ['application/vnd.kde.kformula', 'application/x-kformula'], 'kfo' => ['application/vnd.kde.kformula', 'application/x-kformula'],
'kfx' => ['application/vnd.amazon.mobi8-ebook', 'application/x-mobi8-ebook'],
'kia' => ['application/vnd.kidspiration'], 'kia' => ['application/vnd.kidspiration'],
'kil' => ['application/x-killustrator'], 'kil' => ['application/x-killustrator'],
'kino' => ['application/smil', 'application/smil+xml'], 'kino' => ['application/smil', 'application/smil+xml'],
@ -2380,8 +2457,11 @@ final class MimeTypes implements MimeTypesInterface
'kra' => ['application/x-krita'], 'kra' => ['application/x-krita'],
'ks' => ['application/x-java-keystore'], 'ks' => ['application/x-java-keystore'],
'ksp' => ['application/vnd.kde.kspread', 'application/x-kspread'], 'ksp' => ['application/vnd.kde.kspread', 'application/x-kspread'],
'ksy' => ['text/x-kaitai-struct'],
'kt' => ['text/x-kotlin'],
'ktr' => ['application/vnd.kahootz'], 'ktr' => ['application/vnd.kahootz'],
'ktx' => ['image/ktx'], 'ktx' => ['image/ktx'],
'ktx2' => ['image/ktx2'],
'ktz' => ['application/vnd.kahootz'], 'ktz' => ['application/vnd.kahootz'],
'kud' => ['application/x-kugar'], 'kud' => ['application/x-kugar'],
'kwd' => ['application/vnd.kde.kword', 'application/x-kword'], 'kwd' => ['application/vnd.kde.kword', 'application/x-kword'],
@ -2400,6 +2480,7 @@ final class MimeTypes implements MimeTypesInterface
'lhs' => ['text/x-literate-haskell'], 'lhs' => ['text/x-literate-haskell'],
'lhz' => ['application/x-lhz'], 'lhz' => ['application/x-lhz'],
'link66' => ['application/vnd.route66.link66+xml'], 'link66' => ['application/vnd.route66.link66+xml'],
'lisp' => ['text/x-common-lisp'],
'list' => ['text/plain'], 'list' => ['text/plain'],
'list3820' => ['application/vnd.ibm.modcap'], 'list3820' => ['application/vnd.ibm.modcap'],
'listafp' => ['application/vnd.ibm.modcap'], 'listafp' => ['application/vnd.ibm.modcap'],
@ -2466,6 +2547,7 @@ final class MimeTypes implements MimeTypesInterface
'mbk' => ['application/vnd.mobius.mbk'], 'mbk' => ['application/vnd.mobius.mbk'],
'mbox' => ['application/mbox'], 'mbox' => ['application/mbox'],
'mc1' => ['application/vnd.medcalcdata'], 'mc1' => ['application/vnd.medcalcdata'],
'mc2' => ['text/vnd.senx.warpscript'],
'mcd' => ['application/vnd.mcd'], 'mcd' => ['application/vnd.mcd'],
'mcurl' => ['text/vnd.curl.mcurl'], 'mcurl' => ['text/vnd.curl.mcurl'],
'md' => ['text/markdown', 'text/x-markdown'], 'md' => ['text/markdown', 'text/x-markdown'],
@ -2603,12 +2685,13 @@ final class MimeTypes implements MimeTypesInterface
'not' => ['text/x-mup'], 'not' => ['text/x-mup'],
'npx' => ['image/vnd.net-fpx'], 'npx' => ['image/vnd.net-fpx'],
'nq' => ['application/n-quads'], 'nq' => ['application/n-quads'],
'nrw' => ['image/x-nikon-nrw'],
'nsc' => ['application/x-conference', 'application/x-netshow-channel'], 'nsc' => ['application/x-conference', 'application/x-netshow-channel'],
'nsf' => ['application/vnd.lotus-notes'], 'nsf' => ['application/vnd.lotus-notes'],
'nsv' => ['video/x-nsv'], 'nsv' => ['video/x-nsv'],
'nt' => ['application/n-triples'], 'nt' => ['application/n-triples'],
'ntf' => ['application/vnd.nitf'], 'ntf' => ['application/vnd.nitf'],
'numbers' => ['application/vnd.apple.numbers'], 'numbers' => ['application/vnd.apple.numbers', 'application/x-iwork-numbers-sffnumbers'],
'nzb' => ['application/x-nzb'], 'nzb' => ['application/x-nzb'],
'o' => ['application/x-object'], 'o' => ['application/x-object'],
'oa2' => ['application/vnd.fujitsu.oasys2'], 'oa2' => ['application/vnd.fujitsu.oasys2'],
@ -2661,11 +2744,11 @@ final class MimeTypes implements MimeTypesInterface
'otp' => ['application/vnd.oasis.opendocument.presentation-template'], 'otp' => ['application/vnd.oasis.opendocument.presentation-template'],
'ots' => ['application/vnd.oasis.opendocument.spreadsheet-template'], 'ots' => ['application/vnd.oasis.opendocument.spreadsheet-template'],
'ott' => ['application/vnd.oasis.opendocument.text-template'], 'ott' => ['application/vnd.oasis.opendocument.text-template'],
'ova' => ['application/x-virtualbox-ova'], 'ova' => ['application/ovf', 'application/x-virtualbox-ova'],
'ovf' => ['application/x-virtualbox-ovf'], 'ovf' => ['application/x-virtualbox-ovf'],
'owl' => ['application/rdf+xml', 'text/rdf'], 'owl' => ['application/rdf+xml', 'text/rdf'],
'owx' => ['application/owl+xml'], 'owx' => ['application/owl+xml'],
'oxps' => ['application/oxps', 'application/vnd.ms-xpsdocument', 'application/xps'], 'oxps' => ['application/oxps'],
'oxt' => ['application/vnd.openofficeorg.extension'], 'oxt' => ['application/vnd.openofficeorg.extension'],
'p' => ['text/x-pascal'], 'p' => ['text/x-pascal'],
'p10' => ['application/pkcs10'], 'p10' => ['application/pkcs10'],
@ -2680,7 +2763,7 @@ final class MimeTypes implements MimeTypesInterface
'p8e' => ['application/pkcs8-encrypted'], 'p8e' => ['application/pkcs8-encrypted'],
'pac' => ['application/x-ns-proxy-autoconfig'], 'pac' => ['application/x-ns-proxy-autoconfig'],
'pack' => ['application/x-java-pack200'], 'pack' => ['application/x-java-pack200'],
'pages' => ['application/vnd.apple.pages'], 'pages' => ['application/vnd.apple.pages', 'application/x-iwork-pages-sffpages'],
'pak' => ['application/x-pak'], 'pak' => ['application/x-pak'],
'par2' => ['application/x-par2'], 'par2' => ['application/x-par2'],
'part' => ['application/x-partial-download'], 'part' => ['application/x-partial-download'],
@ -2795,11 +2878,16 @@ final class MimeTypes implements MimeTypesInterface
'pya' => ['audio/vnd.ms-playready.media.pya'], 'pya' => ['audio/vnd.ms-playready.media.pya'],
'pyc' => ['application/x-python-bytecode'], 'pyc' => ['application/x-python-bytecode'],
'pyo' => ['application/x-python-bytecode'], 'pyo' => ['application/x-python-bytecode'],
'pys' => ['application/x-pyspread-bz-spreadsheet'],
'pysu' => ['application/x-pyspread-spreadsheet'],
'pyv' => ['video/vnd.ms-playready.media.pyv'], 'pyv' => ['video/vnd.ms-playready.media.pyv'],
'pyx' => ['text/x-python'], 'pyx' => ['text/x-python'],
'qam' => ['application/vnd.epson.quickanime'], 'qam' => ['application/vnd.epson.quickanime'],
'qbo' => ['application/vnd.intu.qbo'], 'qbo' => ['application/vnd.intu.qbo'],
'qcow' => ['application/x-qemu-disk'],
'qcow2' => ['application/x-qemu-disk'],
'qd' => ['application/x-fd-file', 'application/x-raw-floppy-disk-image'], 'qd' => ['application/x-fd-file', 'application/x-raw-floppy-disk-image'],
'qed' => ['application/x-qed-disk'],
'qfx' => ['application/vnd.intu.qfx'], 'qfx' => ['application/vnd.intu.qfx'],
'qif' => ['application/x-qw', 'image/x-quicktime'], 'qif' => ['application/x-qw', 'image/x-quicktime'],
'qml' => ['text/x-qml'], 'qml' => ['text/x-qml'],
@ -2860,6 +2948,7 @@ final class MimeTypes implements MimeTypesInterface
'rng' => ['application/xml', 'text/xml'], 'rng' => ['application/xml', 'text/xml'],
'roa' => ['application/rpki-roa'], 'roa' => ['application/rpki-roa'],
'roff' => ['application/x-troff', 'text/troff', 'text/x-troff'], 'roff' => ['application/x-troff', 'text/troff', 'text/x-troff'],
'ros' => ['text/x-common-lisp'],
'rp' => ['image/vnd.rn-realpix'], 'rp' => ['image/vnd.rn-realpix'],
'rp9' => ['application/vnd.cloanto.rp9'], 'rp9' => ['application/vnd.cloanto.rp9'],
'rpm' => ['application/x-redhat-package-manager', 'application/x-rpm'], 'rpm' => ['application/x-redhat-package-manager', 'application/x-rpm'],
@ -2871,6 +2960,7 @@ final class MimeTypes implements MimeTypesInterface
'rsd' => ['application/rsd+xml'], 'rsd' => ['application/rsd+xml'],
'rsheet' => ['application/urc-ressheet+xml'], 'rsheet' => ['application/urc-ressheet+xml'],
'rss' => ['application/rss+xml', 'text/rss'], 'rss' => ['application/rss+xml', 'text/rss'],
'rst' => ['text/x-rst'],
'rt' => ['text/vnd.rn-realtext'], 'rt' => ['text/vnd.rn-realtext'],
'rtf' => ['application/rtf', 'text/rtf'], 'rtf' => ['application/rtf', 'text/rtf'],
'rtx' => ['text/richtext'], 'rtx' => ['text/richtext'],
@ -2882,6 +2972,7 @@ final class MimeTypes implements MimeTypesInterface
's' => ['text/x-asm'], 's' => ['text/x-asm'],
's3m' => ['audio/s3m', 'audio/x-s3m'], 's3m' => ['audio/s3m', 'audio/x-s3m'],
'saf' => ['application/vnd.yamaha.smaf-audio'], 'saf' => ['application/vnd.yamaha.smaf-audio'],
'sage' => ['text/x-sagemath'],
'sam' => ['application/x-amipro'], 'sam' => ['application/x-amipro'],
'sami' => ['application/x-sami'], 'sami' => ['application/x-sami'],
'sap' => ['application/x-sap-file', 'application/x-thomson-sap-image'], 'sap' => ['application/x-sap-file', 'application/x-thomson-sap-image'],
@ -2923,6 +3014,7 @@ final class MimeTypes implements MimeTypesInterface
'sfv' => ['text/x-sfv'], 'sfv' => ['text/x-sfv'],
'sg' => ['application/x-sg1000-rom'], 'sg' => ['application/x-sg1000-rom'],
'sgb' => ['application/x-gameboy-rom'], 'sgb' => ['application/x-gameboy-rom'],
'sgd' => ['application/x-genesis-rom'],
'sgf' => ['application/x-go-sgf'], 'sgf' => ['application/x-go-sgf'],
'sgi' => ['image/sgi', 'image/x-sgi'], 'sgi' => ['image/sgi', 'image/x-sgi'],
'sgl' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'], 'sgl' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'],
@ -2969,6 +3061,7 @@ final class MimeTypes implements MimeTypesInterface
'smf' => ['application/vnd.stardivision.math'], 'smf' => ['application/vnd.stardivision.math'],
'smi' => ['application/smil', 'application/smil+xml', 'application/x-sami'], 'smi' => ['application/smil', 'application/smil+xml', 'application/x-sami'],
'smil' => ['application/smil', 'application/smil+xml'], 'smil' => ['application/smil', 'application/smil+xml'],
'smk' => ['video/vnd.radgamettools.smacker'],
'sml' => ['application/smil', 'application/smil+xml'], 'sml' => ['application/smil', 'application/smil+xml'],
'sms' => ['application/x-sms-rom'], 'sms' => ['application/x-sms-rom'],
'smv' => ['video/x-smv'], 'smv' => ['video/x-smv'],
@ -2987,7 +3080,7 @@ final class MimeTypes implements MimeTypesInterface
'spot' => ['text/vnd.in3d.spot'], 'spot' => ['text/vnd.in3d.spot'],
'spp' => ['application/scvp-vp-response'], 'spp' => ['application/scvp-vp-response'],
'spq' => ['application/scvp-vp-request'], 'spq' => ['application/scvp-vp-request'],
'spx' => ['audio/ogg', 'audio/x-speex'], 'spx' => ['application/x-apple-systemprofiler+xml', 'audio/ogg', 'audio/x-speex', 'audio/x-speex+ogg'],
'sql' => ['application/sql', 'application/x-sql', 'text/x-sql'], 'sql' => ['application/sql', 'application/x-sql', 'text/x-sql'],
'sqlite2' => ['application/x-sqlite2'], 'sqlite2' => ['application/x-sqlite2'],
'sqlite3' => ['application/vnd.sqlite3', 'application/x-sqlite3'], 'sqlite3' => ['application/vnd.sqlite3', 'application/x-sqlite3'],
@ -3061,13 +3154,14 @@ final class MimeTypes implements MimeTypesInterface
'tar.lzma' => ['application/x-lzma-compressed-tar'], 'tar.lzma' => ['application/x-lzma-compressed-tar'],
'tar.lzo' => ['application/x-tzo'], 'tar.lzo' => ['application/x-tzo'],
'tar.xz' => ['application/x-xz-compressed-tar'], 'tar.xz' => ['application/x-xz-compressed-tar'],
'tar.zst' => ['application/x-zstd-compressed-tar'],
'target' => ['text/x-systemd-unit'], 'target' => ['text/x-systemd-unit'],
'taz' => ['application/x-tarz'], 'taz' => ['application/x-tarz'],
'tb2' => ['application/x-bzip-compressed-tar'], 'tb2' => ['application/x-bzip-compressed-tar'],
'tbz' => ['application/x-bzip-compressed-tar'], 'tbz' => ['application/x-bzip-compressed-tar'],
'tbz2' => ['application/x-bzip-compressed-tar'], 'tbz2' => ['application/x-bzip-compressed-tar'],
'tcap' => ['application/vnd.3gpp2.tcap'], 'tcap' => ['application/vnd.3gpp2.tcap'],
'tcl' => ['application/x-tcl', 'text/x-tcl'], 'tcl' => ['application/x-tcl', 'text/tcl', 'text/x-tcl'],
'teacher' => ['application/vnd.smart.teacher'], 'teacher' => ['application/vnd.smart.teacher'],
'tei' => ['application/tei+xml'], 'tei' => ['application/tei+xml'],
'teicorpus' => ['application/tei+xml'], 'teicorpus' => ['application/tei+xml'],
@ -3078,7 +3172,7 @@ final class MimeTypes implements MimeTypesInterface
'tfi' => ['application/thraud+xml'], 'tfi' => ['application/thraud+xml'],
'tfm' => ['application/x-tex-tfm'], 'tfm' => ['application/x-tex-tfm'],
'tfx' => ['image/tiff-fx'], 'tfx' => ['image/tiff-fx'],
'tga' => ['image/x-icb', 'image/x-tga'], 'tga' => ['application/tga', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
'tgz' => ['application/x-compressed-tar'], 'tgz' => ['application/x-compressed-tar'],
'theme' => ['application/x-theme'], 'theme' => ['application/x-theme'],
'themepack' => ['application/x-windows-themepack'], 'themepack' => ['application/x-windows-themepack'],
@ -3086,7 +3180,7 @@ final class MimeTypes implements MimeTypesInterface
'tif' => ['image/tiff'], 'tif' => ['image/tiff'],
'tiff' => ['image/tiff'], 'tiff' => ['image/tiff'],
'timer' => ['text/x-systemd-unit'], 'timer' => ['text/x-systemd-unit'],
'tk' => ['application/x-tcl', 'text/x-tcl'], 'tk' => ['application/x-tcl', 'text/tcl', 'text/x-tcl'],
'tlrz' => ['application/x-lrzip-compressed-tar'], 'tlrz' => ['application/x-lrzip-compressed-tar'],
'tlz' => ['application/x-lzma-compressed-tar'], 'tlz' => ['application/x-lzma-compressed-tar'],
'tmo' => ['application/vnd.tmobile-livetv'], 'tmo' => ['application/vnd.tmobile-livetv'],
@ -3095,7 +3189,7 @@ final class MimeTypes implements MimeTypesInterface
'toc' => ['application/x-cdrdao-toc'], 'toc' => ['application/x-cdrdao-toc'],
'toml' => ['application/toml'], 'toml' => ['application/toml'],
'torrent' => ['application/x-bittorrent'], 'torrent' => ['application/x-bittorrent'],
'tpic' => ['image/x-icb', 'image/x-tga'], 'tpic' => ['application/tga', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
'tpl' => ['application/vnd.groove-tool-template'], 'tpl' => ['application/vnd.groove-tool-template'],
'tpt' => ['application/vnd.trid.tpt'], 'tpt' => ['application/vnd.trid.tpt'],
'tr' => ['application/x-troff', 'text/troff', 'text/x-troff'], 'tr' => ['application/x-troff', 'text/troff', 'text/x-troff'],
@ -3119,6 +3213,7 @@ final class MimeTypes implements MimeTypesInterface
'txt' => ['text/plain'], 'txt' => ['text/plain'],
'txz' => ['application/x-xz-compressed-tar'], 'txz' => ['application/x-xz-compressed-tar'],
'tzo' => ['application/x-tzo'], 'tzo' => ['application/x-tzo'],
'tzst' => ['application/x-zstd-compressed-tar'],
'u32' => ['application/x-authorware-bin'], 'u32' => ['application/x-authorware-bin'],
'u8dsn' => ['message/global-delivery-status'], 'u8dsn' => ['message/global-delivery-status'],
'u8hdr' => ['message/global-headers'], 'u8hdr' => ['message/global-headers'],
@ -3182,6 +3277,7 @@ final class MimeTypes implements MimeTypesInterface
'vb' => ['application/x-virtual-boy-rom'], 'vb' => ['application/x-virtual-boy-rom'],
'vbox' => ['application/x-virtualbox-vbox'], 'vbox' => ['application/x-virtualbox-vbox'],
'vbox-extpack' => ['application/x-virtualbox-vbox-extpack'], 'vbox-extpack' => ['application/x-virtualbox-vbox-extpack'],
'vbs' => ['text/vbs', 'text/vbscript'],
'vcard' => ['text/directory', 'text/vcard', 'text/x-vcard'], 'vcard' => ['text/directory', 'text/vcard', 'text/x-vcard'],
'vcd' => ['application/x-cdlink'], 'vcd' => ['application/x-cdlink'],
'vcf' => ['text/x-vcard', 'text/directory', 'text/vcard'], 'vcf' => ['text/x-vcard', 'text/directory', 'text/vcard'],
@ -3189,19 +3285,21 @@ final class MimeTypes implements MimeTypesInterface
'vcs' => ['application/ics', 'text/calendar', 'text/x-vcalendar'], 'vcs' => ['application/ics', 'text/calendar', 'text/x-vcalendar'],
'vct' => ['text/directory', 'text/vcard', 'text/x-vcard'], 'vct' => ['text/directory', 'text/vcard', 'text/x-vcard'],
'vcx' => ['application/vnd.vcx'], 'vcx' => ['application/vnd.vcx'],
'vda' => ['image/x-icb', 'image/x-tga'], 'vda' => ['application/tga', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
'vdi' => ['application/x-virtualbox-vdi'], 'vdi' => ['application/x-vdi-disk', 'application/x-virtualbox-vdi'],
'vhd' => ['application/x-virtualbox-vhd', 'text/x-vhdl'], 'vhd' => ['application/x-vhd-disk', 'application/x-virtualbox-vhd', 'text/x-vhdl'],
'vhdl' => ['text/x-vhdl'], 'vhdl' => ['text/x-vhdl'],
'vhdx' => ['application/x-vhdx-disk', 'application/x-virtualbox-vhdx'],
'vis' => ['application/vnd.visionary'], 'vis' => ['application/vnd.visionary'],
'viv' => ['video/vivo', 'video/vnd.vivo'], 'viv' => ['video/vivo', 'video/vnd.vivo'],
'vivo' => ['video/vivo', 'video/vnd.vivo'], 'vivo' => ['video/vivo', 'video/vnd.vivo'],
'vlc' => ['application/m3u', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist', 'audio/x-mpegurl'], 'vlc' => ['application/m3u', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist', 'audio/x-mpegurl'],
'vmdk' => ['application/x-virtualbox-vmdk'], 'vmdk' => ['application/x-virtualbox-vmdk', 'application/x-vmdk-disk'],
'vob' => ['video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2', 'video/x-ms-vob'], 'vob' => ['video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2', 'video/x-ms-vob'],
'voc' => ['audio/x-voc'], 'voc' => ['audio/x-voc'],
'vor' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'], 'vor' => ['application/vnd.stardivision.writer', 'application/vnd.stardivision.writer-global'],
'vox' => ['application/x-authorware-bin'], 'vox' => ['application/x-authorware-bin'],
'vpc' => ['application/x-vhd-disk', 'application/x-virtualbox-vhd'],
'vrm' => ['model/vrml'], 'vrm' => ['model/vrml'],
'vrml' => ['model/vrml'], 'vrml' => ['model/vrml'],
'vsd' => ['application/vnd.visio'], 'vsd' => ['application/vnd.visio'],
@ -3211,7 +3309,7 @@ final class MimeTypes implements MimeTypesInterface
'vss' => ['application/vnd.visio'], 'vss' => ['application/vnd.visio'],
'vssm' => ['application/vnd.ms-visio.stencil.macroenabled.main+xml'], 'vssm' => ['application/vnd.ms-visio.stencil.macroenabled.main+xml'],
'vssx' => ['application/vnd.ms-visio.stencil.main+xml'], 'vssx' => ['application/vnd.ms-visio.stencil.main+xml'],
'vst' => ['application/vnd.visio', 'image/x-icb', 'image/x-tga'], 'vst' => ['application/tga', 'application/vnd.visio', 'application/x-targa', 'application/x-tga', 'image/targa', 'image/tga', 'image/x-icb', 'image/x-targa', 'image/x-tga'],
'vstm' => ['application/vnd.ms-visio.template.macroenabled.main+xml'], 'vstm' => ['application/vnd.ms-visio.template.macroenabled.main+xml'],
'vstx' => ['application/vnd.ms-visio.template.main+xml'], 'vstx' => ['application/vnd.ms-visio.template.main+xml'],
'vsw' => ['application/vnd.visio'], 'vsw' => ['application/vnd.visio'],
@ -3260,7 +3358,7 @@ final class MimeTypes implements MimeTypesInterface
'wmx' => ['application/x-ms-asx', 'audio/x-ms-asx', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'], 'wmx' => ['application/x-ms-asx', 'audio/x-ms-asx', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'],
'wmz' => ['application/x-ms-wmz', 'application/x-msmetafile'], 'wmz' => ['application/x-ms-wmz', 'application/x-msmetafile'],
'woff' => ['application/font-woff', 'application/x-font-woff', 'font/woff'], 'woff' => ['application/font-woff', 'application/x-font-woff', 'font/woff'],
'woff2' => ['font/woff', 'font/woff2'], 'woff2' => ['font/woff2'],
'wp' => ['application/vnd.wordperfect', 'application/wordperfect', 'application/x-wordperfect'], 'wp' => ['application/vnd.wordperfect', 'application/wordperfect', 'application/x-wordperfect'],
'wp4' => ['application/vnd.wordperfect', 'application/wordperfect', 'application/x-wordperfect'], 'wp4' => ['application/vnd.wordperfect', 'application/wordperfect', 'application/x-wordperfect'],
'wp5' => ['application/vnd.wordperfect', 'application/wordperfect', 'application/x-wordperfect'], 'wp5' => ['application/vnd.wordperfect', 'application/wordperfect', 'application/x-wordperfect'],
@ -3354,7 +3452,7 @@ final class MimeTypes implements MimeTypesInterface
'xpl' => ['application/xproc+xml'], 'xpl' => ['application/xproc+xml'],
'xpm' => ['image/x-xpixmap', 'image/x-xpm'], 'xpm' => ['image/x-xpixmap', 'image/x-xpm'],
'xpr' => ['application/vnd.is-xpr'], 'xpr' => ['application/vnd.is-xpr'],
'xps' => ['application/oxps', 'application/vnd.ms-xpsdocument', 'application/xps'], 'xps' => ['application/vnd.ms-xpsdocument', 'application/xps'],
'xpw' => ['application/vnd.intercon.formnet'], 'xpw' => ['application/vnd.intercon.formnet'],
'xpx' => ['application/vnd.intercon.formnet'], 'xpx' => ['application/vnd.intercon.formnet'],
'xsd' => ['application/xml', 'text/xml'], 'xsd' => ['application/xml', 'text/xml'],
@ -3392,6 +3490,7 @@ final class MimeTypes implements MimeTypesInterface
'zmm' => ['application/vnd.handheld-entertainment+xml'], 'zmm' => ['application/vnd.handheld-entertainment+xml'],
'zoo' => ['application/x-zoo'], 'zoo' => ['application/x-zoo'],
'zsav' => ['application/x-spss-sav', 'application/x-spss-savefile'], 'zsav' => ['application/x-spss-sav', 'application/x-spss-savefile'],
'zst' => ['application/zstd'],
'zz' => ['application/zlib'], 'zz' => ['application/zlib'],
'123' => ['application/lotus123', 'application/vnd.lotus-1-2-3', 'application/wk1', 'application/x-123', 'application/x-lotus123', 'zz-application/zz-winassoc-123'], '123' => ['application/lotus123', 'application/vnd.lotus-1-2-3', 'application/wk1', 'application/x-123', 'application/x-lotus123', 'zz-application/zz-winassoc-123'],
'602' => ['application/x-t602'], '602' => ['application/x-t602'],

View File

@ -19,7 +19,7 @@ foreach ($data as $mimeType => $mimeTypeInformation) {
$new[$mimeType] = $mimeTypeInformation['extensions']; $new[$mimeType] = $mimeTypeInformation['extensions'];
} }
$xml = simplexml_load_string(file_get_contents('https://raw.github.com/minad/mimemagic/master/script/freedesktop.org.xml')); $xml = simplexml_load_string(file_get_contents('https://gitlab.freedesktop.org/xdg/shared-mime-info/-/raw/master/data/freedesktop.org.xml.in'));
foreach ($xml as $node) { foreach ($xml as $node) {
$exts = []; $exts = [];
foreach ($node->glob as $glob) { foreach ($node->glob as $glob) {
@ -76,75 +76,56 @@ foreach ($forceExtensionInFirstPositionByMimeType as $mimeType => $extensionToRe
} }
$data = $pre; $data = $pre;
foreach ($map as $mimeType => $exts) {
$data .= sprintf(" '%s' => ['%s'],\n", $mimeType, implode("', '", array_unique($exts)));
}
$data .= $post;
// reverse map // reverse map
// we prefill the extensions with some preferences for content-types // we prefill the extensions with some preferences for content-types
$exts = [ $exts = [
'aif' => ['audio/x-aiff'],
'aiff' => ['audio/x-aiff'],
'aps' => ['application/postscript'],
'avi' => ['video/avi'],
'bmp' => ['image/bmp'],
'bz2' => ['application/x-bz2'], 'bz2' => ['application/x-bz2'],
'css' => ['text/css'],
'csv' => ['text/csv'], 'csv' => ['text/csv'],
'dmg' => ['application/x-apple-diskimage'],
'doc' => ['application/msword'],
'docx' => ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
'eml' => ['message/rfc822'],
'exe' => ['application/x-ms-dos-executable'],
'flv' => ['video/x-flv'], 'flv' => ['video/x-flv'],
'gif' => ['image/gif'], 'gif' => ['image/gif'],
'gz' => ['application/x-gzip'], 'gz' => ['application/x-gzip'],
'hqx' => ['application/stuffit'],
'htm' => ['text/html'], 'htm' => ['text/html'],
'html' => ['text/html'], 'html' => ['text/html'],
'jar' => ['application/x-java-archive'], 'jar' => ['application/x-java-archive'],
'jpeg' => ['image/jpeg'],
'jpg' => ['image/jpeg'], 'jpg' => ['image/jpeg'],
'js' => ['text/javascript'], 'js' => ['text/javascript'],
'key' => ['application/vnd.apple.keynote'],
'm3u' => ['audio/x-mpegurl'], 'm3u' => ['audio/x-mpegurl'],
'm4a' => ['audio/mp4'], 'm4a' => ['audio/mp4'],
'mdb' => ['application/x-msaccess'], 'mdb' => ['application/x-msaccess'],
'mid' => ['audio/midi'], 'mid' => ['audio/midi'],
'midi' => ['audio/midi'],
'mov' => ['video/quicktime'], 'mov' => ['video/quicktime'],
'mp3' => ['audio/mpeg'], 'mp3' => ['audio/mpeg'],
'mp4' => ['video/mp4'],
'mpeg' => ['video/mpeg'],
'mpg' => ['video/mpeg'],
'ogg' => ['audio/ogg'], 'ogg' => ['audio/ogg'],
'pdf' => ['application/pdf'], 'pdf' => ['application/pdf'],
'php' => ['application/x-php'], 'php' => ['application/x-php'],
'php3' => ['application/x-php'],
'php4' => ['application/x-php'],
'php5' => ['application/x-php'],
'png' => ['image/png'],
'ppt' => ['application/vnd.ms-powerpoint'], 'ppt' => ['application/vnd.ms-powerpoint'],
'pptx' => ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],
'ps' => ['application/postscript'],
'rar' => ['application/x-rar-compressed'], 'rar' => ['application/x-rar-compressed'],
'rtf' => ['application/rtf'], 'hqx' => ['application/stuffit'],
'sit' => ['application/x-stuffit'], 'sit' => ['application/x-stuffit', 'application/stuffit'],
'svg' => ['image/svg+xml'], 'svg' => ['image/svg+xml'],
'tar' => ['application/x-tar'], 'tar' => ['application/x-tar'],
'tif' => ['image/tiff'], 'tif' => ['image/tiff'],
'tiff' => ['image/tiff'],
'ttf' => ['application/x-font-truetype'], 'ttf' => ['application/x-font-truetype'],
'txt' => ['text/plain'],
'vcf' => ['text/x-vcard'], 'vcf' => ['text/x-vcard'],
'wav' => ['audio/wav'], 'wav' => ['audio/wav'],
'wma' => ['audio/x-ms-wma'], 'wma' => ['audio/x-ms-wma'],
'wmv' => ['audio/x-ms-wmv'], 'wmv' => ['audio/x-ms-wmv'],
'xls' => ['application/vnd.ms-excel'], 'xls' => ['application/vnd.ms-excel'],
'xlsx' => ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
'xml' => ['application/xml'],
'zip' => ['application/zip'], 'zip' => ['application/zip'],
]; ];
foreach ($map as $mimeType => $extensions) {
foreach ($exts as $ext => $types) {
if (in_array($mimeType, $types, true)) {
array_unshift($extensions, $ext);
}
}
$data .= sprintf(" '%s' => ['%s'],\n", $mimeType, implode("', '", array_unique($extensions)));
}
$data .= $post;
foreach ($map as $mimeType => $extensions) { foreach ($map as $mimeType => $extensions) {
foreach ($extensions as $extension) { foreach ($extensions as $extension) {
if ('application/octet-stream' === $mimeType && 'bin' !== $extension) { if ('application/octet-stream' === $mimeType && 'bin' !== $extension) {