UNPKG

@cyberblast/webserver

Version:
612 lines (609 loc) 21 kB
const types = { // credits go to https://www.ryadel.com/en/get-file-content-mime-type-from-extension-asp-net-mvc-core/ "323": "text/h323", "3g2": "video/3gpp2", "3gp": "video/3gpp", "3gp2": "video/3gpp2", "3gpp": "video/3gpp", "7z": "application/x-7z-compressed", "aa": "audio/audible", "AAC": "audio/aac", "aaf": "application/octet-stream", "aax": "audio/vnd.audible.aax", "ac3": "audio/ac3", "aca": "application/octet-stream", "accda": "application/msaccess.addin", "accdb": "application/msaccess", "accdc": "application/msaccess.cab", "accde": "application/msaccess", "accdr": "application/msaccess.runtime", "accdt": "application/msaccess", "accdw": "application/msaccess.webapplication", "accft": "application/msaccess.ftemplate", "acx": "application/internet-property-stream", "AddIn": "text/xml", "ade": "application/msaccess", "adobebridge": "application/x-bridge-url", "adp": "application/msaccess", "ADT": "audio/vnd.dlna.adts", "ADTS": "audio/aac", "afm": "application/octet-stream", "ai": "application/postscript", "aif": "audio/aiff", "aifc": "audio/aiff", "aiff": "audio/aiff", "air": "application/vnd.adobe.air-application-installer-package+zip", "amc": "application/mpeg", "anx": "application/annodex", "apk": "application/vnd.android.package-archive", "application": "application/x-ms-application", "art": "image/x-jg", "asa": "application/xml", "asax": "application/xml", "ascx": "application/xml", "asd": "application/octet-stream", "asf": "video/x-ms-asf", "ashx": "application/xml", "asi": "application/octet-stream", "asm": "text/plain", "asmx": "application/xml", "aspx": "application/xml", "asr": "video/x-ms-asf", "asx": "video/x-ms-asf", "atom": "application/atom+xml", "au": "audio/basic", "avi": "video/x-msvideo", "axa": "audio/annodex", "axs": "application/olescript", "axv": "video/annodex", "bas": "text/plain", "bcpio": "application/x-bcpio", "bin": "application/octet-stream", "bmp": "image/bmp", "c": "text/plain", "cab": "application/octet-stream", "caf": "audio/x-caf", "calx": "application/vnd.ms-office.calx", "cat": "application/vnd.ms-pki.seccat", "cc": "text/plain", "cd": "text/plain", "cdda": "audio/aiff", "cdf": "application/x-cdf", "cer": "application/x-x509-ca-cert", "cfg": "text/plain", "chm": "application/octet-stream", "class": "application/x-java-applet", "clp": "application/x-msclip", "cmd": "text/plain", "cmx": "image/x-cmx", "cnf": "text/plain", "cod": "image/cis-cod", "config": "application/xml", "contact": "text/x-ms-contact", "coverage": "application/xml", "cpio": "application/x-cpio", "cpp": "text/plain", "crd": "application/x-mscardfile", "crl": "application/pkix-crl", "crt": "application/x-x509-ca-cert", "cs": "text/plain", "csdproj": "text/plain", "csh": "application/x-csh", "csproj": "text/plain", "css": "text/css", "csv": "text/csv", "cur": "application/octet-stream", "cxx": "text/plain", "dat": "application/octet-stream", "datasource": "application/xml", "dbproj": "text/plain", "dcr": "application/x-director", "def": "text/plain", "deploy": "application/octet-stream", "der": "application/x-x509-ca-cert", "dgml": "application/xml", "dib": "image/bmp", "dif": "video/x-dv", "dir": "application/x-director", "disco": "text/xml", "divx": "video/divx", "dll": "application/x-msdownload", "dll.config": "text/xml", "dlm": "text/dlm", "doc": "application/msword", "docm": "application/vnd.ms-word.document.macroEnabled.12", "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "dot": "application/msword", "dotm": "application/vnd.ms-word.template.macroEnabled.12", "dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dsp": "application/octet-stream", "dsw": "text/plain", "dtd": "text/xml", "dtsConfig": "text/xml", "dv": "video/x-dv", "dvi": "application/x-dvi", "dwf": "drawing/x-dwf", "dwp": "application/octet-stream", "dxr": "application/x-director", "eml": "message/rfc822", "emz": "application/octet-stream", "eot": "application/vnd.ms-fontobject", "eps": "application/postscript", "etl": "application/etl", "etx": "text/x-setext", "evy": "application/envoy", "exe": "application/octet-stream", "exe.config": "text/xml", "fdf": "application/vnd.fdf", "fif": "application/fractals", "filters": "application/xml", "fla": "application/octet-stream", "flac": "audio/flac", "flr": "x-world/x-vrml", "flv": "video/x-flv", "fsscript": "application/fsharp-script", "fsx": "application/fsharp-script", "generictest": "application/xml", "gif": "image/gif", "gpx": "application/gpx+xml", "group": "text/x-ms-group", "gsm": "audio/x-gsm", "gtar": "application/x-gtar", "gz": "application/x-gzip", "h": "text/plain", "hdf": "application/x-hdf", "hdml": "text/x-hdml", "hhc": "application/x-oleobject", "hhk": "application/octet-stream", "hhp": "application/octet-stream", "hlp": "application/winhlp", "hpp": "text/plain", "hqx": "application/mac-binhex40", "hta": "application/hta", "htc": "text/x-component", "htm": "text/html", "html": "text/html", "htt": "text/webviewhtml", "hxa": "application/xml", "hxc": "application/xml", "hxd": "application/octet-stream", "hxe": "application/xml", "hxf": "application/xml", "hxh": "application/octet-stream", "hxi": "application/octet-stream", "hxk": "application/xml", "hxq": "application/octet-stream", "hxr": "application/octet-stream", "hxs": "application/octet-stream", "hxt": "text/html", "hxv": "application/xml", "hxw": "application/octet-stream", "hxx": "text/plain", "i": "text/plain", "ico": "image/x-icon", "ics": "application/octet-stream", "idl": "text/plain", "ief": "image/ief", "iii": "application/x-iphone", "inc": "text/plain", "inf": "application/octet-stream", "ini": "text/plain", "inl": "text/plain", "ins": "application/x-internet-signup", "ipa": "application/x-itunes-ipa", "ipg": "application/x-itunes-ipg", "ipproj": "text/plain", "ipsw": "application/x-itunes-ipsw", "iqy": "text/x-ms-iqy", "isp": "application/x-internet-signup", "ite": "application/x-itunes-ite", "itlp": "application/x-itunes-itlp", "itms": "application/x-itunes-itms", "itpc": "application/x-itunes-itpc", "IVF": "video/x-ivf", "jar": "application/java-archive", "java": "application/octet-stream", "jck": "application/liquidmotion", "jcz": "application/liquidmotion", "jfif": "image/pjpeg", "jnlp": "application/x-java-jnlp-file", "jpb": "application/octet-stream", "jpe": "image/jpeg", "jpeg": "image/jpeg", "jpg": "image/jpeg", "js": "application/javascript", "json": "application/json", "jsx": "text/jscript", "jsxbin": "text/plain", "latex": "application/x-latex", "library-ms": "application/windows-library+xml", "lit": "application/x-ms-reader", "loadtest": "application/xml", "lpk": "application/octet-stream", "lsf": "video/x-la-asf", "lst": "text/plain", "lsx": "video/x-la-asf", "lzh": "application/octet-stream", "m13": "application/x-msmediaview", "m14": "application/x-msmediaview", "m1v": "video/mpeg", "m2t": "video/vnd.dlna.mpeg-tts", "m2ts": "video/vnd.dlna.mpeg-tts", "m2v": "video/mpeg", "m3u": "audio/x-mpegurl", "m3u8": "audio/x-mpegurl", "m4a": "audio/m4a", "m4b": "audio/m4b", "m4p": "audio/m4p", "m4r": "audio/x-m4r", "m4v": "video/x-m4v", "mac": "image/x-macpaint", "mak": "text/plain", "man": "application/x-troff-man", "manifest": "application/x-ms-manifest", "map": "text/plain", "master": "application/xml", "mda": "application/msaccess", "mdb": "application/x-msaccess", "mde": "application/msaccess", "mdp": "application/octet-stream", "me": "application/x-troff-me", "mfp": "application/x-shockwave-flash", "mht": "message/rfc822", "mhtml": "message/rfc822", "mid": "audio/mid", "midi": "audio/mid", "mix": "application/octet-stream", "mjs": "application/javascript", "mk": "text/plain", "mmf": "application/x-smaf", "mno": "text/xml", "mny": "application/x-msmoney", "mod": "video/mpeg", "mov": "video/quicktime", "movie": "video/x-sgi-movie", "mp2": "video/mpeg", "mp2v": "video/mpeg", "mp3": "audio/mpeg", "mp4": "video/mp4", "mp4v": "video/mp4", "mpa": "video/mpeg", "mpe": "video/mpeg", "mpeg": "video/mpeg", "mpf": "application/vnd.ms-mediapackage", "mpg": "video/mpeg", "mpp": "application/vnd.ms-project", "mpv2": "video/mpeg", "mqv": "video/quicktime", "ms": "application/x-troff-ms", "msi": "application/octet-stream", "mso": "application/octet-stream", "mts": "video/vnd.dlna.mpeg-tts", "mtx": "application/xml", "mvb": "application/x-msmediaview", "mvc": "application/x-miva-compiled", "mxp": "application/x-mmxp", "nc": "application/x-netcdf", "nsc": "video/x-ms-asf", "nws": "message/rfc822", "ocx": "application/octet-stream", "oda": "application/oda", "odb": "application/vnd.oasis.opendocument.database", "odc": "application/vnd.oasis.opendocument.chart", "odf": "application/vnd.oasis.opendocument.formula", "odg": "application/vnd.oasis.opendocument.graphics", "odh": "text/plain", "odi": "application/vnd.oasis.opendocument.image", "odl": "text/plain", "odm": "application/vnd.oasis.opendocument.text-master", "odp": "application/vnd.oasis.opendocument.presentation", "ods": "application/vnd.oasis.opendocument.spreadsheet", "odt": "application/vnd.oasis.opendocument.text", "oga": "audio/ogg", "ogg": "audio/ogg", "ogv": "video/ogg", "ogx": "application/ogg", "one": "application/onenote", "onea": "application/onenote", "onepkg": "application/onenote", "onetmp": "application/onenote", "onetoc": "application/onenote", "onetoc2": "application/onenote", "opus": "audio/ogg", "orderedtest": "application/xml", "osdx": "application/opensearchdescription+xml", "otf": "application/font-sfnt", "otg": "application/vnd.oasis.opendocument.graphics-template", "oth": "application/vnd.oasis.opendocument.text-web", "otp": "application/vnd.oasis.opendocument.presentation-template", "ots": "application/vnd.oasis.opendocument.spreadsheet-template", "ott": "application/vnd.oasis.opendocument.text-template", "oxt": "application/vnd.openofficeorg.extension", "p10": "application/pkcs10", "p12": "application/x-pkcs12", "p7b": "application/x-pkcs7-certificates", "p7c": "application/pkcs7-mime", "p7m": "application/pkcs7-mime", "p7r": "application/x-pkcs7-certreqresp", "p7s": "application/pkcs7-signature", "pbm": "image/x-portable-bitmap", "pcast": "application/x-podcast", "pct": "image/pict", "pcx": "application/octet-stream", "pcz": "application/octet-stream", "pdf": "application/pdf", "pfb": "application/octet-stream", "pfm": "application/octet-stream", "pfx": "application/x-pkcs12", "pgm": "image/x-portable-graymap", "pic": "image/pict", "pict": "image/pict", "pkgdef": "text/plain", "pkgundef": "text/plain", "pko": "application/vnd.ms-pki.pko", "pls": "audio/scpls", "pma": "application/x-perfmon", "pmc": "application/x-perfmon", "pml": "application/x-perfmon", "pmr": "application/x-perfmon", "pmw": "application/x-perfmon", "png": "image/png", "pnm": "image/x-portable-anymap", "pnt": "image/x-macpaint", "pntg": "image/x-macpaint", "pnz": "image/png", "pot": "application/vnd.ms-powerpoint", "potm": "application/vnd.ms-powerpoint.template.macroEnabled.12", "potx": "application/vnd.openxmlformats-officedocument.presentationml.template", "ppa": "application/vnd.ms-powerpoint", "ppam": "application/vnd.ms-powerpoint.addin.macroEnabled.12", "ppm": "image/x-portable-pixmap", "pps": "application/vnd.ms-powerpoint", "ppsm": "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", "ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppt": "application/vnd.ms-powerpoint", "pptm": "application/vnd.ms-powerpoint.presentation.macroEnabled.12", "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "prf": "application/pics-rules", "prm": "application/octet-stream", "prx": "application/octet-stream", "ps": "application/postscript", "psc1": "application/PowerShell", "psd": "application/octet-stream", "psess": "application/xml", "psm": "application/octet-stream", "psp": "application/octet-stream", "pub": "application/x-mspublisher", "pwz": "application/vnd.ms-powerpoint", "qht": "text/x-html-insertion", "qhtm": "text/x-html-insertion", "qt": "video/quicktime", "qti": "image/x-quicktime", "qtif": "image/x-quicktime", "qtl": "application/x-quicktimeplayer", "qxd": "application/octet-stream", "ra": "audio/x-pn-realaudio", "ram": "audio/x-pn-realaudio", "rar": "application/x-rar-compressed", "ras": "image/x-cmu-raster", "rat": "application/rat-file", "rc": "text/plain", "rc2": "text/plain", "rct": "text/plain", "rdlc": "application/xml", "reg": "text/plain", "resx": "application/xml", "rf": "image/vnd.rn-realflash", "rgb": "image/x-rgb", "rgs": "text/plain", "rm": "application/vnd.rn-realmedia", "rmi": "audio/mid", "rmp": "application/vnd.rn-rn_music_package", "roff": "application/x-troff", "rpm": "audio/x-pn-realaudio-plugin", "rqy": "text/x-ms-rqy", "rtf": "application/rtf", "rtx": "text/richtext", "ruleset": "application/xml", "s": "text/plain", "safariextz": "application/x-safari-safariextz", "scd": "application/x-msschedule", "scr": "text/plain", "sct": "text/scriptlet", "sd2": "audio/x-sd2", "sdp": "application/sdp", "sea": "application/octet-stream", "searchConnector-ms": "application/windows-search-connector+xml", "setpay": "application/set-payment-initiation", "setreg": "application/set-registration-initiation", "settings": "application/xml", "sgimb": "application/x-sgimb", "sgml": "text/sgml", "sh": "application/x-sh", "shar": "application/x-shar", "shtml": "text/html", "sit": "application/x-stuffit", "sitemap": "application/xml", "skin": "application/xml", "sldm": "application/vnd.ms-powerpoint.slide.macroEnabled.12", "sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide", "slk": "application/vnd.ms-excel", "sln": "text/plain", "slupkg-ms": "application/x-ms-license", "smd": "audio/x-smd", "smi": "application/octet-stream", "smx": "audio/x-smd", "smz": "audio/x-smd", "snd": "audio/basic", "snippet": "application/xml", "snp": "application/octet-stream", "sol": "text/plain", "sor": "text/plain", "spc": "application/x-pkcs7-certificates", "spl": "application/futuresplash", "spx": "audio/ogg", "src": "application/x-wais-source", "srf": "text/plain", "SSISDeploymentManifest": "text/xml", "ssm": "application/streamingmedia", "sst": "application/vnd.ms-pki.certstore", "stl": "application/vnd.ms-pki.stl", "sv4cpio": "application/x-sv4cpio", "sv4crc": "application/x-sv4crc", "svc": "application/xml", "svg": "image/svg+xml", "swf": "application/x-shockwave-flash", "step": "application/step", "stp": "application/step", "t": "application/x-troff", "tar": "application/x-tar", "tcl": "application/x-tcl", "testrunconfig": "application/xml", "testsettings": "application/xml", "tex": "application/x-tex", "texi": "application/x-texinfo", "texinfo": "application/x-texinfo", "tgz": "application/x-compressed", "thmx": "application/vnd.ms-officetheme", "thn": "application/octet-stream", "tif": "image/tiff", "tiff": "image/tiff", "tlh": "text/plain", "tli": "text/plain", "toc": "application/octet-stream", "tr": "application/x-troff", "trm": "application/x-msterminal", "trx": "application/xml", "ts": "video/vnd.dlna.mpeg-tts", "tsv": "text/tab-separated-values", "ttf": "application/font-sfnt", "tts": "video/vnd.dlna.mpeg-tts", "txt": "text/plain", "u32": "application/octet-stream", "uls": "text/iuls", "user": "text/plain", "ustar": "application/x-ustar", "vb": "text/plain", "vbdproj": "text/plain", "vbk": "video/mpeg", "vbproj": "text/plain", "vbs": "text/vbscript", "vcf": "text/x-vcard", "vcproj": "application/xml", "vcs": "text/plain", "vcxproj": "application/xml", "vddproj": "text/plain", "vdp": "text/plain", "vdproj": "text/plain", "vdx": "application/vnd.ms-visio.viewer", "vml": "text/xml", "vscontent": "application/xml", "vsct": "text/xml", "vsd": "application/vnd.visio", "vsi": "application/ms-vsi", "vsix": "application/vsix", "vsixlangpack": "text/xml", "vsixmanifest": "text/xml", "vsmdi": "application/xml", "vspscc": "text/plain", "vss": "application/vnd.visio", "vsscc": "text/plain", "vssettings": "text/xml", "vssscc": "text/plain", "vst": "application/vnd.visio", "vstemplate": "text/xml", "vsto": "application/x-ms-vsto", "vsw": "application/vnd.visio", "vsx": "application/vnd.visio", "vtx": "application/vnd.visio", "wav": "audio/wav", "wave": "audio/wav", "wax": "audio/x-ms-wax", "wbk": "application/msword", "wbmp": "image/vnd.wap.wbmp", "wcm": "application/vnd.ms-works", "wdb": "application/vnd.ms-works", "wdp": "image/vnd.ms-photo", "webarchive": "application/x-safari-webarchive", "webm": "video/webm", "webp": "image/webp", /* https://en.wikipedia.org/wiki/WebP */ "webtest": "application/xml", "wiq": "application/xml", "wiz": "application/msword", "wks": "application/vnd.ms-works", "WLMP": "application/wlmoviemaker", "wlpginstall": "application/x-wlpg-detect", "wlpginstall3": "application/x-wlpg3-detect", "wm": "video/x-ms-wm", "wma": "audio/x-ms-wma", "wmd": "application/x-ms-wmd", "wmf": "application/x-msmetafile", "wml": "text/vnd.wap.wml", "wmlc": "application/vnd.wap.wmlc", "wmls": "text/vnd.wap.wmlscript", "wmlsc": "application/vnd.wap.wmlscriptc", "wmp": "video/x-ms-wmp", "wmv": "video/x-ms-wmv", "wmx": "video/x-ms-wmx", "wmz": "application/x-ms-wmz", "woff": "application/font-woff", "wpl": "application/vnd.ms-wpl", "wps": "application/vnd.ms-works", "wri": "application/x-mswrite", "wrl": "x-world/x-vrml", "wrz": "x-world/x-vrml", "wsc": "text/scriptlet", "wsdl": "text/xml", "wvx": "video/x-ms-wvx", "x": "application/directx", "xaf": "x-world/x-vrml", "xaml": "application/xaml+xml", "xap": "application/x-silverlight-app", "xbap": "application/x-ms-xbap", "xbm": "image/x-xbitmap", "xdr": "text/plain", "xht": "application/xhtml+xml", "xhtml": "application/xhtml+xml", "xla": "application/vnd.ms-excel", "xlam": "application/vnd.ms-excel.addin.macroEnabled.12", "xlc": "application/vnd.ms-excel", "xld": "application/vnd.ms-excel", "xlk": "application/vnd.ms-excel", "xll": "application/vnd.ms-excel", "xlm": "application/vnd.ms-excel", "xls": "application/vnd.ms-excel", "xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12", "xlsm": "application/vnd.ms-excel.sheet.macroEnabled.12", "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlt": "application/vnd.ms-excel", "xltm": "application/vnd.ms-excel.template.macroEnabled.12", "xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xlw": "application/vnd.ms-excel", "xml": "text/xml", "xmta": "application/xml", "xof": "x-world/x-vrml", "XOML": "text/plain", "xpm": "image/x-xpixmap", "xps": "application/vnd.ms-xpsdocument", "xrm-ms": "text/xml", "xsc": "application/xml", "xsd": "text/xml", "xsf": "text/xml", "xsl": "text/xml", "xslt": "text/xml", "xsn": "application/octet-stream", "xss": "application/xml", "xspf": "application/xspf+xml", "xtp": "application/octet-stream", "xwd": "image/x-xwindowdump", "z": "application/x-compress", "zip": "application/zip" } const contentTypeByExtension = function(fileName) { const end = fileName.split('.').pop(); const t = types[end]; return t === undefined ? "application/octet-stream" : t; } module.exports = { contentTypeByExtension };