fix!: eliminate the x- prefix in mime-types

See https://github.com/sxyazi/yazi/pull/1927
This commit is contained in:
sxyazi
2024-11-21 15:04:32 +08:00
parent 139c36e4a7
commit 776b160c3f
2 changed files with 211 additions and 212 deletions

View File

@@ -31,13 +31,13 @@ You can also customize it in your `~/.config/yazi/init.lua` with:
require("mime-ext"):setup {
-- Expand the existing filename database (lowercase), for example:
with_files = {
makefile = "text/x-makefile",
makefile = "text/makefile",
-- ...
},
-- Expand the existing extension database (lowercase), for example:
with_exts = {
mk = "text/x-makefile",
mk = "text/makefile",
-- ...
},
@@ -50,7 +50,6 @@ require("mime-ext"):setup {
## TODO
- Add more file types (PRs welcome!).
- Eliminating `x-` as part of Yazi v0.4 as it's discouraged as per [rfc6838#section-3.4](https://datatracker.ietf.org/doc/html/rfc6838#section-3.4)
- Compress mime-type tables.
## License

View File

@@ -6,78 +6,78 @@ local FILES = {
local EXTS = {
["123"] = "application/vnd.lotus-1-2-3",
["3dml"] = "text/vnd.in3d.3dml",
["3ds"] = "image/x-3ds",
["3ds"] = "image/3ds",
["3g2"] = "video/3gpp2",
["3gp"] = "video/3gpp",
["7z"] = "application/x-7z-compressed",
["7z"] = "application/7z-compressed",
["for"] = "text/fortran",
["in"] = "text/plain",
["n-gage"] = "application/vnd.nokia.n-gage.symbian.install",
["sfd-hdstx"] = "application/vnd.hydrostatix.sof-data",
aab = "application/x-authorware-bin",
aac = "audio/x-aac",
aam = "application/x-authorware-map",
aas = "application/x-authorware-seg",
abw = "application/x-abiword",
aab = "application/authorware-bin",
aac = "audio/aac",
aam = "application/authorware-map",
aas = "application/authorware-seg",
abw = "application/abiword",
ac = "application/pkix-attr-cert",
acc = "application/vnd.americandynamics.acc",
ace = "application/x-ace-compressed",
ace = "application/ace-compressed",
acu = "application/vnd.acucobol",
acutc = "application/vnd.acucorp",
adp = "audio/adpcm",
aep = "application/vnd.audiograph",
afm = "application/x-font-type1",
afm = "application/font-type1",
afp = "application/vnd.ibm.modcap",
ahead = "application/vnd.ahead.space",
ai = "application/postscript",
aif = "audio/x-aiff",
aifc = "audio/x-aiff",
aiff = "audio/x-aiff",
aif = "audio/aiff",
aifc = "audio/aiff",
aiff = "audio/aiff",
air = "application/vnd.adobe.air-application-installer-package+zip",
ait = "application/vnd.dvb.ait",
ami = "application/vnd.amiga.ami",
apk = "application/vnd.android.package-archive",
appcache = "text/cache-manifest",
application = "application/x-ms-application",
application = "application/ms-application",
apr = "application/vnd.lotus-approach",
arc = "application/x-freearc",
arc = "application/freearc",
asc = "application/pgp-signature",
asf = "video/x-ms-asf",
asf = "video/ms-asf",
asm = "text/asm",
aso = "application/vnd.accpac.simply.aso",
ass = "text/x-ass",
asx = "video/x-ms-asf",
ass = "text/ass",
asx = "video/ms-asf",
atc = "application/vnd.acucorp",
atom = "application/atom+xml",
atomcat = "application/atomcat+xml",
atomsvc = "application/atomsvc+xml",
atx = "application/vnd.antix.game-component",
au = "audio/basic",
avi = "video/x-msvideo",
avi = "video/msvideo",
avif = "image/avif",
aw = "application/applixware",
azf = "application/vnd.airzip.filesecure.azf",
azs = "application/vnd.airzip.filesecure.azs",
azw = "application/vnd.amazon.ebook",
bash = "text/shellscript",
bat = "application/x-msdownload",
bcpio = "application/x-bcpio",
bdf = "application/x-font-bdf",
bat = "application/msdownload",
bcpio = "application/bcpio",
bdf = "application/font-bdf",
bdm = "application/vnd.syncml.dm+wbxml",
bed = "application/vnd.realvnc.bed",
bh2 = "application/vnd.fujitsu.oasysprs",
bin = "application/octet-stream",
blb = "application/x-blorb",
blorb = "application/x-blorb",
blb = "application/blorb",
blorb = "application/blorb",
bmi = "application/vnd.bmi",
bmp = "image/bmp",
book = "application/vnd.framemaker",
box = "application/vnd.previewsystems.box",
boz = "application/x-bzip2",
boz = "application/bzip2",
bpk = "application/octet-stream",
btif = "image/prs.btif",
bz = "application/x-bzip",
bz2 = "application/x-bzip2",
bz = "application/bzip",
bz2 = "application/bzip2",
c = "text/c",
c11amc = "application/vnd.cluetrust.cartomobile-config",
c11amz = "application/vnd.cluetrust.cartomobile-config-pkg",
@@ -87,37 +87,37 @@ local EXTS = {
c4p = "application/vnd.clonk.c4group",
c4u = "application/vnd.clonk.c4group",
cab = "application/vnd.ms-cab-compressed",
caf = "audio/x-caf",
caf = "audio/caf",
cap = "application/vnd.tcpdump.pcap",
car = "application/vnd.curl.car",
cat = "application/vnd.ms-pki.seccat",
cb7 = "application/x-cbr",
cba = "application/x-cbr",
cbr = "application/x-cbr",
cbt = "application/x-cbr",
cbz = "application/x-cbr",
cb7 = "application/cbr",
cba = "application/cbr",
cbr = "application/cbr",
cbt = "application/cbr",
cbz = "application/cbr",
cc = "text/c",
cct = "application/x-director",
cct = "application/director",
ccxml = "application/ccxml+xml",
cdbcmsg = "application/vnd.contact.cmsg",
cdf = "application/x-netcdf",
cdf = "application/netcdf",
cdkey = "application/vnd.mediastation.cdkey",
cdmia = "application/cdmi-capability",
cdmic = "application/cdmi-container",
cdmid = "application/cdmi-domain",
cdmio = "application/cdmi-object",
cdmiq = "application/cdmi-queue",
cdx = "chemical/x-cdx",
cdx = "chemical/cdx",
cdxml = "application/vnd.chemdraw+xml",
cdy = "application/vnd.cinderella",
cer = "application/pkix-cert",
cfg = "text/plain",
cfs = "application/x-cfs-compressed",
cfs = "application/cfs-compressed",
cgm = "image/cgm",
chat = "application/x-chat",
chat = "application/chat",
chm = "application/vnd.ms-htmlhelp",
chrt = "application/vnd.kde.kchart",
cif = "chemical/x-cif",
cif = "chemical/cif",
cii = "application/vnd.anser-web-certificate-issue-initiation",
cil = "application/vnd.ms-artgalry",
cla = "application/vnd.claymore",
@@ -127,32 +127,32 @@ local EXTS = {
clkt = "application/vnd.crick.clicker.template",
clkw = "application/vnd.crick.clicker.wordbank",
clkx = "application/vnd.crick.clicker",
clp = "application/x-msclip",
clp = "application/msclip",
cmc = "application/vnd.cosmocaller",
cmdf = "chemical/x-cmdf",
cml = "chemical/x-cml",
cmdf = "chemical/cmdf",
cml = "chemical/cml",
cmp = "application/vnd.yellowriver-custom-menu",
cmx = "image/x-cmx",
cmx = "image/cmx",
cod = "application/vnd.rim.cod",
com = "application/x-msdownload",
com = "application/msdownload",
conf = "text/plain",
cpio = "application/x-cpio",
cpio = "application/cpio",
cpp = "text/c",
cpt = "application/mac-compactpro",
crd = "application/x-mscardfile",
crd = "application/mscardfile",
crl = "application/pkix-crl",
crt = "application/x-x509-ca-cert",
crt = "application/x509-ca-cert",
cryptonote = "application/vnd.rig.cryptonote",
csh = "application/x-csh",
csml = "chemical/x-csml",
csh = "application/csh",
csml = "chemical/csml",
csp = "application/vnd.commonspace",
css = "text/css",
cst = "application/x-director",
cst = "application/director",
csv = "text/csv",
cu = "application/cu-seeme",
curl = "text/vnd.curl",
cww = "application/prs.cww",
cxt = "application/x-director",
cxt = "application/director",
cxx = "text/c",
dae = "model/vnd.collada+xml",
daf = "application/vnd.mobius.daf",
@@ -160,25 +160,25 @@ local EXTS = {
dataless = "application/vnd.fdsn.seed",
davmount = "application/davmount+xml",
dbk = "application/docbook+xml",
dcr = "application/x-director",
dcr = "application/director",
dcurl = "text/vnd.curl.dcurl",
dd2 = "application/vnd.oma.dd2+xml",
ddd = "application/vnd.fujixerox.ddd",
deb = "application/x-debian-package",
deb = "application/debian-package",
def = "text/plain",
deploy = "application/octet-stream",
der = "application/x-x509-ca-cert",
der = "application/x509-ca-cert",
dfac = "application/vnd.dreamfactory",
dgc = "application/x-dgc-compressed",
dgc = "application/dgc-compressed",
dic = "text/c",
dir = "application/x-director",
dir = "application/director",
dis = "application/vnd.mobius.dis",
dist = "application/octet-stream",
distz = "application/octet-stream",
djv = "image/vnd.djvu",
djvu = "image/vnd.djvu",
dll = "application/x-msdownload",
dmg = "application/x-apple-diskimage",
dll = "application/msdownload",
dmg = "application/apple-diskimage",
dmp = "application/vnd.tcpdump.pcap",
dms = "application/octet-stream",
dna = "application/vnd.dna",
@@ -193,18 +193,18 @@ local EXTS = {
dra = "audio/vnd.dra",
dsc = "text/prs.lines.tag",
dssc = "application/dssc+der",
dtb = "application/x-dtbook+xml",
dtb = "application/dtbook+xml",
dtd = "application/xml-dtd",
dts = "audio/vnd.dts",
dtshd = "audio/vnd.dts.hd",
dump = "application/octet-stream",
dvb = "video/vnd.dvb.file",
dvi = "application/x-dvi",
dvi = "application/dvi",
dwf = "model/vnd.dwf",
dwg = "image/vnd.dwg",
dxf = "image/vnd.dxf",
dxp = "application/vnd.spotfire.dxp",
dxr = "application/x-director",
dxr = "application/director",
ebuild = "application/vnd.gentoo.ebuild",
ecelp4800 = "audio/vnd.nuera.ecelp4800",
ecelp7470 = "audio/vnd.nuera.ecelp7470",
@@ -216,10 +216,10 @@ local EXTS = {
efif = "application/vnd.picsel",
ei6 = "application/vnd.pg.osasli",
elc = "application/octet-stream",
emf = "application/x-msmetafile",
emf = "application/msmetafile",
eml = "message/rfc822",
emma = "application/emma+xml",
emz = "application/x-msmetafile",
emz = "application/msmetafile",
env = "text/plain",
eol = "audio/vnd.digital-winds",
eot = "application/vnd.ms-fontobject",
@@ -230,16 +230,16 @@ local EXTS = {
esf = "application/vnd.epson.esf",
et3 = "application/vnd.eszigno3+xml",
etx = "text/setext",
eva = "application/x-eva",
evy = "application/x-envoy",
exe = "application/x-msdownload",
eva = "application/eva",
evy = "application/envoy",
exe = "application/msdownload",
exi = "application/exi",
ext = "application/vnd.novadigm.ext",
ez = "application/andrew-inset",
ez2 = "application/vnd.ezpix-album",
ez3 = "application/vnd.ezpix-package",
f = "text/fortran",
f4v = "video/x-f4v",
f4v = "video/f4v",
f77 = "text/fortran",
f90 = "text/fortran",
fbs = "image/vnd.fastbidsheet",
@@ -248,18 +248,18 @@ local EXTS = {
fdf = "application/vnd.fdf",
fe_launch = "application/vnd.denovo.fcselayout-link",
fg5 = "application/vnd.fujitsu.oasysgp",
fgd = "application/x-director",
fh = "image/x-freehand",
fh4 = "image/x-freehand",
fh5 = "image/x-freehand",
fh7 = "image/x-freehand",
fhc = "image/x-freehand",
fig = "application/x-xfig",
fgd = "application/director",
fh = "image/freehand",
fh4 = "image/freehand",
fh5 = "image/freehand",
fh7 = "image/freehand",
fhc = "image/freehand",
fig = "application/xfig",
fish = "text/shellscript",
flac = "audio/x-flac",
fli = "video/x-fli",
flac = "audio/flac",
fli = "video/fli",
flo = "application/vnd.micrografx.flo",
flv = "video/x-flv",
flv = "video/flv",
flw = "application/vnd.kde.kivio",
flx = "text/vnd.fmi.flexstor",
fly = "text/vnd.fly",
@@ -279,9 +279,9 @@ local EXTS = {
g3 = "image/g3fax",
g3w = "application/vnd.geospace",
gac = "application/vnd.groove-account",
gam = "application/x-tads",
gam = "application/tads",
gbr = "application/rpki-ghostbusters",
gca = "application/x-gca-compressed",
gca = "application/gca-compressed",
gdl = "model/vnd.gdl",
geo = "application/vnd.dynageo",
gex = "application/vnd.geometry-explorer",
@@ -293,19 +293,19 @@ local EXTS = {
gim = "application/vnd.groove-identity-message",
gml = "application/gml+xml",
gmx = "application/vnd.gmx",
gnumeric = "application/x-gnumeric",
gnumeric = "application/gnumeric",
go = "text/go",
gph = "application/vnd.flographit",
gpx = "application/gpx+xml",
gqf = "application/vnd.grafeq",
gqs = "application/vnd.grafeq",
gram = "application/srgs",
gramps = "application/x-gramps-xml",
gramps = "application/gramps-xml",
gre = "application/vnd.geometry-explorer",
grv = "application/vnd.groove-injector",
grxml = "application/srgs+xml",
gsf = "application/x-font-ghostscript",
gtar = "application/x-gtar",
gsf = "application/font-ghostscript",
gtar = "application/gtar",
gtm = "application/vnd.groove-tool-message",
gtw = "model/vnd.gtw",
gv = "text/vnd.graphviz",
@@ -318,7 +318,7 @@ local EXTS = {
hal = "application/vnd.hal+xml",
hbci = "application/vnd.hbci",
hcl = "text/hcl",
hdf = "application/x-hdf",
hdf = "application/hdf",
hh = "text/c",
hlp = "application/winhlp",
hpgl = "application/vnd.hp-hpgl",
@@ -334,9 +334,9 @@ local EXTS = {
hvs = "application/vnd.yamaha.hv-script",
i2g = "application/vnd.intergeo",
icc = "application/vnd.iccprofile",
ice = "x-conference/x-cooltalk",
ice = "conference/cooltalk",
icm = "application/vnd.iccprofile",
ico = "image/x-icon",
ico = "image/icon",
ics = "text/calendar",
ief = "image/ief",
ifb = "text/calendar",
@@ -352,13 +352,13 @@ local EXTS = {
ini = "text/plain",
ink = "application/inkml+xml",
inkml = "application/inkml+xml",
install = "application/x-install-instructions",
install = "application/install-instructions",
iota = "application/vnd.astraea-software.iota",
ipfix = "application/ipfix",
ipk = "application/vnd.shana.informed.package",
irm = "application/vnd.ibm.rights-management",
irp = "application/vnd.irepository.package+xml",
iso = "application/x-iso9660-image",
iso = "application/iso9660-image",
itp = "application/vnd.shana.informed.formtemplate",
ivp = "application/vnd.immervision-ivp",
ivu = "application/vnd.immervision-ivu",
@@ -368,7 +368,7 @@ local EXTS = {
java = "text/java-source",
jisp = "application/vnd.jisp",
jlt = "application/vnd.hp-jlyt",
jnlp = "application/x-java-jnlp-file",
jnlp = "application/java-jnlp-file",
joda = "application/vnd.joost.joda-archive",
jpe = "image/jpeg",
jpeg = "image/jpeg",
@@ -401,16 +401,16 @@ local EXTS = {
kwd = "application/vnd.kde.kword",
kwt = "application/vnd.kde.kword",
lasxml = "application/vnd.las.las+xml",
latex = "application/x-latex",
latex = "application/latex",
lbd = "application/vnd.llamagraphics.life-balance.desktop",
lbe = "application/vnd.llamagraphics.life-balance.exchange+xml",
les = "application/vnd.hhe.lesson-player",
lha = "application/x-lzh-compressed",
lha = "application/lzh-compressed",
link66 = "application/vnd.route66.link66+xml",
list = "text/plain",
list3820 = "application/vnd.ibm.modcap",
listafp = "application/vnd.ibm.modcap",
lnk = "application/x-ms-shortcut",
lnk = "application/ms-shortcut",
log = "text/plain",
lostxml = "application/lost+xml",
lrf = "application/octet-stream",
@@ -419,9 +419,9 @@ local EXTS = {
lua = "text/lua",
lvp = "audio/vnd.lucent.voice",
lwp = "application/vnd.lotus-wordpro",
lzh = "application/x-lzh-compressed",
m13 = "application/x-msmediaview",
m14 = "application/x-msmediaview",
lzh = "application/lzh-compressed",
m13 = "application/msmediaview",
m14 = "application/msmediaview",
m1v = "video/mpeg",
m21 = "application/mp21",
m2a = "audio/mpeg",
@@ -429,11 +429,11 @@ local EXTS = {
m2ts = "video/mp2t",
m2v = "video/mpeg",
m3a = "audio/mpeg",
m3u = "audio/x-mpegurl",
m3u = "audio/mpegurl",
m3u8 = "application/vnd.apple.mpegurl",
m4a = "audio/mp4",
m4u = "video/vnd.mpegurl",
m4v = "video/x-m4v",
m4v = "video/m4v",
ma = "application/mathematica",
mads = "application/mads+xml",
mag = "application/vnd.ecowin.chart",
@@ -448,7 +448,7 @@ local EXTS = {
mcd = "application/vnd.mcd",
mcurl = "text/vnd.curl.mcurl",
md = "text/markdown",
mdb = "application/x-msaccess",
mdb = "application/msaccess",
mdi = "image/vnd.ms-modi",
me = "text/troff",
mesh = "model/mesh",
@@ -461,26 +461,26 @@ local EXTS = {
mgz = "application/vnd.proteus.magazine",
mid = "audio/midi",
midi = "audio/midi",
mie = "application/x-mie",
mie = "application/mie",
mif = "application/vnd.mif",
mime = "message/rfc822",
mj2 = "video/mj2",
mjp2 = "video/mj2",
mjs = "text/javascript",
mk3d = "video/x-matroska",
mka = "audio/x-matroska",
mks = "video/x-matroska",
mkv = "video/x-matroska",
mk3d = "video/matroska",
mka = "audio/matroska",
mks = "video/matroska",
mkv = "video/matroska",
mlp = "application/vnd.dolby.mlp",
mmd = "application/vnd.chipnuts.karaoke-mmd",
mmf = "application/vnd.smaf",
mmr = "image/vnd.fujixerox.edmics-mmr",
mng = "video/x-mng",
mny = "application/x-msmoney",
mobi = "application/x-mobipocket-ebook",
mng = "video/mng",
mny = "application/msmoney",
mobi = "application/mobipocket-ebook",
mods = "application/mods+xml",
mov = "video/quicktime",
movie = "video/x-sgi-movie",
movie = "video/sgi-movie",
mp2 = "audio/mpeg",
mp21 = "application/mp21",
mp2a = "audio/mpeg",
@@ -510,13 +510,13 @@ local EXTS = {
mseq = "application/vnd.mseq",
msf = "application/vnd.epson.msf",
msh = "model/mesh",
msi = "application/x-msdownload",
msi = "application/msdownload",
msl = "application/vnd.mobius.msl",
msty = "application/vnd.muvee.style",
mts = "video/mp2t",
mus = "application/vnd.musician",
musicxml = "application/vnd.recordare.musicxml+xml",
mvb = "application/x-msmediaview",
mvb = "application/msmediaview",
mwf = "application/vnd.mfer",
mxf = "application/mxf",
mxl = "application/vnd.recordare.musicxml",
@@ -526,8 +526,8 @@ local EXTS = {
n3 = "text/n3",
nb = "application/mathematica",
nbp = "application/vnd.wolfram.player",
nc = "application/x-netcdf",
ncx = "application/x-dtbncx+xml",
nc = "application/netcdf",
ncx = "application/dtbncx+xml",
nfo = "text/nfo",
ngdat = "application/vnd.nokia.n-gage.data",
nitf = "application/vnd.nitf",
@@ -538,15 +538,15 @@ local EXTS = {
nns = "application/vnd.noblenet-sealer",
nnw = "application/vnd.noblenet-web",
npx = "image/vnd.net-fpx",
nsc = "application/x-conference",
nsc = "application/conference",
nsf = "application/vnd.lotus-notes",
ntf = "application/vnd.nitf",
nzb = "application/x-nzb",
nzb = "application/nzb",
oa2 = "application/vnd.fujitsu.oasys2",
oa3 = "application/vnd.fujitsu.oasys3",
oas = "application/vnd.fujitsu.oasys",
obd = "application/x-msbinder",
obj = "application/x-tgif",
obd = "application/msbinder",
obj = "application/tgif",
oda = "application/oda",
odb = "application/vnd.oasis.opendocument.database",
odc = "application/vnd.oasis.opendocument.chart",
@@ -586,36 +586,36 @@ local EXTS = {
oxt = "application/vnd.openofficeorg.extension",
p = "text/pascal",
p10 = "application/pkcs10",
p12 = "application/x-pkcs12",
p7b = "application/x-pkcs7-certificates",
p12 = "application/pkcs12",
p7b = "application/pkcs7-certificates",
p7c = "application/pkcs7-mime",
p7m = "application/pkcs7-mime",
p7r = "application/x-pkcs7-certreqresp",
p7r = "application/pkcs7-certreqresp",
p7s = "application/pkcs7-signature",
p8 = "application/pkcs8",
pas = "text/pascal",
paw = "application/vnd.pawaafile",
pbd = "application/vnd.powerbuilder6",
pbm = "image/x-portable-bitmap",
pbm = "image/portable-bitmap",
pcap = "application/vnd.tcpdump.pcap",
pcf = "application/x-font-pcf",
pcf = "application/font-pcf",
pcl = "application/vnd.hp-pcl",
pclxl = "application/vnd.hp-pclxl",
pct = "image/x-pict",
pct = "image/pict",
pcurl = "application/vnd.curl.pcurl",
pcx = "image/x-pcx",
pcx = "image/pcx",
pdb = "application/vnd.palm",
pdf = "application/pdf",
pfa = "application/x-font-type1",
pfb = "application/x-font-type1",
pfm = "application/x-font-type1",
pfa = "application/font-type1",
pfb = "application/font-type1",
pfm = "application/font-type1",
pfr = "application/font-tdpfr",
pfx = "application/x-pkcs12",
pgm = "image/x-portable-graymap",
pgn = "application/x-chess-pgn",
pfx = "application/pkcs12",
pgm = "image/portable-graymap",
pgn = "application/chess-pgn",
pgp = "application/pgp-encrypted",
php = "text/php",
pic = "image/x-pict",
pic = "image/pict",
pkg = "application/octet-stream",
pki = "application/pkixcmp",
pkipath = "application/pkix-pkipath",
@@ -625,14 +625,14 @@ local EXTS = {
pls = "application/pls+xml",
pml = "application/vnd.ctc-posml",
png = "image/png",
pnm = "image/x-portable-anymap",
pnm = "image/portable-anymap",
portpkg = "application/vnd.macports.portpkg",
pot = "application/vnd.ms-powerpoint",
potm = "application/vnd.ms-powerpoint.template.macroenabled.12",
potx = "application/vnd.openxmlformats-officedocument.presentationml.template",
ppam = "application/vnd.ms-powerpoint.addin.macroenabled.12",
ppd = "application/vnd.cups-ppd",
ppm = "image/x-portable-pixmap",
ppm = "image/portable-pixmap",
pps = "application/vnd.ms-powerpoint",
ppsm = "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
ppsx = "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
@@ -640,16 +640,16 @@ local EXTS = {
pptm = "application/vnd.ms-powerpoint.presentation.macroenabled.12",
pptx = "application/vnd.openxmlformats-officedocument.presentationml.presentation",
pqa = "application/vnd.palm",
prc = "application/x-mobipocket-ebook",
prc = "application/mobipocket-ebook",
pre = "application/vnd.lotus-freelance",
prf = "application/pics-rules",
ps = "application/postscript",
psb = "application/vnd.3gpp.pic-bw-small",
psd = "image/vnd.adobe.photoshop",
psf = "application/x-font-linux-psf",
psf = "application/font-linux-psf",
pskcxml = "application/pskc+xml",
ptid = "application/vnd.pvi.ptid1",
pub = "application/x-mspublisher",
pub = "application/mspublisher",
pvb = "application/vnd.3gpp.pic-bw-var",
pwn = "application/vnd.3m.post-it-notes",
py = "text/python",
@@ -658,7 +658,7 @@ local EXTS = {
qam = "application/vnd.epson.quickanime",
qbo = "application/vnd.intu.qbo",
qfx = "application/vnd.intu.qfx",
qml = "text/x-qml",
qml = "text/qml",
qps = "application/vnd.publishare-delta-tree",
qt = "video/quicktime",
qwd = "application/vnd.quark.quarkxpress",
@@ -668,33 +668,33 @@ local EXTS = {
qxl = "application/vnd.quark.quarkxpress",
qxt = "application/vnd.quark.quarkxpress",
r = "text/r",
ra = "audio/x-pn-realaudio",
ram = "audio/x-pn-realaudio",
rar = "application/x-rar-compressed",
ras = "image/x-cmu-raster",
ra = "audio/pn-realaudio",
ram = "audio/pn-realaudio",
rar = "application/rar-compressed",
ras = "image/cmu-raster",
rb = "text/ruby",
rcprofile = "application/vnd.ipunplugged.rcprofile",
rdf = "application/rdf+xml",
rdz = "application/vnd.data-vision.rdz",
rep = "application/vnd.businessobjects",
res = "application/x-dtbresource+xml",
rgb = "image/x-rgb",
res = "application/dtbresource+xml",
rgb = "image/rgb",
rif = "application/reginfo+xml",
rip = "audio/vnd.rip",
ris = "application/x-research-info-systems",
ris = "application/research-info-systems",
rl = "application/resource-lists+xml",
rlc = "image/vnd.fujixerox.edmics-rlc",
rld = "application/resource-lists-diff+xml",
rm = "application/vnd.rn-realmedia",
rmi = "audio/midi",
rmp = "audio/x-pn-realaudio-plugin",
rmp = "audio/pn-realaudio-plugin",
rms = "application/vnd.jcp.javame.midlet-rms",
rmvb = "application/vnd.rn-realmedia-vbr",
rnc = "application/relax-ng-compact-syntax",
roa = "application/rpki-roa",
roff = "text/troff",
rp9 = "application/vnd.cloanto.rp9",
rpm = "application/x-rpm",
rpm = "application/rpm",
rpss = "application/vnd.nokia.radio-presets",
rpst = "application/vnd.nokia.radio-preset",
rq = "application/sparql-query",
@@ -708,11 +708,11 @@ local EXTS = {
saf = "application/vnd.yamaha.smaf-audio",
sbml = "application/sbml+xml",
sc = "application/vnd.ibm.secure-container",
scd = "application/x-msschedule",
scd = "application/msschedule",
scm = "application/vnd.lotus-screencam",
scq = "application/scvp-cv-request",
scs = "application/scvp-cv-response",
scss = "text/x-scss",
scss = "text/scss",
scurl = "text/vnd.curl.scurl",
sda = "application/vnd.stardivision.draw",
sdc = "application/vnd.stardivision.calc",
@@ -736,16 +736,16 @@ local EXTS = {
sgm = "text/sgml",
sgml = "text/sgml",
sh = "text/shellscript",
shar = "application/x-shar",
shar = "application/shar",
shf = "application/shf+xml",
sid = "image/x-mrsid-image",
sid = "image/mrsid-image",
sig = "application/pgp-signature",
sil = "audio/silk",
silo = "model/mesh",
sis = "application/vnd.symbian.install",
sisx = "application/vnd.symbian.install",
sit = "application/x-stuffit",
sitx = "application/x-stuffitx",
sit = "application/stuffit",
sitx = "application/stuffitx",
skd = "application/vnd.koan",
skm = "application/vnd.koan",
skp = "application/vnd.koan",
@@ -757,21 +757,21 @@ local EXTS = {
smf = "application/vnd.stardivision.math",
smi = "application/smil+xml",
smil = "application/smil+xml",
smv = "video/x-smv",
smv = "video/smv",
smzip = "application/vnd.stepmania.package",
snd = "audio/basic",
snf = "application/x-font-snf",
snf = "application/font-snf",
so = "application/octet-stream",
spc = "application/x-pkcs7-certificates",
spc = "application/pkcs7-certificates",
spf = "application/vnd.yamaha.smaf-phrase",
spl = "application/x-futuresplash",
spl = "application/futuresplash",
spot = "text/vnd.in3d.spot",
spp = "application/scvp-vp-response",
spq = "application/scvp-vp-request",
spx = "audio/ogg",
sql = "application/x-sql",
src = "application/x-wais-source",
srt = "application/x-subrip",
sql = "application/sql",
src = "application/wais-source",
srt = "application/subrip",
sru = "application/sru+xml",
srx = "application/sparql-results+xml",
ssdl = "application/ssdl+xml",
@@ -790,14 +790,14 @@ local EXTS = {
sub = "text/vnd.dvb.subtitle",
sus = "application/vnd.sus-calendar",
susp = "application/vnd.sus-calendar",
sv4cpio = "application/x-sv4cpio",
sv4crc = "application/x-sv4crc",
sv4cpio = "application/sv4cpio",
sv4crc = "application/sv4crc",
svc = "application/vnd.dvb.service",
svd = "application/vnd.svd",
svg = "image/svg+xml",
svgz = "image/svg+xml",
swa = "application/x-director",
swf = "application/x-shockwave-flash",
swa = "application/director",
swf = "application/shockwave-flash",
swi = "application/vnd.aristanetworks.swi",
sxc = "application/vnd.sun.xml.calc",
sxd = "application/vnd.sun.xml.draw",
@@ -806,37 +806,37 @@ local EXTS = {
sxm = "application/vnd.sun.xml.math",
sxw = "application/vnd.sun.xml.writer",
t = "text/troff",
t3 = "application/x-t3vm-image",
t3 = "application/t3vm-image",
taglet = "application/vnd.mynfc",
tao = "application/vnd.tao.intent-module-archive",
tar = "application/x-tar",
tar = "application/tar",
tcap = "application/vnd.3gpp2.tcap",
tcl = "application/x-tcl",
tcl = "application/tcl",
teacher = "application/vnd.smart.teacher",
tei = "application/tei+xml",
teicorpus = "application/tei+xml",
tex = "application/x-tex",
texi = "application/x-texinfo",
texinfo = "application/x-texinfo",
tex = "application/tex",
texi = "application/texinfo",
texinfo = "application/texinfo",
text = "text/plain",
tf = "text/hcl",
tfi = "application/thraud+xml",
tfm = "application/x-tex-tfm",
tfm = "application/tex-tfm",
tfrc = "text/hcl",
tfstate = "application/json",
tfvars = "text/hcl",
tga = "image/x-tga",
tga = "image/tga",
thmx = "application/vnd.ms-officetheme",
tif = "image/tiff",
tiff = "image/tiff",
tmo = "application/vnd.tmobile-livetv",
toml = "text/toml",
torrent = "application/x-bittorrent",
torrent = "application/bittorrent",
tpl = "application/vnd.groove-tool-template",
tpt = "application/vnd.trid.tpt",
tr = "text/troff",
tra = "application/vnd.trueapp",
trm = "application/x-msterminal",
trm = "application/msterminal",
ts = "text/typescript",
tsd = "application/timestamped-data",
tsv = "text/tab-separated-values",
@@ -849,18 +849,18 @@ local EXTS = {
txd = "application/vnd.genomatix.tuxedo",
txf = "application/vnd.mobius.txf",
txt = "text/plain",
u32 = "application/x-authorware-bin",
udeb = "application/x-debian-package",
u32 = "application/authorware-bin",
udeb = "application/debian-package",
ufd = "application/vnd.ufdl",
ufdl = "application/vnd.ufdl",
ulx = "application/x-glulx",
ulx = "application/glulx",
umj = "application/vnd.umajin",
unityweb = "application/vnd.unity",
uoml = "application/vnd.uoml+xml",
uri = "text/uri-list",
uris = "text/uri-list",
urls = "text/uri-list",
ustar = "application/x-ustar",
ustar = "application/ustar",
utz = "application/vnd.uiq.theme",
uu = "text/uuencode",
uva = "audio/vnd.dece.audio",
@@ -892,16 +892,16 @@ local EXTS = {
uvx = "application/vnd.dece.unspecified",
uvz = "application/vnd.dece.zip",
vcard = "text/vcard",
vcd = "application/x-cdlink",
vcd = "application/cdlink",
vcf = "text/vcard",
vcg = "application/vnd.groove-vcard",
vcs = "text/vcalendar",
vcx = "application/vnd.vcx",
vis = "application/vnd.visionary",
viv = "video/vnd.vivo",
vob = "video/x-ms-vob",
vob = "video/ms-vob",
vor = "application/vnd.stardivision.writer",
vox = "application/x-authorware-bin",
vox = "application/authorware-bin",
vrml = "model/vrml",
vsd = "application/vnd.visio",
vsf = "application/vnd.vsf",
@@ -910,11 +910,11 @@ local EXTS = {
vsw = "application/vnd.visio",
vtu = "model/vnd.vtu",
vxml = "application/voicexml+xml",
w3d = "application/x-director",
wad = "application/x-doom",
w3d = "application/director",
wad = "application/doom",
wasm = "application/wasm",
wav = "audio/x-wav",
wax = "audio/x-ms-wax",
wav = "audio/wav",
wax = "audio/ms-wax",
wbmp = "image/vnd.wap.wbmp",
wbs = "application/vnd.criticaltools.wbs+xml",
wbxml = "application/vnd.wap.wbxml",
@@ -927,30 +927,30 @@ local EXTS = {
wg = "application/vnd.pmi.widget",
wgt = "application/widget",
wks = "application/vnd.ms-works",
wm = "video/x-ms-wm",
wma = "audio/x-ms-wma",
wmd = "application/x-ms-wmd",
wmf = "application/x-msmetafile",
wm = "video/ms-wm",
wma = "audio/ms-wma",
wmd = "application/ms-wmd",
wmf = "application/msmetafile",
wml = "text/vnd.wap.wml",
wmlc = "application/vnd.wap.wmlc",
wmls = "text/vnd.wap.wmlscript",
wmlsc = "application/vnd.wap.wmlscriptc",
wmv = "video/x-ms-wmv",
wmx = "video/x-ms-wmx",
wmz = "application/x-ms-wmz",
wmv = "video/ms-wmv",
wmx = "video/ms-wmx",
wmz = "application/ms-wmz",
woff = "font/woff",
woff2 = "font/woff2",
wpd = "application/vnd.wordperfect",
wpl = "application/vnd.ms-wpl",
wps = "application/vnd.ms-works",
wqd = "application/vnd.wqd",
wri = "application/x-mswrite",
wri = "application/mswrite",
wrl = "model/vrml",
wsdl = "application/wsdl+xml",
wspolicy = "application/wspolicy+xml",
wtb = "application/vnd.webturbo",
wvx = "video/x-ms-wvx",
x32 = "application/x-authorware-bin",
wvx = "video/ms-wvx",
x32 = "application/authorware-bin",
x3d = "model/x3d+xml",
x3db = "model/x3d+binary",
x3dbz = "model/x3d+binary",
@@ -958,11 +958,11 @@ local EXTS = {
x3dvz = "model/x3d+vrml",
x3dz = "model/x3d+xml",
xaml = "application/xaml+xml",
xap = "application/x-silverlight-app",
xap = "application/silverlight-app",
xar = "application/vnd.xara",
xbap = "application/x-ms-xbap",
xbap = "application/ms-xbap",
xbd = "application/vnd.fujixerox.docuworks.binder",
xbm = "image/x-xbitmap",
xbm = "image/xbitmap",
xdf = "application/xcap-diff+xml",
xdm = "application/vnd.syncml.dm+xml",
xdp = "application/vnd.adobe.xdp+xml",
@@ -979,7 +979,7 @@ local EXTS = {
xla = "application/vnd.ms-excel",
xlam = "application/vnd.ms-excel.addin.macroenabled.12",
xlc = "application/vnd.ms-excel",
xlf = "application/x-xliff+xml",
xlf = "application/xliff+xml",
xlm = "application/vnd.ms-excel",
xls = "application/vnd.ms-excel",
xlsb = "application/vnd.ms-excel.sheet.binary.macroenabled.12",
@@ -994,9 +994,9 @@ local EXTS = {
xo = "application/vnd.olpc-sugar",
xop = "application/xop+xml",
xpak = "application/vnd.gentoo.xpak",
xpi = "application/x-xpinstall",
xpi = "application/xpinstall",
xpl = "application/xproc+xml",
xpm = "image/x-xpixmap",
xpm = "image/xpixmap",
xpr = "application/vnd.is-xpr",
xps = "application/vnd.ms-xpsdocument",
xpw = "application/vnd.intercon.formnet",
@@ -1008,21 +1008,21 @@ local EXTS = {
xul = "application/vnd.mozilla.xul+xml",
xvm = "application/xv+xml",
xvml = "application/xv+xml",
xwd = "image/x-xwindowdump",
xyz = "chemical/x-xyz",
xz = "application/x-xz",
xwd = "image/xwindowdump",
xyz = "chemical/xyz",
xz = "application/xz",
yaml = "text/yaml",
yang = "application/yang",
yin = "application/yin+xml",
yml = "text/yaml",
z1 = "application/x-zmachine",
z2 = "application/x-zmachine",
z3 = "application/x-zmachine",
z4 = "application/x-zmachine",
z5 = "application/x-zmachine",
z6 = "application/x-zmachine",
z7 = "application/x-zmachine",
z8 = "application/x-zmachine",
z1 = "application/zmachine",
z2 = "application/zmachine",
z3 = "application/zmachine",
z4 = "application/zmachine",
z5 = "application/zmachine",
z6 = "application/zmachine",
z7 = "application/zmachine",
z8 = "application/zmachine",
zaz = "application/vnd.zzazz.deck+xml",
zip = "application/zip",
zir = "application/vnd.zul",
@@ -1064,7 +1064,7 @@ function M:fetch(job)
for _, file in ipairs(job.files) do
local mime
if file.cha.len == 0 then
mime = "inode/x-empty"
mime = "inode/empty"
else
mime = merged_files[(file.url:name() or ""):lower()]
mime = mime or merged_exts[(file.url:ext() or ""):lower()]