diff --git a/src/Symfony/Component/Mime/MimeTypes.php b/src/Symfony/Component/Mime/MimeTypes.php index a24b60f00e890..79ce8fe8dc281 100644 --- a/src/Symfony/Component/Mime/MimeTypes.php +++ b/src/Symfony/Component/Mime/MimeTypes.php @@ -135,7 +135,7 @@ public function guessMimeType(string $path): ?string /** * A map of MIME types and their default extensions. * - * Updated from upstream on 2024-11-09. + * Updated from upstream on 2025-05-16. * * @see Resources/bin/update_mime_types.php */ @@ -158,6 +158,7 @@ public function guessMimeType(string $path): ?string 'application/automationml-amlx+zip' => ['amlx'], 'application/bat' => ['bat'], 'application/bdoc' => ['bdoc'], + 'application/buildstream+yaml' => ['bst'], 'application/bzip2' => ['bz2', 'bz'], 'application/calendar+xml' => ['xcs'], 'application/cbor' => ['cbor'], @@ -217,7 +218,7 @@ public function guessMimeType(string $path): ?string 'application/java-byte-code' => ['class'], 'application/java-serialized-object' => ['ser'], 'application/java-vm' => ['class'], - 'application/javascript' => ['js', 'jsm', 'mjs'], + 'application/javascript' => ['js', 'cjs', 'jsm', 'mjs'], 'application/jrd+json' => ['jrd'], 'application/json' => ['json', 'map'], 'application/json-patch+json' => ['json-patch'], @@ -353,6 +354,7 @@ public function guessMimeType(string $path): ?string 'application/toml' => ['toml'], 'application/trig' => ['trig'], 'application/ttml+xml' => ['ttml'], + 'application/typescript' => ['cts', 'mts', 'ts'], 'application/ubjson' => ['ubj'], 'application/urc-ressheet+xml' => ['rsheet'], 'application/urc-targetdesc+xml' => ['td'], @@ -393,6 +395,7 @@ public function guessMimeType(string $path): ?string 'application/vnd.apple.numbers' => ['numbers'], 'application/vnd.apple.pages' => ['pages'], 'application/vnd.apple.pkpass' => ['pkpass'], + 'application/vnd.apple.pkpasses' => ['pkpasses'], 'application/vnd.aristanetworks.swi' => ['swi'], 'application/vnd.astraea-software.iota' => ['iota'], 'application/vnd.audiograph' => ['aep'], @@ -990,7 +993,7 @@ public function guessMimeType(string $path): ?string 'application/x-java-keystore' => ['jks', 'ks'], 'application/x-java-pack200' => ['pack'], 'application/x-java-vm' => ['class'], - 'application/x-javascript' => ['js', 'jsm', 'mjs'], + 'application/x-javascript' => ['cjs', 'js', 'jsm', 'mjs'], 'application/x-jbuilder-project' => ['jpr', 'jpx'], 'application/x-karbon' => ['karbon'], 'application/x-kchart' => ['chrt'], @@ -1099,7 +1102,7 @@ public function guessMimeType(string $path): ?string 'application/x-partial-download' => ['wkdownload', 'crdownload', 'part'], 'application/x-pc-engine-rom' => ['pce'], 'application/x-pcap' => ['pcap', 'cap', 'dmp'], - 'application/x-pcapng' => ['pcapng', 'ntar'], + 'application/x-pcapng' => ['pcapng', 'scap', 'ntar'], 'application/x-pdf' => ['pdf'], 'application/x-perl' => ['pl', 'pm', 'PL', 'al', 'perl', 'pod', 't'], 'application/x-photoshop' => ['psd'], @@ -1303,6 +1306,7 @@ public function guessMimeType(string $path): ?string 'audio/imelody' => ['imy', 'ime'], 'audio/m3u' => ['m3u', 'm3u8', 'vlc'], 'audio/m4a' => ['m4a', 'f4a'], + 'audio/matroska' => ['mka'], 'audio/midi' => ['mid', 'midi', 'kar', 'rmi'], 'audio/mobile-xmf' => ['mxmf'], 'audio/mp2' => ['mp2'], @@ -1509,6 +1513,7 @@ public function guessMimeType(string $path): ?string 'image/vnd.ms-photo' => ['wdp', 'jxr', 'hdp'], 'image/vnd.net-fpx' => ['npx'], 'image/vnd.pco.b16' => ['b16'], + 'image/vnd.radiance' => ['hdr', 'pic', 'rgbe', 'xyze'], 'image/vnd.rn-realpix' => ['rp'], 'image/vnd.tencent.tap' => ['tap'], 'image/vnd.valve.source.texture' => ['vtf'], @@ -1572,6 +1577,7 @@ public function guessMimeType(string $path): ?string 'image/x-pcx' => ['pcx'], 'image/x-pentax-pef' => ['pef'], 'image/x-pfm' => ['pfm'], + 'image/x-phm' => ['phm'], 'image/x-photo-cd' => ['pcd'], 'image/x-photoshop' => ['psd'], 'image/x-pict' => ['pic', 'pct', 'pict', 'pict1', 'pict2'], @@ -1663,8 +1669,8 @@ public function guessMimeType(string $path): ?string 'text/html' => ['html', 'htm', 'shtml'], 'text/ico' => ['ico'], 'text/jade' => ['jade'], - 'text/javascript' => ['js', 'mjs', 'jsm'], - 'text/jscript' => ['js', 'jsm', 'mjs'], + 'text/javascript' => ['js', 'mjs', 'cjs', 'jsm'], + 'text/jscript' => ['cjs', 'js', 'jsm', 'mjs'], 'text/jscript.encode' => ['jse'], 'text/jsx' => ['jsx'], 'text/julia' => ['jl'], @@ -1712,6 +1718,7 @@ public function guessMimeType(string $path): ?string 'text/vnd.senx.warpscript' => ['mc2'], 'text/vnd.sun.j2me.app-descriptor' => ['jad'], 'text/vnd.trolltech.linguist' => ['ts'], + 'text/vnd.typst' => ['typ'], 'text/vnd.wap.wml' => ['wml'], 'text/vnd.wap.wmlscript' => ['wmls'], 'text/vtt' => ['vtt'], @@ -1741,6 +1748,7 @@ public function guessMimeType(string $path): ?string 'text/x-devicetree-binary' => ['dtb'], 'text/x-devicetree-source' => ['dts', 'dtsi'], 'text/x-diff' => ['diff', 'patch'], + 'text/x-dockerfile' => ['Dockerfile'], 'text/x-dsl' => ['dsl'], 'text/x-dsrc' => ['d', 'di'], 'text/x-dtd' => ['dtd'], @@ -1791,6 +1799,7 @@ public function guessMimeType(string $path): ?string 'text/x-nimscript' => ['nims', 'nimble'], 'text/x-nix' => ['nix'], 'text/x-nu' => ['nu'], + 'text/x-nushell' => ['nu'], 'text/x-objc++src' => ['mm'], 'text/x-objcsrc' => ['m'], 'text/x-ocaml' => ['ml', 'mli'], @@ -1824,6 +1833,7 @@ public function guessMimeType(string $path): ?string 'text/x-sh' => ['sh'], 'text/x-sql' => ['sql'], 'text/x-ssa' => ['ssa', 'ass'], + 'text/x-ssh-public-key' => ['pub'], 'text/x-subviewer' => ['sub'], 'text/x-suse-ymp' => ['ymp'], 'text/x-svhdr' => ['svh'], @@ -1870,10 +1880,11 @@ public function guessMimeType(string $path): ?string 'video/iso.segment' => ['m4s'], 'video/jpeg' => ['jpgv'], 'video/jpm' => ['jpm', 'jpgm'], + 'video/matroska' => ['mkv', 'mks', 'mk3d'], 'video/mj2' => ['mj2', 'mjp2'], 'video/mp2t' => ['ts', 'm2t', 'm2ts', 'mts', 'cpi', 'clpi', 'mpl', 'mpls', 'bdm', 'bdmv'], - 'video/mp4' => ['mp4', 'mp4v', 'mpg4', 'm4v', 'f4v', 'lrv'], - 'video/mp4v-es' => ['mp4', 'm4v', 'f4v', 'lrv'], + 'video/mp4' => ['mp4', 'mp4v', 'mpg4', 'm4v', 'f4v', 'lrv', 'lrf'], + 'video/mp4v-es' => ['mp4', 'm4v', 'f4v', 'lrv', 'lrf'], 'video/mpeg' => ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v', 'mp2', 'vob'], 'video/mpeg-system' => ['mpeg', 'mpg', 'mp2', 'mpe', 'vob'], 'video/mpg4' => ['mpg4'], @@ -1907,7 +1918,7 @@ public function guessMimeType(string $path): ?string 'video/x-flic' => ['fli', 'flc'], 'video/x-flv' => ['flv'], 'video/x-javafx' => ['fxm'], - 'video/x-m4v' => ['m4v', 'mp4', 'f4v', 'lrv'], + 'video/x-m4v' => ['m4v', 'mp4', 'f4v', 'lrv', 'lrf'], 'video/x-matroska' => ['mkv', 'mk3d', 'mks'], 'video/x-matroska-3d' => ['mk3d'], 'video/x-mjpeg' => ['mjpeg', 'mjpg'], @@ -1965,6 +1976,7 @@ public function guessMimeType(string $path): ?string '7z' => ['application/x-7z-compressed'], '7z.001' => ['application/x-7z-compressed'], 'C' => ['text/x-c++src'], + 'Dockerfile' => ['text/x-dockerfile'], 'PAR2' => ['application/x-par2'], 'PL' => ['application/x-perl', 'text/x-perl'], 'Z' => ['application/x-compress'], @@ -2107,6 +2119,7 @@ public function guessMimeType(string $path): ?string 'brk' => ['chemical/x-pdb'], 'bsdiff' => ['application/x-bsdiff'], 'bsp' => ['model/vnd.valve.source.compiled-map'], + 'bst' => ['application/buildstream+yaml'], 'btf' => ['image/prs.btif'], 'btif' => ['image/prs.btif'], 'bz' => ['application/bzip2', 'application/x-bzip', 'application/x-bzip1'], @@ -2166,7 +2179,7 @@ public function guessMimeType(string $path): ?string 'cif' => ['chemical/x-cif'], 'cii' => ['application/vnd.anser-web-certificate-issue-initiation'], 'cil' => ['application/vnd.ms-artgalry'], - 'cjs' => ['application/node'], + 'cjs' => ['application/javascript', 'application/node', 'application/x-javascript', 'text/javascript', 'text/jscript'], 'cl' => ['text/x-opencl-src'], 'cla' => ['application/vnd.claymore'], 'class' => ['application/java', 'application/java-byte-code', 'application/java-vm', 'application/x-java', 'application/x-java-class', 'application/x-java-vm'], @@ -2216,6 +2229,7 @@ public function guessMimeType(string $path): ?string 'cst' => ['application/x-director'], 'csv' => ['text/csv', 'application/csv', 'text/x-comma-separated-values', 'text/x-csv'], 'csvs' => ['text/csv-schema'], + 'cts' => ['application/typescript'], 'cu' => ['application/cu-seeme'], 'cue' => ['application/x-cue'], 'cur' => ['image/x-win-bitmap'], @@ -2513,6 +2527,7 @@ public function guessMimeType(string $path): ?string 'hdf4' => ['application/x-hdf'], 'hdf5' => ['application/x-hdf'], 'hdp' => ['image/jxr', 'image/vnd.ms-photo'], + 'hdr' => ['image/vnd.radiance'], 'heic' => ['image/heic', 'image/heic-sequence', 'image/heif', 'image/heif-sequence'], 'heics' => ['image/heic-sequence'], 'heif' => ['image/heic', 'image/heic-sequence', 'image/heif', 'image/heif-sequence'], @@ -2710,7 +2725,7 @@ public function guessMimeType(string $path): ?string 'loas' => ['audio/usac'], 'log' => ['text/plain', 'text/x-log'], 'lostxml' => ['application/lost+xml'], - 'lrf' => ['application/x-sony-bbeb'], + 'lrf' => ['application/x-sony-bbeb', 'video/mp4', 'video/mp4v-es', 'video/x-m4v'], 'lrm' => ['application/vnd.ms-lrm'], 'lrv' => ['video/mp4', 'video/mp4v-es', 'video/x-m4v'], 'lrz' => ['application/x-lrzip'], @@ -2800,11 +2815,11 @@ public function guessMimeType(string $path): ?string 'mjpg' => ['video/x-mjpeg'], 'mjs' => ['application/javascript', 'application/x-javascript', 'text/javascript', 'text/jscript'], 'mk' => ['text/x-makefile'], - 'mk3d' => ['video/x-matroska', 'video/x-matroska-3d'], - 'mka' => ['audio/x-matroska'], + 'mk3d' => ['video/matroska', 'video/x-matroska', 'video/x-matroska-3d'], + 'mka' => ['audio/matroska', 'audio/x-matroska'], 'mkd' => ['text/markdown', 'text/x-markdown'], - 'mks' => ['video/x-matroska'], - 'mkv' => ['video/x-matroska'], + 'mks' => ['video/matroska', 'video/x-matroska'], + 'mkv' => ['video/matroska', 'video/x-matroska'], 'ml' => ['text/x-ocaml'], 'mli' => ['text/x-ocaml'], 'mlp' => ['application/vnd.dolby.mlp'], @@ -2876,7 +2891,7 @@ public function guessMimeType(string $path): ?string 'msx' => ['application/x-msx-rom'], 'mtl' => ['model/mtl'], 'mtm' => ['audio/x-mod'], - 'mts' => ['model/vnd.mts', 'video/mp2t'], + 'mts' => ['application/typescript', 'model/vnd.mts', 'video/mp2t'], 'mup' => ['text/x-mup'], 'mus' => ['application/vnd.musician'], 'musd' => ['application/mmt-usd+xml'], @@ -2925,7 +2940,7 @@ public function guessMimeType(string $path): ?string 'nt' => ['application/n-triples'], 'ntar' => ['application/x-pcapng'], 'ntf' => ['application/vnd.nitf'], - 'nu' => ['application/x-nuscript', 'text/x-nu'], + 'nu' => ['application/x-nuscript', 'text/x-nu', 'text/x-nushell'], 'numbers' => ['application/vnd.apple.numbers', 'application/x-iwork-numbers-sffnumbers'], 'nzb' => ['application/x-nzb'], 'o' => ['application/x-object'], @@ -3045,12 +3060,13 @@ public function guessMimeType(string $path): ?string 'pgm' => ['image/x-portable-graymap'], 'pgn' => ['application/vnd.chess-pgn', 'application/x-chess-pgn'], 'pgp' => ['application/pgp', 'application/pgp-encrypted', 'application/pgp-keys', 'application/pgp-signature'], + 'phm' => ['image/x-phm'], 'php' => ['application/x-php', 'application/x-httpd-php'], 'php3' => ['application/x-php'], 'php4' => ['application/x-php'], 'php5' => ['application/x-php'], 'phps' => ['application/x-php'], - 'pic' => ['image/x-pict'], + 'pic' => ['image/vnd.radiance', 'image/x-pict'], 'pict' => ['image/x-pict'], 'pict1' => ['image/x-pict'], 'pict2' => ['image/x-pict'], @@ -3059,6 +3075,7 @@ public function guessMimeType(string $path): ?string 'pki' => ['application/pkixcmp'], 'pkipath' => ['application/pkix-pkipath'], 'pkpass' => ['application/vnd.apple.pkpass'], + 'pkpasses' => ['application/vnd.apple.pkpasses'], 'pkr' => ['application/pgp-keys'], 'pl' => ['application/x-perl', 'text/x-perl'], 'pla' => ['audio/x-iriver-pla'], @@ -3110,7 +3127,7 @@ public function guessMimeType(string $path): ?string 'psw' => ['application/x-pocket-word'], 'pti' => ['image/prs.pti'], 'ptid' => ['application/vnd.pvi.ptid1'], - 'pub' => ['application/vnd.ms-publisher', 'application/x-mspublisher'], + 'pub' => ['application/vnd.ms-publisher', 'application/x-mspublisher', 'text/x-ssh-public-key'], 'pvb' => ['application/vnd.3gpp.pic-bw-var'], 'pw' => ['application/x-pw'], 'pwn' => ['application/vnd.3m.post-it-notes'], @@ -3181,6 +3198,7 @@ public function guessMimeType(string $path): ?string 'rep' => ['application/vnd.businessobjects'], 'res' => ['application/x-dtbresource+xml', 'application/x-godot-resource'], 'rgb' => ['image/x-rgb'], + 'rgbe' => ['image/vnd.radiance'], 'rif' => ['application/reginfo+xml'], 'rip' => ['audio/vnd.rip'], 'ris' => ['application/x-research-info-systems'], @@ -3234,6 +3252,7 @@ public function guessMimeType(string $path): ?string 'sbml' => ['application/sbml+xml'], 'sc' => ['application/vnd.ibm.secure-container', 'text/x-scala'], 'scala' => ['text/x-scala'], + 'scap' => ['application/x-pcapng'], 'scd' => ['application/x-msschedule'], 'scm' => ['application/vnd.lotus-screencam', 'text/x-scheme'], 'scn' => ['application/x-godot-scene'], @@ -3471,7 +3490,7 @@ public function guessMimeType(string $path): ?string 'trig' => ['application/trig', 'application/x-trig'], 'trm' => ['application/x-msterminal'], 'trz' => ['application/x-rzip-compressed-tar'], - 'ts' => ['application/x-linguist', 'text/vnd.qt.linguist', 'text/vnd.trolltech.linguist', 'video/mp2t'], + 'ts' => ['application/typescript', 'application/x-linguist', 'text/vnd.qt.linguist', 'text/vnd.trolltech.linguist', 'video/mp2t'], 'tscn' => ['application/x-godot-scene'], 'tsd' => ['application/timestamped-data'], 'tsv' => ['text/tab-separated-values'], @@ -3489,7 +3508,7 @@ public function guessMimeType(string $path): ?string 'txf' => ['application/vnd.mobius.txf'], 'txt' => ['text/plain'], 'txz' => ['application/x-xz-compressed-tar'], - 'typ' => ['text/x-typst'], + 'typ' => ['text/vnd.typst', 'text/x-typst'], 'tzo' => ['application/x-tzo'], 'tzst' => ['application/x-zstd-compressed-tar'], 'u32' => ['application/x-authorware-bin'], @@ -3756,6 +3775,7 @@ public function guessMimeType(string $path): ?string 'xvml' => ['application/xv+xml'], 'xwd' => ['image/x-xwindowdump'], 'xyz' => ['chemical/x-xyz'], + 'xyze' => ['image/vnd.radiance'], 'xz' => ['application/x-xz'], 'yaml' => ['application/yaml', 'application/x-yaml', 'text/x-yaml', 'text/yaml'], 'yang' => ['application/yang'], diff --git a/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php b/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php index 9171b2061773f..3f2b800c4af8d 100644 --- a/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php +++ b/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php @@ -89,6 +89,10 @@ 'md' => ['text/markdown', 'text/x-markdown'], 'mdb' => ['application/x-msaccess'], 'mid' => ['audio/midi'], + 'mk3d' => ['video/matroska'], + 'mka' => ['audio/matroska'], + 'mks' => ['video/matroska'], + 'mkv' => ['video/matroska'], 'mov' => ['video/quicktime'], 'mp3' => ['audio/mpeg'], 'mp4' => ['video/mp4'],