big update base struktur tahap 1

This commit is contained in:
Wian Drs
2026-07-27 16:24:09 +07:00
parent 2b3592c4c2
commit 1dd02baa72
169 changed files with 24405 additions and 977 deletions
+10 -2
View File
@@ -30,7 +30,7 @@ class Filesystem implements FilesystemOperator
private ?TemporaryUrlGenerator $temporaryUrlGenerator = null,
) {
$this->config = new Config($config);
$this->pathNormalizer = $pathNormalizer ?? new WhitespacePathNormalizer();
$this->pathNormalizer = $pathNormalizer ?? new WhitespacePathNormalizer($this->config->get('allow_relative_path_traversal', true));
}
public function fileExists(string $location): bool
@@ -168,9 +168,17 @@ class Filesystem implements FilesystemOperator
public function mimeType(string $path): string
{
return $this->adapter->mimeType($this->pathNormalizer->normalizePath($path))->mimeType();
$normalizedPath = $this->pathNormalizer->normalizePath($path);
$attributes = $this->adapter->mimeType($normalizedPath);
if ($attributes->mimeType() === null) {
throw UnableToRetrieveMetadata::mimeType($path);
}
return $attributes->mimeType();
}
public function setVisibility(string $path, string $visibility): void
{
$this->adapter->setVisibility($this->pathNormalizer->normalizePath($path), $visibility);
+18 -13
View File
@@ -4,37 +4,42 @@ declare(strict_types=1);
namespace League\Flysystem;
use function array_pop;
use function explode;
use function implode;
use function preg_match;
use function str_replace;
class WhitespacePathNormalizer implements PathNormalizer
{
private bool $allowRelativePaths;
public function __construct(bool $allowRelativePathTraversal = true)
{
$this->allowRelativePaths = $allowRelativePathTraversal;
}
public function normalizePath(string $path): string
{
$path = str_replace('\\', '/', $path);
$this->rejectFunkyWhiteSpace($path);
$unixPath = str_replace('\\', '/', $path);
return $this->normalizeRelativePath($path);
}
private function rejectFunkyWhiteSpace(string $path): void
{
if (preg_match('#\p{C}+#u', $path)) {
if (preg_match('#\p{C}+#u', $unixPath)) {
throw CorruptedPathDetected::forPath($path);
}
}
private function normalizeRelativePath(string $path): string
{
$parts = [];
foreach (explode('/', $path) as $part) {
foreach (explode('/', $unixPath) as $part) {
switch ($part) {
case '':
case '.':
break;
case '..':
if (empty($parts)) {
if ($this->allowRelativePaths === false || empty($parts)) {
throw PathTraversalDetected::forPath($path);
}
array_pop($parts);
break;
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## 1.17.0 - 2026-07-09
- Updated lookup
## 1.16.0 - 2025-09-21
- Updated lookup
+1 -1
View File
@@ -17,7 +17,7 @@
"ext-fileinfo": "*"
},
"require-dev": {
"phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0",
"phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0 || ^11.0 || ^12.0",
"phpstan/phpstan": "^0.12.68",
"friendsofphp/php-cs-fixer": "^3.2"
},
@@ -22,6 +22,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'7z' => 'application/x-7z-compressed',
'7zip' => 'application/x-7z-compressed',
'123' => 'application/vnd.lotus-1-2-3',
'210' => 'model/step',
'aab' => 'application/x-authorware-bin',
'aac' => 'audio/acc',
'aam' => 'application/x-authorware-map',
@@ -40,7 +41,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'afp' => 'application/vnd.ibm.modcap',
'age' => 'application/vnd.age',
'ahead' => 'application/vnd.ahead.space',
'ai' => 'application/pdf',
'ai' => 'application/illustrator',
'aif' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
@@ -93,6 +94,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'bh2' => 'application/vnd.fujitsu.oasysprs',
'bin' => 'application/octet-stream',
'blb' => 'application/x-blorb',
'blend' => 'application/x-blender',
'blorb' => 'application/x-blorb',
'bmi' => 'application/vnd.bmi',
'bmml' => 'application/vnd.balsamiq.bmml+xml',
@@ -103,6 +105,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'bpk' => 'application/octet-stream',
'bpmn' => 'application/octet-stream',
'brf' => 'application/braille',
'brush' => 'application/vnd.procreate.brush',
'brushset' => 'application/vnd.procreate.brushset',
'bsp' => 'model/vnd.valve.source.compiled-map',
'btf' => 'image/prs.btif',
'btif' => 'image/prs.btif',
@@ -202,6 +206,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'davmount' => 'application/davmount+xml',
'dbf' => 'application/vnd.dbf',
'dbk' => 'application/docbook+xml',
'dcm' => 'application/dicom',
'dcmp' => 'application/vnd.dcmp+xml',
'dcr' => 'application/x-director',
'dcurl' => 'text/vnd.curl.dcurl',
'dd2' => 'application/vnd.oma.dd2+xml',
@@ -229,6 +235,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'dmp' => 'application/vnd.tcpdump.pcap',
'dms' => 'application/octet-stream',
'dna' => 'application/vnd.dna',
'dng' => 'image/x-adobe-dng',
'doc' => 'application/msword',
'docm' => 'application/vnd.ms-word.template.macroEnabled.12',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
@@ -240,6 +247,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'dpx' => 'image/dpx',
'dra' => 'audio/vnd.dra',
'drle' => 'image/dicom-rle',
'drm' => 'application/vnd.procreate.dream',
'dsc' => 'text/prs.lines.tag',
'dssc' => 'application/dssc+der',
'dst' => 'application/octet-stream',
@@ -294,7 +302,9 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'f4v' => 'video/mp4',
'f77' => 'text/x-fortran',
'f90' => 'text/x-fortran',
'facti' => 'image/vnd.blockfact.facti',
'fbs' => 'image/vnd.fastbidsheet',
'fbx' => 'application/vnd.autodesk.fbx',
'fcdt' => 'application/vnd.adobe.formscentral.fcdt',
'fcs' => 'application/vnd.isac.fcs',
'fdf' => 'application/vnd.fdf',
@@ -339,18 +349,22 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'gca' => 'application/x-gca-compressed',
'gdl' => 'model/vnd.gdl',
'gdoc' => 'application/vnd.google-apps.document',
'gdraw' => 'application/vnd.google-apps.drawing',
'ged' => 'text/vnd.familysearch.gedcom',
'geo' => 'application/vnd.dynageo',
'geojson' => 'application/geo+json',
'gex' => 'application/vnd.geometry-explorer',
'gform' => 'application/vnd.google-apps.form',
'ggb' => 'application/vnd.geogebra.file',
'ggs' => 'application/vnd.geogebra.slides',
'ggt' => 'application/vnd.geogebra.tool',
'ghf' => 'application/vnd.groove-help',
'gif' => 'image/gif',
'gim' => 'application/vnd.groove-identity-message',
'gjam' => 'application/vnd.google-apps.jam',
'glb' => 'model/gltf-binary',
'gltf' => 'model/gltf+json',
'gmap' => 'application/vnd.google-apps.map',
'gml' => 'application/gml+xml',
'gmx' => 'application/vnd.gmx',
'gnumeric' => 'application/x-gnumeric',
@@ -364,8 +378,10 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'gre' => 'application/vnd.geometry-explorer',
'grv' => 'application/vnd.groove-injector',
'grxml' => 'application/srgs+xml',
'gscript' => 'application/vnd.google-apps.script',
'gsf' => 'application/x-font-ghostscript',
'gsheet' => 'application/vnd.google-apps.spreadsheet',
'gsite' => 'application/vnd.google-apps.site',
'gslides' => 'application/vnd.google-apps.presentation',
'gtar' => 'application/x-gtar',
'gtm' => 'application/vnd.groove-tool-message',
@@ -397,7 +413,6 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'hpid' => 'application/vnd.hp-hpid',
'hps' => 'application/vnd.hp-hps',
'hqx' => 'application/mac-binhex40',
'hsj2' => 'image/hsj2',
'htc' => 'text/x-component',
'htke' => 'application/vnd.kenameaapp',
'htm' => 'text/html',
@@ -424,6 +439,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'imp' => 'application/vnd.accpac.simply.imp',
'ims' => 'application/vnd.ms-ims',
'in' => 'text/plain',
'indd' => 'application/x-indesign',
'ini' => 'text/plain',
'ink' => 'application/inkml+xml',
'inkml' => 'application/inkml+xml',
@@ -431,6 +447,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'iota' => 'application/vnd.astraea-software.iota',
'ipfix' => 'application/ipfix',
'ipk' => 'application/vnd.shana.informed.package',
'ipynb' => 'application/x-ipynb+json',
'irm' => 'application/vnd.ibm.rights-management',
'irp' => 'application/vnd.irepository.package+xml',
'iso' => 'application/x-iso9660-image',
@@ -440,10 +457,13 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'ivu' => 'application/vnd.immervision-ivu',
'jad' => 'text/vnd.sun.j2me.app-descriptor',
'jade' => 'text/jade',
'jaii' => 'image/jaii',
'jais' => 'image/jais',
'jam' => 'application/vnd.jam',
'jar' => 'application/java-archive',
'jardiff' => 'application/x-java-archive-diff',
'java' => 'text/x-java-source',
'jfif' => 'image/jpeg',
'jhc' => 'image/jphc',
'jisp' => 'application/vnd.jisp',
'jls' => 'image/jls',
@@ -479,6 +499,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'jxss' => 'image/jxss',
'kar' => 'audio/midi',
'karbon' => 'application/vnd.kde.karbon',
'kbl' => 'application/kbl+xml',
'kdb' => 'application/octet-stream',
'kdbx' => 'application/x-keepass2',
'key' => 'application/x-iwork-keynote-sffkey',
@@ -515,6 +536,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'lnk' => 'application/x-ms-shortcut',
'log' => 'text/plain',
'lostxml' => 'application/lost+xml',
'lottie' => 'application/zip+dotlottie',
'lrf' => 'application/octet-stream',
'lrm' => 'application/vnd.ms-lrm',
'ltf' => 'application/vnd.frogans.ltf',
@@ -532,6 +554,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'm3u' => 'text/plain',
'm3u8' => 'application/vnd.apple.mpegurl',
'm4a' => 'audio/x-m4a',
'm4b' => 'audio/mp4',
'm4p' => 'application/mp4',
'm4s' => 'video/iso.segment',
'm4u' => 'application/vnd.mpegurl',
@@ -569,6 +592,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'mft' => 'application/rpki-manifest',
'mgp' => 'application/vnd.osgeo.mapguide.package',
'mgz' => 'application/vnd.proteus.magazine',
'mht' => 'message/rfc822',
'mhtml' => 'message/rfc822',
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mie' => 'application/x-mie',
@@ -692,6 +717,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'ogv' => 'video/ogg',
'ogx' => 'application/ogg',
'omdoc' => 'application/omdoc+xml',
'one' => 'application/onenote',
'onea' => 'application/onenote',
'onepkg' => 'application/onenote',
'onetmp' => 'application/onenote',
'onetoc' => 'application/onenote',
@@ -727,8 +754,10 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'p8' => 'application/pkcs8',
'p10' => 'application/x-pkcs10',
'p12' => 'application/x-pkcs12',
'p21' => 'model/step',
'pac' => 'application/x-ns-proxy-autoconfig',
'pages' => 'application/x-iwork-pages-sffpages',
'parquet' => 'application/vnd.apache.parquet',
'pas' => 'text/x-pascal',
'paw' => 'application/vnd.pawaafile',
'pbd' => 'application/vnd.powerbuilder6',
@@ -942,6 +971,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'spq' => 'application/scvp-vp-request',
'spx' => 'audio/ogg',
'sql' => 'application/x-sql',
'sqlite' => 'application/vnd.sqlite3',
'sqlite3' => 'application/vnd.sqlite3',
'src' => 'application/x-wais-source',
'srt' => 'application/x-subrip',
'sru' => 'application/sru+xml',
@@ -960,6 +991,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'stk' => 'application/hyperstudio',
'stl' => 'model/stl',
'stp' => 'application/STEP',
'stpnc' => 'model/step',
'stpx' => 'model/step+xml',
'stpxz' => 'model/step-xml+zip',
'stpz' => 'model/step+zip',
@@ -986,6 +1018,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'sxi' => 'application/vnd.sun.xml.impress',
'sxm' => 'application/vnd.sun.xml.math',
'sxw' => 'application/vnd.sun.xml.writer',
'systemverify' => 'application/vnd.pp.systemverify+xml',
't' => 'text/troff',
't3' => 'application/x-t3vm-image',
't38' => 'image/t38',
@@ -1094,6 +1127,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'vcx' => 'application/vnd.vcx',
'vdi' => 'application/x-virtualbox-vdi',
'vds' => 'model/vnd.sap.vds',
'vdx' => 'application/vnd.ms-visio.viewer',
'vec' => 'application/vec+xml',
'vhd' => 'application/x-virtualbox-vhd',
'vis' => 'application/vnd.visionary',
'viv' => 'video/vnd.vivo',
@@ -1104,6 +1139,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'vox' => 'application/x-authorware-bin',
'vrml' => 'model/vrml',
'vsd' => 'application/vnd.visio',
'vsdx' => 'application/vnd.visio',
'vsf' => 'application/vnd.vsf',
'vss' => 'application/vnd.visio',
'vst' => 'application/vnd.visio',
@@ -1111,6 +1147,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'vtf' => 'image/vnd.valve.source.texture',
'vtt' => 'text/vtt',
'vtu' => 'model/vnd.vtu',
'vtx' => 'application/vnd.visio',
'vxml' => 'application/voicexml+xml',
'w3d' => 'application/x-director',
'wad' => 'application/x-doom',
@@ -1289,6 +1326,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/dash+xml' => ['mpd'],
'application/dash-patch+xml' => ['mpp'],
'application/davmount+xml' => ['davmount'],
'application/dicom' => ['dcm'],
'application/docbook+xml' => ['dbk'],
'application/dssc+der' => ['dssc'],
'application/dssc+xml' => ['xdssc'],
@@ -1318,6 +1356,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/json' => ['json', 'map'],
'application/json5' => ['json5'],
'application/jsonml+json' => ['jsonml'],
'application/kbl+xml' => ['kbl'],
'application/ld+json' => ['jsonld'],
'application/lgr+xml' => ['lgr'],
'application/lost+xml' => ['lostxml'],
@@ -1352,11 +1391,11 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/oebps-package+xml' => ['opf'],
'application/ogg' => ['ogx'],
'application/omdoc+xml' => ['omdoc'],
'application/onenote' => ['onetoc', 'onetoc2', 'onetmp', 'onepkg'],
'application/onenote' => ['onetoc', 'onetoc2', 'onetmp', 'onepkg', 'one', 'onea'],
'application/oxps' => ['oxps'],
'application/p2p-overlay+xml' => ['relo'],
'application/patch-ops-error+xml' => ['xer'],
'application/pdf' => ['pdf', 'ai'],
'application/pdf' => ['pdf'],
'application/pgp-encrypted' => ['pgp'],
'application/pgp-keys' => ['asc'],
'application/pgp-signature' => ['sig', 'asc'],
@@ -1423,6 +1462,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/ubjson' => ['ubj'],
'application/urc-ressheet+xml' => ['rsheet'],
'application/urc-targetdesc+xml' => ['td'],
'application/vec+xml' => ['vec'],
'application/vnd.1000minds.decision-model+xml' => ['1km'],
'application/vnd.3gpp.pic-bw-large' => ['plb'],
'application/vnd.3gpp.pic-bw-small' => ['psb'],
@@ -1449,6 +1489,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.anser-web-certificate-issue-initiation' => ['cii'],
'application/vnd.anser-web-funds-transfer-initiation' => ['fti'],
'application/vnd.antix.game-component' => ['atx'],
'application/vnd.apache.parquet' => ['parquet'],
'application/vnd.apple.installer+xml' => ['mpkg'],
'application/vnd.apple.keynote' => ['key'],
'application/vnd.apple.mpegurl' => ['m3u8'],
@@ -1458,6 +1499,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.aristanetworks.swi' => ['swi'],
'application/vnd.astraea-software.iota' => ['iota'],
'application/vnd.audiograph' => ['aep'],
'application/vnd.autodesk.fbx' => ['fbx'],
'application/vnd.balsamiq.bmml+xml' => ['bmml'],
'application/vnd.blueice.multipass' => ['mpm'],
'application/vnd.bmi' => ['bmi'],
@@ -1487,6 +1529,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.dart' => ['dart'],
'application/vnd.data-vision.rdz' => ['rdz'],
'application/vnd.dbf' => ['dbf'],
'application/vnd.dcmp+xml' => ['dcmp'],
'application/vnd.dece.data' => ['uvf', 'uvvf', 'uvd', 'uvvd'],
'application/vnd.dece.ttml+xml' => ['uvt', 'uvvt'],
'application/vnd.dece.unspecified' => ['uvx', 'uvvx'],
@@ -1538,7 +1581,13 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.geospace' => ['g3w'],
'application/vnd.gmx' => ['gmx'],
'application/vnd.google-apps.document' => ['gdoc'],
'application/vnd.google-apps.drawing' => ['gdraw'],
'application/vnd.google-apps.form' => ['gform'],
'application/vnd.google-apps.jam' => ['gjam'],
'application/vnd.google-apps.map' => ['gmap'],
'application/vnd.google-apps.presentation' => ['gslides'],
'application/vnd.google-apps.script' => ['gscript'],
'application/vnd.google-apps.site' => ['gsite'],
'application/vnd.google-apps.spreadsheet' => ['gsheet'],
'application/vnd.google-earth.kml+xml' => ['kml'],
'application/vnd.google-earth.kmz' => ['kmz'],
@@ -1649,6 +1698,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => ['ppsm'],
'application/vnd.ms-powerpoint.template.macroenabled.12' => ['potm'],
'application/vnd.ms-project' => ['mpp', 'mpt'],
'application/vnd.ms-visio.viewer' => ['vdx'],
'application/vnd.ms-word.document.macroenabled.12' => ['docm'],
'application/vnd.ms-word.template.macroenabled.12' => ['dotm'],
'application/vnd.ms-works' => ['wps', 'wks', 'wcm', 'wdb'],
@@ -1713,7 +1763,11 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.pmi.widget' => ['wg'],
'application/vnd.pocketlearn' => ['plf'],
'application/vnd.powerbuilder6' => ['pbd'],
'application/vnd.pp.systemverify+xml' => ['systemverify'],
'application/vnd.previewsystems.box' => ['box'],
'application/vnd.procreate.brush' => ['brush'],
'application/vnd.procreate.brushset' => ['brushset'],
'application/vnd.procreate.dream' => ['drm'],
'application/vnd.proteus.magazine' => ['mgz'],
'application/vnd.publishare-delta-tree' => ['qps'],
'application/vnd.pvi.ptid1' => ['ptid'],
@@ -1744,6 +1798,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.solent.sdkm+xml' => ['sdkm', 'sdkd'],
'application/vnd.spotfire.dxp' => ['dxp'],
'application/vnd.spotfire.sfs' => ['sfs'],
'application/vnd.sqlite3' => ['sqlite', 'sqlite3'],
'application/vnd.stardivision.calc' => ['sdc'],
'application/vnd.stardivision.draw' => ['sda'],
'application/vnd.stardivision.impress' => ['sdd'],
@@ -1782,7 +1837,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/vnd.unity' => ['unityweb'],
'application/vnd.uoml+xml' => ['uoml', 'uo'],
'application/vnd.vcx' => ['vcx'],
'application/vnd.visio' => ['vsd', 'vst', 'vss', 'vsw'],
'application/vnd.visio' => ['vsd', 'vst', 'vss', 'vsw', 'vsdx', 'vtx'],
'application/vnd.visionary' => ['vis'],
'application/vnd.vsf' => ['vsf'],
'application/vnd.wap.wbxml' => ['wbxml'],
@@ -1823,6 +1878,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/x-bcpio' => ['bcpio'],
'application/x-bdoc' => ['bdoc'],
'application/x-bittorrent' => ['torrent'],
'application/x-blender' => ['blend'],
'application/x-blorb' => ['blb', 'blorb'],
'application/x-bzip' => ['bz'],
'application/x-bzip2' => ['bz2', 'boz'],
@@ -1833,6 +1889,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/x-chess-pgn' => ['pgn'],
'application/x-chrome-extension' => ['crx'],
'application/x-cocoa' => ['cco'],
'application/x-compressed' => ['rar'],
'application/x-conference' => ['nsc'],
'application/x-cpio' => ['cpio'],
'application/x-csh' => ['csh'],
@@ -1862,6 +1919,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/x-hdf' => ['hdf'],
'application/x-httpd-php' => ['php', 'php4', 'php3', 'phtml'],
'application/x-install-instructions' => ['install'],
'application/x-ipynb+json' => ['ipynb'],
'application/x-iso9660-image' => ['iso'],
'application/x-iwork-keynote-sffkey' => ['key'],
'application/x-iwork-numbers-sffnumbers' => ['numbers'],
@@ -1939,6 +1997,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/x-xliff+xml' => ['xlf'],
'application/x-xpinstall' => ['xpi'],
'application/x-xz' => ['xz'],
'application/x-zip-compressed' => ['zip'],
'application/x-zmachine' => ['z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7', 'z8'],
'application/xaml+xml' => ['xaml'],
'application/xcap-att+xml' => ['xav'],
@@ -1960,15 +2019,17 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'application/yang' => ['yang'],
'application/yin+xml' => ['yin'],
'application/zip' => ['zip'],
'application/zip+dotlottie' => ['lottie'],
'audio/3gpp' => ['3gpp'],
'audio/aac' => ['adts', 'aac'],
'audio/adpcm' => ['adp'],
'audio/amr' => ['amr'],
'audio/basic' => ['au', 'snd'],
'audio/matroska' => ['mka'],
'audio/midi' => ['mid', 'midi', 'kar', 'rmi'],
'audio/mobile-xmf' => ['mxmf'],
'audio/mp3' => ['mp3'],
'audio/mp4' => ['m4a', 'mp4a'],
'audio/mp4' => ['m4a', 'mp4a', 'm4b'],
'audio/mpeg' => ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],
'audio/ogg' => ['oga', 'ogg', 'spx', 'opus'],
'audio/s3m' => ['s3m'],
@@ -2030,11 +2091,12 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'image/heif' => ['heif'],
'image/heif-sequence' => ['heifs'],
'image/hej2k' => ['hej2'],
'image/hsj2' => ['hsj2'],
'image/ief' => ['ief'],
'image/jaii' => ['jaii'],
'image/jais' => ['jais'],
'image/jls' => ['jls'],
'image/jp2' => ['jp2', 'jpg2'],
'image/jpeg' => ['jpeg', 'jpg', 'jpe'],
'image/jpeg' => ['jpg', 'jpeg', 'jpe', 'jfif'],
'image/jph' => ['jph'],
'image/jphc' => ['jhc'],
'image/jpm' => ['jpm', 'jpgm'],
@@ -2049,6 +2111,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'image/jxss' => ['jxss'],
'image/ktx' => ['ktx'],
'image/ktx2' => ['ktx2'],
'image/pjpeg' => ['jfif'],
'image/png' => ['png'],
'image/prs.btif' => ['btif', 'btf'],
'image/prs.pti' => ['pti'],
@@ -2059,6 +2122,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'image/tiff-fx' => ['tfx'],
'image/vnd.adobe.photoshop' => ['psd'],
'image/vnd.airzip.accelerator.azv' => ['azv'],
'image/vnd.blockfact.facti' => ['facti'],
'image/vnd.dece.graphic' => ['uvi', 'uvvi', 'uvg', 'uvvg'],
'image/vnd.djvu' => ['djvu', 'djv'],
'image/vnd.dvb.subtitle' => ['sub'],
@@ -2083,6 +2147,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'image/webp' => ['webp'],
'image/wmf' => ['wmf'],
'image/x-3ds' => ['3ds'],
'image/x-adobe-dng' => ['dng'],
'image/x-cmu-raster' => ['ras'],
'image/x-cmx' => ['cmx'],
'image/x-freehand' => ['fh', 'fhc', 'fh4', 'fh5', 'fh7'],
@@ -2106,7 +2171,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'message/global-delivery-status' => ['u8dsn'],
'message/global-disposition-notification' => ['u8mdn'],
'message/global-headers' => ['u8hdr'],
'message/rfc822' => ['eml', 'mime'],
'message/rfc822' => ['eml', 'mime', 'mht', 'mhtml'],
'message/vnd.wfa.wsc' => ['wsc'],
'model/3mf' => ['3mf'],
'model/gltf+json' => ['gltf'],
@@ -2117,6 +2182,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'model/mtl' => ['mtl'],
'model/obj' => ['obj'],
'model/prc' => ['prc'],
'model/step' => ['step', 'stp', 'stpnc', 'p21', '210'],
'model/step+xml' => ['stpx'],
'model/step+zip' => ['stpz'],
'model/step-xml+zip' => ['stpxz'],
@@ -2200,6 +2266,7 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'text/x-opml' => ['opml'],
'text/x-org' => ['org'],
'text/x-pascal' => ['p', 'pas'],
'text/x-php' => ['php'],
'text/x-processing' => ['pde'],
'text/x-sass' => ['sass'],
'text/x-scss' => ['scss'],
@@ -2219,6 +2286,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'video/iso.segment' => ['m4s'],
'video/jpeg' => ['jpgv'],
'video/jpm' => ['jpm', 'jpgm'],
'video/matroska' => ['mkv'],
'video/matroska-3d' => ['mk3d'],
'video/mj2' => ['mj2', 'mjp2'],
'video/mp2t' => ['ts', 'm2t', 'm2ts', 'mts'],
'video/mp4' => ['mp4', 'mp4v', 'mpg4', 'f4v'],
@@ -2254,6 +2323,8 @@ class GeneratedExtensionToMimeTypeMap implements ExtensionToMimeTypeMap, Extensi
'video/x-smv' => ['smv'],
'x-conference/x-cooltalk' => ['ice'],
'application/x-photoshop' => ['psd'],
'application/x-indesign' => ['indd'],
'application/illustrator' => ['ai'],
'application/smil' => ['smi', 'smil'],
'application/powerpoint' => ['ppt'],
'application/vnd.ms-powerpoint.addin.macroEnabled.12' => ['ppam'],