abi.js
Version:
[![typescript-icon]][typescript-link] [![license-icon]][license-link] [![status-icon]][status-link] [![ci-icon]][ci-link] [![twitter-icon]][twitter-link]
2,502 lines (2,500 loc) • 297 kB
JavaScript
// src/send.ts
import { createReadStream } from "node:fs";
// src/context.ts
var Context = class {
constructor(request, logger = console) {
this.request = request;
this.logger = logger;
}
get url() {
return new URL(this.request.url);
}
get method() {
return this.request.method;
}
get pathname() {
return decodeURIComponent(this.url.pathname);
}
respond(body, headers, status, statusText) {
return new Response(body, { status, statusText, headers });
}
redirect(location, status) {
return Response.redirect(location, status);
}
json(arg1, arg2) {
if (arg1 === void 0 && arg2 === void 0) {
return this.request.json();
}
return new Response(JSON.stringify(arg1), arg2);
}
text(body, init) {
return new Response(body, init);
}
render(result) {
if (result instanceof Response) {
return result;
}
if (typeof result === "string") {
return this.text(result);
}
if (typeof result === "number") {
return this.respond(null, {}, result);
}
return this.json(result);
}
abort(code = 500, message, headers) {
const err = `Error ${code}${message ? `: ${message}` : ""}`;
this.logger.error(err);
return this.respond(err, headers, code);
}
log(...args) {
this.logger.log(...args);
}
warn(...args) {
this.logger.warn(...args);
}
error(...args) {
this.logger.error(...args);
}
};
// src/mimes.ts
var mimeInfos = {
"application/1d-interleaved-parityfec": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/3gpp-ims+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/3gpphal+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/3gpphalforms+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/a2l": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ace+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ace+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/activemessage": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/activity+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/aif+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/aif+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-cdni+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-cdnifilter+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-costmap+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-costmapfilter+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-directory+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-endpointcost+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-endpointcostparams+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-endpointprop+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-endpointpropparams+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-error+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-networkmap+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-networkmapfilter+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-propmap+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-propmapparams+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/alto-updatestreamparams+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/aml": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"],
compressible: false,
charset: ""
},
"application/appinstaller": {
source: "",
extensions: ["appinstaller"],
compressible: false,
charset: ""
},
"application/applefile": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/applixware": {
source: "apache",
extensions: ["aw"],
compressible: false,
charset: ""
},
"application/appx": {
source: "",
extensions: ["appx"],
compressible: false,
charset: ""
},
"application/appxbundle": {
source: "",
extensions: ["appxbundle"],
compressible: false,
charset: ""
},
"application/at+jwt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/atf": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/atfx": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/atom+xml": {
source: "iana",
extensions: ["atom"],
compressible: true,
charset: ""
},
"application/atomcat+xml": {
source: "iana",
extensions: ["atomcat"],
compressible: true,
charset: ""
},
"application/atomdeleted+xml": {
source: "iana",
extensions: ["atomdeleted"],
compressible: true,
charset: ""
},
"application/atomicmail": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/atomsvc+xml": {
source: "iana",
extensions: ["atomsvc"],
compressible: true,
charset: ""
},
"application/atsc-dwd+xml": {
source: "iana",
extensions: ["dwd"],
compressible: true,
charset: ""
},
"application/atsc-dynamic-event-message": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/atsc-held+xml": {
source: "iana",
extensions: ["held"],
compressible: true,
charset: ""
},
"application/atsc-rdt+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/atsc-rsat+xml": {
source: "iana",
extensions: ["rsat"],
compressible: true,
charset: ""
},
"application/atxml": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/auth-policy+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/automationml-aml+xml": {
source: "iana",
extensions: ["aml"],
compressible: true,
charset: ""
},
"application/automationml-amlx+zip": {
source: "iana",
extensions: ["amlx"],
compressible: false,
charset: ""
},
"application/bacnet-xdd+zip": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/batch-smtp": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/bdoc": {
source: "",
extensions: ["bdoc"],
compressible: false,
charset: ""
},
"application/beep+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/calendar+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/calendar+xml": {
source: "iana",
extensions: ["xcs"],
compressible: true,
charset: ""
},
"application/call-completion": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cals-1840": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/captive+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cbor-seq": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cccex": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ccmp+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/ccxml+xml": {
source: "iana",
extensions: ["ccxml"],
compressible: true,
charset: ""
},
"application/cda+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/cdfx+xml": {
source: "iana",
extensions: ["cdfx"],
compressible: true,
charset: ""
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"],
compressible: false,
charset: ""
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"],
compressible: false,
charset: ""
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"],
compressible: false,
charset: ""
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"],
compressible: false,
charset: ""
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"],
compressible: false,
charset: ""
},
"application/cdni": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cea": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cea-2018+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cellml+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cfw": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/city+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/clr": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/clue+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/clue_info+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cms": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cnrp+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/coap-group+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/coap-payload": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/commonground": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/concise-problem-details+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/conference-info+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cose": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cose-key": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cose-key-set": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cose-x509": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cpl+xml": {
source: "iana",
extensions: ["cpl"],
compressible: true,
charset: ""
},
"application/csrattrs": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/csta+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cstadata+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/csvm+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"],
compressible: false,
charset: ""
},
"application/cwl": {
source: "iana",
extensions: ["cwl"],
compressible: false,
charset: ""
},
"application/cwl+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/cwt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/cybercash": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dart": {
source: "",
extensions: [],
compressible: true,
charset: ""
},
"application/dash+xml": {
source: "iana",
extensions: ["mpd"],
compressible: true,
charset: ""
},
"application/dash-patch+xml": {
source: "iana",
extensions: ["mpp"],
compressible: true,
charset: ""
},
"application/dashdelta": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/davmount+xml": {
source: "iana",
extensions: ["davmount"],
compressible: true,
charset: ""
},
"application/dca-rft": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dcd": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dec-dx": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dialog-info+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/dicom": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dicom+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/dicom+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/dii": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dit": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dns": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dns+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/dns-message": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/docbook+xml": {
source: "apache",
extensions: ["mimeInfosk"],
compressible: true,
charset: ""
},
"application/dots+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/dskpp+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"],
compressible: false,
charset: ""
},
"application/dssc+xml": {
source: "iana",
extensions: ["xdssc"],
compressible: true,
charset: ""
},
"application/dvcs": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ecmascript": {
source: "apache",
extensions: ["ecma"],
compressible: true,
charset: ""
},
"application/edi-consent": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/edi-x12": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/edifact": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/efi": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/elm+json": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/elm+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.cap+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/emergencycalldata.comment+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.control+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.ecall.msd": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/emergencycalldata.legacyesn+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emergencycalldata.veds+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/emma+xml": {
source: "iana",
extensions: ["emma"],
compressible: true,
charset: ""
},
"application/emotionml+xml": {
source: "iana",
extensions: ["emotionml"],
compressible: true,
charset: ""
},
"application/encaprtp": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/epp+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/epub+zip": {
source: "iana",
extensions: ["epub"],
compressible: false,
charset: ""
},
"application/eshop": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/exi": {
source: "iana",
extensions: ["exi"],
compressible: false,
charset: ""
},
"application/expect-ct-report+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/express": {
source: "iana",
extensions: ["exp"],
compressible: false,
charset: ""
},
"application/fastmimeInfoset": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/fastsoap": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/fdf": {
source: "iana",
extensions: ["fdf"],
compressible: false,
charset: ""
},
"application/fdt+xml": {
source: "iana",
extensions: ["fdt"],
compressible: true,
charset: ""
},
"application/fhir+json": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/fhir+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/fido.trusted-apps+json": {
source: "",
extensions: [],
compressible: true,
charset: ""
},
"application/fits": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/flexfec": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/font-sfnt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"],
compressible: false,
charset: ""
},
"application/font-woff": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/framework-attributes+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/geo+json": {
source: "iana",
extensions: ["geojson"],
compressible: true,
charset: ""
},
"application/geo+json-seq": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/geopackage+sqlite3": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/geoxacml+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/gltf-buffer": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/gml+xml": {
source: "iana",
extensions: ["gml"],
compressible: true,
charset: ""
},
"application/gpx+xml": {
source: "apache",
extensions: ["gpx"],
compressible: true,
charset: ""
},
"application/gxf": {
source: "apache",
extensions: ["gxf"],
compressible: false,
charset: ""
},
"application/gzip": {
source: "iana",
extensions: ["gz"],
compressible: false,
charset: ""
},
"application/h224": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/held+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/hjson": {
source: "",
extensions: ["hjson"],
compressible: false,
charset: ""
},
"application/hl7v2+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/http": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"],
compressible: false,
charset: ""
},
"application/ibe-key-request+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/ibe-pkg-reply+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/ibe-pp-data": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/iges": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/im-iscomposing+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/index": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/index.cmd": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/index.obj": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/index.response": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/index.vnd": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/inkml+xml": {
source: "iana",
extensions: ["ink", "inkml"],
compressible: true,
charset: ""
},
"application/iotp": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"],
compressible: false,
charset: ""
},
"application/ipp": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/isup": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/its+xml": {
source: "iana",
extensions: ["its"],
compressible: true,
charset: ""
},
"application/java-archive": {
source: "apache",
extensions: ["jar", "war", "ear"],
compressible: false,
charset: ""
},
"application/java-serialized-object": {
source: "apache",
extensions: ["ser"],
compressible: false,
charset: ""
},
"application/java-vm": {
source: "apache",
extensions: ["class"],
compressible: false,
charset: ""
},
"application/javascript": {
source: "apache",
extensions: ["js"],
compressible: true,
charset: "UTF-8"
},
"application/jf2feed+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/jose": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/jose+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/jrd+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/jscalendar+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/json": {
source: "iana",
extensions: ["json", "map"],
compressible: true,
charset: "UTF-8"
},
"application/json-patch+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/json-seq": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/json5": {
source: "",
extensions: ["json5"],
compressible: false,
charset: ""
},
"application/jsonml+json": {
source: "apache",
extensions: ["jsonml"],
compressible: true,
charset: ""
},
"application/jwk+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/jwk-set+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/jwt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/kpml-request+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/kpml-response+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/ld+json": {
source: "iana",
extensions: ["jsonld"],
compressible: true,
charset: ""
},
"application/lgr+xml": {
source: "iana",
extensions: ["lgr"],
compressible: true,
charset: ""
},
"application/link-format": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/linkset": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/linkset+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/load-control+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/logout+jwt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/lost+xml": {
source: "iana",
extensions: ["lostxml"],
compressible: true,
charset: ""
},
"application/lostsync+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/lpf+zip": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/lxf": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"],
compressible: false,
charset: ""
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"],
compressible: false,
charset: ""
},
"application/macwriteii": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mads+xml": {
source: "iana",
extensions: ["mads"],
compressible: true,
charset: ""
},
"application/manifest+json": {
source: "iana",
extensions: ["webmanifest"],
compressible: true,
charset: "UTF-8"
},
"application/marc": {
source: "iana",
extensions: ["mrc"],
compressible: false,
charset: ""
},
"application/marcxml+xml": {
source: "iana",
extensions: ["mrcx"],
compressible: true,
charset: ""
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"],
compressible: false,
charset: ""
},
"application/mathml+xml": {
source: "iana",
extensions: ["mathml"],
compressible: true,
charset: ""
},
"application/mathml-content+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mathml-presentation+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-deregister+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-envelope+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-msk+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-msk-response+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-protection-description+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-reception-report+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-register+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-register-response+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-schedule+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbms-user-service-description+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mbox": {
source: "iana",
extensions: ["mbox"],
compressible: false,
charset: ""
},
"application/media-policy-dataset+xml": {
source: "iana",
extensions: ["mpf"],
compressible: true,
charset: ""
},
"application/mediaControl+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mediaservercontrol+xml": {
source: "iana",
extensions: ["mscml"],
compressible: true,
charset: ""
},
"application/merge-patch+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/metalink+xml": {
source: "apache",
extensions: ["metalink"],
compressible: true,
charset: ""
},
"application/metalink4+xml": {
source: "iana",
extensions: ["meta4"],
compressible: true,
charset: ""
},
"application/mets+xml": {
source: "iana",
extensions: ["mets"],
compressible: true,
charset: ""
},
"application/mf4": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mikey": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mipc": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/missing-blocks+cbor-seq": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mmt-aei+xml": {
source: "iana",
extensions: ["maei"],
compressible: true,
charset: ""
},
"application/mmt-usd+xml": {
source: "iana",
extensions: ["musd"],
compressible: true,
charset: ""
},
"application/mods+xml": {
source: "iana",
extensions: ["mods"],
compressible: true,
charset: ""
},
"application/moss-keys": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/moss-signature": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mosskey-data": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mosskey-request": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"],
compressible: false,
charset: ""
},
"application/mp4": {
source: "iana",
extensions: ["mp4", "mpg4", "mp4s", "m4p"],
compressible: false,
charset: ""
},
"application/mpeg4-generic": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mpeg4-iod": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mpeg4-iod-xmt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mrb-consumer+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/mrb-publish+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/msc-ivr+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/msc-mixer+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/msix": {
source: "",
extensions: ["msix"],
compressible: false,
charset: ""
},
"application/msixbundle": {
source: "",
extensions: ["msixbundle"],
compressible: false,
charset: ""
},
"application/msword": {
source: "iana",
extensions: ["doc", "dot"],
compressible: false,
charset: ""
},
"application/mud+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/multipart-core": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/mxf": {
source: "iana",
extensions: ["mxf"],
compressible: false,
charset: ""
},
"application/n-quads": {
source: "iana",
extensions: ["nq"],
compressible: false,
charset: ""
},
"application/n-triples": {
source: "iana",
extensions: ["nt"],
compressible: false,
charset: ""
},
"application/nasdata": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/news-checkgroups": {
source: "iana",
extensions: [],
compressible: false,
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
extensions: [],
compressible: false,
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/nlsml+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/node": {
source: "iana",
extensions: ["cjs"],
compressible: false,
charset: ""
},
"application/nss": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/oauth-authz-req+jwt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/oblivious-dns-message": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ocsp-request": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/ocsp-response": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/octet-stream": {
source: "iana",
extensions: [
"bin",
"dms",
"lrf",
"mar",
"so",
"dist",
"distz",
"pkg",
"bpk",
"dump",
"elc",
"deploy",
"exe",
"dll",
"deb",
"dmg",
"iso",
"img",
"msi",
"msp",
"msm",
"buffer"
],
compressible: false,
charset: ""
},
"application/oda": {
source: "iana",
extensions: ["oda"],
compressible: false,
charset: ""
},
"application/odm+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/odx": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/oebps-package+xml": {
source: "iana",
extensions: ["opf"],
compressible: true,
charset: ""
},
"application/ogg": {
source: "iana",
extensions: ["ogx"],
compressible: false,
charset: ""
},
"application/omdoc+xml": {
source: "apache",
extensions: ["omdoc"],
compressible: true,
charset: ""
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"],
compressible: false,
charset: ""
},
"application/opc-nodeset+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/oscore": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/oxps": {
source: "iana",
extensions: ["oxps"],
compressible: false,
charset: ""
},
"application/p21": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/p21+zip": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/p2p-overlay+xml": {
source: "iana",
extensions: ["relo"],
compressible: true,
charset: ""
},
"application/parityfec": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/passport": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/patch-ops-error+xml": {
source: "iana",
extensions: ["xer"],
compressible: true,
charset: ""
},
"application/pdf": {
source: "iana",
extensions: ["pdf"],
compressible: false,
charset: ""
},
"application/pdx": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/pem-certificate-chain": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/pgp-encrypted": {
source: "iana",
extensions: ["pgp"],
compressible: false,
charset: ""
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"],
compressible: false,
charset: ""
},
"application/pgp-signature": {
source: "iana",
extensions: ["sig", "asc"],
compressible: false,
charset: ""
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"],
compressible: false,
charset: ""
},
"application/pidf+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/pidf-diff+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"],
compressible: false,
charset: ""
},
"application/pkcs12": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"],
compressible: false,
charset: ""
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"],
compressible: false,
charset: ""
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"],
compressible: false,
charset: ""
},
"application/pkcs8-encrypted": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"],
compressible: false,
charset: ""
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"],
compressible: false,
charset: ""
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"],
compressible: false,
charset: ""
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"],
compressible: false,
charset: ""
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"],
compressible: false,
charset: ""
},
"application/pls+xml": {
source: "iana",
extensions: ["pls"],
compressible: true,
charset: ""
},
"application/poc-settings+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: "UTF-8"
},
"application/postscript": {
source: "iana",
extensions: ["ai", "eps", "ps"],
compressible: true,
charset: ""
},
"application/ppsp-tracker+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/problem+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/problem+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/provenance+xml": {
source: "iana",
extensions: ["provx"],
compressible: true,
charset: ""
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"],
compressible: false,
charset: ""
},
"application/prs.cyn": {
source: "iana",
extensions: [],
compressible: false,
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/prs.nprend": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/prs.plucker": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/prs.rdf-xml-crypt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/prs.xsf+xml": {
source: "iana",
extensions: ["xsf"],
compressible: true,
charset: ""
},
"application/pskc+xml": {
source: "iana",
extensions: ["pskcxml"],
compressible: true,
charset: ""
},
"application/pvd+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/qsig": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/raml+yaml": {
source: "",
extensions: ["raml"],
compressible: true,
charset: ""
},
"application/raptorfec": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/rdap+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/rdf+xml": {
source: "iana",
extensions: ["rdf", "owl"],
compressible: true,
charset: ""
},
"application/reginfo+xml": {
source: "iana",
extensions: ["rif"],
compressible: true,
charset: ""
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"],
compressible: false,
charset: ""
},
"application/remote-printing": {
source: "apache",
extensions: [],
compressible: false,
charset: ""
},
"application/reputon+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/resource-lists+xml": {
source: "iana",
extensions: ["rl"],
compressible: true,
charset: ""
},
"application/resource-lists-diff+xml": {
source: "iana",
extensions: ["rld"],
compressible: true,
charset: ""
},
"application/rfc+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/riscos": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/rlmi+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/rls-services+xml": {
source: "iana",
extensions: ["rs"],
compressible: true,
charset: ""
},
"application/route-apd+xml": {
source: "iana",
extensions: ["rapd"],
compressible: true,
charset: ""
},
"application/route-s-tsid+xml": {
source: "iana",
extensions: ["sls"],
compressible: true,
charset: ""
},
"application/route-usd+xml": {
source: "iana",
extensions: ["rusd"],
compressible: true,
charset: ""
},
"application/rpki-checklist": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"],
compressible: false,
charset: ""
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"],
compressible: false,
charset: ""
},
"application/rpki-publication": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"],
compressible: false,
charset: ""
},
"application/rpki-updown": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/rsd+xml": {
source: "apache",
extensions: ["rsd"],
compressible: true,
charset: ""
},
"application/rss+xml": {
source: "apache",
extensions: ["rss"],
compressible: true,
charset: ""
},
"application/rtf": {
source: "iana",
extensions: ["rtf"],
compressible: true,
charset: ""
},
"application/rtploopback": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/rtx": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/samlassertion+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/samlmetadata+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/sarif+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/sarif-external-properties+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/sbe": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/sbml+xml": {
source: "iana",
extensions: ["sbml"],
compressible: true,
charset: ""
},
"application/scaip+xml": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/scim+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"],
compressible: false,
charset: ""
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"],
compressible: false,
charset: ""
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"],
compressible: false,
charset: ""
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"],
compressible: false,
charset: ""
},
"application/sdp": {
source: "iana",
extensions: ["sdp"],
compressible: false,
charset: ""
},
"application/secevent+jwt": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/senml+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/senml+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/senml+xml": {
source: "iana",
extensions: ["senmlx"],
compressible: true,
charset: ""
},
"application/senml-etch+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/senml-etch+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/senml-exi": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/sensml+cbor": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/sensml+json": {
source: "iana",
extensions: [],
compressible: true,
charset: ""
},
"application/sensml+xml": {
source: "iana",
extensions: ["sensmlx"],
compressible: true,
charset: ""
},
"application/sensml-exi": {
source: "iana",
extensions: [],
compressible: false,
charset: ""
},
"application/sep+xml": {
source: "iana",
extensions: [],
compressib