diff --git a/frontend/app/view/codeedit.tsx b/frontend/app/view/codeedit.tsx index 010a195c9..fbfa478f9 100644 --- a/frontend/app/view/codeedit.tsx +++ b/frontend/app/view/codeedit.tsx @@ -57,7 +57,12 @@ function defaultEditorOptions(): MonacoTypes.editor.IEditorOptions { return opts; } -export function CodeEdit() { +interface CodeEditProps { + readonly: boolean; + text: string; +} + +export function CodeEdit({ readonly, text }: CodeEditProps) { const divRef = React.useRef(null); const monacoRef = React.useRef(null); const theme = "wave-theme-dark"; @@ -83,8 +88,8 @@ export function CodeEdit() { // TODO } - const text = "Hello, world!"; const editorOpts = defaultEditorOptions(); + editorOpts.readOnly = readonly; return (
@@ -103,10 +108,15 @@ export function CodeEdit() { ); } -export function CodeEditView() { +interface CodeEditViewProps { + readonly?: boolean; + text: string; +} + +export function CodeEditView({ readonly = false, text }: CodeEditViewProps) { return (
- +
); } diff --git a/frontend/app/view/preview.tsx b/frontend/app/view/preview.tsx index d23b07c96..360c06549 100644 --- a/frontend/app/view/preview.tsx +++ b/frontend/app/view/preview.tsx @@ -9,6 +9,7 @@ import * as util from "@/util/util"; import clsx from "clsx"; import * as jotai from "jotai"; import { CenteredDiv } from "../element/quickelems"; +import { CodeEditView } from "./codeedit"; import { DirectoryPreview } from "./directorypreview"; import "./view.less"; @@ -179,6 +180,11 @@ function PreviewView({ blockId }: { blockId: string }) {
{fileContent}
); + } else if ( + mimeType.startsWith("application") && + (mimeType.includes("json") || mimeType.includes("yaml") || mimeType.includes("toml")) + ) { + specializedView = ; } else if (mimeType === "directory") { specializedView = ; } else { diff --git a/pkg/service/fileservice/fileservice.go b/pkg/service/fileservice/fileservice.go index 9d9ae4b0c..f610a5cb1 100644 --- a/pkg/service/fileservice/fileservice.go +++ b/pkg/service/fileservice/fileservice.go @@ -34,7 +34,7 @@ type FileInfo struct { type FullFile struct { Info *FileInfo `json:"info"` - Data64 string `json:"data64,omitempty"` // base64 encoded + Data64 string `json:"data64"` // base64 encoded } func (fs *FileService) StatFile(path string) (*FileInfo, error) { diff --git a/pkg/util/utilfn/mimetypes.go b/pkg/util/utilfn/mimetypes.go new file mode 100644 index 000000000..7e3924549 --- /dev/null +++ b/pkg/util/utilfn/mimetypes.go @@ -0,0 +1,1212 @@ +// Copyright 2024, Command Line Inc. +// SPDX-License-Identifier: Apache-2.0 + +package utilfn + +var StaticMimeTypeMap = map[string]string{ + ".a2l": "application/A2L", + ".aml": "application/AML", + ".ez": "application/andrew-inset", + ".anx": "application/annodex", + ".atf": "application/ATF", + ".atfx": "application/ATFX", + ".atom": "application/atom+xml", + ".atomcat": "application/atomcat+xml", + ".atomdeleted": "application/atomdeleted+xml", + ".atomsrv": "application/atomserv+xml", + ".atomsvc": "application/atomsvc+xml", + ".dwd": "application/atsc-dwd+xml", + ".held": "application/atsc-held+xml", + ".rsat": "application/atsc-rsat+xml", + ".atxml": "application/ATXML", + ".apxml": "application/auth-policy+xml", + ".amlx": "application/automationml-amlx+zip", + ".xdd": "application/bacnet-xdd+zip", + ".lin": "application/bbolin", + ".xcs": "application/calendar+xml", + ".cbor": "application/cbor", + ".c3ex": "application/cccex", + ".ccmp": "application/ccmp+xml", + ".ccxml": "application/ccxml+xml", + ".cdfx": "application/CDFX+XML", + ".cdmia": "application/cdmi-capability", + ".cdmic": "application/cdmi-container", + ".cdmid": "application/cdmi-domain", + ".cdmio": "application/cdmi-object", + ".cdmiq": "application/cdmi-queue", + ".cea": "application/CEA", + ".cellml": "application/cellml+xml", + ".1clr": "application/clr", + ".clue": "application/clue_info+xml", + ".cmsc": "application/cms", + ".cpl": "application/cpl+xml", + ".csrattrs": "application/csrattrs", + ".cu": "application/cu-seeme", + ".cwl": "application/cwl", + ".cwl.json": "application/cwl+json", + ".mpd": "application/dash+xml", + ".mpdd": "application/dashdelta", + ".davmount": "application/davmount+xml", + ".dcd": "application/DCD", + ".dcm": "application/dicom", + ".dii": "application/DII", + ".dit": "application/DIT", + ".xmls": "application/dskpp+xml", + ".tsp": "application/dsptype", + ".dssc": "application/dssc+der", + ".xdssc": "application/dssc+xml", + ".dvc": "application/dvcs", + ".efi": "application/efi", + ".emma": "application/emma+xml", + ".emotionml": "application/emotionml+xml", + ".epub": "application/epub+zip", + ".exi": "application/exi", + ".exp": "application/express", + ".finf": "application/fastinfoset", + ".fdf": "application/fdf", + ".fdt": "application/fdt+xml", + ".pfr": "application/font-tdpfr", + ".spl": "application/futuresplash", + ".geojson": "application/geo+json", + ".gpkg": "application/geopackage+sqlite3", + ".glbin": "application/gltf-buffer", + ".gml": "application/gml+xml", + ".gz": "application/gzip", + ".hta": "application/hta", + ".stk": "application/hyperstudio", + ".ink": "application/inkml+xml", + ".ipfix": "application/ipfix", + ".its": "application/its+xml", + ".jar": "application/java-archive", + ".ser": "application/java-serialized-object", + ".class": "application/java-vm", + ".jrd": "application/jrd+json", + ".json": "application/json", + ".json-patch": "application/json-patch+json", + ".jsonld": "application/ld+json", + ".lgr": "application/lgr+xml", + ".wlnk": "application/link-format", + ".lostxml": "application/lost+xml", + ".lostsyncxml": "application/lostsync+xml", + ".lpf": "application/lpf+zip", + ".lxf": "application/LXF", + ".m3g": "application/m3g", + ".hqx": "application/mac-binhex40", + ".cpt": "application/mac-compactpro", + ".mads": "application/mads+xml", + ".webmanifest": "application/manifest+json", + ".mrc": "application/marc", + ".mrcx": "application/marcxml+xml", + ".ma": "application/mathematica", + ".mml": "application/mathml+xml", + ".mbox": "application/mbox", + ".meta4": "application/metalink4+xml", + ".mets": "application/mets+xml", + ".mf4": "application/MF4", + ".maei": "application/mmt-aei+xml", + ".musd": "application/mmt-usd+xml", + ".mods": "application/mods+xml", + ".m21": "application/mp21", + ".mdb": "application/msaccess", + ".doc": "application/msword", + ".mxf": "application/mxf", + ".nq": "application/n-quads", + ".nt": "application/n-triples", + ".orq": "application/ocsp-request", + ".ors": "application/ocsp-response", + ".bin": "application/octet-stream", + ".oda": "application/ODA", + ".odx": "application/ODX", + ".opf": "application/oebps-package+xml", + ".ogx": "application/ogg", + ".one": "application/onenote", + ".oxps": "application/oxps", + ".p21": "application/p21", + ".relo": "application/p2p-overlay+xml", + ".pdf": "application/pdf", + ".pdx": "application/PDX", + ".pem": "application/pem-certificate-chain", + ".pgp": "application/pgp-encrypted", + ".asc": "application/pgp-keys", + ".sig": "application/pgp-signature", + ".prf": "application/pics-rules", + ".p10": "application/pkcs10", + ".p12": "application/pkcs12", + ".p7m": "application/pkcs7-mime", + ".p7s": "application/pkcs7-signature", + ".p8": "application/pkcs8", + ".p8e": "application/pkcs8-encrypted", + ".ac": "application/pkix-attr-cert", + ".cer": "application/pkix-cert", + ".crl": "application/pkix-crl", + ".pkipath": "application/pkix-pkipath", + ".pki": "application/pkixcmp", + ".ps": "application/postscript", + ".provx": "application/provenance+xml", + ".cw": "application/prs.cww", + ".hpub": "application/prs.hpub+zip", + ".rnd": "application/prs.nprend", + ".rdf-crypt": "application/prs.rdf-xml-crypt", + ".xsf": "application/prs.xsf+xml", + ".pskcxml": "application/pskc+xml", + ".rdf": "application/rdf+xml", + ".rif": "application/reginfo+xml", + ".rnc": "application/relax-ng-compact-syntax", + ".rl": "application/resource-lists+xml", + ".rld": "application/resource-lists-diff+xml", + ".rfcxml": "application/rfc+xml", + ".rs": "application/rls-services+xml", + ".rapd": "application/route-apd+xml", + ".sls": "application/route-s-tsid+xml", + ".rusd": "application/route-usd+xml", + ".gbr": "application/rpki-ghostbusters", + ".mft": "application/rpki-manifest", + ".roa": "application/rpki-roa", + ".rtf": "application/rtf", + ".sarif": "application/sarif+json", + ".sarif-external-properties": "application/sarif-external-properties+json", + ".scim": "application/scim+json", + ".scq": "application/scvp-cv-request", + ".scs": "application/scvp-cv-response", + ".spq": "application/scvp-vp-request", + ".spp": "application/scvp-vp-response", + ".sdp": "application/sdp", + ".senmlc": "application/senml+cbor", + ".senml": "application/senml+json", + ".senmlx": "application/senml+xml", + ".senml-etchc": "application/senml-etch+cbor", + ".senml-etchj": "application/senml-etch+json", + ".senmle": "application/senml-exi", + ".sensmlc": "application/sensml+cbor", + ".sensml": "application/sensml+json", + ".sensmlx": "application/sensml+xml", + ".sensmle": "application/sensml-exi", + ".soc": "application/sgml-open-catalog", + ".shf": "application/shf+xml", + ".siv": "application/sieve", + ".cl": "application/simple-filter+xml", + ".smil": "application/smil+xml", + ".rq": "application/sparql-query", + ".srx": "application/sparql-results+xml", + ".spdx.json": "application/spdx+json", + ".sql": "application/sql", + ".gram": "application/srgs", + ".grxml": "application/srgs+xml", + ".sru": "application/sru+xml", + ".ssml": "application/ssml+xml", + ".stix": "application/stix+json", + ".coswid": "application/swid+cbor", + ".swidtag": "application/swid+xml", + ".tau": "application/tamp-apex-update", + ".auc": "application/tamp-apex-update-confirm", + ".tcu": "application/tamp-community-update", + ".cuc": "application/tamp-community-update-confirm", + ".ter": "application/tamp-error", + ".tsa": "application/tamp-sequence-adjust", + ".sac": "application/tamp-sequence-adjust-confirm", + ".tur": "application/tamp-update", + ".tuc": "application/tamp-update-confirm", + ".jsontd": "application/td+json", + ".tei": "application/tei+xml", + ".tfi": "application/thraud+xml", + ".tsq": "application/timestamp-query", + ".tsr": "application/timestamp-reply", + ".tsd": "application/timestamped-data", + ".tm.jsonld": "application/tm+json", + ".toml": "application/toml", + ".trig": "application/trig", + ".ttml": "application/ttml+xml", + ".gsheet": "application/urc-grpsheet+xml", + ".rsheet": "application/urc-ressheet+xml", + ".td": "application/urc-targetdesc+xml", + ".uis": "application/urc-uisocketdesc+xml", + ".1km": "application/vnd.1000minds.decision-model+xml", + ".ob": "application/vnd.1ob", + ".plb": "application/vnd.3gpp.pic-bw-large", + ".psb": "application/vnd.3gpp.pic-bw-small", + ".pvb": "application/vnd.3gpp.pic-bw-var", + ".sms": "application/vnd.3gpp2.sms", + ".tcap": "application/vnd.3gpp2.tcap", + ".imgcal": "application/vnd.3lightssoftware.imagescal", + ".pwn": "application/vnd.3M.Post-it-Notes", + ".aso": "application/vnd.accpac.simply.aso", + ".imp": "application/vnd.accpac.simply.imp", + ".acu": "application/vnd.acucobol", + ".atc": "application/vnd.acucorp", + ".swf": "application/vnd.adobe.flash.movie", + ".fcdt": "application/vnd.adobe.formscentral.fcdt", + ".fxp": "application/vnd.adobe.fxp", + ".xdp": "application/vnd.adobe.xdp+xml", + ".list3820": "application/vnd.afpc.modca", + ".ovl": "application/vnd.afpc.modca-overlay", + ".psg": "application/vnd.afpc.modca-pagesegment", + ".age": "application/vnd.age", + ".ahead": "application/vnd.ahead.space", + ".azf": "application/vnd.airzip.filesecure.azf", + ".azs": "application/vnd.airzip.filesecure.azs", + ".azw3": "application/vnd.amazon.mobi8-ebook", + ".acc": "application/vnd.americandynamics.acc", + ".ami": "application/vnd.amiga.ami", + ".ota": "application/vnd.android.ota", + ".apk": "application/vnd.android.package-archive", + ".apkg": "application/vnd.anki", + ".cii": "application/vnd.anser-web-certificate-issue-initiation", + ".fti": "application/vnd.anser-web-funds-transfer-initiation", + ".arrow": "application/vnd.apache.arrow.file", + ".arrows": "application/vnd.apache.arrow.stream", + ".apexlang": "application/vnd.apexlang", + ".dist": "application/vnd.apple.installer+xml", + ".keynote": "application/vnd.apple.keynote", + ".m3u8": "application/vnd.apple.mpegurl", + ".numbers": "application/vnd.apple.numbers", + ".pages": "application/vnd.apple.pages", + ".swi": "application/vnd.aristanetworks.swi", + ".artisan": "application/vnd.artisan+json", + ".iota": "application/vnd.astraea-software.iota", + ".aep": "application/vnd.audiograph", + ".package": "application/vnd.autopackage", + ".bmml": "application/vnd.balsamiq.bmml+xml", + ".bmpr": "application/vnd.balsamiq.bmpr", + ".ac2": "application/vnd.banana-accounting", + ".lhzd": "application/vnd.belightsoft.lhzd+zip", + ".lhzl": "application/vnd.belightsoft.lhzl+zip", + ".mpm": "application/vnd.blueice.multipass", + ".ep": "application/vnd.bluetooth.ep.oob", + ".le": "application/vnd.bluetooth.le.oob", + ".bmi": "application/vnd.bmi", + ".rep": "application/vnd.businessobjects", + ".tlclient": "application/vnd.cendio.thinlinc.clientconf", + ".cdxml": "application/vnd.chemdraw+xml", + ".pgn": "application/vnd.chess-pgn", + ".mmd": "application/vnd.chipnuts.karaoke-mmd", + ".cdy": "application/vnd.cinderella", + ".csl": "application/vnd.citationstyles.style+xml", + ".cla": "application/vnd.claymore", + ".rp9": "application/vnd.cloanto.rp9", + ".c4g": "application/vnd.clonk.c4group", + ".c11amc": "application/vnd.cluetrust.cartomobile-config", + ".c11amz": "application/vnd.cluetrust.cartomobile-config-pkg", + ".coffee": "application/vnd.coffeescript", + ".xodt": "application/vnd.collabio.xodocuments.document", + ".xott": "application/vnd.collabio.xodocuments.document-template", + ".xodp": "application/vnd.collabio.xodocuments.presentation", + ".xotp": "application/vnd.collabio.xodocuments.presentation-template", + ".xods": "application/vnd.collabio.xodocuments.spreadsheet", + ".xots": "application/vnd.collabio.xodocuments.spreadsheet-template", + ".cbz": "application/vnd.comicbook+zip", + ".cbr": "application/vnd.comicbook-rar", + ".icf": "application/vnd.commerce-battelle", + ".csp": "application/vnd.commonspace", + ".cdbcmsg": "application/vnd.contact.cmsg", + ".ign": "application/vnd.coreos.ignition+json", + ".cmc": "application/vnd.cosmocaller", + ".clkx": "application/vnd.crick.clicker", + ".clkk": "application/vnd.crick.clicker.keyboard", + ".clkp": "application/vnd.crick.clicker.palette", + ".clkt": "application/vnd.crick.clicker.template", + ".clkw": "application/vnd.crick.clicker.wordbank", + ".wbs": "application/vnd.criticaltools.wbs+xml", + ".ssvc": "application/vnd.crypto-shade-file", + ".c9r": "application/vnd.cryptomator.encrypted", + ".cryptomator": "application/vnd.cryptomator.vault", + ".pml": "application/vnd.ctc-posml", + ".ppd": "application/vnd.cups-ppd", + ".dart": "application/vnd.dart", + ".rdz": "application/vnd.data-vision.rdz", + ".dl": "application/vnd.datalog", + ".dbf": "application/vnd.dbf", + ".deb": "application/vnd.debian.binary-package", + ".uvf": "application/vnd.dece.data", + ".uvt": "application/vnd.dece.ttml+xml", + ".uvx": "application/vnd.dece.unspecified", + ".uvz": "application/vnd.dece.zip", + ".fe_launch": "application/vnd.denovo.fcselayout-link", + ".dsm": "application/vnd.desmume.movie", + ".dna": "application/vnd.dna", + ".docjson": "application/vnd.document+json", + ".scld": "application/vnd.doremir.scorecloud-binary-document", + ".dpg": "application/vnd.dpgraph", + ".dfac": "application/vnd.dreamfactory", + ".fla": "application/vnd.dtg.local.flash", + ".ait": "application/vnd.dvb.ait", + ".svc": "application/vnd.dvb.service", + ".geo": "application/vnd.dynageo", + ".dzr": "application/vnd.dzr", + ".mag": "application/vnd.ecowin.chart", + ".ELN": "application/vnd.eln+zip", + ".nml": "application/vnd.enliven", + ".esf": "application/vnd.epson.esf", + ".msf": "application/vnd.epson.msf", + ".qam": "application/vnd.epson.quickanime", + ".slt": "application/vnd.epson.salt", + ".ssf": "application/vnd.epson.ssf", + ".qcall": "application/vnd.ericsson.quickcall", + ".espass": "application/vnd.espass-espass+zip", + ".es3": "application/vnd.eszigno3+xml", + ".asice": "application/vnd.etsi.asic-e+zip", + ".asics": "application/vnd.etsi.asic-s+zip", + ".tst": "application/vnd.etsi.timestamp-token", + ".carjson": "application/vnd.eu.kasparian.car+json", + ".ecigprofile": "application/vnd.evolv.ecig.profile", + ".ecig": "application/vnd.evolv.ecig.settings", + ".ecigtheme": "application/vnd.evolv.ecig.theme", + ".mpw": "application/vnd.exstream-empower+zip", + ".pub": "application/vnd.exstream-package", + ".ez2": "application/vnd.ezpix-album", + ".ez3": "application/vnd.ezpix-package", + ".gdz": "application/vnd.familysearch.gedcom+zip", + ".dim": "application/vnd.fastcopy-disk-image", + ".msd": "application/vnd.fdsn.mseed", + ".seed": "application/vnd.fdsn.seed", + ".flb": "application/vnd.ficlab.flb+zip", + ".zfc": "application/vnd.filmit.zfc", + ".gph": "application/vnd.FloGraphIt", + ".ftc": "application/vnd.fluxtime.clip", + ".sfd": "application/vnd.font-fontforge-sfd", + ".fm": "application/vnd.framemaker", + ".fsc": "application/vnd.fsc.weblaunch", + ".oas": "application/vnd.fujitsu.oasys", + ".oa2": "application/vnd.fujitsu.oasys2", + ".oa3": "application/vnd.fujitsu.oasys3", + ".fg5": "application/vnd.fujitsu.oasysgp", + ".bh2": "application/vnd.fujitsu.oasysprs", + ".ddd": "application/vnd.fujixerox.ddd", + ".xdw": "application/vnd.fujixerox.docuworks", + ".xbd": "application/vnd.fujixerox.docuworks.binder", + ".xct": "application/vnd.fujixerox.docuworks.container", + ".fzs": "application/vnd.fuzzysheet", + ".txd": "application/vnd.genomatix.tuxedo", + ".genozip": "application/vnd.genozip", + ".grd": "application/vnd.gentics.grd+json", + ".ebuild": "application/vnd.gentoo.ebuild", + ".eclass": "application/vnd.gentoo.eclass", + ".gpkg.tar": "application/vnd.gentoo.gpkg", + ".xpak": "application/vnd.gentoo.xpak", + ".ggb": "application/vnd.geogebra.file", + ".ggs": "application/vnd.geogebra.slides", + ".ggt": "application/vnd.geogebra.tool", + ".gex": "application/vnd.geometry-explorer", + ".gxt": "application/vnd.geonext", + ".g2w": "application/vnd.geoplan", + ".g3w": "application/vnd.geospace", + ".kml": "application/vnd.google-earth.kml+xml", + ".kmz": "application/vnd.google-earth.kmz", + ".gqf": "application/vnd.grafeq", + ".gac": "application/vnd.groove-account", + ".ghf": "application/vnd.groove-help", + ".gim": "application/vnd.groove-identity-message", + ".grv": "application/vnd.groove-injector", + ".gtm": "application/vnd.groove-tool-message", + ".tpl": "application/vnd.groove-tool-template", + ".vcg": "application/vnd.groove-vcard", + ".hal": "application/vnd.hal+xml", + ".zmm": "application/vnd.HandHeld-Entertainment+xml", + ".hbci": "application/vnd.hbci", + ".hdt": "application/vnd.hdt", + ".les": "application/vnd.hhe.lesson-player", + ".hpgl": "application/vnd.hp-HPGL", + ".hpi": "application/vnd.hp-hpid", + ".hps": "application/vnd.hp-hps", + ".jlt": "application/vnd.hp-jlyt", + ".pcl": "application/vnd.hp-PCL", + ".hsl": "application/vnd.hsl", + ".sfd-hdstx": "application/vnd.hydrostatix.sof-data", + ".emm": "application/vnd.ibm.electronic-media", + ".mpy": "application/vnd.ibm.MiniPay", + ".irm": "application/vnd.ibm.rights-management", + ".sc": "application/vnd.ibm.secure-container", + ".icc": "application/vnd.iccprofile", + ".1905.1": "application/vnd.ieee.1905", + ".igl": "application/vnd.igloader", + ".imf": "application/vnd.imagemeter.folder+zip", + ".imi": "application/vnd.imagemeter.image+zip", + ".ivp": "application/vnd.immervision-ivp", + ".ivu": "application/vnd.immervision-ivu", + ".imscc": "application/vnd.ims.imsccv1p1", + ".igm": "application/vnd.insors.igm", + ".xpw": "application/vnd.intercon.formnet", + ".i2g": "application/vnd.intergeo", + ".qbo": "application/vnd.intu.qbo", + ".qfx": "application/vnd.intu.qfx", + ".ipns-record": "application/vnd.ipfs.ipns-record", + ".car": "application/vnd.ipld.car", + ".rcprofile": "application/vnd.ipunplugged.rcprofile", + ".irp": "application/vnd.irepository.package+xml", + ".xpr": "application/vnd.is-xpr", + ".fcs": "application/vnd.isac.fcs", + ".jam": "application/vnd.jam", + ".rms": "application/vnd.jcp.javame.midlet-rms", + ".jisp": "application/vnd.jisp", + ".joda": "application/vnd.joost.joda-archive", + ".ktz": "application/vnd.kahootz", + ".karbon": "application/vnd.kde.karbon", + ".chrt": "application/vnd.kde.kchart", + ".kfo": "application/vnd.kde.kformula", + ".flw": "application/vnd.kde.kivio", + ".kon": "application/vnd.kde.kontour", + ".kpr": "application/vnd.kde.kpresenter", + ".ksp": "application/vnd.kde.kspread", + ".kwd": "application/vnd.kde.kword", + ".htke": "application/vnd.kenameaapp", + ".kia": "application/vnd.kidspiration", + ".kne": "application/vnd.Kinar", + ".skp": "application/vnd.koan", + ".sse": "application/vnd.kodak-descriptor", + ".las": "application/vnd.las", + ".lasjson": "application/vnd.las.las+json", + ".lasxml": "application/vnd.las.las+xml", + ".lbd": "application/vnd.llamagraphics.life-balance.desktop", + ".lbe": "application/vnd.llamagraphics.life-balance.exchange+xml", + ".lcs": "application/vnd.logipipe.circuit+zip", + ".loom": "application/vnd.loom", + ".123": "application/vnd.lotus-1-2-3", + ".apr": "application/vnd.lotus-approach", + ".prz": "application/vnd.lotus-freelance", + ".nsf": "application/vnd.lotus-notes", + ".or3": "application/vnd.lotus-organizer", + ".scm": "application/vnd.lotus-screencam", + ".lwp": "application/vnd.lotus-wordpro", + ".portpkg": "application/vnd.macports.portpkg", + ".mvt": "application/vnd.mapbox-vector-tile", + ".mdc": "application/vnd.marlin.drm.mdcf", + ".3tz": "application/vnd.maxar.archive.3tz+zip", + ".mmdb": "application/vnd.maxmind.maxmind-db", + ".mcd": "application/vnd.mcd", + ".mdl": "application/vnd.mdl", + ".mbsdf": "application/vnd.mdl-mbsdf", + ".mc1": "application/vnd.medcalcdata", + ".cdkey": "application/vnd.mediastation.cdkey", + ".rxt": "application/vnd.medicalholodeck.recordxr", + ".mwf": "application/vnd.MFER", + ".mfm": "application/vnd.mfmp", + ".flo": "application/vnd.micrografx.flo", + ".igx": "application/vnd.micrografx.igx", + ".mif": "application/vnd.mif", + ".daf": "application/vnd.Mobius.DAF", + ".dis": "application/vnd.Mobius.DIS", + ".mbk": "application/vnd.Mobius.MBK", + ".mqy": "application/vnd.Mobius.MQY", + ".msl": "application/vnd.Mobius.MSL", + ".plc": "application/vnd.Mobius.PLC", + ".txf": "application/vnd.Mobius.TXF", + ".modl": "application/vnd.modl", + ".mpn": "application/vnd.mophun.application", + ".mpc": "application/vnd.mophun.certificate", + ".xul": "application/vnd.mozilla.xul+xml", + ".3mf": "application/vnd.ms-3mfdocument", + ".cil": "application/vnd.ms-artgalry", + ".asf": "application/vnd.ms-asf", + ".cab": "application/vnd.ms-cab-compressed", + ".xls": "application/vnd.ms-excel", + ".xlam": "application/vnd.ms-excel.addin.macroEnabled.12", + ".xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12", + ".xlsm": "application/vnd.ms-excel.sheet.macroEnabled.12", + ".xltm": "application/vnd.ms-excel.template.macroEnabled.12", + ".eot": "application/vnd.ms-fontobject", + ".chm": "application/vnd.ms-htmlhelp", + ".ims": "application/vnd.ms-ims", + ".lrm": "application/vnd.ms-lrm", + ".thmx": "application/vnd.ms-officetheme", + ".cat": "application/vnd.ms-pki.seccat", + ".ppt": "application/vnd.ms-powerpoint", + ".ppam": "application/vnd.ms-powerpoint.addin.macroEnabled.12", + ".pptm": "application/vnd.ms-powerpoint.presentation.macroEnabled.12", + ".sldm": "application/vnd.ms-powerpoint.slide.macroEnabled.12", + ".ppsm": "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", + ".potm": "application/vnd.ms-powerpoint.template.macroEnabled.12", + ".mpp": "application/vnd.ms-project", + ".tnef": "application/vnd.ms-tnef", + ".docm": "application/vnd.ms-word.document.macroEnabled.12", + ".dotm": "application/vnd.ms-word.template.macroEnabled.12", + ".wcm": "application/vnd.ms-works", + ".wpl": "application/vnd.ms-wpl", + ".xps": "application/vnd.ms-xpsdocument", + ".msa": "application/vnd.msa-disk-image", + ".mseq": "application/vnd.mseq", + ".crtr": "application/vnd.multiad.creator", + ".cif": "application/vnd.multiad.creator.cif", + ".mus": "application/vnd.musician", + ".msty": "application/vnd.muvee.style", + ".taglet": "application/vnd.mynfc", + ".nebul": "application/vnd.nebumind.line", + ".entity": "application/vnd.nervana", + ".nlu": "application/vnd.neurolanguage.nlu", + ".nimn": "application/vnd.nimn", + ".nds": "application/vnd.nintendo.nitro.rom", + ".sfc": "application/vnd.nintendo.snes.rom", + ".nitf": "application/vnd.nitf", + ".nnd": "application/vnd.noblenet-directory", + ".nns": "application/vnd.noblenet-sealer", + ".nnw": "application/vnd.noblenet-web", + ".ngdat": "application/vnd.nokia.n-gage.data", + ".rpst": "application/vnd.nokia.radio-preset", + ".rpss": "application/vnd.nokia.radio-presets", + ".edm": "application/vnd.novadigm.EDM", + ".edx": "application/vnd.novadigm.EDX", + ".ext": "application/vnd.novadigm.EXT", + ".odb": "application/vnd.oasis.opendocument.base", + ".odc": "application/vnd.oasis.opendocument.chart", + ".otc": "application/vnd.oasis.opendocument.chart-template", + ".odf": "application/vnd.oasis.opendocument.formula", + ".odg": "application/vnd.oasis.opendocument.graphics", + ".otg": "application/vnd.oasis.opendocument.graphics-template", + ".odi": "application/vnd.oasis.opendocument.image", + ".oti": "application/vnd.oasis.opendocument.image-template", + ".odp": "application/vnd.oasis.opendocument.presentation", + ".otp": "application/vnd.oasis.opendocument.presentation-template", + ".ods": "application/vnd.oasis.opendocument.spreadsheet", + ".ots": "application/vnd.oasis.opendocument.spreadsheet-template", + ".odt": "application/vnd.oasis.opendocument.text", + ".odm": "application/vnd.oasis.opendocument.text-master", + ".otm": "application/vnd.oasis.opendocument.text-master-template", + ".ott": "application/vnd.oasis.opendocument.text-template", + ".oth": "application/vnd.oasis.opendocument.text-web", + ".xo": "application/vnd.olpc-sugar", + ".dd2": "application/vnd.oma.dd2+xml", + ".tam": "application/vnd.onepager", + ".tamp": "application/vnd.onepagertamp", + ".tamx": "application/vnd.onepagertamx", + ".tat": "application/vnd.onepagertat", + ".tatp": "application/vnd.onepagertatp", + ".tatx": "application/vnd.onepagertatx", + ".obgx": "application/vnd.openblox.game+xml", + ".obg": "application/vnd.openblox.game-binary", + ".oeb": "application/vnd.openeye.oeb", + ".oxt": "application/vnd.openofficeorg.extension", + ".osm": "application/vnd.openstreetmap.data+xml", + ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ".sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide", + ".ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + ".potx": "application/vnd.openxmlformats-officedocument.presentationml.template", + ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ".xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + ".dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + ".ndc": "application/vnd.osa.netdeploy", + ".mgp": "application/vnd.osgeo.mapguide.package", + ".dp": "application/vnd.osgi.dp", + ".esa": "application/vnd.osgi.subsystem", + ".oxlicg": "application/vnd.oxli.countgraph", + ".pdb": "application/vnd.palm", + ".plp": "application/vnd.panoply", + ".dive": "application/vnd.patentdive", + ".paw": "application/vnd.pawaafile", + ".str": "application/vnd.pg.format", + ".ei6": "application/vnd.pg.osasli", + ".pil": "application/vnd.piaccess.application-licence", + ".efif": "application/vnd.picsel", + ".wg": "application/vnd.pmi.widget", + ".plf": "application/vnd.pocketlearn", + ".pbd": "application/vnd.powerbuilder6", + ".preminet": "application/vnd.preminet", + ".box": "application/vnd.previewsystems.box", + ".mgz": "application/vnd.proteus.magazine", + ".psfs": "application/vnd.psfs", + ".qps": "application/vnd.publishare-delta-tree", + ".ptid": "application/vnd.pvi.ptid1", + ".bar": "application/vnd.qualcomm.brew-app-res", + ".qxd": "application/vnd.Quark.QuarkXPress", + ".quox": "application/vnd.quobject-quoxdocument", + ".tree": "application/vnd.rainstor.data", + ".rar": "application/vnd.rar", + ".bed": "application/vnd.realvnc.bed", + ".mxl": "application/vnd.recordare.musicxml", + ".rlm": "application/vnd.resilient.logic", + ".cryptonote": "application/vnd.rig.cryptonote", + ".cod": "application/vnd.rim.cod", + ".link66": "application/vnd.route66.link66+xml", + ".st": "application/vnd.sailingtracker.track", + ".SAR": "application/vnd.sar", + ".scd": "application/vnd.scribus", + ".s3df": "application/vnd.sealed.3df", + ".scsf": "application/vnd.sealed.csf", + ".sdoc": "application/vnd.sealed.doc", + ".seml": "application/vnd.sealed.eml", + ".smht": "application/vnd.sealed.mht", + ".sppt": "application/vnd.sealed.ppt", + ".stif": "application/vnd.sealed.tiff", + ".sxls": "application/vnd.sealed.xls", + ".stml": "application/vnd.sealedmedia.softseal.html", + ".spdf": "application/vnd.sealedmedia.softseal.pdf", + ".see": "application/vnd.seemail", + ".sema": "application/vnd.sema", + ".semd": "application/vnd.semd", + ".semf": "application/vnd.semf", + ".ssv": "application/vnd.shade-save-file", + ".ifm": "application/vnd.shana.informed.formdata", + ".itp": "application/vnd.shana.informed.formtemplate", + ".iif": "application/vnd.shana.informed.interchange", + ".ipk": "application/vnd.shana.informed.package", + ".shp": "application/vnd.shp", + ".shx": "application/vnd.shx", + ".sr": "application/vnd.sigrok.session", + ".twd": "application/vnd.SimTech-MindMapper", + ".mmf": "application/vnd.smaf", + ".notebook": "application/vnd.smart.notebook", + ".teacher": "application/vnd.smart.teacher", + ".sipa": "application/vnd.smintio.portals.archive", + ".ptrom": "application/vnd.snesdev-page-table", + ".fo": "application/vnd.software602.filler.form+xml", + ".zfo": "application/vnd.software602.filler.form-xml-zip", + ".sdkm": "application/vnd.solent.sdkm+xml", + ".dxp": "application/vnd.spotfire.dxp", + ".sfs": "application/vnd.spotfire.sfs", + ".sqlite": "application/vnd.sqlite3", + ".sdc": "application/vnd.stardivision.calc", + ".sds": "application/vnd.stardivision.chart", + ".sda": "application/vnd.stardivision.draw", + ".sdd": "application/vnd.stardivision.impress", + ".smf": "application/vnd.stardivision.math", + ".sdw": "application/vnd.stardivision.writer", + ".sgl": "application/vnd.stardivision.writer-global", + ".smzip": "application/vnd.stepmania.package", + ".sm": "application/vnd.stepmania.stepchart", + ".wadl": "application/vnd.sun.wadl+xml", + ".sxc": "application/vnd.sun.xml.calc", + ".stc": "application/vnd.sun.xml.calc.template", + ".sxd": "application/vnd.sun.xml.draw", + ".std": "application/vnd.sun.xml.draw.template", + ".sxi": "application/vnd.sun.xml.impress", + ".sti": "application/vnd.sun.xml.impress.template", + ".sxm": "application/vnd.sun.xml.math", + ".sxw": "application/vnd.sun.xml.writer", + ".sxg": "application/vnd.sun.xml.writer.global", + ".stw": "application/vnd.sun.xml.writer.template", + ".sus": "application/vnd.sus-calendar", + ".ml2": "application/vnd.sybyl.mol2", + ".scl": "application/vnd.sycle+xml", + ".syft.json": "application/vnd.syft+json", + ".sis": "application/vnd.symbian.install", + ".xsm": "application/vnd.syncml+xml", + ".bdm": "application/vnd.syncml.dm+wbxml", + ".xdm": "application/vnd.syncml.dm+xml", + ".ddf": "application/vnd.syncml.dmddf+xml", + ".tao": "application/vnd.tao.intent-module-archive", + ".pcap": "application/vnd.tcpdump.pcap", + ".qvd": "application/vnd.theqvd", + ".ppttc": "application/vnd.think-cell.ppttc+json", + ".vfr": "application/vnd.tml", + ".tmo": "application/vnd.tmobile-livetv", + ".tpt": "application/vnd.trid.tpt", + ".mxs": "application/vnd.triscape.mxs", + ".tra": "application/vnd.trueapp", + ".ufdl": "application/vnd.ufdl", + ".utz": "application/vnd.uiq.theme", + ".umj": "application/vnd.umajin", + ".unityweb": "application/vnd.unity", + ".uoml": "application/vnd.uoml+xml", + ".urim": "application/vnd.uri-map", + ".vmt": "application/vnd.valve.source.material", + ".vcx": "application/vnd.vcx", + ".mxi": "application/vnd.vd-study", + ".vwx": "application/vnd.vectorworks", + ".aion": "application/vnd.veritone.aion+json", + ".istc": "application/vnd.veryant.thin", + ".VES": "application/vnd.ves.encrypted", + ".vsc": "application/vnd.vidsoft.vidconference", + ".vsd": "application/vnd.visio", + ".vis": "application/vnd.visionary", + ".vsf": "application/vnd.vsf", + ".sic": "application/vnd.wap.sic", + ".slc": "application/vnd.wap.slc", + ".wbxml": "application/vnd.wap.wbxml", + ".wmlc": "application/vnd.wap.wmlc", + ".wmlsc": "application/vnd.wap.wmlscriptc", + ".wafl": "application/vnd.wasmflow.wafl", + ".wtb": "application/vnd.webturbo", + ".p2p": "application/vnd.wfa.p2p", + ".wsc": "application/vnd.wfa.wsc", + ".wmc": "application/vnd.wmc", + ".nb": "application/vnd.wolfram.mathematica", + ".m": "application/vnd.wolfram.mathematica.package", + ".nbp": "application/vnd.wolfram.player", + ".wpd": "application/vnd.wordperfect", + ".wqd": "application/vnd.wqd", + ".stf": "application/vnd.wt.stf", + ".wv": "application/vnd.wv.csp+wbxml", + ".xar": "application/vnd.xara", + ".xfdl": "application/vnd.xfdl", + ".cpkg": "application/vnd.xmpie.cpkg", + ".dpkg": "application/vnd.xmpie.dpkg", + ".ppkg": "application/vnd.xmpie.ppkg", + ".xlim": "application/vnd.xmpie.xlim", + ".hvd": "application/vnd.yamaha.hv-dic", + ".hvs": "application/vnd.yamaha.hv-script", + ".hvp": "application/vnd.yamaha.hv-voice", + ".osf": "application/vnd.yamaha.openscoreformat", + ".saf": "application/vnd.yamaha.smaf-audio", + ".spf": "application/vnd.yamaha.smaf-phrase", + ".yme": "application/vnd.yaoweme", + ".cmp": "application/vnd.yellowriver-custom-menu", + ".zir": "application/vnd.zul", + ".zaz": "application/vnd.zzazz.deck+xml", + ".vxml": "application/voicexml+xml", + ".vcj": "application/voucher-cms+json", + ".wasm": "application/wasm", + ".wif": "application/watcherinfo+xml", + ".wgt": "application/widget", + ".wsdl": "application/wsdl+xml", + ".wspolicy": "application/wspolicy+xml", + ".wk": "application/x-123", + ".7z": "application/x-7z-compressed", + ".abw": "application/x-abiword", + ".dmg": "application/x-apple-diskimage", + ".bcpio": "application/x-bcpio", + ".torrent": "application/x-bittorrent", + ".cdf": "application/x-cdf", + ".vcd": "application/x-cdlink", + ".mph": "application/x-comsol", + ".cpio": "application/x-cpio", + ".dcr": "application/x-director", + ".wad": "application/x-doom", + ".dvi": "application/x-dvi", + ".pfa": "application/x-font", + ".pcf": "application/x-font-pcf", + ".mm": "application/x-freemind", + ".gan": "application/x-ganttproject", + ".gnumeric": "application/x-gnumeric", + ".sgf": "application/x-go-sgf", + ".gcf": "application/x-graphing-calculator", + ".gtar": "application/x-gtar", + ".tgz": "application/x-gtar-compressed", + ".hdf": "application/x-hdf", + ".hwp": "application/x-hwp", + ".ica": "application/x-ica", + ".info": "application/x-info", + ".ins": "application/x-internet-signup", + ".iii": "application/x-iphone", + ".iso": "application/x-iso9660-image", + ".jnlp": "application/x-java-jnlp-file", + ".jmz": "application/x-jmol", + ".kil": "application/x-killustrator", + ".latex": "application/x-latex", + ".lha": "application/x-lha", + ".lyx": "application/x-lyx", + ".lzh": "application/x-lzh", + ".lzx": "application/x-lzx", + ".frm": "application/x-maker", + ".wmd": "application/x-ms-wmd", + ".wmz": "application/x-ms-wmz", + ".com": "application/x-msdos-program", + ".msi": "application/x-msi", + ".nc": "application/x-netcdf", + ".pac": "application/x-ns-proxy-autoconfig", + ".nwc": "application/x-nwc", + ".o": "application/x-object", + ".oza": "application/x-oz-application", + ".p7r": "application/x-pkcs7-certreqresp", + ".pyc": "application/x-python-code", + ".qgs": "application/x-qgis", + ".qtl": "application/x-quicktimeplayer", + ".rdp": "application/x-rdp", + ".rpm": "application/x-redhat-package-manager", + ".rss": "application/x-rss+xml", + ".rb": "application/x-ruby", + ".sci": "application/x-scilab", + ".xcos": "application/x-scilab-xcos", + ".shar": "application/x-shar", + ".scr": "application/x-silverlight", + ".sit": "application/x-stuffit", + ".sv4cpio": "application/x-sv4cpio", + ".sv4crc": "application/x-sv4crc", + ".tar": "application/x-tar", + ".gf": "application/x-tex-gf", + ".pk": "application/x-tex-pk", + ".texinfo": "application/x-texinfo", + ".~": "application/x-trash", + ".man": "application/x-troff-man", + ".me": "application/x-troff-me", + ".ms": "application/x-troff-ms", + ".ustar": "application/x-ustar", + ".src": "application/x-wais-source", + ".wz": "application/x-wingz", + ".crt": "application/x-x509-ca-cert", + ".fig": "application/x-xfig", + ".xpi": "application/x-xpinstall", + ".xz": "application/x-xz", + ".xav": "application/xcap-att+xml", + ".xca": "application/xcap-caps+xml", + ".xdf": "application/xcap-diff+xml", + ".xel": "application/xcap-el+xml", + ".xer": "application/xcap-error+xml", + ".xns": "application/xcap-ns+xml", + ".xfdf": "application/xfdf", + ".xhtml": "application/xhtml+xml", + ".xlf": "application/xliff+xml", + ".xml": "application/xml", + ".dtd": "application/xml-dtd", + ".ent": "application/xml-external-parsed-entity", + ".xop": "application/xop+xml", + ".xsl": "application/xslt+xml", + ".xspf": "application/xspf+xml", + ".mxml": "application/xv+xml", + ".yaml": "application/yaml", + ".yang": "application/yang", + ".yin": "application/yin+xml", + ".zip": "application/zip", + ".zst": "application/zstd", + ".726": "audio/32kadpcm", + ".adts": "audio/aac", + ".ac3": "audio/ac3", + ".amr": "audio/AMR", + ".awb": "audio/AMR-WB", + ".axa": "audio/annodex", + ".acn": "audio/asc", + ".aal": "audio/ATRAC-ADVANCED-LOSSLESS", + ".atx": "audio/ATRAC-X", + ".at3": "audio/ATRAC3", + ".au": "audio/basic", + ".csd": "audio/csound", + ".dls": "audio/dls", + ".evc": "audio/EVRC", + ".qcp": "audio/EVRC-QCP", + ".evb": "audio/EVRCB", + ".enw": "audio/EVRCNW", + ".evw": "audio/EVRCWB", + ".flac": "audio/flac", + ".lbc": "audio/iLBC", + ".l16": "audio/L16", + ".mhas": "audio/mhas", + ".mxmf": "audio/mobile-xmf", + ".m4a": "audio/mp4", + ".mpga": "audio/mpeg", + ".m3u": "audio/mpegurl", + ".oga": "audio/ogg", + ".sid": "audio/prs.sid", + ".smv": "audio/SMV", + ".sofa": "audio/sofa", + ".mid": "audio/sp-midi", + ".loas": "audio/usac", + ".koz": "audio/vnd.audiokoz", + ".uva": "audio/vnd.dece.audio", + ".eol": "audio/vnd.digital-winds", + ".mlp": "audio/vnd.dolby.mlp", + ".dts": "audio/vnd.dts", + ".dtshd": "audio/vnd.dts.hd", + ".plj": "audio/vnd.everad.plj", + ".lvp": "audio/vnd.lucent.voice", + ".pya": "audio/vnd.ms-playready.media.pya", + ".vbk": "audio/vnd.nortel.vbk", + ".ecelp4800": "audio/vnd.nuera.ecelp4800", + ".ecelp7470": "audio/vnd.nuera.ecelp7470", + ".ecelp9600": "audio/vnd.nuera.ecelp9600", + ".multitrack": "audio/vnd.presonus.multitrack", + ".rip": "audio/vnd.rip", + ".smp3": "audio/vnd.sealedmedia.softseal.mpeg", + ".aif": "audio/x-aiff", + ".gsm": "audio/x-gsm", + ".wax": "audio/x-ms-wax", + ".wma": "audio/x-ms-wma", + ".ra": "audio/x-pn-realaudio", + ".pls": "audio/x-scpls", + ".sd2": "audio/x-sd2", + ".wav": "audio/x-wav", + ".alc": "chemical/x-alchemy", + ".cac": "chemical/x-cache", + ".csf": "chemical/x-cache-csf", + ".cbin": "chemical/x-cactvs-binary", + ".cdx": "chemical/x-cdx", + ".c3d": "chemical/x-chem3d", + ".cmdf": "chemical/x-cmdf", + ".cml": "chemical/x-cml", + ".cpa": "chemical/x-compass", + ".bsd": "chemical/x-crossfire", + ".csml": "chemical/x-csml", + ".ctx": "chemical/x-ctx", + ".cxf": "chemical/x-cxf", + ".smi": "#chemical/x-daylight-smiles", + ".emb": "chemical/x-embl-dl-nucleotide", + ".spc": "chemical/x-galactic-spc", + ".inp": "chemical/x-gamess-input", + ".fch": "chemical/x-gaussian-checkpoint", + ".cub": "chemical/x-gaussian-cube", + ".gau": "chemical/x-gaussian-input", + ".gal": "chemical/x-gaussian-log", + ".gcg": "chemical/x-gcg8-sequence", + ".gen": "chemical/x-genbank", + ".hin": "chemical/x-hin", + ".istr": "chemical/x-isostar", + ".jdx": "chemical/x-jcamp-dx", + ".kin": "chemical/x-kinemage", + ".mcm": "chemical/x-macmolecule", + ".mmod": "chemical/x-macromodel-input", + ".mol": "chemical/x-mdl-molfile", + ".rd": "chemical/x-mdl-rdfile", + ".rxn": "chemical/x-mdl-rxnfile", + ".sd": "chemical/x-mdl-sdfile", + ".tgf": "chemical/x-mdl-tgf", + ".mcif": "chemical/x-mmcif", + ".b": "chemical/x-molconn-Z", + ".gpt": "chemical/x-mopac-graph", + ".mop": "chemical/x-mopac-input", + ".moo": "chemical/x-mopac-out", + ".mvb": "chemical/x-mopac-vib", + ".asn": "chemical/x-ncbi-asn1", + ".prt": "chemical/x-ncbi-asn1-ascii", + ".val": "chemical/x-ncbi-asn1-binary", + ".ros": "chemical/x-rosdal", + ".sw": "chemical/x-swissprot", + ".vms": "chemical/x-vamas-iso14976", + ".vmd": "chemical/x-vmd", + ".xtel": "chemical/x-xtel", + ".xyz": "chemical/x-xyz", + ".ttc": "font/collection", + ".otf": "font/otf", + ".ttf": "font/ttf", + ".woff": "font/woff", + ".woff2": "font/woff2", + ".exr": "image/aces", + ".apng": "image/apng", + ".avci": "image/avci", + ".avcs": "image/avcs", + ".avif": "image/avif", + ".bmp": "image/bmp", + ".cgm": "image/cgm", + ".drle": "image/dicom-rle", + ".dpx": "image/dpx", + ".emf": "image/emf", + ".fits": "image/fits", + ".gif": "image/gif", + ".heic": "image/heic", + ".heics": "image/heic-sequence", + ".heif": "image/heif", + ".heifs": "image/heif-sequence", + ".hej2": "image/hej2k", + ".hsj2": "image/hsj2", + ".ief": "image/ief", + ".j2c": "image/j2c", + ".jls": "image/jls", + ".jp2": "image/jp2", + ".jpeg": "image/jpeg", + ".jph": "image/jph", + ".jhc": "image/jphc", + ".jpm": "image/jpm", + ".jpx": "image/jpx", + ".jxl": "image/jxl", + ".jxr": "image/jxr", + ".jxra": "image/jxrA", + ".jxrs": "image/jxrS", + ".jxs": "image/jxs", + ".jxsc": "image/jxsc", + ".jxsi": "image/jxsi", + ".jxss": "image/jxss", + ".ktx": "image/ktx", + ".ktx2": "image/ktx2", + ".png": "image/png", + ".btif": "image/prs.btif", + ".pti": "image/prs.pti", + ".svg": "image/svg+xml", + ".tiff": "image/tiff", + ".tfx": "image/tiff-fx", + ".psd": "image/vnd.adobe.photoshop", + ".azv": "image/vnd.airzip.accelerator.azv", + ".uvi": "image/vnd.dece.graphic", + ".djvu": "image/vnd.djvu", + ".dwg": "image/vnd.dwg", + ".dxf": "image/vnd.dxf", + ".fbs": "image/vnd.fastbidsheet", + ".fpx": "image/vnd.fpx", + ".fst": "image/vnd.fst", + ".mmr": "image/vnd.fujixerox.edmics-mmr", + ".rlc": "image/vnd.fujixerox.edmics-rlc", + ".PGB": "image/vnd.globalgraphics.pgb", + ".ico": "image/vnd.microsoft.icon", + ".mdi": "image/vnd.ms-modi", + ".b16": "image/vnd.pco.b16", + ".hdr": "image/vnd.radiance", + ".spng": "image/vnd.sealed.png", + ".sgif": "image/vnd.sealedmedia.softseal.gif", + ".sjpg": "image/vnd.sealedmedia.softseal.jpg", + ".tap": "image/vnd.tencent.tap", + ".vtf": "image/vnd.valve.source.texture", + ".wbmp": "image/vnd.wap.wbmp", + ".xif": "image/vnd.xiff", + ".pcx": "image/vnd.zbrush.pcx", + ".webp": "image/webp", + ".wmf": "image/wmf", + ".cr2": "image/x-canon-cr2", + ".crw": "image/x-canon-crw", + ".ras": "image/x-cmu-raster", + ".cdr": "image/x-coreldraw", + ".pat": "image/x-coreldrawpattern", + ".cdt": "image/x-coreldrawtemplate", + ".erf": "image/x-epson-erf", + ".art": "image/x-jg", + ".jng": "image/x-jng", + ".nef": "image/x-nikon-nef", + ".orf": "image/x-olympus-orf", + ".pnm": "image/x-portable-anymap", + ".pbm": "image/x-portable-bitmap", + ".pgm": "image/x-portable-graymap", + ".ppm": "image/x-portable-pixmap", + ".rgb": "image/x-rgb", + ".xbm": "image/x-xbitmap", + ".xcf": "image/x-xcf", + ".xpm": "image/x-xpixmap", + ".xwd": "image/x-xwindowdump", + ".u8msg": "message/global", + ".u8dsn": "message/global-delivery-status", + ".u8mdn": "message/global-disposition-notification", + ".u8hdr": "message/global-headers", + ".eml": "message/rfc822", + ".gltf": "model/gltf+json", + ".glb": "model/gltf-binary", + ".igs": "model/iges", + ".jt": "model/JT", + ".msh": "model/mesh", + ".mtl": "model/mtl", + ".obj": "model/obj", + ".prc": "model/prc", + ".stp": "model/step", + ".stpx": "model/step+xml", + ".stpz": "model/step+zip", + ".stpxz": "model/step-xml+zip", + ".stl": "model/stl", + ".u3d": "model/u3d", + ".bary": "model/vnd.bary", + ".cld": "model/vnd.cld", + ".dae": "model/vnd.collada+xml", + ".dwf": "model/vnd.dwf", + ".gdl": "model/vnd.gdl", + ".gtw": "model/vnd.gtw", + ".moml": "model/vnd.moml+xml", + ".mts": "model/vnd.mts", + ".ogex": "model/vnd.opengex", + ".x_b": "model/vnd.parasolid.transmit.binary", + ".x_t": "model/vnd.parasolid.transmit.text", + ".pyox": "model/vnd.pytha.pyox", + ".vds": "model/vnd.sap.vds", + ".usda": "model/vnd.usda", + ".usdz": "model/vnd.usdz+zip", + ".bsp": "model/vnd.valve.source.compiled-map", + ".vtu": "model/vnd.vtu", + ".wrl": "model/vrml", + ".x3db": "model/x3d+fastinfoset", + ".x3d": "model/x3d+xml", + ".x3dv": "model/x3d-vrml", + ".bmed": "multipart/vnd.bint.med-plus", + ".vpm": "multipart/voice-message", + ".appcache": "text/cache-manifest", + ".ics": "text/calendar", + ".CQL": "text/cql", + ".css": "text/css", + ".csv": "text/csv", + ".csvs": "text/csv-schema", + ".soa": "text/dns", + ".gff3": "text/gff3", + ".html": "text/html", + ".es": "text/javascript", + ".cnd": "text/jcr-cnd", + ".md": "text/markdown", + ".miz": "text/mizar", + ".n3": "text/n3", + ".txt": "text/plain", + ".provn": "text/provenance-notation", + ".rst": "text/prs.fallenstein.rst", + ".tag": "text/prs.lines.tag", + ".sgml": "text/SGML", + ".shaclc": "text/shaclc", + ".shex": "text/shex", + ".spdx": "text/spdx", + ".tsv": "text/tab-separated-values", + ".tm": "text/texmacs", + ".t": "text/troff", + ".ttl": "text/turtle", + ".uris": "text/uri-list", + ".vcf": "text/vcard", + ".a": "text/vnd.a", + ".abc": "text/vnd.abc", + ".ascii": "text/vnd.ascii-art", + ".curl": "text/vnd.curl", + ".copyright": "text/vnd.debian.copyright", + ".dms": "text/vnd.DMClientScript", + ".jtd": "text/vnd.esmertec.theme-descriptor", + ".VFK": "text/vnd.exchangeable", + ".ged": "text/vnd.familysearch.gedcom", + ".flt": "text/vnd.ficlab.flt", + ".fly": "text/vnd.fly", + ".flx": "text/vnd.fmi.flexstor", + ".gv": "text/vnd.graphviz", + ".hans": "text/vnd.hans", + ".hgl": "text/vnd.hgl", + ".3dml": "text/vnd.in3d.3dml", + ".spot": "text/vnd.in3d.spot", + ".mpf": "text/vnd.ms-mediapackage", + ".ccc": "text/vnd.net2phone.commcenter.command", + ".mc2": "text/vnd.senx.warpscript", + ".sos": "text/vnd.sosi", + ".jad": "text/vnd.sun.j2me.app-descriptor", + ".ts": "text/vnd.trolltech.linguist", + ".si": "text/vnd.wap.si", + ".sl": "text/vnd.wap.sl", + ".wml": "text/vnd.wap.wml", + ".wmls": "text/vnd.wap.wmlscript", + ".vtt": "text/vtt", + ".wgsl": "text/wgsl", + ".bib": "text/x-bibtex", + ".boo": "text/x-boo", + ".h++": "text/x-c++hdr", + ".c++": "text/x-c++src", + ".h": "text/x-chdr", + ".htc": "text/x-component", + ".csh": "text/x-csh", + ".c": "text/x-csrc", + ".diff": "text/x-diff", + ".d": "text/x-dsrc", + ".hs": "text/x-haskell", + ".java": "text/x-java", + ".ly": "text/x-lilypond", + ".lhs": "text/x-literate-haskell", + ".moc": "text/x-moc", + ".p": "text/x-pascal", + ".gcd": "text/x-pcs-gcd", + ".pl": "text/x-perl", + ".py": "text/x-python", + ".scala": "text/x-scala", + ".etx": "text/x-setext", + ".sfv": "text/x-sfv", + ".sh": "text/x-sh", + ".tcl": "text/x-tcl", + ".tex": "text/x-tex", + ".vcs": "text/x-vcalendar", + ".axv": "video/annodex", + ".dif": "video/dv", + ".fli": "video/fli", + ".gl": "video/gl", + ".m4s": "video/iso.segment", + ".mj2": "video/mj2", + ".mp4": "video/mp4", + ".mpeg": "video/mpeg", + ".ogv": "video/ogg", + ".qt": "video/quicktime", + ".uvh": "video/vnd.dece.hd", + ".uvm": "video/vnd.dece.mobile", + ".uvu": "video/vnd.dece.mp4", + ".uvp": "video/vnd.dece.pd", + ".uvs": "video/vnd.dece.sd", + ".uvv": "video/vnd.dece.video", + ".dvb": "video/vnd.dvb.file", + ".fvt": "video/vnd.fvt", + ".mxu": "video/vnd.mpegurl", + ".pyv": "video/vnd.ms-playready.media.pyv", + ".nim": "video/vnd.nokia.interleaved-multimedia", + ".bik": "video/vnd.radgamettools.bink", + ".smk": "video/vnd.radgamettools.smacker", + ".smpg": "video/vnd.sealed.mpeg1", + ".s14": "video/vnd.sealed.mpeg4", + ".sswf": "video/vnd.sealed.swf", + ".smov": "video/vnd.sealedmedia.softseal.mov", + ".viv": "video/vnd.vivo", + ".yt": "video/vnd.youtube.yt", + ".webm": "video/webm", + ".flv": "video/x-flv", + ".lsf": "video/x-la-asf", + ".mpv": "video/x-matroska", + ".mng": "video/x-mng", + ".wm": "video/x-ms-wm", + ".wmv": "video/x-ms-wmv", + ".wmx": "video/x-ms-wmx", + ".wvx": "video/x-ms-wvx", + ".avi": "video/x-msvideo", + ".movie": "video/x-sgi-movie", +} diff --git a/pkg/util/utilfn/utilfn.go b/pkg/util/utilfn/utilfn.go index f18b98ef0..f37ac6ad2 100644 --- a/pkg/util/utilfn/utilfn.go +++ b/pkg/util/utilfn/utilfn.go @@ -618,12 +618,6 @@ func CopyToChannel(outputCh chan<- []byte, reader io.Reader) error { } } -// TODO more -var StaticMimeTypeMap = map[string]string{ - ".md": "text/markdown", - ".json": "application/json", -} - // on error just returns "" // does not return "application/octet-stream" as this is considered a detection failure func DetectMimeType(path string) string {