elysia-remix
Version:
Use React Router v7 or Remix with Elysia with HMR support!
18,240 lines • 338 kB
JavaScript
import { g as getDefaultExportFromCjs } from './index-DOjPtrHA.js';
import require$$0$2 from 'tty';
import require$$1 from 'util';
import require$$3 from 'fs';
import require$$4 from 'net';
import require$$1$1 from 'events';
import require$$0$3 from 'url';
import require$$3$1 from 'http';
import { Elysia } from 'elysia';
import require$$1$2 from 'path';
import require$$5 from 'querystring';
import require$$0$4 from 'buffer';
import require$$1$3 from 'stream';
import 'fs/promises';
var src = {exports: {}};
var browser = {exports: {}};
var debug = {exports: {}};
var ms;
var hasRequiredMs;
function requireMs () {
if (hasRequiredMs) return ms;
hasRequiredMs = 1;
var s = 1e3;
var m = s * 60;
var h = m * 60;
var d = h * 24;
var y = d * 365.25;
ms = function(val, options) {
options = options || {};
var type = typeof val;
if (type === "string" && val.length > 0) {
return parse(val);
} else if (type === "number" && isNaN(val) === false) {
return options.long ? fmtLong(val) : fmtShort(val);
}
throw new Error(
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
);
};
function parse(str) {
str = String(str);
if (str.length > 100) {
return;
}
var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
str
);
if (!match) {
return;
}
var n = parseFloat(match[1]);
var type = (match[2] || "ms").toLowerCase();
switch (type) {
case "years":
case "year":
case "yrs":
case "yr":
case "y":
return n * y;
case "days":
case "day":
case "d":
return n * d;
case "hours":
case "hour":
case "hrs":
case "hr":
case "h":
return n * h;
case "minutes":
case "minute":
case "mins":
case "min":
case "m":
return n * m;
case "seconds":
case "second":
case "secs":
case "sec":
case "s":
return n * s;
case "milliseconds":
case "millisecond":
case "msecs":
case "msec":
case "ms":
return n;
default:
return void 0;
}
}
function fmtShort(ms) {
if (ms >= d) {
return Math.round(ms / d) + "d";
}
if (ms >= h) {
return Math.round(ms / h) + "h";
}
if (ms >= m) {
return Math.round(ms / m) + "m";
}
if (ms >= s) {
return Math.round(ms / s) + "s";
}
return ms + "ms";
}
function fmtLong(ms) {
return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
}
function plural(ms, n, name) {
if (ms < n) {
return;
}
if (ms < n * 1.5) {
return Math.floor(ms / n) + " " + name;
}
return Math.ceil(ms / n) + " " + name + "s";
}
return ms;
}
var hasRequiredDebug;
function requireDebug () {
if (hasRequiredDebug) return debug.exports;
hasRequiredDebug = 1;
(function (module, exports) {
exports = module.exports = createDebug.debug = createDebug["default"] = createDebug;
exports.coerce = coerce;
exports.disable = disable;
exports.enable = enable;
exports.enabled = enabled;
exports.humanize = requireMs();
exports.names = [];
exports.skips = [];
exports.formatters = {};
var prevTime;
function selectColor(namespace) {
var hash = 0, i;
for (i in namespace) {
hash = (hash << 5) - hash + namespace.charCodeAt(i);
hash |= 0;
}
return exports.colors[Math.abs(hash) % exports.colors.length];
}
function createDebug(namespace) {
function debug() {
if (!debug.enabled) return;
var self = debug;
var curr = +/* @__PURE__ */ new Date();
var ms = curr - (prevTime || curr);
self.diff = ms;
self.prev = prevTime;
self.curr = curr;
prevTime = curr;
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
args[0] = exports.coerce(args[0]);
if ("string" !== typeof args[0]) {
args.unshift("%O");
}
var index = 0;
args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
if (match === "%%") return match;
index++;
var formatter = exports.formatters[format];
if ("function" === typeof formatter) {
var val = args[index];
match = formatter.call(self, val);
args.splice(index, 1);
index--;
}
return match;
});
exports.formatArgs.call(self, args);
var logFn = debug.log || exports.log || console.log.bind(console);
logFn.apply(self, args);
}
debug.namespace = namespace;
debug.enabled = exports.enabled(namespace);
debug.useColors = exports.useColors();
debug.color = selectColor(namespace);
if ("function" === typeof exports.init) {
exports.init(debug);
}
return debug;
}
function enable(namespaces) {
exports.save(namespaces);
exports.names = [];
exports.skips = [];
var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
var len = split.length;
for (var i = 0; i < len; i++) {
if (!split[i]) continue;
namespaces = split[i].replace(/\*/g, ".*?");
if (namespaces[0] === "-") {
exports.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
} else {
exports.names.push(new RegExp("^" + namespaces + "$"));
}
}
}
function disable() {
exports.enable("");
}
function enabled(name) {
var i, len;
for (i = 0, len = exports.skips.length; i < len; i++) {
if (exports.skips[i].test(name)) {
return false;
}
}
for (i = 0, len = exports.names.length; i < len; i++) {
if (exports.names[i].test(name)) {
return true;
}
}
return false;
}
function coerce(val) {
if (val instanceof Error) return val.stack || val.message;
return val;
}
} (debug, debug.exports));
return debug.exports;
}
var hasRequiredBrowser;
function requireBrowser () {
if (hasRequiredBrowser) return browser.exports;
hasRequiredBrowser = 1;
(function (module, exports) {
exports = module.exports = requireDebug();
exports.log = log;
exports.formatArgs = formatArgs;
exports.save = save;
exports.load = load;
exports.useColors = useColors;
exports.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
exports.colors = [
"lightseagreen",
"forestgreen",
"goldenrod",
"dodgerblue",
"darkorchid",
"crimson"
];
function useColors() {
if (typeof window !== "undefined" && window.process && window.process.type === "renderer") {
return true;
}
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773
typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
}
exports.formatters.j = function(v) {
try {
return JSON.stringify(v);
} catch (err) {
return "[UnexpectedJSONParseError]: " + err.message;
}
};
function formatArgs(args) {
var useColors2 = this.useColors;
args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports.humanize(this.diff);
if (!useColors2) return;
var c = "color: " + this.color;
args.splice(1, 0, c, "color: inherit");
var index = 0;
var lastC = 0;
args[0].replace(/%[a-zA-Z%]/g, function(match) {
if ("%%" === match) return;
index++;
if ("%c" === match) {
lastC = index;
}
});
args.splice(lastC, 0, c);
}
function log() {
return "object" === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);
}
function save(namespaces) {
try {
if (null == namespaces) {
exports.storage.removeItem("debug");
} else {
exports.storage.debug = namespaces;
}
} catch (e) {
}
}
function load() {
var r;
try {
r = exports.storage.debug;
} catch (e) {
}
if (!r && typeof process !== "undefined" && "env" in process) {
r = process.env.DEBUG;
}
return r;
}
exports.enable(load());
function localstorage() {
try {
return window.localStorage;
} catch (e) {
}
}
} (browser, browser.exports));
return browser.exports;
}
var node = {exports: {}};
var hasRequiredNode;
function requireNode () {
if (hasRequiredNode) return node.exports;
hasRequiredNode = 1;
(function (module, exports) {
var tty = require$$0$2;
var util = require$$1;
exports = module.exports = requireDebug();
exports.init = init;
exports.log = log;
exports.formatArgs = formatArgs;
exports.save = save;
exports.load = load;
exports.useColors = useColors;
exports.colors = [6, 2, 3, 4, 5, 1];
exports.inspectOpts = Object.keys(process.env).filter(function(key) {
return /^debug_/i.test(key);
}).reduce(function(obj, key) {
var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) {
return k.toUpperCase();
});
var val = process.env[key];
if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
else if (val === "null") val = null;
else val = Number(val);
obj[prop] = val;
return obj;
}, {});
var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
if (1 !== fd && 2 !== fd) {
util.deprecate(function() {
}, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();
}
var stream = 1 === fd ? process.stdout : 2 === fd ? process.stderr : createWritableStdioStream(fd);
function useColors() {
return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(fd);
}
exports.formatters.o = function(v) {
this.inspectOpts.colors = this.useColors;
return util.inspect(v, this.inspectOpts).split("\n").map(function(str) {
return str.trim();
}).join(" ");
};
exports.formatters.O = function(v) {
this.inspectOpts.colors = this.useColors;
return util.inspect(v, this.inspectOpts);
};
function formatArgs(args) {
var name = this.namespace;
var useColors2 = this.useColors;
if (useColors2) {
var c = this.color;
var prefix = " \x1B[3" + c + ";1m" + name + " \x1B[0m";
args[0] = prefix + args[0].split("\n").join("\n" + prefix);
args.push("\x1B[3" + c + "m+" + exports.humanize(this.diff) + "\x1B[0m");
} else {
args[0] = (/* @__PURE__ */ new Date()).toUTCString() + " " + name + " " + args[0];
}
}
function log() {
return stream.write(util.format.apply(util, arguments) + "\n");
}
function save(namespaces) {
if (null == namespaces) {
delete process.env.DEBUG;
} else {
process.env.DEBUG = namespaces;
}
}
function load() {
return process.env.DEBUG;
}
function createWritableStdioStream(fd2) {
var stream2;
var tty_wrap = process.binding("tty_wrap");
switch (tty_wrap.guessHandleType(fd2)) {
case "TTY":
stream2 = new tty.WriteStream(fd2);
stream2._type = "tty";
if (stream2._handle && stream2._handle.unref) {
stream2._handle.unref();
}
break;
case "FILE":
var fs = require$$3;
stream2 = new fs.SyncWriteStream(fd2, { autoClose: false });
stream2._type = "fs";
break;
case "PIPE":
case "TCP":
var net = require$$4;
stream2 = new net.Socket({
fd: fd2,
readable: false,
writable: true
});
stream2.readable = false;
stream2.read = null;
stream2._type = "pipe";
if (stream2._handle && stream2._handle.unref) {
stream2._handle.unref();
}
break;
default:
throw new Error("Implement me. Unknown stream file type!");
}
stream2.fd = fd2;
stream2._isStdio = true;
return stream2;
}
function init(debug) {
debug.inspectOpts = {};
var keys = Object.keys(exports.inspectOpts);
for (var i = 0; i < keys.length; i++) {
debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
}
}
exports.enable(load());
} (node, node.exports));
return node.exports;
}
var hasRequiredSrc;
function requireSrc () {
if (hasRequiredSrc) return src.exports;
hasRequiredSrc = 1;
if (typeof process !== "undefined" && process.type === "renderer") {
src.exports = requireBrowser();
} else {
src.exports = requireNode();
}
return src.exports;
}
var encodeurl;
var hasRequiredEncodeurl;
function requireEncodeurl () {
if (hasRequiredEncodeurl) return encodeurl;
hasRequiredEncodeurl = 1;
/*!
* encodeurl
* Copyright(c) 2016 Douglas Christopher Wilson
* MIT Licensed
*/
encodeurl = encodeUrl;
var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2";
function encodeUrl(url) {
return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
}
return encodeurl;
}
var escapeHtml_1;
var hasRequiredEscapeHtml;
function requireEscapeHtml () {
if (hasRequiredEscapeHtml) return escapeHtml_1;
hasRequiredEscapeHtml = 1;
/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*/
var matchHtmlRegExp = /["'&<>]/;
escapeHtml_1 = escapeHtml;
function escapeHtml(string) {
var str = "" + string;
var match = matchHtmlRegExp.exec(str);
if (!match) {
return str;
}
var escape;
var html = "";
var index = 0;
var lastIndex = 0;
for (index = match.index; index < str.length; index++) {
switch (str.charCodeAt(index)) {
case 34:
escape = """;
break;
case 38:
escape = "&";
break;
case 39:
escape = "'";
break;
case 60:
escape = "<";
break;
case 62:
escape = ">";
break;
default:
continue;
}
if (lastIndex !== index) {
html += str.substring(lastIndex, index);
}
lastIndex = index + 1;
html += escape;
}
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
}
return escapeHtml_1;
}
var onFinished = {exports: {}};
var eeFirst;
var hasRequiredEeFirst;
function requireEeFirst () {
if (hasRequiredEeFirst) return eeFirst;
hasRequiredEeFirst = 1;
/*!
* ee-first
* Copyright(c) 2014 Jonathan Ong
* MIT Licensed
*/
eeFirst = first;
function first(stuff, done) {
if (!Array.isArray(stuff))
throw new TypeError("arg must be an array of [ee, events...] arrays");
var cleanups = [];
for (var i = 0; i < stuff.length; i++) {
var arr = stuff[i];
if (!Array.isArray(arr) || arr.length < 2)
throw new TypeError("each array member must be [ee, events...]");
var ee = arr[0];
for (var j = 1; j < arr.length; j++) {
var event = arr[j];
var fn = listener(event, callback);
ee.on(event, fn);
cleanups.push({
ee,
event,
fn
});
}
}
function callback() {
cleanup();
done.apply(null, arguments);
}
function cleanup() {
var x;
for (var i2 = 0; i2 < cleanups.length; i2++) {
x = cleanups[i2];
x.ee.removeListener(x.event, x.fn);
}
}
function thunk(fn2) {
done = fn2;
}
thunk.cancel = cleanup;
return thunk;
}
function listener(event, done) {
return function onevent(arg1) {
var args = new Array(arguments.length);
var ee = this;
var err = event === "error" ? arg1 : null;
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
done(err, ee, event, args);
};
}
return eeFirst;
}
var hasRequiredOnFinished;
function requireOnFinished () {
if (hasRequiredOnFinished) return onFinished.exports;
hasRequiredOnFinished = 1;
/*!
* on-finished
* Copyright(c) 2013 Jonathan Ong
* Copyright(c) 2014 Douglas Christopher Wilson
* MIT Licensed
*/
onFinished.exports = onFinished$1;
onFinished.exports.isFinished = isFinished;
var first = requireEeFirst();
var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
process.nextTick(fn.bind.apply(fn, arguments));
};
function onFinished$1(msg, listener) {
if (isFinished(msg) !== false) {
defer(listener, null, msg);
return msg;
}
attachListener(msg, listener);
return msg;
}
function isFinished(msg) {
var socket = msg.socket;
if (typeof msg.finished === "boolean") {
return Boolean(msg.finished || socket && !socket.writable);
}
if (typeof msg.complete === "boolean") {
return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable);
}
return void 0;
}
function attachFinishedListener(msg, callback) {
var eeMsg;
var eeSocket;
var finished = false;
function onFinish(error) {
eeMsg.cancel();
eeSocket.cancel();
finished = true;
callback(error);
}
eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish);
function onSocket(socket) {
msg.removeListener("socket", onSocket);
if (finished) return;
if (eeMsg !== eeSocket) return;
eeSocket = first([[socket, "error", "close"]], onFinish);
}
if (msg.socket) {
onSocket(msg.socket);
return;
}
msg.on("socket", onSocket);
if (msg.socket === void 0) {
patchAssignSocket(msg, onSocket);
}
}
function attachListener(msg, listener) {
var attached = msg.__onFinished;
if (!attached || !attached.queue) {
attached = msg.__onFinished = createListener(msg);
attachFinishedListener(msg, attached);
}
attached.queue.push(listener);
}
function createListener(msg) {
function listener(err) {
if (msg.__onFinished === listener) msg.__onFinished = null;
if (!listener.queue) return;
var queue = listener.queue;
listener.queue = null;
for (var i = 0; i < queue.length; i++) {
queue[i](err, msg);
}
}
listener.queue = [];
return listener;
}
function patchAssignSocket(res, callback) {
var assignSocket = res.assignSocket;
if (typeof assignSocket !== "function") return;
res.assignSocket = function _assignSocket(socket) {
assignSocket.call(this, socket);
callback(socket);
};
}
return onFinished.exports;
}
var parseurl = {exports: {}};
var hasRequiredParseurl;
function requireParseurl () {
if (hasRequiredParseurl) return parseurl.exports;
hasRequiredParseurl = 1;
/*!
* parseurl
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*/
var url = require$$0$3;
var parse = url.parse;
var Url = url.Url;
parseurl.exports = parseurl$1;
parseurl.exports.original = originalurl;
function parseurl$1(req) {
var url2 = req.url;
if (url2 === void 0) {
return void 0;
}
var parsed = req._parsedUrl;
if (fresh(url2, parsed)) {
return parsed;
}
parsed = fastparse(url2);
parsed._raw = url2;
return req._parsedUrl = parsed;
}
function originalurl(req) {
var url2 = req.originalUrl;
if (typeof url2 !== "string") {
return parseurl$1(req);
}
var parsed = req._parsedOriginalUrl;
if (fresh(url2, parsed)) {
return parsed;
}
parsed = fastparse(url2);
parsed._raw = url2;
return req._parsedOriginalUrl = parsed;
}
function fastparse(str) {
if (typeof str !== "string" || str.charCodeAt(0) !== 47) {
return parse(str);
}
var pathname = str;
var query = null;
var search = null;
for (var i = 1; i < str.length; i++) {
switch (str.charCodeAt(i)) {
case 63:
if (search === null) {
pathname = str.substring(0, i);
query = str.substring(i + 1);
search = str.substring(i);
}
break;
case 9:
/* \t */
case 10:
/* \n */
case 12:
/* \f */
case 13:
/* \r */
case 32:
/* */
case 35:
/* # */
case 160:
case 65279:
return parse(str);
}
}
var url2 = Url !== void 0 ? new Url() : {};
url2.path = str;
url2.href = str;
url2.pathname = pathname;
if (search !== null) {
url2.query = query;
url2.search = search;
}
return url2;
}
function fresh(url2, parsedUrl) {
return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2;
}
return parseurl.exports;
}
var require$$0$1 = {
"100": "Continue",
"101": "Switching Protocols",
"102": "Processing",
"103": "Early Hints",
"200": "OK",
"201": "Created",
"202": "Accepted",
"203": "Non-Authoritative Information",
"204": "No Content",
"205": "Reset Content",
"206": "Partial Content",
"207": "Multi-Status",
"208": "Already Reported",
"226": "IM Used",
"300": "Multiple Choices",
"301": "Moved Permanently",
"302": "Found",
"303": "See Other",
"304": "Not Modified",
"305": "Use Proxy",
"306": "(Unused)",
"307": "Temporary Redirect",
"308": "Permanent Redirect",
"400": "Bad Request",
"401": "Unauthorized",
"402": "Payment Required",
"403": "Forbidden",
"404": "Not Found",
"405": "Method Not Allowed",
"406": "Not Acceptable",
"407": "Proxy Authentication Required",
"408": "Request Timeout",
"409": "Conflict",
"410": "Gone",
"411": "Length Required",
"412": "Precondition Failed",
"413": "Payload Too Large",
"414": "URI Too Long",
"415": "Unsupported Media Type",
"416": "Range Not Satisfiable",
"417": "Expectation Failed",
"418": "I'm a teapot",
"421": "Misdirected Request",
"422": "Unprocessable Entity",
"423": "Locked",
"424": "Failed Dependency",
"425": "Unordered Collection",
"426": "Upgrade Required",
"428": "Precondition Required",
"429": "Too Many Requests",
"431": "Request Header Fields Too Large",
"451": "Unavailable For Legal Reasons",
"500": "Internal Server Error",
"501": "Not Implemented",
"502": "Bad Gateway",
"503": "Service Unavailable",
"504": "Gateway Timeout",
"505": "HTTP Version Not Supported",
"506": "Variant Also Negotiates",
"507": "Insufficient Storage",
"508": "Loop Detected",
"509": "Bandwidth Limit Exceeded",
"510": "Not Extended",
"511": "Network Authentication Required"
};
var statuses;
var hasRequiredStatuses;
function requireStatuses () {
if (hasRequiredStatuses) return statuses;
hasRequiredStatuses = 1;
/*!
* statuses
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2016 Douglas Christopher Wilson
* MIT Licensed
*/
var codes = require$$0$1;
statuses = status;
status.STATUS_CODES = codes;
status.codes = populateStatusesMap(status, codes);
status.redirect = {
300: true,
301: true,
302: true,
303: true,
305: true,
307: true,
308: true
};
status.empty = {
204: true,
205: true,
304: true
};
status.retry = {
502: true,
503: true,
504: true
};
function populateStatusesMap(statuses, codes2) {
var arr = [];
Object.keys(codes2).forEach(function forEachCode(code) {
var message = codes2[code];
var status2 = Number(code);
statuses[status2] = message;
statuses[message] = status2;
statuses[message.toLowerCase()] = status2;
arr.push(status2);
});
return arr;
}
function status(code) {
if (typeof code === "number") {
if (!status[code]) throw new Error("invalid status code: " + code);
return code;
}
if (typeof code !== "string") {
throw new TypeError("code must be a number or string");
}
var n = parseInt(code, 10);
if (!isNaN(n)) {
if (!status[n]) throw new Error("invalid status code: " + n);
return n;
}
n = status[code.toLowerCase()];
if (!n) throw new Error('invalid status message: "' + code + '"');
return n;
}
return statuses;
}
var unpipe_1;
var hasRequiredUnpipe;
function requireUnpipe () {
if (hasRequiredUnpipe) return unpipe_1;
hasRequiredUnpipe = 1;
/*!
* unpipe
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
unpipe_1 = unpipe;
function hasPipeDataListeners(stream) {
var listeners = stream.listeners("data");
for (var i = 0; i < listeners.length; i++) {
if (listeners[i].name === "ondata") {
return true;
}
}
return false;
}
function unpipe(stream) {
if (!stream) {
throw new TypeError("argument stream is required");
}
if (typeof stream.unpipe === "function") {
stream.unpipe();
return;
}
if (!hasPipeDataListeners(stream)) {
return;
}
var listener;
var listeners = stream.listeners("close");
for (var i = 0; i < listeners.length; i++) {
listener = listeners[i];
if (listener.name !== "cleanup" && listener.name !== "onclose") {
continue;
}
listener.call(stream);
}
}
return unpipe_1;
}
var finalhandler_1;
var hasRequiredFinalhandler;
function requireFinalhandler () {
if (hasRequiredFinalhandler) return finalhandler_1;
hasRequiredFinalhandler = 1;
/*!
* finalhandler
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*/
var debug = requireSrc()("finalhandler");
var encodeUrl = requireEncodeurl();
var escapeHtml = requireEscapeHtml();
var onFinished = requireOnFinished();
var parseUrl = requireParseurl();
var statuses = requireStatuses();
var unpipe = requireUnpipe();
var DOUBLE_SPACE_REGEXP = /\x20{2}/g;
var NEWLINE_REGEXP = /\n/g;
var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
process.nextTick(fn.bind.apply(fn, arguments));
};
var isFinished = onFinished.isFinished;
function createHtmlDocument(message) {
var body = escapeHtml(message).replace(NEWLINE_REGEXP, "<br>").replace(DOUBLE_SPACE_REGEXP, " ");
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>' + body + "</pre>\n</body>\n</html>\n";
}
finalhandler_1 = finalhandler;
function finalhandler(req, res, options) {
var opts = options || {};
var env = opts.env || process.env.NODE_ENV || "development";
var onerror = opts.onerror;
return function(err) {
var headers;
var msg;
var status;
if (!err && headersSent(res)) {
debug("cannot 404 after headers sent");
return;
}
if (err) {
status = getErrorStatusCode(err);
if (status === void 0) {
status = getResponseStatusCode(res);
} else {
headers = getErrorHeaders(err);
}
msg = getErrorMessage(err, status, env);
} else {
status = 404;
msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req));
}
debug("default %s", status);
if (err && onerror) {
defer(onerror, err, req, res);
}
if (headersSent(res)) {
debug("cannot %d after headers sent", status);
req.socket.destroy();
return;
}
send(req, res, status, headers, msg);
};
}
function getErrorHeaders(err) {
if (!err.headers || typeof err.headers !== "object") {
return void 0;
}
var headers = /* @__PURE__ */ Object.create(null);
var keys = Object.keys(err.headers);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
headers[key] = err.headers[key];
}
return headers;
}
function getErrorMessage(err, status, env) {
var msg;
if (env !== "production") {
msg = err.stack;
if (!msg && typeof err.toString === "function") {
msg = err.toString();
}
}
return msg || statuses[status];
}
function getErrorStatusCode(err) {
if (typeof err.status === "number" && err.status >= 400 && err.status < 600) {
return err.status;
}
if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) {
return err.statusCode;
}
return void 0;
}
function getResourceName(req) {
try {
return parseUrl.original(req).pathname;
} catch (e) {
return "resource";
}
}
function getResponseStatusCode(res) {
var status = res.statusCode;
if (typeof status !== "number" || status < 400 || status > 599) {
status = 500;
}
return status;
}
function headersSent(res) {
return typeof res.headersSent !== "boolean" ? Boolean(res._header) : res.headersSent;
}
function send(req, res, status, headers, message) {
function write() {
var body = createHtmlDocument(message);
res.statusCode = status;
res.statusMessage = statuses[status];
setHeaders(res, headers);
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Content-Type", "text/html; charset=utf-8");
res.setHeader("Content-Length", Buffer.byteLength(body, "utf8"));
if (req.method === "HEAD") {
res.end();
return;
}
res.end(body, "utf8");
}
if (isFinished(req)) {
write();
return;
}
unpipe(req);
onFinished(req, write);
req.resume();
}
function setHeaders(res, headers) {
if (!headers) {
return;
}
var keys = Object.keys(headers);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
res.setHeader(key, headers[key]);
}
}
return finalhandler_1;
}
var utilsMerge = {exports: {}};
var hasRequiredUtilsMerge;
function requireUtilsMerge () {
if (hasRequiredUtilsMerge) return utilsMerge.exports;
hasRequiredUtilsMerge = 1;
(function (module, exports) {
module.exports = function(a, b) {
if (a && b) {
for (var key in b) {
a[key] = b[key];
}
}
return a;
};
} (utilsMerge));
return utilsMerge.exports;
}
var connect$1;
var hasRequiredConnect;
function requireConnect () {
if (hasRequiredConnect) return connect$1;
hasRequiredConnect = 1;
/*!
* connect
* Copyright(c) 2010 Sencha Inc.
* Copyright(c) 2011 TJ Holowaychuk
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
var debug = requireSrc()("connect:dispatcher");
var EventEmitter = require$$1$1.EventEmitter;
var finalhandler = requireFinalhandler();
var http = require$$3$1;
var merge = requireUtilsMerge();
var parseUrl = requireParseurl();
connect$1 = createServer;
var env = process.env.NODE_ENV || "development";
var proto = {};
var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
process.nextTick(fn.bind.apply(fn, arguments));
};
function createServer() {
function app(req, res, next) {
app.handle(req, res, next);
}
merge(app, proto);
merge(app, EventEmitter.prototype);
app.route = "/";
app.stack = [];
return app;
}
proto.use = function use(route, fn) {
var handle2 = fn;
var path = route;
if (typeof route !== "string") {
handle2 = route;
path = "/";
}
if (typeof handle2.handle === "function") {
var server = handle2;
server.route = path;
handle2 = function(req, res, next) {
server.handle(req, res, next);
};
}
if (handle2 instanceof http.Server) {
handle2 = handle2.listeners("request")[0];
}
if (path[path.length - 1] === "/") {
path = path.slice(0, -1);
}
debug("use %s %s", path || "/", handle2.name || "anonymous");
this.stack.push({ route: path, handle: handle2 });
return this;
};
proto.handle = function handle(req, res, out) {
var index = 0;
var protohost = getProtohost(req.url) || "";
var removed = "";
var slashAdded = false;
var stack = this.stack;
var done = out || finalhandler(req, res, {
env,
onerror: logerror
});
req.originalUrl = req.originalUrl || req.url;
function next(err) {
if (slashAdded) {
req.url = req.url.substr(1);
slashAdded = false;
}
if (removed.length !== 0) {
req.url = protohost + removed + req.url.substr(protohost.length);
removed = "";
}
var layer = stack[index++];
if (!layer) {
defer(done, err);
return;
}
var path = parseUrl(req).pathname || "/";
var route = layer.route;
if (path.toLowerCase().substr(0, route.length) !== route.toLowerCase()) {
return next(err);
}
var c = path.length > route.length && path[route.length];
if (c && c !== "/" && c !== ".") {
return next(err);
}
if (route.length !== 0 && route !== "/") {
removed = route;
req.url = protohost + req.url.substr(protohost.length + removed.length);
if (!protohost && req.url[0] !== "/") {
req.url = "/" + req.url;
slashAdded = true;
}
}
call(layer.handle, route, err, req, res, next);
}
next();
};
proto.listen = function listen() {
var server = http.createServer(this);
return server.listen.apply(server, arguments);
};
function call(handle2, route, err, req, res, next) {
var arity = handle2.length;
var error = err;
var hasError = Boolean(err);
debug("%s %s : %s", handle2.name || "<anonymous>", route, req.originalUrl);
try {
if (hasError && arity === 4) {
handle2(err, req, res, next);
return;
} else if (!hasError && arity < 4) {
handle2(req, res, next);
return;
}
} catch (e) {
error = e;
}
next(error);
}
function logerror(err) {
if (env !== "test") console.error(err.stack || err.toString());
}
function getProtohost(url) {
if (url.length === 0 || url[0] === "/") {
return void 0;
}
var fqdnIndex = url.indexOf("://");
return fqdnIndex !== -1 && url.lastIndexOf("?", fqdnIndex) === -1 ? url.substr(0, url.indexOf("/", 3 + fqdnIndex)) : void 0;
}
return connect$1;
}
var connectExports = requireConnect();
var Connect = /*@__PURE__*/getDefaultExportFromCjs(connectExports);
var httpMock = {};
var mockRequest$1 = {};
var typeIs = {exports: {}};
var mediaTyper = {};
var hasRequiredMediaTyper;
function requireMediaTyper () {
if (hasRequiredMediaTyper) return mediaTyper;
hasRequiredMediaTyper = 1;
/*!
* media-typer
* Copyright(c) 2014 Douglas Christopher Wilson
* MIT Licensed
*/
var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/;
var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/;
var qescRegExp = /\\([\u0000-\u007f])/g;
var quoteRegExp = /([\\"])/g;
var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
mediaTyper.format = format;
mediaTyper.parse = parse;
function format(obj) {
if (!obj || typeof obj !== "object") {
throw new TypeError("argument obj is required");
}
var parameters = obj.parameters;
var subtype = obj.subtype;
var suffix = obj.suffix;
var type = obj.type;
if (!type || !typeNameRegExp.test(type)) {
throw new TypeError("invalid type");
}
if (!subtype || !subtypeNameRegExp.test(subtype)) {
throw new TypeError("invalid subtype");
}
var string = type + "/" + subtype;
if (suffix) {
if (!typeNameRegExp.test(suffix)) {
throw new TypeError("invalid suffix");
}
string += "+" + suffix;
}
if (parameters && typeof parameters === "object") {
var param;
var params = Object.keys(parameters).sort();
for (var i = 0; i < params.length; i++) {
param = params[i];
if (!tokenRegExp.test(param)) {
throw new TypeError("invalid parameter name");
}
string += "; " + param + "=" + qstring(parameters[param]);
}
}
return string;
}
function parse(string) {
if (!string) {
throw new TypeError("argument string is required");
}
if (typeof string === "object") {
string = getcontenttype(string);
}
if (typeof string !== "string") {
throw new TypeError("argument string is required to be a string");
}
var index = string.indexOf(";");
var type = index !== -1 ? string.substr(0, index) : string;
var key;
var match;
var obj = splitType(type);
var params = {};
var value;
paramRegExp.lastIndex = index;
while (match = paramRegExp.exec(string)) {
if (match.index !== index) {
throw new TypeError("invalid parameter format");
}
index += match[0].length;
key = match[1].toLowerCase();
value = match[2];
if (value[0] === '"') {
value = value.substr(1, value.length - 2).replace(qescRegExp, "$1");
}
params[key] = value;
}
if (index !== -1 && index !== string.length) {
throw new TypeError("invalid parameter format");
}
obj.parameters = params;
return obj;
}
function getcontenttype(obj) {
if (typeof obj.getHeader === "function") {
return obj.getHeader("content-type");
}
if (typeof obj.headers === "object") {
return obj.headers && obj.headers["content-type"];
}
}
function qstring(val) {
var str = String(val);
if (tokenRegExp.test(str)) {
return str;
}
if (str.length > 0 && !textRegExp.test(str)) {
throw new TypeError("invalid parameter value");
}
return '"' + str.replace(quoteRegExp, "\\$1") + '"';
}
function splitType(string) {
var match = typeRegExp.exec(string.toLowerCase());
if (!match) {
throw new TypeError("invalid media type");
}
var type = match[1];
var subtype = match[2];
var suffix;
var index = subtype.lastIndexOf("+");
if (index !== -1) {
suffix = subtype.substr(index + 1);
subtype = subtype.substr(0, index);
}
var obj = {
type,
subtype,
suffix
};
return obj;
}
return mediaTyper;
}
var mimeTypes = {};
var require$$0 = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: [
"ez"
]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: [
"aw"
]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: [
"atom"
]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: [
"atomcat"
]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: [
"atomdeleted"
]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: [
"atomsvc"
]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: [
"dwd"
]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: [
"held"
]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: [
"rsat"
]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: [
"bdoc"
]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: [
"xcs"
]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: [
"ccxml"
]
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: [
"cdfx"
]
},
"application/cdmi-capability": {
source: "iana",
extensions: [
"cdmia"
]
},
"application/cdmi-container": {
source: "iana",
extensions: [
"cdmic"
]
},
"application/cdmi-domain": {
source: "iana",
extensions: [
"cdmid"
]
},
"application/cdmi-object": {
source: "iana",
extensions: [
"cdmio"
]
},
"application/cdmi-queue": {
source: "iana",
extensions: [
"cdmiq"
]
},
"application/cdni": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: [
"cpl"
]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: [
"cu"
]
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: [
"mpd"
]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: [
"mpp"
]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: [
"davmount"
]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana"
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: [
"dbk"
]
},
"application/dots+cbor": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: [
"dssc"
]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: [
"xdssc"
]
},
"application/dvcs": {
source: "iana"
},
"application/ecmascript": {
source: "iana",
compressible: true,
extensions: [
"es",
"ecma"
]
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: [
"emma"
]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: [
"emotionml"
]
},
"application/encaprtp": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: [
"epub"
]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: [
"exi"
]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: [
"exp"
]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: [
"fdt"
]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: [
"pfr"
]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: [
"geojson"
]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: [
"gml"
]
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: [
"gpx"
]
},
"application/gxf": {
source: "apache",
extensions: [
"gxf"
]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: [
"gz"
]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: [
"hjson"
]
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: [
"stk"
]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: [
"ink",
"inkml"
]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: [
"ipfix"
]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: [
"its"
]
},
"application/java-archive": {
source: "apache",
compressible: false,
extensions: [
"jar",
"war",
"ear"
]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: [
"ser"
]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: [
"class"
]
},
"application/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"js",
"mjs"
]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"json",
"map"
]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: [
"json5"
]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: [
"jsonml"
]
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: [
"jsonld"
]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: [
"lgr"
]
},
"application/link-format": {
source: "iana"
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: [
"lostxml"
]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: [
"hqx"
]
},
"application/mac-compactpro": {
source: "apache",
extensions: [
"cpt"
]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: [
"mads"
]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"webmanifest"
]
},
"application/marc": {
source: "iana",
extensions: [
"mrc"
]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: [
"mrcx"
]
},
"application/mathematica": {
source: "iana",
extensions: [
"ma",
"nb",
"mb"
]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: [
"mathml"
]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: [
"mbox"
]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: [
"mpf"
]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: [
"mscml"
]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: [
"metalink"
]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: [
"meta4"
]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: [
"mets"
]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: [
"maei"
]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: [
"musd"
]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: [
"mods"
]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: [
"m21",
"mp21"
]
},
"application/mp4": {
source: "iana",
extensions: [
"mp4s",
"m4p"
]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msword": {
source: "iana",
compressible: false,
extensions: [
"doc",
"dot"
]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: [
"mxf"
]
},
"application/n-quads": {
source: "iana",
extensions: [
"nq"
]
},
"application/n-triples": {
source: "iana",
extensions: [
"nt"
]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: [
"cjs"
]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: false,
extensions: [
"bin",
"dms",
"lrf",
"mar",
"so",
"dist",
"distz",
"pkg",
"bpk",
"dump",
"elc",
"deploy",
"exe",
"dll",
"deb",
"dmg",
"iso",
"img",
"msi",
"msp",
"msm",
"buffer"
]
},
"application/oda": {
source: "iana",
extensions: [
"oda"
]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: [
"opf"
]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: [
"ogx"
]
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: [
"omdoc"
]
},
"application/onenote": {
source: "apache",
extensions: [
"onetoc",
"onetoc2",
"onetmp",
"onepkg"
]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: [
"oxps"
]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: [
"relo"
]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: [
"xer"
]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: [
"pdf"
]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: [
"pgp"
]
},
"application/pgp-keys": {
source: "iana",
extensions: [
"asc"
]
},
"application/pgp-signature": {
source: "iana",
extensions: [
"asc",
"sig"
]
},
"application/pics-rules": {
source: "apache",
extensions: [
"prf"
]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: [
"p10"
]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: [
"p7m",
"p7c"
]
},
"application/pkcs7-signature": {
source: "iana",
extensions: [
"p7s"
]
},
"application/pkcs8": {
source: "iana",
extensions: [
"p8"
]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: [
"ac"
]
},
"application/pkix-cert": {
source: "iana",
extensions: [
"cer"
]
},
"application/pkix-crl": {
source: "iana",
extensions: [
"crl"
]
},
"application/pkix-pkipath": {
source: "iana",
extensions: [
"pkipath"
]
},
"application/pkixcmp": {
source: "iana",
extensions: [
"pki"
]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: [
"pls"
]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: [
"ai",
"eps",
"ps"
]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: [
"provx"
]
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: [
"cww"
]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: [
"pskcxml"
]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: [
"raml"
]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: [
"rdf",
"owl"
]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: [
"rif"
]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: [
"rnc"
]
},
"application/remote-printing": {
source: "iana"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: [
"rl"
]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: [
"rld"
]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: [
"rs"
]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: [
"rapd"
]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: [
"sls"
]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: [
"rusd"
]
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: [
"gbr"
]
},
"application/rpki-manifest": {
source: "iana",
extensions: [
"mft"
]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: [
"roa"
]
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: [
"rsd"
]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: [
"rss"
]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: [
"rtf"
]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: [
"sbml"
]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: [
"scq"
]
},
"application/scvp-cv-response": {
source: "iana",
extensions: [
"scs"
]
},
"application/scvp-vp-request": {
source: "iana",
extensions: [
"spq"
]
},
"application/scvp-vp-response": {
source: "iana",
extensions: [
"spp"
]
},
"application/sdp": {
source: "iana",
extensions: [
"sdp"
]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: [
"senmlx"
]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: [
"sensmlx"
]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: [
"setpay"
]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: [
"setreg"
]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: [
"shf"
]
},
"application/sieve": {
source: "iana",
extensions: [
"siv",
"sieve"
]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "iana"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: [
"smi",
"smil"
]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: [
"rq"
]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: [
"srx"
]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana"
},
"application/srgs": {
source: "iana",
extensions: [
"gram"
]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: [
"grxml"
]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: [
"sru"
]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: [
"ssdl"
]
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: [
"ssml"
]
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: [
"swidtag"
]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: [
"tei",
"teicorpus"
]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: [
"tfi"
]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: [
"tsd"
]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
compressible: true,
extensions: [
"toml"
]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: [
"trig"
]
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: [
"ttml"
]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: [
"ubj"
]
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: [
"rsheet"
]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: [
"td"
]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: [
"1km"
]
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: [
"plb"
]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: [
"psb"
]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: [
"pvb"
]
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: [
"tcap"
]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: [
"pwn"
]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: [
"aso"
]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: [
"imp"
]
},
"application/vnd.acucobol": {
source: "iana",
extensions: [
"acu"
]
},
"application/vnd.acucorp": {
source: "iana",
extensions: [
"atc",
"acutc"
]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: [
"air"
]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: [
"fcdt"
]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: [
"fxp",
"fxpl"
]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: [
"xdp"
]
},
"application/vnd.adobe.xfdf": {
source: "iana",
extensions: [
"xfdf"
]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: [
"age"
]
},
"application/vnd.ah-barcode": {
source: "iana"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: [
"ahead"
]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: [
"azf"
]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: [
"azs"
]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: [
"azw"
]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: [
"acc"
]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: [
"ami"
]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: [
"apk"
]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: [
"cii"
]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: [
"fti"
]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: [
"atx"
]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: [
"mpkg"
]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: [
"key"
]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: [
"m3u8"
]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: [
"numbers"
]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: [
"pages"
]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: [
"pkpass"
]
},
"application/vnd.arastra.swi": {
source: "iana"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: [
"swi"
]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: [
"iota"
]
},
"application/vnd.audiograph": {
source: "iana",
extensions: [
"aep"
]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: [
"bmml"
]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: [
"mpm"
]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: [
"bmi"
]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: [
"rep"
]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: [
"cdxml"
]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: [
"mmd"
]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: [
"cdy"
]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: [
"csl"
]
},
"application/vnd.claymore": {
source: "iana",
extensions: [
"cla"
]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: [
"rp9"
]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: [
"c4g",
"c4d",
"c4f",
"c4p",
"c4u"
]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: [
"c11amc"
]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: [
"c11amz"
]
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: [
"csp"
]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: [
"cdbcmsg"
]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: [
"cmc"
]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: [
"clkx"
]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: [
"clkk"
]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: [
"clkp"
]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: [
"clkt"
]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: [
"clkw"
]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: [
"wbs"
]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: [
"pml"
]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: [
"ppd"
]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: [
"car"
]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: [
"pcurl"
]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: [
"dart"
]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: [
"rdz"
]
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: [
"dbf"
]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: [
"uvf",
"uvvf",
"uvd",
"uvvd"
]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: [
"uvt",
"uvvt"
]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: [
"uvx",
"uvvx"
]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: [
"uvz",
"uvvz"
]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: [
"fe_launch"
]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: [
"dna"
]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: [
"mlp"
]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: [
"dpg"
]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: [
"dfac"
]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: [
"kpxx"
]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: [
"ait"
]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: [
"svc"
]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: [
"geo"
]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: [
"mag"
]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: [
"nml"
]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: [
"esf"
]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: [
"msf"
]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: [
"qam"
]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: [
"slt"
]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: [
"ssf"
]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: [
"es3",
"et3"
]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: [
"ez2"
]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: [
"ez3"
]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "iana",
extensions: [
"fdf"
]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: [
"mseed"
]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: [
"seed",
"dataless"
]
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: [
"gph"
]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: [
"ftc"
]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: [
"fm",
"frame",
"maker",
"book"
]
},
"application/vnd.frogans.fnc": {
source: "iana",
extensions: [
"fnc"
]
},
"application/vnd.frogans.ltf": {
source: "iana",
extensions: [
"ltf"
]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: [
"fsc"
]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: [
"oas"
]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: [
"oa2"
]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: [
"oa3"
]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: [
"fg5"
]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: [
"bh2"
]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: [
"ddd"
]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: [
"xdw"
]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: [
"xbd"
]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: [
"fzs"
]
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: [
"txd"
]
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.geo+json": {
source: "iana",
compressible: true
},
"application/vnd.geocube+xml": {
source: "iana",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: [
"ggb"
]
},
"application/vnd.geogebra.slides": {
source: "iana"
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: [
"ggt"
]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: [
"gex",
"gre"
]
},
"application/vnd.geonext": {
source: "iana",
extensions: [
"gxt"
]
},
"application/vnd.geoplan": {
source: "iana",
extensions: [
"g2w"
]
},
"application/vnd.geospace": {
source: "iana",
extensions: [
"g3w"
]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: [
"gmx"
]
},
"application/vnd.google-apps.document": {
compressible: false,
extensions: [
"gdoc"
]
},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: [
"gslides"
]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: [
"gsheet"
]
},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: [
"kml"
]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: [
"kmz"
]
},
"application/vnd.gov.sk.e-form+xml": {
source: "iana",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: [
"gqf",
"gqs"
]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: [
"gac"
]
},
"application/vnd.groove-help": {
source: "iana",
extensions: [
"ghf"
]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: [
"gim"
]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: [
"grv"
]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: [
"gtm"
]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: [
"tpl"
]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: [
"vcg"
]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: [
"hal"
]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: [
"zmm"
]
},
"application/vnd.hbci": {
source: "iana",
extensions: [
"hbci"
]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: [
"les"
]
},
"application/vnd.hl7cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: [
"hpgl"
]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: [
"hpid"
]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: [
"hps"
]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: [
"jlt"
]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: [
"pcl"
]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: [
"pclxl"
]
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: [
"sfd-hdstx"
]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "iana"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: [
"mpy"
]
},
"application/vnd.ibm.modcap": {
source: "iana",
extensions: [
"afp",
"listafp",
"list3820"
]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: [
"irm"
]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: [
"sc"
]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: [
"icc",
"icm"
]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: [
"igl"
]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: [
"ivp"
]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: [
"ivu"
]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "iana"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: [
"igm"
]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: [
"xpw",
"xpx"
]
},
"application/vnd.intergeo": {
source: "iana",
extensions: [
"i2g"
]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: [
"qbo"
]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: [
"qfx"
]
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: [
"rcprofile"
]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: [
"irp"
]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: [
"xpr"
]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: [
"fcs"
]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: [
"jam"
]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: [
"rms"
]
},
"application/vnd.jisp": {
source: "iana",
extensions: [
"jisp"
]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: [
"joda"
]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: [
"ktz",
"ktr"
]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: [
"karbon"
]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: [
"chrt"
]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: [
"kfo"
]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: [
"flw"
]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: [
"kon"
]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: [
"kpr",
"kpt"
]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: [
"ksp"
]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: [
"kwd",
"kwt"
]
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: [
"htke"
]
},
"application/vnd.kidspiration": {
source: "iana",
extensions: [
"kia"
]
},
"application/vnd.kinar": {
source: "iana",
extensions: [
"kne",
"knp"
]
},
"application/vnd.koan": {
source: "iana",
extensions: [
"skp",
"skd",
"skt",
"skm"
]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: [
"sse"
]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: [
"lasxml"
]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: [
"lbd"
]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: [
"lbe"
]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: [
"123"
]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: [
"apr"
]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: [
"pre"
]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: [
"nsf"
]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: [
"org"
]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: [
"scm"
]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: [
"lwp"
]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: [
"portpkg"
]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: [
"mvt"
]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: [
"mcd"
]
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: [
"mc1"
]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: [
"cdkey"
]
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: [
"mwf"
]
},
"application/vnd.mfmp": {
source: "iana",
extensions: [
"mfm"
]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: [
"flo"
]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: [
"igx"
]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: [
"mif"
]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: [
"daf"
]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: [
"dis"
]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: [
"mbk"
]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: [
"mqy"
]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: [
"msl"
]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: [
"plc"
]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: [
"txf"
]
},
"application/vnd.mophun.application": {
source: "iana",
extensions: [
"mpn"
]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: [
"mpc"
]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: [
"xul"
]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: [
"cil"
]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: [
"cab"
]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: [
"xls",
"xlm",
"xla",
"xlc",
"xlt",
"xlw"
]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: [
"xlam"
]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: [
"xlsb"
]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: [
"xlsm"
]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: [
"xltm"
]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: [
"eot"
]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: [
"chm"
]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: [
"ims"
]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: [
"lrm"
]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: [
"thmx"
]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: [
"msg"
]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: [
"cat"
]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: [
"stl"
]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: [
"ppt",
"pps",
"pot"
]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: [
"ppam"
]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: [
"pptm"
]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: [
"sldm"
]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: [
"ppsm"
]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: [
"potm"
]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: [
"mpp",
"mpt"
]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: [
"docm"
]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: [
"dotm"
]
},
"application/vnd.ms-works": {
source: "iana",
extensions: [
"wps",
"wks",
"wcm",
"wdb"
]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: [
"wpl"
]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: [
"xps"
]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: [
"mseq"
]
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: [
"mus"
]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: [
"msty"
]
},
"application/vnd.mynfc": {
source: "iana",
extensions: [
"taglet"
]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: [
"nlu"
]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: [
"ntf",
"nitf"
]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: [
"nnd"
]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: [
"nns"
]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: [
"nnw"
]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: [
"ac"
]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: [
"ngdat"
]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "iana",
extensions: [
"n-gage"
]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: [
"rpst"
]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: [
"rpss"
]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: [
"edm"
]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: [
"edx"
]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: [
"ext"
]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: [
"odc"
]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: [
"otc"
]
},
"application/vnd.oasis.opendocument.database": {
source: "iana",
extensions: [
"odb"
]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: [
"odf"
]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: [
"odft"
]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: [
"odg"
]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: [
"otg"
]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: [
"odi"
]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: [
"oti"
]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: [
"odp"
]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: [
"otp"
]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: [
"ods"
]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: [
"ots"
]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: [
"odt"
]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: [
"odm"
]
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: [
"ott"
]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: [
"oth"
]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: [
"xo"
]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: [
"dd2"
]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: [
"obgx"
]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: [
"oxt"
]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: [
"osm"
]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: [
"pptx"
]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: [
"sldx"
]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: [
"ppsx"
]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: [
"potx"
]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: [
"xlsx"
]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: [
"xltx"
]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: [
"docx"
]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: [
"dotx"
]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: [
"mgp"
]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: [
"dp"
]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: [
"esa"
]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: [
"pdb",
"pqa",
"oprc"
]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: [
"paw"
]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: [
"str"
]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: [
"ei6"
]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: [
"efif"
]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: [
"wg"
]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: [
"plf"
]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: [
"pbd"
]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: [
"box"
]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: [
"mgz"
]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: [
"qps"
]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: [
"ptid"
]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: [
"qxd",
"qxt",
"qwd",
"qwt",
"qxl",
"qxb"
]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: [
"rar"
]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: [
"bed"
]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: [
"mxl"
]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: [
"musicxml"
]
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: [
"cryptonote"
]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: [
"cod"
]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: [
"rm"
]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: [
"rmvb"
]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: [
"link66"
]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: [
"st"
]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: [
"see"
]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: [
"sema"
]
},
"application/vnd.semd": {
source: "iana",
extensions: [
"semd"
]
},
"application/vnd.semf": {
source: "iana",
extensions: [
"semf"
]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: [
"ifm"
]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: [
"itp"
]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: [
"iif"
]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: [
"ipk"
]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: [
"twd",
"twds"
]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.smaf": {
source: "iana",
extensions: [
"mmf"
]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: [
"teacher"
]
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: [
"fo"
]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: [
"sdkm",
"sdkd"
]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: [
"dxp"
]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: [
"sfs"
]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: [
"sdc"
]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: [
"sda"
]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: [
"sdd"
]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: [
"smf"
]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: [
"sdw",
"vor"
]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: [
"sgl"
]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: [
"smzip"
]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: [
"sm"
]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: [
"wadl"
]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: [
"sxc"
]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: [
"stc"
]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: [
"sxd"
]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: [
"std"
]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: [
"sxi"
]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: [
"sti"
]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: [
"sxm"
]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: [
"sxw"
]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: [
"sxg"
]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: [
"stw"
]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: [
"sus",
"susp"
]
},
"application/vnd.svd": {
source: "iana",
extensions: [
"svd"
]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: [
"sis",
"sisx"
]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"xsm"
]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: [
"bdm"
]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"xdm"
]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"ddf"
]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: [
"tao"
]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: [
"pcap",
"cap",
"dmp"
]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: [
"tmo"
]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: [
"tpt"
]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: [
"mxs"
]
},
"application/vnd.trueapp": {
source: "iana",
extensions: [
"tra"
]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: [
"ufd",
"ufdl"
]
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: [
"utz"
]
},
"application/vnd.umajin": {
source: "iana",
extensions: [
"umj"
]
},
"application/vnd.unity": {
source: "iana",
extensions: [
"unityweb"
]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: [
"uoml"
]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: [
"vcx"
]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: [
"vsd",
"vst",
"vss",
"vsw"
]
},
"application/vnd.visionary": {
source: "iana",
extensions: [
"vis"
]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: [
"vsf"
]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: [
"wbxml"
]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: [
"wmlc"
]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: [
"wmlsc"
]
},
"application/vnd.webturbo": {
source: "iana",
extensions: [
"wtb"
]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: [
"nbp"
]
},
"application/vnd.wordperfect": {
source: "iana",
extensions: [
"wpd"
]
},
"application/vnd.wqd": {
source: "iana",
extensions: [
"wqd"
]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: [
"stf"
]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: [
"xar"
]
},
"application/vnd.xfdl": {
source: "iana",
extensions: [
"xfdl"
]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: [
"hvd"
]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: [
"hvs"
]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: [
"hvp"
]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: [
"osf"
]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: [
"osfpvg"
]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: [
"saf"
]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: [
"spf"
]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: [
"cmp"
]
},
"application/vnd.youtube.yt": {
source: "iana"
},
"application/vnd.zul": {
source: "iana",
extensions: [
"zir",
"zirz"
]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: [
"zaz"
]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: [
"vxml"
]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: [
"wasm"
]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: [
"wif"
]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: [
"wgt"
]
},
"application/winhlp": {
source: "apache",
extensions: [
"hlp"
]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: [
"wsdl"
]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: [
"wspolicy"
]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: [
"7z"
]
},
"application/x-abiword": {
source: "apache",
extensions: [
"abw"
]
},
"application/x-ace-compressed": {
source: "apache",
extensions: [
"ace"
]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: [
"dmg"
]
},
"application/x-arj": {
compressible: false,
extensions: [
"arj"
]
},
"application/x-authorware-bin": {
source: "apache",
extensions: [
"aab",
"x32",
"u32",
"vox"
]
},
"application/x-authorware-map": {
source: "apache",
extensions: [
"aam"
]
},
"application/x-authorware-seg": {
source: "apache",
extensions: [
"aas"
]
},
"application/x-bcpio": {
source: "apache",
extensions: [
"bcpio"
]
},
"application/x-bdoc": {
compressible: false,
extensions: [
"bdoc"
]
},
"application/x-bittorrent": {
source: "apache",
extensions: [
"torrent"
]
},
"application/x-blorb": {
source: "apache",
extensions: [
"blb",
"blorb"
]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: [
"bz"
]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: [
"bz2",
"boz"
]
},
"application/x-cbr": {
source: "apache",
extensions: [
"cbr",
"cba",
"cbt",
"cbz",
"cb7"
]
},
"application/x-cdlink": {
source: "apache",
extensions: [
"vcd"
]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: [
"cfs"
]
},
"application/x-chat": {
source: "apache",
extensions: [
"chat"
]
},
"application/x-chess-pgn": {
source: "apache",
extensions: [
"pgn"
]
},
"application/x-chrome-extension": {
extensions: [
"crx"
]
},
"application/x-cocoa": {
source: "nginx",
extensions: [
"cco"
]
},
"application/x-compress": {
source: "apache"
},
"application/x-conference": {
source: "apache",
extensions: [
"nsc"
]
},
"application/x-cpio": {
source: "apache",
extensions: [
"cpio"
]
},
"application/x-csh": {
source: "apache",
extensions: [
"csh"
]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: [
"deb",
"udeb"
]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: [
"dgc"
]
},
"application/x-director": {
source: "apache",
extensions: [
"dir",
"dcr",
"dxr",
"cst",
"cct",
"cxt",
"w3d",
"fgd",
"swa"
]
},
"application/x-doom": {
source: "apache",
extensions: [
"wad"
]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: [
"ncx"
]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: [
"dtb"
]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: [
"res"
]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: [
"dvi"
]
},
"application/x-envoy": {
source: "apache",
extensions: [
"evy"
]
},
"application/x-eva": {
source: "apache",
extensions: [
"eva"
]
},
"application/x-font-bdf": {
source: "apache",
extensions: [
"bdf"
]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: [
"gsf"
]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: [
"psf"
]
},
"application/x-font-pcf": {
source: "apache",
extensions: [
"pcf"
]
},
"application/x-font-snf": {
source: "apache",
extensions: [
"snf"
]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: [
"pfa",
"pfb",
"pfm",
"afm"
]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: [
"arc"
]
},
"application/x-futuresplash": {
source: "apache",
extensions: [
"spl"
]
},
"application/x-gca-compressed": {
source: "apache",
extensions: [
"gca"
]
},
"application/x-glulx": {
source: "apache",
extensions: [
"ulx"
]
},
"application/x-gnumeric": {
source: "apache",
extensions: [
"gnumeric"
]
},
"application/x-gramps-xml": {
source: "apache",
extensions: [
"gramps"
]
},
"application/x-gtar": {
source: "apache",
extensions: [
"gtar"
]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: [
"hdf"
]
},
"application/x-httpd-php": {
compressible: true,
extensions: [
"php"
]
},
"application/x-install-instructions": {
source: "apache",
extensions: [
"install"
]
},
"application/x-iso9660-image": {
source: "apache",
extensions: [
"iso"
]
},
"application/x-iwork-keynote-sffkey": {
extensions: [
"key"
]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: [
"numbers"
]
},
"application/x-iwork-pages-sffpages": {
extensions: [
"pages"
]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: [
"jardiff"
]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: [
"jnlp"
]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: [
"kdbx"
]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: [
"latex"
]
},
"application/x-lua-bytecode": {
extensions: [
"luac"
]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: [
"lzh",
"lha"
]
},
"application/x-makeself": {
source: "nginx",
extensions: [
"run"
]
},
"application/x-mie": {
source: "apache",
extensions: [
"mie"
]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: [
"prc",
"mobi"
]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: [
"application"
]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: [
"lnk"
]
},
"application/x-ms-wmd": {
source: "apache",
extensions: [
"wmd"
]
},
"application/x-ms-wmz": {
source: "apache",
extensions: [
"wmz"
]
},
"application/x-ms-xbap": {
source: "apache",
extensions: [
"xbap"
]
},
"application/x-msaccess": {
source: "apache",
extensions: [
"mdb"
]
},
"application/x-msbinder": {
source: "apache",
extensions: [
"obd"
]
},
"application/x-mscardfile": {
source: "apache",
extensions: [
"crd"
]
},
"application/x-msclip": {
source: "apache",
extensions: [
"clp"
]
},
"application/x-msdos-program": {
extensions: [
"exe"
]
},
"application/x-msdownload": {
source: "apache",
extensions: [
"exe",
"dll",
"com",
"bat",
"msi"
]
},
"application/x-msmediaview": {
source: "apache",
extensions: [
"mvb",
"m13",
"m14"
]
},
"application/x-msmetafile": {
source: "apache",
extensions: [
"wmf",
"wmz",
"emf",
"emz"
]
},
"application/x-msmoney": {
source: "apache",
extensions: [
"mny"
]
},
"application/x-mspublisher": {
source: "apache",
extensions: [
"pub"
]
},
"application/x-msschedule": {
source: "apache",
extensions: [
"scd"
]
},
"application/x-msterminal": {
source: "apache",
extensions: [
"trm"
]
},
"application/x-mswrite": {
source: "apache",
extensions: [
"wri"
]
},
"application/x-netcdf": {
source: "apache",
extensions: [
"nc",
"cdf"
]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: [
"pac"
]
},
"application/x-nzb": {
source: "apache",
extensions: [
"nzb"
]
},
"application/x-perl": {
source: "nginx",
extensions: [
"pl",
"pm"
]
},
"application/x-pilot": {
source: "nginx",
extensions: [
"prc",
"pdb"
]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: [
"p12",
"pfx"
]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: [
"p7b",
"spc"
]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: [
"p7r"
]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: [
"rar"
]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: [
"rpm"
]
},
"application/x-research-info-systems": {
source: "apache",
extensions: [
"ris"
]
},
"application/x-sea": {
source: "nginx",
extensions: [
"sea"
]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: [
"sh"
]
},
"application/x-shar": {
source: "apache",
extensions: [
"shar"
]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: [
"swf"
]
},
"application/x-silverlight-app": {
source: "apache",
extensions: [
"xap"
]
},
"application/x-sql": {
source: "apache",
extensions: [
"sql"
]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: [
"sit"
]
},
"application/x-stuffitx": {
source: "apache",
extensions: [
"sitx"
]
},
"application/x-subrip": {
source: "apache",
extensions: [
"srt"
]
},
"application/x-sv4cpio": {
source: "apache",
extensions: [
"sv4cpio"
]
},
"application/x-sv4crc": {
source: "apache",
extensions: [
"sv4crc"
]
},
"application/x-t3vm-image": {
source: "apache",
extensions: [
"t3"
]
},
"application/x-tads": {
source: "apache",
extensions: [
"gam"
]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: [
"tar"
]
},
"application/x-tcl": {
source: "apache",
extensions: [
"tcl",
"tk"
]
},
"application/x-tex": {
source: "apache",
extensions: [
"tex"
]
},
"application/x-tex-tfm": {
source: "apache",
extensions: [
"tfm"
]
},
"application/x-texinfo": {
source: "apache",
extensions: [
"texinfo",
"texi"
]
},
"application/x-tgif": {
source: "apache",
extensions: [
"obj"
]
},
"application/x-ustar": {
source: "apache",
extensions: [
"ustar"
]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: [
"hdd"
]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: [
"ova"
]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: [
"ovf"
]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: [
"vbox"
]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: [
"vbox-extpack"
]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: [
"vdi"
]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: [
"vhd"
]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: [
"vmdk"
]
},
"application/x-wais-source": {
source: "apache",
extensions: [
"src"
]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: [
"webapp"
]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: [
"der",
"crt",
"pem"
]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: [
"fig"
]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: [
"xlf"
]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: [
"xpi"
]
},
"application/x-xz": {
source: "apache",
extensions: [
"xz"
]
},
"application/x-zmachine": {
source: "apache",
extensions: [
"z1",
"z2",
"z3",
"z4",
"z5",
"z6",
"z7",
"z8"
]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: [
"xaml"
]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: [
"xav"
]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: [
"xca"
]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: [
"xdf"
]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: [
"xel"
]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: [
"xns"
]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: [
"xenc"
]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: [
"xhtml",
"xht"
]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: [
"xlf"
]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: [
"xml",
"xsl",
"xsd",
"rng"
]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: [
"dtd"
]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: [
"xop"
]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: [
"xpl"
]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: [
"xsl",
"xslt"
]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: [
"xspf"
]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: [
"mxml",
"xhvml",
"xvml",
"xvm"
]
},
"application/yang": {
source: "iana",
extensions: [
"yang"
]
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: [
"yin"
]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: [
"zip"
]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: [
"3gpp"
]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana"
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: [
"adp"
]
},
"audio/amr": {
source: "iana",
extensions: [
"amr"
]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: [
"au",
"snd"
]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: [
"mid",
"midi",
"kar",
"rmi"
]
},
"audio/mobile-xmf": {
source: "iana",
extensions: [
"mxmf"
]
},
"audio/mp3": {
compressible: false,
extensions: [
"mp3"
]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: [
"m4a",
"mp4a"
]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: [
"mpga",
"mp2",
"mp2a",
"mp3",
"m2a",
"m3a"
]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: [
"oga",
"ogg",
"spx",
"opus"
]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: [
"s3m"
]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: [
"sil"
]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: [
"uva",
"uvva"
]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: [
"eol"
]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: [
"dra"
]
},
"audio/vnd.dts": {
source: "iana",
extensions: [
"dts"
]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: [
"dtshd"
]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: [
"lvp"
]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: [
"pya"
]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: [
"ecelp4800"
]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: [
"ecelp7470"
]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: [
"ecelp9600"
]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "iana"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: [
"rip"
]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: [
"wav"
]
},
"audio/wave": {
compressible: false,
extensions: [
"wav"
]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: [
"weba"
]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: [
"aac"
]
},
"audio/x-aiff": {
source: "apache",
extensions: [
"aif",
"aiff",
"aifc"
]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: [
"caf"
]
},
"audio/x-flac": {
source: "apache",
extensions: [
"flac"
]
},
"audio/x-m4a": {
source: "nginx",
extensions: [
"m4a"
]
},
"audio/x-matroska": {
source: "apache",
extensions: [
"mka"
]
},
"audio/x-mpegurl": {
source: "apache",
extensions: [
"m3u"
]
},
"audio/x-ms-wax": {
source: "apache",
extensions: [
"wax"
]
},
"audio/x-ms-wma": {
source: "apache",
extensions: [
"wma"
]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: [
"ram",
"ra"
]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: [
"rmp"
]
},
"audio/x-realaudio": {
source: "nginx",
extensions: [
"ra"
]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: [
"wav"
]
},
"audio/xm": {
source: "apache",
extensions: [
"xm"
]
},
"chemical/x-cdx": {
source: "apache",
extensions: [
"cdx"
]
},
"chemical/x-cif": {
source: "apache",
extensions: [
"cif"
]
},
"chemical/x-cmdf": {
source: "apache",
extensions: [
"cmdf"
]
},
"chemical/x-cml": {
source: "apache",
extensions: [
"cml"
]
},
"chemical/x-csml": {
source: "apache",
extensions: [
"csml"
]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: [
"xyz"
]
},
"font/collection": {
source: "iana",
extensions: [
"ttc"
]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: [
"otf"
]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: [
"ttf"
]
},
"font/woff": {
source: "iana",
extensions: [
"woff"
]
},
"font/woff2": {
source: "iana",
extensions: [
"woff2"
]
},
"image/aces": {
source: "iana",
extensions: [
"exr"
]
},
"image/apng": {
compressible: false,
extensions: [
"apng"
]
},
"image/avci": {
source: "iana",
extensions: [
"avci"
]
},
"image/avcs": {
source: "iana",
extensions: [
"avcs"
]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: [
"avif"
]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: [
"bmp"
]
},
"image/cgm": {
source: "iana",
extensions: [
"cgm"
]
},
"image/dicom-rle": {
source: "iana",
extensions: [
"drle"
]
},
"image/emf": {
source: "iana",
extensions: [
"emf"
]
},
"image/fits": {
source: "iana",
extensions: [
"fits"
]
},
"image/g3fax": {
source: "iana",
extensions: [
"g3"
]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: [
"gif"
]
},
"image/heic": {
source: "iana",
extensions: [
"heic"
]
},
"image/heic-sequence": {
source: "iana",
extensions: [
"heics"
]
},
"image/heif": {
source: "iana",
extensions: [
"heif"
]
},
"image/heif-sequence": {
source: "iana",
extensions: [
"heifs"
]
},
"image/hej2k": {
source: "iana",
extensions: [
"hej2"
]
},
"image/hsj2": {
source: "iana",
extensions: [
"hsj2"
]
},
"image/ief": {
source: "iana",
extensions: [
"ief"
]
},
"image/jls": {
source: "iana",
extensions: [
"jls"
]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: [
"jp2",
"jpg2"
]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: [
"jpeg",
"jpg",
"jpe"
]
},
"image/jph": {
source: "iana",
extensions: [
"jph"
]
},
"image/jphc": {
source: "iana",
extensions: [
"jhc"
]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: [
"jpm"
]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: [
"jpx",
"jpf"
]
},
"image/jxr": {
source: "iana",
extensions: [
"jxr"
]
},
"image/jxra": {
source: "iana",
extensions: [
"jxra"
]
},
"image/jxrs": {
source: "iana",
extensions: [
"jxrs"
]
},
"image/jxs": {
source: "iana",
extensions: [
"jxs"
]
},
"image/jxsc": {
source: "iana",
extensions: [
"jxsc"
]
},
"image/jxsi": {
source: "iana",
extensions: [
"jxsi"
]
},
"image/jxss": {
source: "iana",
extensions: [
"jxss"
]
},
"image/ktx": {
source: "iana",
extensions: [
"ktx"
]
},
"image/ktx2": {
source: "iana",
extensions: [
"ktx2"
]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false
},
"image/png": {
source: "iana",
compressible: false,
extensions: [
"png"
]
},
"image/prs.btif": {
source: "iana",
extensions: [
"btif"
]
},
"image/prs.pti": {
source: "iana",
extensions: [
"pti"
]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: [
"sgi"
]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: [
"svg",
"svgz"
]
},
"image/t38": {
source: "iana",
extensions: [
"t38"
]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: [
"tif",
"tiff"
]
},
"image/tiff-fx": {
source: "iana",
extensions: [
"tfx"
]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: [
"psd"
]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: [
"azv"
]
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: [
"uvi",
"uvvi",
"uvg",
"uvvg"
]
},
"image/vnd.djvu": {
source: "iana",
extensions: [
"djvu",
"djv"
]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: [
"sub"
]
},
"image/vnd.dwg": {
source: "iana",
extensions: [
"dwg"
]
},
"image/vnd.dxf": {
source: "iana",
extensions: [
"dxf"
]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: [
"fbs"
]
},
"image/vnd.fpx": {
source: "iana",
extensions: [
"fpx"
]
},
"image/vnd.fst": {
source: "iana",
extensions: [
"fst"
]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: [
"mmr"
]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: [
"rlc"
]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: [
"ico"
]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: [
"dds"
]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: [
"mdi"
]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: [
"wdp"
]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: [
"npx"
]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: [
"b16"
]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: [
"tap"
]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: [
"vtf"
]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: [
"wbmp"
]
},
"image/vnd.xiff": {
source: "iana",
extensions: [
"xif"
]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: [
"pcx"
]
},
"image/webp": {
source: "apache",
extensions: [
"webp"
]
},
"image/wmf": {
source: "iana",
extensions: [
"wmf"
]
},
"image/x-3ds": {
source: "apache",
extensions: [
"3ds"
]
},
"image/x-cmu-raster": {
source: "apache",
extensions: [
"ras"
]
},
"image/x-cmx": {
source: "apache",
extensions: [
"cmx"
]
},
"image/x-freehand": {
source: "apache",
extensions: [
"fh",
"fhc",
"fh4",
"fh5",
"fh7"
]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: [
"ico"
]
},
"image/x-jng": {
source: "nginx",
extensions: [
"jng"
]
},
"image/x-mrsid-image": {
source: "apache",
extensions: [
"sid"
]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: [
"bmp"
]
},
"image/x-pcx": {
source: "apache",
extensions: [
"pcx"
]
},
"image/x-pict": {
source: "apache",
extensions: [
"pic",
"pct"
]
},
"image/x-portable-anymap": {
source: "apache",
extensions: [
"pnm"
]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: [
"pbm"
]
},
"image/x-portable-graymap": {
source: "apache",
extensions: [
"pgm"
]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: [
"ppm"
]
},
"image/x-rgb": {
source: "apache",
extensions: [
"rgb"
]
},
"image/x-tga": {
source: "apache",
extensions: [
"tga"
]
},
"image/x-xbitmap": {
source: "apache",
extensions: [
"xbm"
]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: [
"xpm"
]
},
"image/x-xwindowdump": {
source: "apache",
extensions: [
"xwd"
]
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: [
"u8msg"
]
},
"message/global-delivery-status": {
source: "iana",
extensions: [
"u8dsn"
]
},
"message/global-disposition-notification": {
source: "iana",
extensions: [
"u8mdn"
]
},
"message/global-headers": {
source: "iana",
extensions: [
"u8hdr"
]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/news": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: [
"eml",
"mime"
]
},
"message/s-http": {
source: "iana"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "iana"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: [
"wsc"
]
},
"model/3mf": {
source: "iana",
extensions: [
"3mf"
]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: [
"gltf"
]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: [
"glb"
]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: [
"igs",
"iges"
]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: [
"msh",
"mesh",
"silo"
]
},
"model/mtl": {
source: "iana",
extensions: [
"mtl"
]
},
"model/obj": {
source: "iana",
extensions: [
"obj"
]
},
"model/step": {
source: "iana"
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: [
"stpx"
]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: [
"stpz"
]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: [
"stpxz"
]
},
"model/stl": {
source: "iana",
extensions: [
"stl"
]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: [
"dae"
]
},
"model/vnd.dwf": {
source: "iana",
extensions: [
"dwf"
]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: [
"gdl"
]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: [
"gtw"
]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: [
"mts"
]
},
"model/vnd.opengex": {
source: "iana",
extensions: [
"ogex"
]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: [
"x_b"
]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: [
"x_t"
]
},
"model/vnd.pytha.pyox": {
source: "iana"
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: [
"vds"
]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: [
"usdz"
]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: [
"bsp"
]
},
"model/vnd.vtu": {
source: "iana",
extensions: [
"vtu"
]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: [
"wrl",
"vrml"
]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: [
"x3db",
"x3dbz"
]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: [
"x3db"
]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: [
"x3dv",
"x3dvz"
]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: [
"x3d",
"x3dz"
]
},
"model/x3d-vrml": {
source: "iana",
extensions: [
"x3dv"
]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: [
"appcache",
"manifest"
]
},
"text/calendar": {
source: "iana",
extensions: [
"ics",
"ifb"
]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: [
"coffee",
"litcoffee"
]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"css"
]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: [
"csv"
]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "iana"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: [
"html",
"htm",
"shtml"
]
},
"text/jade": {
extensions: [
"jade"
]
},
"text/javascript": {
source: "iana",
compressible: true
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: [
"jsx"
]
},
"text/less": {
compressible: true,
extensions: [
"less"
]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: [
"markdown",
"md"
]
},
"text/mathml": {
source: "nginx",
extensions: [
"mml"
]
},
"text/mdx": {
compressible: true,
extensions: [
"mdx"
]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"n3"
]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: [
"txt",
"text",
"conf",
"def",
"list",
"log",
"in",
"ini"
]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: [
"dsc"
]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: [
"rtx"
]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: [
"rtf"
]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: [
"sgml",
"sgm"
]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: [
"shex"
]
},
"text/slim": {
extensions: [
"slim",
"slm"
]
},
"text/spdx": {
source: "iana",
extensions: [
"spdx"
]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: [
"stylus",
"styl"
]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: [
"tsv"
]
},
"text/troff": {
source: "iana",
extensions: [
"t",
"tr",
"roff",
"man",
"me",
"ms"
]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: [
"ttl"
]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: [
"uri",
"uris",
"urls"
]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: [
"vcard"
]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: [
"curl"
]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: [
"dcurl"
]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: [
"mcurl"
]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: [
"scurl"
]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: [
"sub"
]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: [
"ged"
]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: [
"fly"
]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: [
"flx"
]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: [
"gv"
]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: [
"3dml"
]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: [
"spot"
]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "iana"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: [
"jad"
]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: [
"wml"
]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: [
"wmls"
]
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: [
"vtt"
]
},
"text/x-asm": {
source: "apache",
extensions: [
"s",
"asm"
]
},
"text/x-c": {
source: "apache",
extensions: [
"c",
"cc",
"cxx",
"cpp",
"h",
"hh",
"dic"
]
},
"text/x-component": {
source: "nginx",
extensions: [
"htc"
]
},
"text/x-fortran": {
source: "apache",
extensions: [
"f",
"for",
"f77",
"f90"
]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: [
"hbs"
]
},
"text/x-java-source": {
source: "apache",
extensions: [
"java"
]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: [
"lua"
]
},
"text/x-markdown": {
compressible: true,
extensions: [
"mkd"
]
},
"text/x-nfo": {
source: "apache",
extensions: [
"nfo"
]
},
"text/x-opml": {
source: "apache",
extensions: [
"opml"
]
},
"text/x-org": {
compressible: true,
extensions: [
"org"
]
},
"text/x-pascal": {
source: "apache",
extensions: [
"p",
"pas"
]
},
"text/x-processing": {
compressible: true,
extensions: [
"pde"
]
},
"text/x-sass": {
extensions: [
"sass"
]
},
"text/x-scss": {
extensions: [
"scss"
]
},
"text/x-setext": {
source: "apache",
extensions: [
"etx"
]
},
"text/x-sfv": {
source: "apache",
extensions: [
"sfv"
]
},
"text/x-suse-ymp": {
compressible: true,
extensions: [
"ymp"
]
},
"text/x-uuencode": {
source: "apache",
extensions: [
"uu"
]
},
"text/x-vcalendar": {
source: "apache",
extensions: [
"vcs"
]
},
"text/x-vcard": {
source: "apache",
extensions: [
"vcf"
]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: [
"xml"
]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: [
"yaml",
"yml"
]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: [
"3gp",
"3gpp"
]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: [
"3g2"
]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: [
"h261"
]
},
"video/h263": {
source: "iana",
extensions: [
"h263"
]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: [
"h264"
]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: [
"m4s"
]
},
"video/jpeg": {
source: "iana",
extensions: [
"jpgv"
]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: [
"jpm",
"jpgm"
]
},
"video/jxsv": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: [
"mj2",
"mjp2"
]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: [
"ts"
]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: [
"mp4",
"mp4v",
"mpg4"
]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: [
"mpeg",
"mpg",
"mpe",
"m1v",
"m2v"
]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: [
"ogv"
]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: [
"qt",
"mov"
]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: [
"uvh",
"uvvh"
]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: [
"uvm",
"uvvm"
]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: [
"uvp",
"uvvp"
]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: [
"uvs",
"uvvs"
]
},
"video/vnd.dece.video": {
source: "iana",
extensions: [
"uvv",
"uvvv"
]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: [
"dvb"
]
},
"video/vnd.fvt": {
source: "iana",
extensions: [
"fvt"
]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: [
"mxu",
"m4u"
]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: [
"pyv"
]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "iana"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: [
"uvu",
"uvvu"
]
},
"video/vnd.vivo": {
source: "iana",
extensions: [
"viv"
]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: [
"webm"
]
},
"video/x-f4v": {
source: "apache",
extensions: [
"f4v"
]
},
"video/x-fli": {
source: "apache",
extensions: [
"fli"
]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: [
"flv"
]
},
"video/x-m4v": {
source: "apache",
extensions: [
"m4v"
]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: [
"mkv",
"mk3d",
"mks"
]
},
"video/x-mng": {
source: "apache",
extensions: [
"mng"
]
},
"video/x-ms-asf": {
source: "apache",
extensions: [
"asf",
"asx"
]
},
"video/x-ms-vob": {
source: "apache",
extensions: [
"vob"
]
},
"video/x-ms-wm": {
source: "apache",
extensions: [
"wm"
]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: [
"wmv"
]
},
"video/x-ms-wmx": {
source: "apache",
extensions: [
"wmx"
]
},
"video/x-ms-wvx": {
source: "apache",
extensions: [
"wvx"
]
},
"video/x-msvideo": {
source: "apache",
extensions: [
"avi"
]
},
"video/x-sgi-movie": {
source: "apache",
extensions: [
"movie"
]
},
"video/x-smv": {
source: "apache",
extensions: [
"smv"
]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: [
"ice"
]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
var mimeDb;
var hasRequiredMimeDb;
function requireMimeDb () {
if (hasRequiredMimeDb) return mimeDb;
hasRequiredMimeDb = 1;
/*!
* mime-db
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015-2022 Douglas Christopher Wilson
* MIT Licensed
*/
mimeDb = require$$0;
return mimeDb;
}
var hasRequiredMimeTypes;
function requireMimeTypes () {
if (hasRequiredMimeTypes) return mimeTypes;
hasRequiredMimeTypes = 1;
(function (exports) {
/*!
* mime-types
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
var db = requireMimeDb();
var extname = require$$1$2.extname;
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports.charset = charset;
exports.charsets = { lookup: charset };
exports.contentType = contentType;
exports.extension = extension;
exports.extensions = /* @__PURE__ */ Object.create(null);
exports.lookup = lookup;
exports.types = /* @__PURE__ */ Object.create(null);
populateMaps(exports.extensions, exports.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
function contentType(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().substr(1);
if (!extension2) {
return false;
}
return exports.types[extension2] || false;
}
function populateMaps(extensions, types) {
var preference = ["nginx", "apache", void 0, "iana"];
Object.keys(db).forEach(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
if (types[extension2]) {
var from = preference.indexOf(db[types[extension2]].source);
var to = preference.indexOf(mime.source);
if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) {
continue;
}
}
types[extension2] = type;
}
});
}
} (mimeTypes));
return mimeTypes;
}
var hasRequiredTypeIs;
function requireTypeIs () {
if (hasRequiredTypeIs) return typeIs.exports;
hasRequiredTypeIs = 1;
/*!
* type-is
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*/
var typer = requireMediaTyper();
var mime = requireMimeTypes();
typeIs.exports = typeofrequest;
typeIs.exports.is = typeis;
typeIs.exports.hasBody = hasbody;
typeIs.exports.normalize = normalize;
typeIs.exports.match = mimeMatch;
function typeis(value, types_) {
var i;
var types = types_;
var val = tryNormalizeType(value);
if (!val) {
return false;
}
if (types && !Array.isArray(types)) {
types = new Array(arguments.length - 1);
for (i = 0; i < types.length; i++) {
types[i] = arguments[i + 1];
}
}
if (!types || !types.length) {
return val;
}
var type;
for (i = 0; i < types.length; i++) {
if (mimeMatch(normalize(type = types[i]), val)) {
return type[0] === "+" || type.indexOf("*") !== -1 ? val : type;
}
}
return false;
}
function hasbody(req) {
return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]);
}
function typeofrequest(req, types_) {
var types = types_;
if (!hasbody(req)) {
return null;
}
if (arguments.length > 2) {
types = new Array(arguments.length - 1);
for (var i = 0; i < types.length; i++) {
types[i] = arguments[i + 1];
}
}
var value = req.headers["content-type"];
return typeis(value, types);
}
function normalize(type) {
if (typeof type !== "string") {
return false;
}
switch (type) {
case "urlencoded":
return "application/x-www-form-urlencoded";
case "multipart":
return "multipart/*";
}
if (type[0] === "+") {
return "*/*" + type;
}
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
function mimeMatch(expected, actual) {
if (expected === false) {
return false;
}
var actualParts = actual.split("/");
var expectedParts = expected.split("/");
if (actualParts.length !== 2 || expectedParts.length !== 2) {
return false;
}
if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) {
return false;
}
if (expectedParts[1].substr(0, 2) === "*+") {
return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length);
}
if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) {
return false;
}
return true;
}
function normalizeType(value) {
var type = typer.parse(value);
type.parameters = void 0;
return typer.format(type);
}
function tryNormalizeType(value) {
if (!value) {
return null;
}
try {
return normalizeType(value);
} catch (err) {
return null;
}
}
return typeIs.exports;
}
var negotiator = {exports: {}};
var charset = {exports: {}};
var hasRequiredCharset;
function requireCharset () {
if (hasRequiredCharset) return charset.exports;
hasRequiredCharset = 1;
charset.exports = preferredCharsets;
charset.exports.preferredCharsets = preferredCharsets;
var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
function parseAcceptCharset(accept) {
var accepts = accept.split(",");
for (var i = 0, j = 0; i < accepts.length; i++) {
var charset = parseCharset(accepts[i].trim(), i);
if (charset) {
accepts[j++] = charset;
}
}
accepts.length = j;
return accepts;
}
function parseCharset(str, i) {
var match = simpleCharsetRegExp.exec(str);
if (!match) return null;
var charset = match[1];
var q = 1;
if (match[2]) {
var params = match[2].split(";");
for (var j = 0; j < params.length; j++) {
var p = params[j].trim().split("=");
if (p[0] === "q") {
q = parseFloat(p[1]);
break;
}
}
}
return {
charset,
q,
i
};
}
function getCharsetPriority(charset, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(charset, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(charset, spec, index) {
var s = 0;
if (spec.charset.toLowerCase() === charset.toLowerCase()) {
s |= 1;
} else if (spec.charset !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredCharsets(accept, provided) {
var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset);
}
var priorities = provided.map(function getPriority(type, index) {
return getCharsetPriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullCharset(spec) {
return spec.charset;
}
function isQuality(spec) {
return spec.q > 0;
}
return charset.exports;
}
var encoding = {exports: {}};
var hasRequiredEncoding;
function requireEncoding () {
if (hasRequiredEncoding) return encoding.exports;
hasRequiredEncoding = 1;
encoding.exports = preferredEncodings;
encoding.exports.preferredEncodings = preferredEncodings;
var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
function parseAcceptEncoding(accept) {
var accepts = accept.split(",");
var hasIdentity = false;
var minQuality = 1;
for (var i = 0, j = 0; i < accepts.length; i++) {
var encoding = parseEncoding(accepts[i].trim(), i);
if (encoding) {
accepts[j++] = encoding;
hasIdentity = hasIdentity || specify("identity", encoding);
minQuality = Math.min(minQuality, encoding.q || 1);
}
}
if (!hasIdentity) {
accepts[j++] = {
encoding: "identity",
q: minQuality,
i
};
}
accepts.length = j;
return accepts;
}
function parseEncoding(str, i) {
var match = simpleEncodingRegExp.exec(str);
if (!match) return null;
var encoding = match[1];
var q = 1;
if (match[2]) {
var params = match[2].split(";");
for (var j = 0; j < params.length; j++) {
var p = params[j].trim().split("=");
if (p[0] === "q") {
q = parseFloat(p[1]);
break;
}
}
}
return {
encoding,
q,
i
};
}
function getEncodingPriority(encoding, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(encoding, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(encoding, spec, index) {
var s = 0;
if (spec.encoding.toLowerCase() === encoding.toLowerCase()) {
s |= 1;
} else if (spec.encoding !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredEncodings(accept, provided) {
var accepts = parseAcceptEncoding(accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullEncoding);
}
var priorities = provided.map(function getPriority(type, index) {
return getEncodingPriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullEncoding(spec) {
return spec.encoding;
}
function isQuality(spec) {
return spec.q > 0;
}
return encoding.exports;
}
var language = {exports: {}};
var hasRequiredLanguage;
function requireLanguage () {
if (hasRequiredLanguage) return language.exports;
hasRequiredLanguage = 1;
language.exports = preferredLanguages;
language.exports.preferredLanguages = preferredLanguages;
var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
function parseAcceptLanguage(accept) {
var accepts = accept.split(",");
for (var i = 0, j = 0; i < accepts.length; i++) {
var language = parseLanguage(accepts[i].trim(), i);
if (language) {
accepts[j++] = language;
}
}
accepts.length = j;
return accepts;
}
function parseLanguage(str, i) {
var match = simpleLanguageRegExp.exec(str);
if (!match) return null;
var prefix = match[1];
var suffix = match[2];
var full = prefix;
if (suffix) full += "-" + suffix;
var q = 1;
if (match[3]) {
var params = match[3].split(";");
for (var j = 0; j < params.length; j++) {
var p = params[j].split("=");
if (p[0] === "q") q = parseFloat(p[1]);
}
}
return {
prefix,
suffix,
q,
i,
full
};
}
function getLanguagePriority(language, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(language, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(language, spec, index) {
var p = parseLanguage(language);
if (!p) return null;
var s = 0;
if (spec.full.toLowerCase() === p.full.toLowerCase()) {
s |= 4;
} else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
s |= 2;
} else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
s |= 1;
} else if (spec.full !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredLanguages(accept, provided) {
var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage);
}
var priorities = provided.map(function getPriority(type, index) {
return getLanguagePriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullLanguage(spec) {
return spec.full;
}
function isQuality(spec) {
return spec.q > 0;
}
return language.exports;
}
var mediaType = {exports: {}};
var hasRequiredMediaType;
function requireMediaType () {
if (hasRequiredMediaType) return mediaType.exports;
hasRequiredMediaType = 1;
mediaType.exports = preferredMediaTypes;
mediaType.exports.preferredMediaTypes = preferredMediaTypes;
var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
function parseAccept(accept) {
var accepts = splitMediaTypes(accept);
for (var i = 0, j = 0; i < accepts.length; i++) {
var mediaType = parseMediaType(accepts[i].trim(), i);
if (mediaType) {
accepts[j++] = mediaType;
}
}
accepts.length = j;
return accepts;
}
function parseMediaType(str, i) {
var match = simpleMediaTypeRegExp.exec(str);
if (!match) return null;
var params = /* @__PURE__ */ Object.create(null);
var q = 1;
var subtype = match[2];
var type = match[1];
if (match[3]) {
var kvps = splitParameters(match[3]).map(splitKeyValuePair);
for (var j = 0; j < kvps.length; j++) {
var pair = kvps[j];
var key = pair[0].toLowerCase();
var val = pair[1];
var value = val && val[0] === '"' && val[val.length - 1] === '"' ? val.substr(1, val.length - 2) : val;
if (key === "q") {
q = parseFloat(value);
break;
}
params[key] = value;
}
}
return {
type,
subtype,
params,
q,
i
};
}
function getMediaTypePriority(type, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(type, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
function specify(type, spec, index) {
var p = parseMediaType(type);
var s = 0;
if (!p) {
return null;
}
if (spec.type.toLowerCase() == p.type.toLowerCase()) {
s |= 4;
} else if (spec.type != "*") {
return null;
}
if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
s |= 2;
} else if (spec.subtype != "*") {
return null;
}
var keys = Object.keys(spec.params);
if (keys.length > 0) {
if (keys.every(function(k) {
return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase();
})) {
s |= 1;
} else {
return null;
}
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
function preferredMediaTypes(accept, provided) {
var accepts = parseAccept(accept === void 0 ? "*/*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
}
var priorities = provided.map(function getPriority(type, index) {
return getMediaTypePriority(type, accepts, index);
});
return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) {
return provided[priorities.indexOf(priority)];
});
}
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
function getFullType(spec) {
return spec.type + "/" + spec.subtype;
}
function isQuality(spec) {
return spec.q > 0;
}
function quoteCount(string) {
var count = 0;
var index = 0;
while ((index = string.indexOf('"', index)) !== -1) {
count++;
index++;
}
return count;
}
function splitKeyValuePair(str) {
var index = str.indexOf("=");
var key;
var val;
if (index === -1) {
key = str;
} else {
key = str.substr(0, index);
val = str.substr(index + 1);
}
return [key, val];
}
function splitMediaTypes(accept) {
var accepts = accept.split(",");
for (var i = 1, j = 0; i < accepts.length; i++) {
if (quoteCount(accepts[j]) % 2 == 0) {
accepts[++j] = accepts[i];
} else {
accepts[j] += "," + accepts[i];
}
}
accepts.length = j + 1;
return accepts;
}
function splitParameters(str) {
var parameters = str.split(";");
for (var i = 1, j = 0; i < parameters.length; i++) {
if (quoteCount(parameters[j]) % 2 == 0) {
parameters[++j] = parameters[i];
} else {
parameters[j] += ";" + parameters[i];
}
}
parameters.length = j + 1;
for (var i = 0; i < parameters.length; i++) {
parameters[i] = parameters[i].trim();
}
return parameters;
}
return mediaType.exports;
}
var hasRequiredNegotiator;
function requireNegotiator () {
if (hasRequiredNegotiator) return negotiator.exports;
hasRequiredNegotiator = 1;
/*!
* negotiator
* Copyright(c) 2012 Federico Romero
* Copyright(c) 2012-2014 Isaac Z. Schlueter
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
var preferredCharsets = requireCharset();
var preferredEncodings = requireEncoding();
var preferredLanguages = requireLanguage();
var preferredMediaTypes = requireMediaType();
negotiator.exports = Negotiator;
negotiator.exports.Negotiator = Negotiator;
function Negotiator(request) {
if (!(this instanceof Negotiator)) {
return new Negotiator(request);
}
this.request = request;
}
Negotiator.prototype.charset = function charset(available) {
var set = this.charsets(available);
return set && set[0];
};
Negotiator.prototype.charsets = function charsets(available) {
return preferredCharsets(this.request.headers["accept-charset"], available);
};
Negotiator.prototype.encoding = function encoding(available) {
var set = this.encodings(available);
return set && set[0];
};
Negotiator.prototype.encodings = function encodings(available) {
return preferredEncodings(this.request.headers["accept-encoding"], available);
};
Negotiator.prototype.language = function language(available) {
var set = this.languages(available);
return set && set[0];
};
Negotiator.prototype.languages = function languages(available) {
return preferredLanguages(this.request.headers["accept-language"], available);
};
Negotiator.prototype.mediaType = function mediaType(available) {
var set = this.mediaTypes(available);
return set && set[0];
};
Negotiator.prototype.mediaTypes = function mediaTypes(available) {
return preferredMediaTypes(this.request.headers.accept, available);
};
Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
return negotiator.exports;
}
var accepts;
var hasRequiredAccepts;
function requireAccepts () {
if (hasRequiredAccepts) return accepts;
hasRequiredAccepts = 1;
/*!
* accepts
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
var Negotiator = requireNegotiator();
var mime = requireMimeTypes();
accepts = Accepts;
function Accepts(req) {
if (!(this instanceof Accepts)) {
return new Accepts(req);
}
this.headers = req.headers;
this.negotiator = new Negotiator(req);
}
Accepts.prototype.type = Accepts.prototype.types = function(types_) {
var types = types_;
if (types && !Array.isArray(types)) {
types = new Array(arguments.length);
for (var i = 0; i < types.length; i++) {
types[i] = arguments[i];
}
}
if (!types || types.length === 0) {
return this.negotiator.mediaTypes();
}
if (!this.headers.accept) {
return types[0];
}
var mimes = types.map(extToMime);
var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
var first = accepts[0];
return first ? types[mimes.indexOf(first)] : false;
};
Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) {
var encodings = encodings_;
if (encodings && !Array.isArray(encodings)) {
encodings = new Array(arguments.length);
for (var i = 0; i < encodings.length; i++) {
encodings[i] = arguments[i];
}
}
if (!encodings || encodings.length === 0) {
return this.negotiator.encodings();
}
return this.negotiator.encodings(encodings)[0] || false;
};
Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) {
var charsets = charsets_;
if (charsets && !Array.isArray(charsets)) {
charsets = new Array(arguments.length);
for (var i = 0; i < charsets.length; i++) {
charsets[i] = arguments[i];
}
}
if (!charsets || charsets.length === 0) {
return this.negotiator.charsets();
}
return this.negotiator.charsets(charsets)[0] || false;
};
Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) {
var languages = languages_;
if (languages && !Array.isArray(languages)) {
languages = new Array(arguments.length);
for (var i = 0; i < languages.length; i++) {
languages[i] = arguments[i];
}
}
if (!languages || languages.length === 0) {
return this.negotiator.languages();
}
return this.negotiator.languages(languages)[0] || false;
};
function extToMime(type) {
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
function validMime(type) {
return typeof type === "string";
}
return accepts;
}
var rangeParser_1;
var hasRequiredRangeParser;
function requireRangeParser () {
if (hasRequiredRangeParser) return rangeParser_1;
hasRequiredRangeParser = 1;
/*!
* range-parser
* Copyright(c) 2012-2014 TJ Holowaychuk
* Copyright(c) 2015-2016 Douglas Christopher Wilson
* MIT Licensed
*/
rangeParser_1 = rangeParser;
function rangeParser(size, str, options) {
if (typeof str !== "string") {
throw new TypeError("argument str must be a string");
}
var index = str.indexOf("=");
if (index === -1) {
return -2;
}
var arr = str.slice(index + 1).split(",");
var ranges = [];
ranges.type = str.slice(0, index);
for (var i = 0; i < arr.length; i++) {
var range = arr[i].split("-");
var start = parseInt(range[0], 10);
var end = parseInt(range[1], 10);
if (isNaN(start)) {
start = size - end;
end = size - 1;
} else if (isNaN(end)) {
end = size - 1;
}
if (end > size - 1) {
end = size - 1;
}
if (isNaN(start) || isNaN(end) || start > end || start < 0) {
continue;
}
ranges.push({
start,
end
});
}
if (ranges.length < 1) {
return -1;
}
return options && options.combine ? combineRanges(ranges) : ranges;
}
function combineRanges(ranges) {
var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
for (var j = 0, i = 1; i < ordered.length; i++) {
var range = ordered[i];
var current = ordered[j];
if (range.start > current.end + 1) {
ordered[++j] = range;
} else if (range.end > current.end) {
current.end = range.end;
current.index = Math.min(current.index, range.index);
}
}
ordered.length = j + 1;
var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
combined.type = ranges.type;
return combined;
}
function mapWithIndex(range, index) {
return {
start: range.start,
end: range.end,
index
};
}
function mapWithoutIndex(range) {
return {
start: range.start,
end: range.end
};
}
function sortByRangeIndex(a, b) {
return a.index - b.index;
}
function sortByRangeStart(a, b) {
return a.start - b.start;
}
return rangeParser_1;
}
var utils = {};
var hasRequiredUtils;
function requireUtils () {
if (hasRequiredUtils) return utils;
hasRequiredUtils = 1;
utils.convertKeysToLowerCase = (map) => {
const newMap = {};
for (const key in map) {
if ({}.hasOwnProperty.call(map, key)) {
newMap[key.toLowerCase()] = map[key];
}
}
return newMap;
};
return utils;
}
var headers;
var hasRequiredHeaders;
function requireHeaders () {
if (hasRequiredHeaders) return headers;
hasRequiredHeaders = 1;
const utils = requireUtils();
const REFERER_HEADER_NAMES = ["referer", "referrer"];
function getHeaderValue(headers, name) {
const lowerName = name.toLowerCase();
return headers[Object.keys(headers).find((key) => {
const lowerKey = key.toLowerCase();
return lowerKey === lowerName || REFERER_HEADER_NAMES.includes(lowerKey) && REFERER_HEADER_NAMES.includes(lowerName);
})];
}
function createHeaders(headers = {}) {
return new Proxy(utils.convertKeysToLowerCase(headers), {
get(target, prop) {
switch (prop) {
case "get":
return (name) => getHeaderValue(target, name);
case "getAll":
return (name) => {
const value = getHeaderValue(target, name);
if (!value) {
return [];
}
return Array.isArray(value) ? value : [value];
};
case "has":
return (name) => getHeaderValue(target, name) !== void 0;
case "set":
return (name, value) => {
target[name.toLowerCase()] = value;
};
case "append":
return (name, value) => {
const lowerName = name.toLowerCase();
if (lowerName in target) {
const existingValue = target[lowerName];
if (Array.isArray(existingValue)) {
existingValue.push(value);
} else {
target[lowerName] = [existingValue, value];
}
} else {
target[lowerName] = value;
}
};
case "delete":
return (name) => {
delete target[name.toLowerCase()];
};
case "forEach":
return (callback, thisArg) => {
Object.entries(target).forEach(([key, value]) => {
callback.call(thisArg, value, key, target);
});
};
case "entries":
return () => Object.entries(target)[Symbol.iterator]();
case "keys":
return () => Object.keys(target)[Symbol.iterator]();
case "values":
return () => Object.values(target)[Symbol.iterator]();
case Symbol.iterator:
return target[Symbol.iterator] || function* iterator() {
yield* Object.entries(target);
};
default:
return typeof prop === "string" ? getHeaderValue(target, prop) : target[prop];
}
},
set(target, prop, value) {
if (typeof prop === "string") {
target[prop.toLowerCase()] = value;
return true;
}
return false;
},
has(target, prop) {
if (typeof prop === "string") {
return prop.toLowerCase() in target;
}
return prop in target;
},
deleteProperty(target, prop) {
if (typeof prop === "string") {
delete target[prop.toLowerCase()];
return true;
}
return delete target[prop];
},
ownKeys(target) {
return Object.keys(target);
},
getOwnPropertyDescriptor(target, prop) {
return Object.getOwnPropertyDescriptor(target, prop);
}
});
}
headers = { createHeaders, getHeaderValue };
return headers;
}
var hasRequiredMockRequest$1;
function requireMockRequest$1 () {
if (hasRequiredMockRequest$1) return mockRequest$1;
hasRequiredMockRequest$1 = 1;
const url = require$$0$3;
const typeis = requireTypeIs();
const accepts = requireAccepts();
const parseRange = requireRangeParser();
let { EventEmitter } = require$$1$1;
const querystring = require$$5;
const { createHeaders, getHeaderValue } = requireHeaders();
const standardRequestOptions = [
"method",
"url",
"originalUrl",
"baseUrl",
"path",
"params",
"session",
"cookies",
"headers",
"body",
"query",
"files"
];
function createRequest(options = {}) {
if (options.eventEmitter) {
EventEmitter = options.eventEmitter;
}
const mockRequest = Object.create(EventEmitter.prototype);
EventEmitter.call(mockRequest);
mockRequest.method = options.method ? options.method : "GET";
mockRequest.url = options.url || options.path || "";
mockRequest.originalUrl = options.originalUrl || mockRequest.url;
mockRequest.baseUrl = options.baseUrl || mockRequest.url;
mockRequest.path = options.path || (options.url ? url.parse(options.url).pathname : "");
mockRequest.params = options.params ? options.params : {};
if (options.session) {
mockRequest.session = options.session;
}
mockRequest.cookies = options.cookies ? options.cookies : {};
if (options.signedCookies) {
mockRequest.signedCookies = options.signedCookies;
}
mockRequest.headers = createHeaders(options.headers);
mockRequest.body = options.body ? options.body : {};
mockRequest.query = options.query ? options.query : {};
mockRequest.files = options.files ? options.files : {};
mockRequest.socket = options.socket ? options.socket : {};
mockRequest.ip = options.ip || "127.0.0.1";
mockRequest.ips = [mockRequest.ip];
mockRequest.destroy = () => {
};
if (Object.keys(mockRequest.query).length === 0) {
mockRequest.query = querystring.parse(mockRequest.url.split("?")[1]);
if (!mockRequest.query.hasOwnProperty) {
Object.defineProperty(mockRequest.query, "hasOwnProperty", {
enumerable: false,
value: Object.hasOwnProperty.bind(mockRequest.query)
});
}
}
for (const n in options) {
if (standardRequestOptions.indexOf(n) === -1) {
mockRequest[n] = options[n];
}
}
mockRequest.getHeader = function getHeader(name) {
return getHeaderValue(mockRequest.headers, name);
};
mockRequest.header = mockRequest.getHeader;
mockRequest.get = mockRequest.getHeader;
mockRequest.is = function isContentType(...args) {
let types = args;
if (Array.isArray(args[0])) {
types = args[0];
}
return typeis(mockRequest, types);
};
mockRequest.accepts = function acceptsTypes(types) {
const Accepts = accepts(mockRequest);
return Accepts.type(types);
};
mockRequest.acceptsEncodings = function acceptsEncodings(...args) {
let encodings = args;
if (Array.isArray(args[0])) {
encodings = args[0];
}
const accept = accepts(mockRequest);
return accept.encodings(encodings);
};
mockRequest.acceptsCharsets = function acceptsCharsets(...args) {
let charsets = args;
if (Array.isArray(args[0])) {
charsets = args[0];
}
const accept = accepts(mockRequest);
return accept.charsets(charsets);
};
mockRequest.acceptsLanguages = function acceptsLanguages(...args) {
let languages = args;
if (Array.isArray(args[0])) {
languages = args[0];
}
const accept = accepts(mockRequest);
return accept.languages(languages);
};
mockRequest.range = function isRange(size, opts) {
const range = mockRequest.get("Range");
if (!range) {
return void 0;
}
return parseRange(size, range, opts);
};
mockRequest.param = function param(parameterName, defaultValue) {
if ({}.hasOwnProperty.call(mockRequest.params, parameterName)) {
return mockRequest.params[parameterName];
}
if ({}.hasOwnProperty.call(mockRequest.body, parameterName)) {
return mockRequest.body[parameterName];
}
if ({}.hasOwnProperty.call(mockRequest.query, parameterName)) {
return mockRequest.query[parameterName];
}
return defaultValue;
};
mockRequest._setParameter = function _setParameter(key, value) {
mockRequest.params[key] = value;
};
mockRequest._setSessionVariable = function _setSessionVariable(variable, value) {
if (typeof mockRequest.session !== "object") {
mockRequest.session = {};
}
mockRequest.session[variable] = value;
};
mockRequest._setCookiesVariable = function _setCookiesVariable(variable, value) {
mockRequest.cookies[variable] = value;
};
mockRequest._setSignedCookiesVariable = function _setSignedCookiesVariable(variable, value) {
if (typeof mockRequest.signedCookies !== "object") {
mockRequest.signedCookies = {};
}
mockRequest.signedCookies[variable] = value;
};
mockRequest._setHeadersVariable = function _setHeadersVariable(variable, value) {
mockRequest.headers[variable] = value;
};
mockRequest._setFilesVariable = function _setFilesVariable(variable, value) {
mockRequest.files[variable] = value;
};
mockRequest._setMethod = function _setMethod(method) {
mockRequest.method = method;
};
mockRequest._setURL = function _setURL(value) {
mockRequest.url = value;
};
mockRequest._setBaseUrl = function _setBaseUrl(value) {
mockRequest.baseUrl = value;
};
mockRequest._setOriginalUrl = function _setOriginalUrl(value) {
mockRequest.originalUrl = value;
};
mockRequest._setBody = function _setBody(body) {
mockRequest.body = body;
};
mockRequest._addBody = function _addBody(key, value) {
mockRequest.body[key] = value;
};
mockRequest.send = function send(data) {
if (Buffer.isBuffer(data)) {
this.emit("data", data);
} else if (typeof data === "object" || typeof data === "number") {
this.emit("data", Buffer.from(JSON.stringify(data)));
} else if (typeof data === "string") {
this.emit("data", Buffer.from(data));
}
this.emit("end");
};
if (!mockRequest.hostname) {
mockRequest.hostname = function getHostname() {
if (!mockRequest.headers.host) {
return "";
}
const hostname = mockRequest.headers.host.split(":")[0].split(".");
return hostname.join(".");
}();
}
mockRequest.subdomains = function getSubdomains() {
if (!mockRequest.headers.host) {
return [];
}
const offset = 2;
const subdomains = mockRequest.headers.host.split(".").reverse();
return subdomains.slice(offset);
}();
mockRequest[Symbol.asyncIterator] = async function* asyncIterator() {
let ended = false;
let closed = false;
let error = null;
const chunks = [];
let resolvePromise = null;
const promiseExecutor = (resolve) => {
resolvePromise = resolve;
};
const promiseResolver = () => {
if (resolvePromise) {
resolvePromise();
resolvePromise = null;
}
};
const dataEventHandler = (chunk) => {
if (ended || closed || error) {
return;
}
chunks.push(chunk);
promiseResolver();
};
const endEventHandler = () => {
if (ended || closed || error) {
return;
}
ended = true;
promiseResolver();
};
const closeEventHandler = () => {
if (closed || error) {
return;
}
closed = true;
promiseResolver();
};
const errorEventHandler = (err) => {
if (closed || error) {
return;
}
error = err;
promiseResolver();
};
mockRequest.on("data", dataEventHandler);
mockRequest.on("end", endEventHandler);
mockRequest.on("close", closeEventHandler);
mockRequest.on("error", errorEventHandler);
setTimeout(() => {
this.emit("async_iterator");
});
try {
for (; ; ) {
await new Promise(promiseExecutor);
let i = 0;
for (; ; ) {
if (error) {
throw error;
}
if (closed) {
return;
}
const hasChunks = i < chunks.length;
if (!hasChunks) {
if (ended) {
return;
}
break;
}
const chunk = chunks[i];
chunks[i] = void 0;
i += 1;
yield chunk;
}
chunks.length = 0;
}
} finally {
chunks.length = 0;
error = null;
mockRequest.off("data", dataEventHandler);
mockRequest.off("end", endEventHandler);
mockRequest.off("close", closeEventHandler);
mockRequest.off("error", errorEventHandler);
}
};
return mockRequest;
}
mockRequest$1.createRequest = createRequest;
return mockRequest$1;
}
var mockResponse = {};
var require$$2 = {
"application/andrew-inset": [
"ez"
],
"application/applixware": [
"aw"
],
"application/atom+xml": [
"atom"
],
"application/atomcat+xml": [
"atomcat"
],
"application/atomsvc+xml": [
"atomsvc"
],
"application/bdoc": [
"bdoc"
],
"application/ccxml+xml": [
"ccxml"
],
"application/cdmi-capability": [
"cdmia"
],
"application/cdmi-container": [
"cdmic"
],
"application/cdmi-domain": [
"cdmid"
],
"application/cdmi-object": [
"cdmio"
],
"application/cdmi-queue": [
"cdmiq"
],
"application/cu-seeme": [
"cu"
],
"application/dash+xml": [
"mpd"
],
"application/davmount+xml": [
"davmount"
],
"application/docbook+xml": [
"dbk"
],
"application/dssc+der": [
"dssc"
],
"application/dssc+xml": [
"xdssc"
],
"application/ecmascript": [
"ecma"
],
"application/emma+xml": [
"emma"
],
"application/epub+zip": [
"epub"
],
"application/exi": [
"exi"
],
"application/font-tdpfr": [
"pfr"
],
"application/font-woff": [
],
"application/font-woff2": [
],
"application/geo+json": [
"geojson"
],
"application/gml+xml": [
"gml"
],
"application/gpx+xml": [
"gpx"
],
"application/gxf": [
"gxf"
],
"application/gzip": [
"gz"
],
"application/hyperstudio": [
"stk"
],
"application/inkml+xml": [
"ink",
"inkml"
],
"application/ipfix": [
"ipfix"
],
"application/java-archive": [
"jar",
"war",
"ear"
],
"application/java-serialized-object": [
"ser"
],
"application/java-vm": [
"class"
],
"application/javascript": [
"js",
"mjs"
],
"application/json": [
"json",
"map"
],
"application/json5": [
"json5"
],
"application/jsonml+json": [
"jsonml"
],
"application/ld+json": [
"jsonld"
],
"application/lost+xml": [
"lostxml"
],
"application/mac-binhex40": [
"hqx"
],
"application/mac-compactpro": [
"cpt"
],
"application/mads+xml": [
"mads"
],
"application/manifest+json": [
"webmanifest"
],
"application/marc": [
"mrc"
],
"application/marcxml+xml": [
"mrcx"
],
"application/mathematica": [
"ma",
"nb",
"mb"
],
"application/mathml+xml": [
"mathml"
],
"application/mbox": [
"mbox"
],
"application/mediaservercontrol+xml": [
"mscml"
],
"application/metalink+xml": [
"metalink"
],
"application/metalink4+xml": [
"meta4"
],
"application/mets+xml": [
"mets"
],
"application/mods+xml": [
"mods"
],
"application/mp21": [
"m21",
"mp21"
],
"application/mp4": [
"mp4s",
"m4p"
],
"application/msword": [
"doc",
"dot"
],
"application/mxf": [
"mxf"
],
"application/octet-stream": [
"bin",
"dms",
"lrf",
"mar",
"so",
"dist",
"distz",
"pkg",
"bpk",
"dump",
"elc",
"deploy",
"exe",
"dll",
"deb",
"dmg",
"iso",
"img",
"msi",
"msp",
"msm",
"buffer"
],
"application/oda": [
"oda"
],
"application/oebps-package+xml": [
"opf"
],
"application/ogg": [
"ogx"
],
"application/omdoc+xml": [
"omdoc"
],
"application/onenote": [
"onetoc",
"onetoc2",
"onetmp",
"onepkg"
],
"application/oxps": [
"oxps"
],
"application/patch-ops-error+xml": [
"xer"
],
"application/pdf": [
"pdf"
],
"application/pgp-encrypted": [
"pgp"
],
"application/pgp-signature": [
"asc",
"sig"
],
"application/pics-rules": [
"prf"
],
"application/pkcs10": [
"p10"
],
"application/pkcs7-mime": [
"p7m",
"p7c"
],
"application/pkcs7-signature": [
"p7s"
],
"application/pkcs8": [
"p8"
],
"application/pkix-attr-cert": [
"ac"
],
"application/pkix-cert": [
"cer"
],
"application/pkix-crl": [
"crl"
],
"application/pkix-pkipath": [
"pkipath"
],
"application/pkixcmp": [
"pki"
],
"application/pls+xml": [
"pls"
],
"application/postscript": [
"ai",
"eps",
"ps"
],
"application/prs.cww": [
"cww"
],
"application/pskc+xml": [
"pskcxml"
],
"application/raml+yaml": [
"raml"
],
"application/rdf+xml": [
"rdf"
],
"application/reginfo+xml": [
"rif"
],
"application/relax-ng-compact-syntax": [
"rnc"
],
"application/resource-lists+xml": [
"rl"
],
"application/resource-lists-diff+xml": [
"rld"
],
"application/rls-services+xml": [
"rs"
],
"application/rpki-ghostbusters": [
"gbr"
],
"application/rpki-manifest": [
"mft"
],
"application/rpki-roa": [
"roa"
],
"application/rsd+xml": [
"rsd"
],
"application/rss+xml": [
"rss"
],
"application/rtf": [
"rtf"
],
"application/sbml+xml": [
"sbml"
],
"application/scvp-cv-request": [
"scq"
],
"application/scvp-cv-response": [
"scs"
],
"application/scvp-vp-request": [
"spq"
],
"application/scvp-vp-response": [
"spp"
],
"application/sdp": [
"sdp"
],
"application/set-payment-initiation": [
"setpay"
],
"application/set-registration-initiation": [
"setreg"
],
"application/shf+xml": [
"shf"
],
"application/smil+xml": [
"smi",
"smil"
],
"application/sparql-query": [
"rq"
],
"application/sparql-results+xml": [
"srx"
],
"application/srgs": [
"gram"
],
"application/srgs+xml": [
"grxml"
],
"application/sru+xml": [
"sru"
],
"application/ssdl+xml": [
"ssdl"
],
"application/ssml+xml": [
"ssml"
],
"application/tei+xml": [
"tei",
"teicorpus"
],
"application/thraud+xml": [
"tfi"
],
"application/timestamped-data": [
"tsd"
],
"application/vnd.3gpp.pic-bw-large": [
"plb"
],
"application/vnd.3gpp.pic-bw-small": [
"psb"
],
"application/vnd.3gpp.pic-bw-var": [
"pvb"
],
"application/vnd.3gpp2.tcap": [
"tcap"
],
"application/vnd.3m.post-it-notes": [
"pwn"
],
"application/vnd.accpac.simply.aso": [
"aso"
],
"application/vnd.accpac.simply.imp": [
"imp"
],
"application/vnd.acucobol": [
"acu"
],
"application/vnd.acucorp": [
"atc",
"acutc"
],
"application/vnd.adobe.air-application-installer-package+zip": [
"air"
],
"application/vnd.adobe.formscentral.fcdt": [
"fcdt"
],
"application/vnd.adobe.fxp": [
"fxp",
"fxpl"
],
"application/vnd.adobe.xdp+xml": [
"xdp"
],
"application/vnd.adobe.xfdf": [
"xfdf"
],
"application/vnd.ahead.space": [
"ahead"
],
"application/vnd.airzip.filesecure.azf": [
"azf"
],
"application/vnd.airzip.filesecure.azs": [
"azs"
],
"application/vnd.amazon.ebook": [
"azw"
],
"application/vnd.americandynamics.acc": [
"acc"
],
"application/vnd.amiga.ami": [
"ami"
],
"application/vnd.android.package-archive": [
"apk"
],
"application/vnd.anser-web-certificate-issue-initiation": [
"cii"
],
"application/vnd.anser-web-funds-transfer-initiation": [
"fti"
],
"application/vnd.antix.game-component": [
"atx"
],
"application/vnd.apple.installer+xml": [
"mpkg"
],
"application/vnd.apple.mpegurl": [
"m3u8"
],
"application/vnd.apple.pkpass": [
"pkpass"
],
"application/vnd.aristanetworks.swi": [
"swi"
],
"application/vnd.astraea-software.iota": [
"iota"
],
"application/vnd.audiograph": [
"aep"
],
"application/vnd.blueice.multipass": [
"mpm"
],
"application/vnd.bmi": [
"bmi"
],
"application/vnd.businessobjects": [
"rep"
],
"application/vnd.chemdraw+xml": [
"cdxml"
],
"application/vnd.chipnuts.karaoke-mmd": [
"mmd"
],
"application/vnd.cinderella": [
"cdy"
],
"application/vnd.claymore": [
"cla"
],
"application/vnd.cloanto.rp9": [
"rp9"
],
"application/vnd.clonk.c4group": [
"c4g",
"c4d",
"c4f",
"c4p",
"c4u"
],
"application/vnd.cluetrust.cartomobile-config": [
"c11amc"
],
"application/vnd.cluetrust.cartomobile-config-pkg": [
"c11amz"
],
"application/vnd.commonspace": [
"csp"
],
"application/vnd.contact.cmsg": [
"cdbcmsg"
],
"application/vnd.cosmocaller": [
"cmc"
],
"application/vnd.crick.clicker": [
"clkx"
],
"application/vnd.crick.clicker.keyboard": [
"clkk"
],
"application/vnd.crick.clicker.palette": [
"clkp"
],
"application/vnd.crick.clicker.template": [
"clkt"
],
"application/vnd.crick.clicker.wordbank": [
"clkw"
],
"application/vnd.criticaltools.wbs+xml": [
"wbs"
],
"application/vnd.ctc-posml": [
"pml"
],
"application/vnd.cups-ppd": [
"ppd"
],
"application/vnd.curl.car": [
"car"
],
"application/vnd.curl.pcurl": [
"pcurl"
],
"application/vnd.dart": [
"dart"
],
"application/vnd.data-vision.rdz": [
"rdz"
],
"application/vnd.dece.data": [
"uvf",
"uvvf",
"uvd",
"uvvd"
],
"application/vnd.dece.ttml+xml": [
"uvt",
"uvvt"
],
"application/vnd.dece.unspecified": [
"uvx",
"uvvx"
],
"application/vnd.dece.zip": [
"uvz",
"uvvz"
],
"application/vnd.denovo.fcselayout-link": [
"fe_launch"
],
"application/vnd.dna": [
"dna"
],
"application/vnd.dolby.mlp": [
"mlp"
],
"application/vnd.dpgraph": [
"dpg"
],
"application/vnd.dreamfactory": [
"dfac"
],
"application/vnd.ds-keypoint": [
"kpxx"
],
"application/vnd.dvb.ait": [
"ait"
],
"application/vnd.dvb.service": [
"svc"
],
"application/vnd.dynageo": [
"geo"
],
"application/vnd.ecowin.chart": [
"mag"
],
"application/vnd.enliven": [
"nml"
],
"application/vnd.epson.esf": [
"esf"
],
"application/vnd.epson.msf": [
"msf"
],
"application/vnd.epson.quickanime": [
"qam"
],
"application/vnd.epson.salt": [
"slt"
],
"application/vnd.epson.ssf": [
"ssf"
],
"application/vnd.eszigno3+xml": [
"es3",
"et3"
],
"application/vnd.ezpix-album": [
"ez2"
],
"application/vnd.ezpix-package": [
"ez3"
],
"application/vnd.fdf": [
"fdf"
],
"application/vnd.fdsn.mseed": [
"mseed"
],
"application/vnd.fdsn.seed": [
"seed",
"dataless"
],
"application/vnd.flographit": [
"gph"
],
"application/vnd.fluxtime.clip": [
"ftc"
],
"application/vnd.framemaker": [
"fm",
"frame",
"maker",
"book"
],
"application/vnd.frogans.fnc": [
"fnc"
],
"application/vnd.frogans.ltf": [
"ltf"
],
"application/vnd.fsc.weblaunch": [
"fsc"
],
"application/vnd.fujitsu.oasys": [
"oas"
],
"application/vnd.fujitsu.oasys2": [
"oa2"
],
"application/vnd.fujitsu.oasys3": [
"oa3"
],
"application/vnd.fujitsu.oasysgp": [
"fg5"
],
"application/vnd.fujitsu.oasysprs": [
"bh2"
],
"application/vnd.fujixerox.ddd": [
"ddd"
],
"application/vnd.fujixerox.docuworks": [
"xdw"
],
"application/vnd.fujixerox.docuworks.binder": [
"xbd"
],
"application/vnd.fuzzysheet": [
"fzs"
],
"application/vnd.genomatix.tuxedo": [
"txd"
],
"application/vnd.geogebra.file": [
"ggb"
],
"application/vnd.geogebra.tool": [
"ggt"
],
"application/vnd.geometry-explorer": [
"gex",
"gre"
],
"application/vnd.geonext": [
"gxt"
],
"application/vnd.geoplan": [
"g2w"
],
"application/vnd.geospace": [
"g3w"
],
"application/vnd.gmx": [
"gmx"
],
"application/vnd.google-apps.document": [
"gdoc"
],
"application/vnd.google-apps.presentation": [
"gslides"
],
"application/vnd.google-apps.spreadsheet": [
"gsheet"
],
"application/vnd.google-earth.kml+xml": [
"kml"
],
"application/vnd.google-earth.kmz": [
"kmz"
],
"application/vnd.grafeq": [
"gqf",
"gqs"
],
"application/vnd.groove-account": [
"gac"
],
"application/vnd.groove-help": [
"ghf"
],
"application/vnd.groove-identity-message": [
"gim"
],
"application/vnd.groove-injector": [
"grv"
],
"application/vnd.groove-tool-message": [
"gtm"
],
"application/vnd.groove-tool-template": [
"tpl"
],
"application/vnd.groove-vcard": [
"vcg"
],
"application/vnd.hal+xml": [
"hal"
],
"application/vnd.handheld-entertainment+xml": [
"zmm"
],
"application/vnd.hbci": [
"hbci"
],
"application/vnd.hhe.lesson-player": [
"les"
],
"application/vnd.hp-hpgl": [
"hpgl"
],
"application/vnd.hp-hpid": [
"hpid"
],
"application/vnd.hp-hps": [
"hps"
],
"application/vnd.hp-jlyt": [
"jlt"
],
"application/vnd.hp-pcl": [
"pcl"
],
"application/vnd.hp-pclxl": [
"pclxl"
],
"application/vnd.hydrostatix.sof-data": [
"sfd-hdstx"
],
"application/vnd.ibm.minipay": [
"mpy"
],
"application/vnd.ibm.modcap": [
"afp",
"listafp",
"list3820"
],
"application/vnd.ibm.rights-management": [
"irm"
],
"application/vnd.ibm.secure-container": [
"sc"
],
"application/vnd.iccprofile": [
"icc",
"icm"
],
"application/vnd.igloader": [
"igl"
],
"application/vnd.immervision-ivp": [
"ivp"
],
"application/vnd.immervision-ivu": [
"ivu"
],
"application/vnd.insors.igm": [
"igm"
],
"application/vnd.intercon.formnet": [
"xpw",
"xpx"
],
"application/vnd.intergeo": [
"i2g"
],
"application/vnd.intu.qbo": [
"qbo"
],
"application/vnd.intu.qfx": [
"qfx"
],
"application/vnd.ipunplugged.rcprofile": [
"rcprofile"
],
"application/vnd.irepository.package+xml": [
"irp"
],
"application/vnd.is-xpr": [
"xpr"
],
"application/vnd.isac.fcs": [
"fcs"
],
"application/vnd.jam": [
"jam"
],
"application/vnd.jcp.javame.midlet-rms": [
"rms"
],
"application/vnd.jisp": [
"jisp"
],
"application/vnd.joost.joda-archive": [
"joda"
],
"application/vnd.kahootz": [
"ktz",
"ktr"
],
"application/vnd.kde.karbon": [
"karbon"
],
"application/vnd.kde.kchart": [
"chrt"
],
"application/vnd.kde.kformula": [
"kfo"
],
"application/vnd.kde.kivio": [
"flw"
],
"application/vnd.kde.kontour": [
"kon"
],
"application/vnd.kde.kpresenter": [
"kpr",
"kpt"
],
"application/vnd.kde.kspread": [
"ksp"
],
"application/vnd.kde.kword": [
"kwd",
"kwt"
],
"application/vnd.kenameaapp": [
"htke"
],
"application/vnd.kidspiration": [
"kia"
],
"application/vnd.kinar": [
"kne",
"knp"
],
"application/vnd.koan": [
"skp",
"skd",
"skt",
"skm"
],
"application/vnd.kodak-descriptor": [
"sse"
],
"application/vnd.las.las+xml": [
"lasxml"
],
"application/vnd.llamagraphics.life-balance.desktop": [
"lbd"
],
"application/vnd.llamagraphics.life-balance.exchange+xml": [
"lbe"
],
"application/vnd.lotus-1-2-3": [
"123"
],
"application/vnd.lotus-approach": [
"apr"
],
"application/vnd.lotus-freelance": [
"pre"
],
"application/vnd.lotus-notes": [
"nsf"
],
"application/vnd.lotus-organizer": [
"org"
],
"application/vnd.lotus-screencam": [
"scm"
],
"application/vnd.lotus-wordpro": [
"lwp"
],
"application/vnd.macports.portpkg": [
"portpkg"
],
"application/vnd.mcd": [
"mcd"
],
"application/vnd.medcalcdata": [
"mc1"
],
"application/vnd.mediastation.cdkey": [
"cdkey"
],
"application/vnd.mfer": [
"mwf"
],
"application/vnd.mfmp": [
"mfm"
],
"application/vnd.micrografx.flo": [
"flo"
],
"application/vnd.micrografx.igx": [
"igx"
],
"application/vnd.mif": [
"mif"
],
"application/vnd.mobius.daf": [
"daf"
],
"application/vnd.mobius.dis": [
"dis"
],
"application/vnd.mobius.mbk": [
"mbk"
],
"application/vnd.mobius.mqy": [
"mqy"
],
"application/vnd.mobius.msl": [
"msl"
],
"application/vnd.mobius.plc": [
"plc"
],
"application/vnd.mobius.txf": [
"txf"
],
"application/vnd.mophun.application": [
"mpn"
],
"application/vnd.mophun.certificate": [
"mpc"
],
"application/vnd.mozilla.xul+xml": [
"xul"
],
"application/vnd.ms-artgalry": [
"cil"
],
"application/vnd.ms-cab-compressed": [
"cab"
],
"application/vnd.ms-excel": [
"xls",
"xlm",
"xla",
"xlc",
"xlt",
"xlw"
],
"application/vnd.ms-excel.addin.macroenabled.12": [
"xlam"
],
"application/vnd.ms-excel.sheet.binary.macroenabled.12": [
"xlsb"
],
"application/vnd.ms-excel.sheet.macroenabled.12": [
"xlsm"
],
"application/vnd.ms-excel.template.macroenabled.12": [
"xltm"
],
"application/vnd.ms-fontobject": [
"eot"
],
"application/vnd.ms-htmlhelp": [
"chm"
],
"application/vnd.ms-ims": [
"ims"
],
"application/vnd.ms-lrm": [
"lrm"
],
"application/vnd.ms-officetheme": [
"thmx"
],
"application/vnd.ms-outlook": [
"msg"
],
"application/vnd.ms-pki.seccat": [
"cat"
],
"application/vnd.ms-pki.stl": [
"stl"
],
"application/vnd.ms-powerpoint": [
"ppt",
"pps",
"pot"
],
"application/vnd.ms-powerpoint.addin.macroenabled.12": [
"ppam"
],
"application/vnd.ms-powerpoint.presentation.macroenabled.12": [
"pptm"
],
"application/vnd.ms-powerpoint.slide.macroenabled.12": [
"sldm"
],
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": [
"ppsm"
],
"application/vnd.ms-powerpoint.template.macroenabled.12": [
"potm"
],
"application/vnd.ms-project": [
"mpp",
"mpt"
],
"application/vnd.ms-word.document.macroenabled.12": [
"docm"
],
"application/vnd.ms-word.template.macroenabled.12": [
"dotm"
],
"application/vnd.ms-works": [
"wps",
"wks",
"wcm",
"wdb"
],
"application/vnd.ms-wpl": [
"wpl"
],
"application/vnd.ms-xpsdocument": [
"xps"
],
"application/vnd.mseq": [
"mseq"
],
"application/vnd.musician": [
"mus"
],
"application/vnd.muvee.style": [
"msty"
],
"application/vnd.mynfc": [
"taglet"
],
"application/vnd.neurolanguage.nlu": [
"nlu"
],
"application/vnd.nitf": [
"ntf",
"nitf"
],
"application/vnd.noblenet-directory": [
"nnd"
],
"application/vnd.noblenet-sealer": [
"nns"
],
"application/vnd.noblenet-web": [
"nnw"
],
"application/vnd.nokia.n-gage.data": [
"ngdat"
],
"application/vnd.nokia.n-gage.symbian.install": [
"n-gage"
],
"application/vnd.nokia.radio-preset": [
"rpst"
],
"application/vnd.nokia.radio-presets": [
"rpss"
],
"application/vnd.novadigm.edm": [
"edm"
],
"application/vnd.novadigm.edx": [
"edx"
],
"application/vnd.novadigm.ext": [
"ext"
],
"application/vnd.oasis.opendocument.chart": [
"odc"
],
"application/vnd.oasis.opendocument.chart-template": [
"otc"
],
"application/vnd.oasis.opendocument.database": [
"odb"
],
"application/vnd.oasis.opendocument.formula": [
"odf"
],
"application/vnd.oasis.opendocument.formula-template": [
"odft"
],
"application/vnd.oasis.opendocument.graphics": [
"odg"
],
"application/vnd.oasis.opendocument.graphics-template": [
"otg"
],
"application/vnd.oasis.opendocument.image": [
"odi"
],
"application/vnd.oasis.opendocument.image-template": [
"oti"
],
"application/vnd.oasis.opendocument.presentation": [
"odp"
],
"application/vnd.oasis.opendocument.presentation-template": [
"otp"
],
"application/vnd.oasis.opendocument.spreadsheet": [
"ods"
],
"application/vnd.oasis.opendocument.spreadsheet-template": [
"ots"
],
"application/vnd.oasis.opendocument.text": [
"odt"
],
"application/vnd.oasis.opendocument.text-master": [
"odm"
],
"application/vnd.oasis.opendocument.text-template": [
"ott"
],
"application/vnd.oasis.opendocument.text-web": [
"oth"
],
"application/vnd.olpc-sugar": [
"xo"
],
"application/vnd.oma.dd2+xml": [
"dd2"
],
"application/vnd.openofficeorg.extension": [
"oxt"
],
"application/vnd.openxmlformats-officedocument.presentationml.presentation": [
"pptx"
],
"application/vnd.openxmlformats-officedocument.presentationml.slide": [
"sldx"
],
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": [
"ppsx"
],
"application/vnd.openxmlformats-officedocument.presentationml.template": [
"potx"
],
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": [
"xlsx"
],
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": [
"xltx"
],
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": [
"docx"
],
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": [
"dotx"
],
"application/vnd.osgeo.mapguide.package": [
"mgp"
],
"application/vnd.osgi.dp": [
"dp"
],
"application/vnd.osgi.subsystem": [
"esa"
],
"application/vnd.palm": [
"pdb",
"pqa",
"oprc"
],
"application/vnd.pawaafile": [
"paw"
],
"application/vnd.pg.format": [
"str"
],
"application/vnd.pg.osasli": [
"ei6"
],
"application/vnd.picsel": [
"efif"
],
"application/vnd.pmi.widget": [
"wg"
],
"application/vnd.pocketlearn": [
"plf"
],
"application/vnd.powerbuilder6": [
"pbd"
],
"application/vnd.previewsystems.box": [
"box"
],
"application/vnd.proteus.magazine": [
"mgz"
],
"application/vnd.publishare-delta-tree": [
"qps"
],
"application/vnd.pvi.ptid1": [
"ptid"
],
"application/vnd.quark.quarkxpress": [
"qxd",
"qxt",
"qwd",
"qwt",
"qxl",
"qxb"
],
"application/vnd.realvnc.bed": [
"bed"
],
"application/vnd.recordare.musicxml": [
"mxl"
],
"application/vnd.recordare.musicxml+xml": [
"musicxml"
],
"application/vnd.rig.cryptonote": [
"cryptonote"
],
"application/vnd.rim.cod": [
"cod"
],
"application/vnd.rn-realmedia": [
"rm"
],
"application/vnd.rn-realmedia-vbr": [
"rmvb"
],
"application/vnd.route66.link66+xml": [
"link66"
],
"application/vnd.sailingtracker.track": [
"st"
],
"application/vnd.seemail": [
"see"
],
"application/vnd.sema": [
"sema"
],
"application/vnd.semd": [
"semd"
],
"application/vnd.semf": [
"semf"
],
"application/vnd.shana.informed.formdata": [
"ifm"
],
"application/vnd.shana.informed.formtemplate": [
"itp"
],
"application/vnd.shana.informed.interchange": [
"iif"
],
"application/vnd.shana.informed.package": [
"ipk"
],
"application/vnd.simtech-mindmapper": [
"twd",
"twds"
],
"application/vnd.smaf": [
"mmf"
],
"application/vnd.smart.teacher": [
"teacher"
],
"application/vnd.solent.sdkm+xml": [
"sdkm",
"sdkd"
],
"application/vnd.spotfire.dxp": [
"dxp"
],
"application/vnd.spotfire.sfs": [
"sfs"
],
"application/vnd.stardivision.calc": [
"sdc"
],
"application/vnd.stardivision.draw": [
"sda"
],
"application/vnd.stardivision.impress": [
"sdd"
],
"application/vnd.stardivision.math": [
"smf"
],
"application/vnd.stardivision.writer": [
"sdw",
"vor"
],
"application/vnd.stardivision.writer-global": [
"sgl"
],
"application/vnd.stepmania.package": [
"smzip"
],
"application/vnd.stepmania.stepchart": [
"sm"
],
"application/vnd.sun.wadl+xml": [
"wadl"
],
"application/vnd.sun.xml.calc": [
"sxc"
],
"application/vnd.sun.xml.calc.template": [
"stc"
],
"application/vnd.sun.xml.draw": [
"sxd"
],
"application/vnd.sun.xml.draw.template": [
"std"
],
"application/vnd.sun.xml.impress": [
"sxi"
],
"application/vnd.sun.xml.impress.template": [
"sti"
],
"application/vnd.sun.xml.math": [
"sxm"
],
"application/vnd.sun.xml.writer": [
"sxw"
],
"application/vnd.sun.xml.writer.global": [
"sxg"
],
"application/vnd.sun.xml.writer.template": [
"stw"
],
"application/vnd.sus-calendar": [
"sus",
"susp"
],
"application/vnd.svd": [
"svd"
],
"application/vnd.symbian.install": [
"sis",
"sisx"
],
"application/vnd.syncml+xml": [
"xsm"
],
"application/vnd.syncml.dm+wbxml": [
"bdm"
],
"application/vnd.syncml.dm+xml": [
"xdm"
],
"application/vnd.tao.intent-module-archive": [
"tao"
],
"application/vnd.tcpdump.pcap": [
"pcap",
"cap",
"dmp"
],
"application/vnd.tmobile-livetv": [
"tmo"
],
"application/vnd.trid.tpt": [
"tpt"
],
"application/vnd.triscape.mxs": [
"mxs"
],
"application/vnd.trueapp": [
"tra"
],
"application/vnd.ufdl": [
"ufd",
"ufdl"
],
"application/vnd.uiq.theme": [
"utz"
],
"application/vnd.umajin": [
"umj"
],
"application/vnd.unity": [
"unityweb"
],
"application/vnd.uoml+xml": [
"uoml"
],
"application/vnd.vcx": [
"vcx"
],
"application/vnd.visio": [
"vsd",
"vst",
"vss",
"vsw"
],
"application/vnd.visionary": [
"vis"
],
"application/vnd.vsf": [
"vsf"
],
"application/vnd.wap.wbxml": [
"wbxml"
],
"application/vnd.wap.wmlc": [
"wmlc"
],
"application/vnd.wap.wmlscriptc": [
"wmlsc"
],
"application/vnd.webturbo": [
"wtb"
],
"application/vnd.wolfram.player": [
"nbp"
],
"application/vnd.wordperfect": [
"wpd"
],
"application/vnd.wqd": [
"wqd"
],
"application/vnd.wt.stf": [
"stf"
],
"application/vnd.xara": [
"xar"
],
"application/vnd.xfdl": [
"xfdl"
],
"application/vnd.yamaha.hv-dic": [
"hvd"
],
"application/vnd.yamaha.hv-script": [
"hvs"
],
"application/vnd.yamaha.hv-voice": [
"hvp"
],
"application/vnd.yamaha.openscoreformat": [
"osf"
],
"application/vnd.yamaha.openscoreformat.osfpvg+xml": [
"osfpvg"
],
"application/vnd.yamaha.smaf-audio": [
"saf"
],
"application/vnd.yamaha.smaf-phrase": [
"spf"
],
"application/vnd.yellowriver-custom-menu": [
"cmp"
],
"application/vnd.zul": [
"zir",
"zirz"
],
"application/vnd.zzazz.deck+xml": [
"zaz"
],
"application/voicexml+xml": [
"vxml"
],
"application/wasm": [
"wasm"
],
"application/widget": [
"wgt"
],
"application/winhlp": [
"hlp"
],
"application/wsdl+xml": [
"wsdl"
],
"application/wspolicy+xml": [
"wspolicy"
],
"application/x-7z-compressed": [
"7z"
],
"application/x-abiword": [
"abw"
],
"application/x-ace-compressed": [
"ace"
],
"application/x-apple-diskimage": [
],
"application/x-arj": [
"arj"
],
"application/x-authorware-bin": [
"aab",
"x32",
"u32",
"vox"
],
"application/x-authorware-map": [
"aam"
],
"application/x-authorware-seg": [
"aas"
],
"application/x-bcpio": [
"bcpio"
],
"application/x-bdoc": [
],
"application/x-bittorrent": [
"torrent"
],
"application/x-blorb": [
"blb",
"blorb"
],
"application/x-bzip": [
"bz"
],
"application/x-bzip2": [
"bz2",
"boz"
],
"application/x-cbr": [
"cbr",
"cba",
"cbt",
"cbz",
"cb7"
],
"application/x-cdlink": [
"vcd"
],
"application/x-cfs-compressed": [
"cfs"
],
"application/x-chat": [
"chat"
],
"application/x-chess-pgn": [
"pgn"
],
"application/x-chrome-extension": [
"crx"
],
"application/x-cocoa": [
"cco"
],
"application/x-conference": [
"nsc"
],
"application/x-cpio": [
"cpio"
],
"application/x-csh": [
"csh"
],
"application/x-debian-package": [
"udeb"
],
"application/x-dgc-compressed": [
"dgc"
],
"application/x-director": [
"dir",
"dcr",
"dxr",
"cst",
"cct",
"cxt",
"w3d",
"fgd",
"swa"
],
"application/x-doom": [
"wad"
],
"application/x-dtbncx+xml": [
"ncx"
],
"application/x-dtbook+xml": [
"dtb"
],
"application/x-dtbresource+xml": [
"res"
],
"application/x-dvi": [
"dvi"
],
"application/x-envoy": [
"evy"
],
"application/x-eva": [
"eva"
],
"application/x-font-bdf": [
"bdf"
],
"application/x-font-ghostscript": [
"gsf"
],
"application/x-font-linux-psf": [
"psf"
],
"application/x-font-pcf": [
"pcf"
],
"application/x-font-snf": [
"snf"
],
"application/x-font-type1": [
"pfa",
"pfb",
"pfm",
"afm"
],
"application/x-freearc": [
"arc"
],
"application/x-futuresplash": [
"spl"
],
"application/x-gca-compressed": [
"gca"
],
"application/x-glulx": [
"ulx"
],
"application/x-gnumeric": [
"gnumeric"
],
"application/x-gramps-xml": [
"gramps"
],
"application/x-gtar": [
"gtar"
],
"application/x-hdf": [
"hdf"
],
"application/x-httpd-php": [
"php"
],
"application/x-install-instructions": [
"install"
],
"application/x-iso9660-image": [
],
"application/x-java-archive-diff": [
"jardiff"
],
"application/x-java-jnlp-file": [
"jnlp"
],
"application/x-latex": [
"latex"
],
"application/x-lua-bytecode": [
"luac"
],
"application/x-lzh-compressed": [
"lzh",
"lha"
],
"application/x-makeself": [
"run"
],
"application/x-mie": [
"mie"
],
"application/x-mobipocket-ebook": [
"prc",
"mobi"
],
"application/x-ms-application": [
"application"
],
"application/x-ms-shortcut": [
"lnk"
],
"application/x-ms-wmd": [
"wmd"
],
"application/x-ms-wmz": [
"wmz"
],
"application/x-ms-xbap": [
"xbap"
],
"application/x-msaccess": [
"mdb"
],
"application/x-msbinder": [
"obd"
],
"application/x-mscardfile": [
"crd"
],
"application/x-msclip": [
"clp"
],
"application/x-msdos-program": [
],
"application/x-msdownload": [
"com",
"bat"
],
"application/x-msmediaview": [
"mvb",
"m13",
"m14"
],
"application/x-msmetafile": [
"wmf",
"emf",
"emz"
],
"application/x-msmoney": [
"mny"
],
"application/x-mspublisher": [
"pub"
],
"application/x-msschedule": [
"scd"
],
"application/x-msterminal": [
"trm"
],
"application/x-mswrite": [
"wri"
],
"application/x-netcdf": [
"nc",
"cdf"
],
"application/x-ns-proxy-autoconfig": [
"pac"
],
"application/x-nzb": [
"nzb"
],
"application/x-perl": [
"pl",
"pm"
],
"application/x-pilot": [
],
"application/x-pkcs12": [
"p12",
"pfx"
],
"application/x-pkcs7-certificates": [
"p7b",
"spc"
],
"application/x-pkcs7-certreqresp": [
"p7r"
],
"application/x-rar-compressed": [
"rar"
],
"application/x-redhat-package-manager": [
"rpm"
],
"application/x-research-info-systems": [
"ris"
],
"application/x-sea": [
"sea"
],
"application/x-sh": [
"sh"
],
"application/x-shar": [
"shar"
],
"application/x-shockwave-flash": [
"swf"
],
"application/x-silverlight-app": [
"xap"
],
"application/x-sql": [
"sql"
],
"application/x-stuffit": [
"sit"
],
"application/x-stuffitx": [
"sitx"
],
"application/x-subrip": [
"srt"
],
"application/x-sv4cpio": [
"sv4cpio"
],
"application/x-sv4crc": [
"sv4crc"
],
"application/x-t3vm-image": [
"t3"
],
"application/x-tads": [
"gam"
],
"application/x-tar": [
"tar"
],
"application/x-tcl": [
"tcl",
"tk"
],
"application/x-tex": [
"tex"
],
"application/x-tex-tfm": [
"tfm"
],
"application/x-texinfo": [
"texinfo",
"texi"
],
"application/x-tgif": [
"obj"
],
"application/x-ustar": [
"ustar"
],
"application/x-virtualbox-hdd": [
"hdd"
],
"application/x-virtualbox-ova": [
"ova"
],
"application/x-virtualbox-ovf": [
"ovf"
],
"application/x-virtualbox-vbox": [
"vbox"
],
"application/x-virtualbox-vbox-extpack": [
"vbox-extpack"
],
"application/x-virtualbox-vdi": [
"vdi"
],
"application/x-virtualbox-vhd": [
"vhd"
],
"application/x-virtualbox-vmdk": [
"vmdk"
],
"application/x-wais-source": [
"src"
],
"application/x-web-app-manifest+json": [
"webapp"
],
"application/x-x509-ca-cert": [
"der",
"crt",
"pem"
],
"application/x-xfig": [
"fig"
],
"application/x-xliff+xml": [
"xlf"
],
"application/x-xpinstall": [
"xpi"
],
"application/x-xz": [
"xz"
],
"application/x-zmachine": [
"z1",
"z2",
"z3",
"z4",
"z5",
"z6",
"z7",
"z8"
],
"application/xaml+xml": [
"xaml"
],
"application/xcap-diff+xml": [
"xdf"
],
"application/xenc+xml": [
"xenc"
],
"application/xhtml+xml": [
"xhtml",
"xht"
],
"application/xml": [
"xml",
"xsl",
"xsd",
"rng"
],
"application/xml-dtd": [
"dtd"
],
"application/xop+xml": [
"xop"
],
"application/xproc+xml": [
"xpl"
],
"application/xslt+xml": [
"xslt"
],
"application/xspf+xml": [
"xspf"
],
"application/xv+xml": [
"mxml",
"xhvml",
"xvml",
"xvm"
],
"application/yang": [
"yang"
],
"application/yin+xml": [
"yin"
],
"application/zip": [
"zip"
],
"audio/3gpp": [
],
"audio/adpcm": [
"adp"
],
"audio/basic": [
"au",
"snd"
],
"audio/midi": [
"mid",
"midi",
"kar",
"rmi"
],
"audio/mp3": [
],
"audio/mp4": [
"m4a",
"mp4a"
],
"audio/mpeg": [
"mpga",
"mp2",
"mp2a",
"mp3",
"m2a",
"m3a"
],
"audio/ogg": [
"oga",
"ogg",
"spx"
],
"audio/s3m": [
"s3m"
],
"audio/silk": [
"sil"
],
"audio/vnd.dece.audio": [
"uva",
"uvva"
],
"audio/vnd.digital-winds": [
"eol"
],
"audio/vnd.dra": [
"dra"
],
"audio/vnd.dts": [
"dts"
],
"audio/vnd.dts.hd": [
"dtshd"
],
"audio/vnd.lucent.voice": [
"lvp"
],
"audio/vnd.ms-playready.media.pya": [
"pya"
],
"audio/vnd.nuera.ecelp4800": [
"ecelp4800"
],
"audio/vnd.nuera.ecelp7470": [
"ecelp7470"
],
"audio/vnd.nuera.ecelp9600": [
"ecelp9600"
],
"audio/vnd.rip": [
"rip"
],
"audio/wav": [
"wav"
],
"audio/wave": [
],
"audio/webm": [
"weba"
],
"audio/x-aac": [
"aac"
],
"audio/x-aiff": [
"aif",
"aiff",
"aifc"
],
"audio/x-caf": [
"caf"
],
"audio/x-flac": [
"flac"
],
"audio/x-m4a": [
],
"audio/x-matroska": [
"mka"
],
"audio/x-mpegurl": [
"m3u"
],
"audio/x-ms-wax": [
"wax"
],
"audio/x-ms-wma": [
"wma"
],
"audio/x-pn-realaudio": [
"ram",
"ra"
],
"audio/x-pn-realaudio-plugin": [
"rmp"
],
"audio/x-realaudio": [
],
"audio/x-wav": [
],
"audio/xm": [
"xm"
],
"chemical/x-cdx": [
"cdx"
],
"chemical/x-cif": [
"cif"
],
"chemical/x-cmdf": [
"cmdf"
],
"chemical/x-cml": [
"cml"
],
"chemical/x-csml": [
"csml"
],
"chemical/x-xyz": [
"xyz"
],
"font/collection": [
"ttc"
],
"font/otf": [
"otf"
],
"font/ttf": [
"ttf"
],
"font/woff": [
"woff"
],
"font/woff2": [
"woff2"
],
"image/apng": [
"apng"
],
"image/bmp": [
"bmp"
],
"image/cgm": [
"cgm"
],
"image/g3fax": [
"g3"
],
"image/gif": [
"gif"
],
"image/ief": [
"ief"
],
"image/jp2": [
"jp2",
"jpg2"
],
"image/jpeg": [
"jpeg",
"jpg",
"jpe"
],
"image/jpm": [
"jpm"
],
"image/jpx": [
"jpx",
"jpf"
],
"image/ktx": [
"ktx"
],
"image/png": [
"png"
],
"image/prs.btif": [
"btif"
],
"image/sgi": [
"sgi"
],
"image/svg+xml": [
"svg",
"svgz"
],
"image/tiff": [
"tiff",
"tif"
],
"image/vnd.adobe.photoshop": [
"psd"
],
"image/vnd.dece.graphic": [
"uvi",
"uvvi",
"uvg",
"uvvg"
],
"image/vnd.djvu": [
"djvu",
"djv"
],
"image/vnd.dvb.subtitle": [
],
"image/vnd.dwg": [
"dwg"
],
"image/vnd.dxf": [
"dxf"
],
"image/vnd.fastbidsheet": [
"fbs"
],
"image/vnd.fpx": [
"fpx"
],
"image/vnd.fst": [
"fst"
],
"image/vnd.fujixerox.edmics-mmr": [
"mmr"
],
"image/vnd.fujixerox.edmics-rlc": [
"rlc"
],
"image/vnd.ms-modi": [
"mdi"
],
"image/vnd.ms-photo": [
"wdp"
],
"image/vnd.net-fpx": [
"npx"
],
"image/vnd.wap.wbmp": [
"wbmp"
],
"image/vnd.xiff": [
"xif"
],
"image/webp": [
"webp"
],
"image/x-3ds": [
"3ds"
],
"image/x-cmu-raster": [
"ras"
],
"image/x-cmx": [
"cmx"
],
"image/x-freehand": [
"fh",
"fhc",
"fh4",
"fh5",
"fh7"
],
"image/x-icon": [
"ico"
],
"image/x-jng": [
"jng"
],
"image/x-mrsid-image": [
"sid"
],
"image/x-ms-bmp": [
],
"image/x-pcx": [
"pcx"
],
"image/x-pict": [
"pic",
"pct"
],
"image/x-portable-anymap": [
"pnm"
],
"image/x-portable-bitmap": [
"pbm"
],
"image/x-portable-graymap": [
"pgm"
],
"image/x-portable-pixmap": [
"ppm"
],
"image/x-rgb": [
"rgb"
],
"image/x-tga": [
"tga"
],
"image/x-xbitmap": [
"xbm"
],
"image/x-xpixmap": [
"xpm"
],
"image/x-xwindowdump": [
"xwd"
],
"message/rfc822": [
"eml",
"mime"
],
"model/gltf+json": [
"gltf"
],
"model/gltf-binary": [
"glb"
],
"model/iges": [
"igs",
"iges"
],
"model/mesh": [
"msh",
"mesh",
"silo"
],
"model/vnd.collada+xml": [
"dae"
],
"model/vnd.dwf": [
"dwf"
],
"model/vnd.gdl": [
"gdl"
],
"model/vnd.gtw": [
"gtw"
],
"model/vnd.mts": [
"mts"
],
"model/vnd.vtu": [
"vtu"
],
"model/vrml": [
"wrl",
"vrml"
],
"model/x3d+binary": [
"x3db",
"x3dbz"
],
"model/x3d+vrml": [
"x3dv",
"x3dvz"
],
"model/x3d+xml": [
"x3d",
"x3dz"
],
"text/cache-manifest": [
"appcache",
"manifest"
],
"text/calendar": [
"ics",
"ifb"
],
"text/coffeescript": [
"coffee",
"litcoffee"
],
"text/css": [
"css"
],
"text/csv": [
"csv"
],
"text/hjson": [
"hjson"
],
"text/html": [
"html",
"htm",
"shtml"
],
"text/jade": [
"jade"
],
"text/jsx": [
"jsx"
],
"text/less": [
"less"
],
"text/markdown": [
"markdown",
"md"
],
"text/mathml": [
"mml"
],
"text/n3": [
"n3"
],
"text/plain": [
"txt",
"text",
"conf",
"def",
"list",
"log",
"in",
"ini"
],
"text/prs.lines.tag": [
"dsc"
],
"text/richtext": [
"rtx"
],
"text/rtf": [
],
"text/sgml": [
"sgml",
"sgm"
],
"text/slim": [
"slim",
"slm"
],
"text/stylus": [
"stylus",
"styl"
],
"text/tab-separated-values": [
"tsv"
],
"text/troff": [
"t",
"tr",
"roff",
"man",
"me",
"ms"
],
"text/turtle": [
"ttl"
],
"text/uri-list": [
"uri",
"uris",
"urls"
],
"text/vcard": [
"vcard"
],
"text/vnd.curl": [
"curl"
],
"text/vnd.curl.dcurl": [
"dcurl"
],
"text/vnd.curl.mcurl": [
"mcurl"
],
"text/vnd.curl.scurl": [
"scurl"
],
"text/vnd.dvb.subtitle": [
"sub"
],
"text/vnd.fly": [
"fly"
],
"text/vnd.fmi.flexstor": [
"flx"
],
"text/vnd.graphviz": [
"gv"
],
"text/vnd.in3d.3dml": [
"3dml"
],
"text/vnd.in3d.spot": [
"spot"
],
"text/vnd.sun.j2me.app-descriptor": [
"jad"
],
"text/vnd.wap.wml": [
"wml"
],
"text/vnd.wap.wmlscript": [
"wmls"
],
"text/vtt": [
"vtt"
],
"text/x-asm": [
"s",
"asm"
],
"text/x-c": [
"c",
"cc",
"cxx",
"cpp",
"h",
"hh",
"dic"
],
"text/x-component": [
"htc"
],
"text/x-fortran": [
"f",
"for",
"f77",
"f90"
],
"text/x-handlebars-template": [
"hbs"
],
"text/x-java-source": [
"java"
],
"text/x-lua": [
"lua"
],
"text/x-markdown": [
"mkd"
],
"text/x-nfo": [
"nfo"
],
"text/x-opml": [
"opml"
],
"text/x-org": [
],
"text/x-pascal": [
"p",
"pas"
],
"text/x-processing": [
"pde"
],
"text/x-sass": [
"sass"
],
"text/x-scss": [
"scss"
],
"text/x-setext": [
"etx"
],
"text/x-sfv": [
"sfv"
],
"text/x-suse-ymp": [
"ymp"
],
"text/x-uuencode": [
"uu"
],
"text/x-vcalendar": [
"vcs"
],
"text/x-vcard": [
"vcf"
],
"text/xml": [
],
"text/yaml": [
"yaml",
"yml"
],
"video/3gpp": [
"3gp",
"3gpp"
],
"video/3gpp2": [
"3g2"
],
"video/h261": [
"h261"
],
"video/h263": [
"h263"
],
"video/h264": [
"h264"
],
"video/jpeg": [
"jpgv"
],
"video/jpm": [
"jpgm"
],
"video/mj2": [
"mj2",
"mjp2"
],
"video/mp2t": [
"ts"
],
"video/mp4": [
"mp4",
"mp4v",
"mpg4"
],
"video/mpeg": [
"mpeg",
"mpg",
"mpe",
"m1v",
"m2v"
],
"video/ogg": [
"ogv"
],
"video/quicktime": [
"qt",
"mov"
],
"video/vnd.dece.hd": [
"uvh",
"uvvh"
],
"video/vnd.dece.mobile": [
"uvm",
"uvvm"
],
"video/vnd.dece.pd": [
"uvp",
"uvvp"
],
"video/vnd.dece.sd": [
"uvs",
"uvvs"
],
"video/vnd.dece.video": [
"uvv",
"uvvv"
],
"video/vnd.dvb.file": [
"dvb"
],
"video/vnd.fvt": [
"fvt"
],
"video/vnd.mpegurl": [
"mxu",
"m4u"
],
"video/vnd.ms-playready.media.pyv": [
"pyv"
],
"video/vnd.uvvu.mp4": [
"uvu",
"uvvu"
],
"video/vnd.vivo": [
"viv"
],
"video/webm": [
"webm"
],
"video/x-f4v": [
"f4v"
],
"video/x-fli": [
"fli"
],
"video/x-flv": [
"flv"
],
"video/x-m4v": [
"m4v"
],
"video/x-matroska": [
"mkv",
"mk3d",
"mks"
],
"video/x-mng": [
"mng"
],
"video/x-ms-asf": [
"asf",
"asx"
],
"video/x-ms-vob": [
"vob"
],
"video/x-ms-wm": [
"wm"
],
"video/x-ms-wmv": [
"wmv"
],
"video/x-ms-wmx": [
"wmx"
],
"video/x-ms-wvx": [
"wvx"
],
"video/x-msvideo": [
"avi"
],
"video/x-sgi-movie": [
"movie"
],
"video/x-smv": [
"smv"
],
"x-conference/x-cooltalk": [
"ice"
]
};
var mime_1;
var hasRequiredMime;
function requireMime () {
if (hasRequiredMime) return mime_1;
hasRequiredMime = 1;
var fs = require$$3;
function Mime() {
this.types = /* @__PURE__ */ Object.create(null);
this.extensions = /* @__PURE__ */ Object.create(null);
}
Mime.prototype.define = function(map) {
for (var type in map) {
var exts = map[type];
for (var i = 0; i < exts.length; i++) {
if (process.env.DEBUG_MIME && this.types[exts[i]]) {
console.warn((this._loading || "define()").replace(/.*\//, ""), 'changes "' + exts[i] + '" extension type from ' + this.types[exts[i]] + " to " + type);
}
this.types[exts[i]] = type;
}
if (!this.extensions[type]) {
this.extensions[type] = exts[0];
}
}
};
Mime.prototype.load = function(file) {
this._loading = file;
var map = {}, content = fs.readFileSync(file, "ascii"), lines = content.split(/[\r\n]+/);
lines.forEach(function(line) {
var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/);
map[fields.shift()] = fields;
});
this.define(map);
this._loading = null;
};
Mime.prototype.lookup = function(path2, fallback) {
var ext = path2.replace(/^.*[\.\/\\]/, "").toLowerCase();
return this.types[ext] || fallback || this.default_type;
};
Mime.prototype.extension = function(mimeType) {
var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();
return this.extensions[type];
};
var mime = new Mime();
mime.define(require$$2);
mime.default_type = mime.lookup("bin");
mime.Mime = Mime;
mime.charsets = {
lookup: function(mimeType, fallback) {
return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback;
}
};
mime_1 = mime;
return mime_1;
}
var contentDisposition = {exports: {}};
var safeBuffer = {exports: {}};
var hasRequiredSafeBuffer;
function requireSafeBuffer () {
if (hasRequiredSafeBuffer) return safeBuffer.exports;
hasRequiredSafeBuffer = 1;
(function (module, exports) {
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
var buffer = require$$0$4;
var Buffer = buffer.Buffer;
function copyProps(src, dst) {
for (var key in src) {
dst[key] = src[key];
}
}
if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
module.exports = buffer;
} else {
copyProps(buffer, exports);
exports.Buffer = SafeBuffer;
}
function SafeBuffer(arg, encodingOrOffset, length) {
return Buffer(arg, encodingOrOffset, length);
}
SafeBuffer.prototype = Object.create(Buffer.prototype);
copyProps(Buffer, SafeBuffer);
SafeBuffer.from = function(arg, encodingOrOffset, length) {
if (typeof arg === "number") {
throw new TypeError("Argument must not be a number");
}
return Buffer(arg, encodingOrOffset, length);
};
SafeBuffer.alloc = function(size, fill, encoding) {
if (typeof size !== "number") {
throw new TypeError("Argument must be a number");
}
var buf = Buffer(size);
if (fill !== void 0) {
if (typeof encoding === "string") {
buf.fill(fill, encoding);
} else {
buf.fill(fill);
}
} else {
buf.fill(0);
}
return buf;
};
SafeBuffer.allocUnsafe = function(size) {
if (typeof size !== "number") {
throw new TypeError("Argument must be a number");
}
return Buffer(size);
};
SafeBuffer.allocUnsafeSlow = function(size) {
if (typeof size !== "number") {
throw new TypeError("Argument must be a number");
}
return buffer.SlowBuffer(size);
};
} (safeBuffer, safeBuffer.exports));
return safeBuffer.exports;
}
var hasRequiredContentDisposition;
function requireContentDisposition () {
if (hasRequiredContentDisposition) return contentDisposition.exports;
hasRequiredContentDisposition = 1;
/*!
* content-disposition
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*/
contentDisposition.exports = contentDisposition$1;
contentDisposition.exports.parse = parse;
var basename = require$$1$2.basename;
var Buffer = requireSafeBuffer().Buffer;
var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g;
var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/;
var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g;
var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g;
var QESC_REGEXP = /\\([\u0000-\u007f])/g;
var QUOTE_REGEXP = /([\\"])/g;
var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g;
var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/;
var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/;
var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/;
var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;
function contentDisposition$1(filename, options) {
var opts = options || {};
var type = opts.type || "attachment";
var params = createparams(filename, opts.fallback);
return format(new ContentDisposition(type, params));
}
function createparams(filename, fallback) {
if (filename === void 0) {
return;
}
var params = {};
if (typeof filename !== "string") {
throw new TypeError("filename must be a string");
}
if (fallback === void 0) {
fallback = true;
}
if (typeof fallback !== "string" && typeof fallback !== "boolean") {
throw new TypeError("fallback must be a string or boolean");
}
if (typeof fallback === "string" && NON_LATIN1_REGEXP.test(fallback)) {
throw new TypeError("fallback must be ISO-8859-1 string");
}
var name = basename(filename);
var isQuotedString = TEXT_REGEXP.test(name);
var fallbackName = typeof fallback !== "string" ? fallback && getlatin1(name) : basename(fallback);
var hasFallback = typeof fallbackName === "string" && fallbackName !== name;
if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) {
params["filename*"] = name;
}
if (isQuotedString || hasFallback) {
params.filename = hasFallback ? fallbackName : name;
}
return params;
}
function format(obj) {
var parameters = obj.parameters;
var type = obj.type;
if (!type || typeof type !== "string" || !TOKEN_REGEXP.test(type)) {
throw new TypeError("invalid type");
}
var string = String(type).toLowerCase();
if (parameters && typeof parameters === "object") {
var param;
var params = Object.keys(parameters).sort();
for (var i = 0; i < params.length; i++) {
param = params[i];
var val = param.substr(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]);
string += "; " + param + "=" + val;
}
}
return string;
}
function decodefield(str) {
var match = EXT_VALUE_REGEXP.exec(str);
if (!match) {
throw new TypeError("invalid extended field value");
}
var charset = match[1].toLowerCase();
var encoded = match[2];
var value;
var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode);
switch (charset) {
case "iso-8859-1":
value = getlatin1(binary);
break;
case "utf-8":
value = Buffer.from(binary, "binary").toString("utf8");
break;
default:
throw new TypeError("unsupported charset in extended field");
}
return value;
}
function getlatin1(val) {
return String(val).replace(NON_LATIN1_REGEXP, "?");
}
function parse(string) {
if (!string || typeof string !== "string") {
throw new TypeError("argument string is required");
}
var match = DISPOSITION_TYPE_REGEXP.exec(string);
if (!match) {
throw new TypeError("invalid type format");
}
var index = match[0].length;
var type = match[1].toLowerCase();
var key;
var names = [];
var params = {};
var value;
index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ";" ? index - 1 : index;
while (match = PARAM_REGEXP.exec(string)) {
if (match.index !== index) {
throw new TypeError("invalid parameter format");
}
index += match[0].length;
key = match[1].toLowerCase();
value = match[2];
if (names.indexOf(key) !== -1) {
throw new TypeError("invalid duplicate parameter");
}
names.push(key);
if (key.indexOf("*") + 1 === key.length) {
key = key.slice(0, -1);
value = decodefield(value);
params[key] = value;
continue;
}
if (typeof params[key] === "string") {
continue;
}
if (value[0] === '"') {
value = value.substr(1, value.length - 2).replace(QESC_REGEXP, "$1");
}
params[key] = value;
}
if (index !== -1 && index !== string.length) {
throw new TypeError("invalid parameter format");
}
return new ContentDisposition(type, params);
}
function pdecode(str, hex) {
return String.fromCharCode(parseInt(hex, 16));
}
function pencode(char) {
return "%" + String(char).charCodeAt(0).toString(16).toUpperCase();
}
function qstring(val) {
var str = String(val);
return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
}
function ustring(val) {
var str = String(val);
var encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode);
return "UTF-8''" + encoded;
}
function ContentDisposition(type, parameters) {
this.type = type;
this.parameters = parameters;
}
return contentDisposition.exports;
}
var mockWritableStream;
var hasRequiredMockWritableStream;
function requireMockWritableStream () {
if (hasRequiredMockWritableStream) return mockWritableStream;
hasRequiredMockWritableStream = 1;
function WritableStream() {
}
Object.defineProperty(WritableStream, "writable", {
configurable: true,
enumerable: true,
get() {
return true;
}
});
WritableStream.prototype.end = () => {
};
WritableStream.prototype.destroy = () => {
};
WritableStream.prototype.destroySoon = () => {
};
mockWritableStream = WritableStream;
return mockWritableStream;
}
var mockEventEmitter;
var hasRequiredMockEventEmitter;
function requireMockEventEmitter () {
if (hasRequiredMockEventEmitter) return mockEventEmitter;
hasRequiredMockEventEmitter = 1;
function EventEmitter() {
}
EventEmitter.prototype.addListener = () => {
};
EventEmitter.prototype.on = () => {
};
EventEmitter.prototype.once = () => {
};
EventEmitter.prototype.removeListener = () => {
};
EventEmitter.prototype.removeAllListeners = () => {
};
EventEmitter.prototype.setMaxListeners = () => {
};
EventEmitter.prototype.listeners = () => {
};
EventEmitter.prototype.emit = () => {
};
EventEmitter.prototype.prependListener = () => {
};
mockEventEmitter = EventEmitter;
return mockEventEmitter;
}
var http = {};
var _http_server = {};
var hasRequired_http_server;
function require_http_server () {
if (hasRequired_http_server) return _http_server;
hasRequired_http_server = 1;
_http_server.STATUS_CODES = {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Moved Temporarily",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Time-out",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Request Entity Too Large",
414: "Request-URI Too Large",
415: "Unsupported Media Type",
416: "Requested Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a teapot",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Unordered Collection",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Time-out",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
};
return _http_server;
}
var _http_incoming = {};
var hasRequired_http_incoming;
function require_http_incoming () {
if (hasRequired_http_incoming) return _http_incoming;
hasRequired_http_incoming = 1;
const util = require$$1;
const Stream = require$$1$3;
function readStart() {
}
_http_incoming.readStart = readStart;
function readStop() {
}
_http_incoming.readStop = readStop;
function IncomingMessage() {
Stream.Readable.call(this);
this.httpVersionMajor = null;
this.httpVersionMinor = null;
this.httpVersion = null;
this.complete = false;
this.headers = {};
this.rawHeaders = [];
this.trailers = {};
this.rawTrailers = [];
this.readable = true;
this._pendings = [];
this._pendingIndex = 0;
this.upgrade = null;
this.url = "";
this.method = null;
this.statusCode = null;
this.statusMessage = null;
this._consuming = false;
this._dumped = false;
}
util.inherits(IncomingMessage, Stream.Readable);
_http_incoming.IncomingMessage = IncomingMessage;
IncomingMessage.prototype.read = () => {
};
IncomingMessage.prototype._read = () => {
};
IncomingMessage.prototype.destroy = () => {
};
IncomingMessage.prototype.setTimeout = function setTimeout(msecs, callback) {
};
IncomingMessage.prototype._addHeaderLines = function _addHeaderLines(headers, n) {
if (headers && headers.length) {
let raw;
let dest;
if (this.complete) {
raw = this.rawTrailers;
dest = this.trailers;
} else {
raw = this.rawHeaders;
dest = this.headers;
}
for (let i = 0; i < n; i += 2) {
const k = headers[i];
const v = headers[i + 1];
raw.push(k);
raw.push(v);
this._addHeaderLine(k, v, dest);
}
}
};
IncomingMessage.prototype._addHeaderLine = function _addHeaderLine(field, value, dest) {
const fieldName = field.toLowerCase();
switch (fieldName) {
// Array headers:
case "set-cookie":
if (!util.isUndefined(dest[fieldName])) {
dest[fieldName].push(value);
} else {
dest[fieldName] = [value];
}
break;
case "content-type":
case "content-length":
case "user-agent":
case "referer":
case "host":
case "authorization":
case "proxy-authorization":
case "if-modified-since":
case "if-unmodified-since":
case "from":
case "location":
case "max-forwards":
if (util.isUndefined(dest[fieldName])) {
dest[fieldName] = value;
}
break;
default:
if (!util.isUndefined(dest[fieldName])) {
dest[fieldName] += `, ${value}`;
} else {
dest[fieldName] = value;
}
}
};
IncomingMessage.prototype._dump = function _dump() {
if (!this._dumped) {
this._dumped = true;
}
};
return _http_incoming;
}
var hasRequiredHttp;
function requireHttp () {
if (hasRequiredHttp) return http;
hasRequiredHttp = 1;
const server = require_http_server();
http.IncomingMessage = require_http_incoming().IncomingMessage;
http.STATUS_CODES = server.STATUS_CODES;
return http;
}
var hasRequiredMockResponse;
function requireMockResponse () {
if (hasRequiredMockResponse) return mockResponse;
hasRequiredMockResponse = 1;
const mime = requireMime();
const path = require$$1$2;
const contentDisposition = requireContentDisposition();
let WritableStream = requireMockWritableStream();
let EventEmitter = requireMockEventEmitter();
const http = requireHttp();
const utils = requireUtils();
const TypedArray = Object.getPrototypeOf(Uint8Array);
function createResponse(options = {}) {
let _endCalled = false;
let _data = "";
let _buffer = Buffer.alloc(0);
const _chunks = [];
let _size = 0;
let _encoding = options.encoding;
let _redirectUrl = "";
let _renderView = "";
let _renderData = {};
if (options.writableStream) {
WritableStream = options.writableStream;
}
if (options.eventEmitter) {
EventEmitter = options.eventEmitter;
}
const writableStream = new WritableStream();
const mockRequest = options.req;
const mockResponse = Object.create(EventEmitter.prototype);
EventEmitter.call(mockResponse);
mockResponse._headers = {};
mockResponse.cookies = {};
mockResponse.finished = false;
mockResponse.writableEnded = false;
mockResponse.writableFinished = false;
mockResponse.headersSent = false;
mockResponse.statusCode = 200;
mockResponse.statusMessage = "OK";
mockResponse.locals = options.locals || {};
mockResponse.cookie = function cookie(name, value, opt) {
mockResponse.cookies[name] = {
value,
options: opt
};
return this;
};
mockResponse.clearCookie = function clearCookie(name, opt) {
const opts = opt || {};
opts.expires = /* @__PURE__ */ new Date(1);
opts.path = "/";
return this.cookie(name, "", opts);
};
mockResponse.status = function status(code) {
mockResponse.statusCode = code;
return this;
};
mockResponse.writeHead = function writeHead(statusCode, statusMessage, headers) {
if (_endCalled) {
throw new Error("The end() method has already been called.");
}
if (mockResponse.headersSent) {
return this;
}
mockResponse.statusCode = statusCode;
if (Object.prototype.toString.call(statusMessage) === "[object Object]") {
headers = statusMessage;
statusMessage = null;
}
if (statusMessage) {
mockResponse.statusMessage = statusMessage;
}
if (headers) {
Object.assign(mockResponse._headers, utils.convertKeysToLowerCase(headers));
}
this.headersSent = true;
return this;
};
mockResponse.send = function send(a, b, c) {
const _formatData = (data) => {
if (typeof data === "object") {
if (data.statusCode) {
mockResponse.statusCode = data.statusCode;
} else if (data.httpCode) {
mockResponse.statusCode = data.httpCode;
}
if (data.body) {
_data = data.body;
} else {
_data = data;
}
} else {
_data += data ?? "";
}
};
switch (arguments.length) {
case 1:
if (typeof a === "number") {
mockResponse.statusCode = a;
} else {
_formatData(a);
}
break;
case 2:
if (typeof a === "number") {
_formatData(b);
mockResponse.statusCode = a;
} else if (typeof b === "number") {
_formatData(a);
mockResponse.statusCode = b;
console.warn("WARNING: Called send() with deprecated parameter order");
} else {
_formatData(a);
_encoding = b;
}
break;
case 3:
_formatData(a);
mockResponse._headers = utils.convertKeysToLowerCase(b);
mockResponse.statusCode = c;
console.warn("WARNING: Called send() with deprecated three parameters");
break;
}
mockResponse.headersSent = true;
mockResponse.emit("send");
mockResponse.end();
return mockResponse;
};
mockResponse.sendStatus = function sendStatus(statusCode) {
const body = http.STATUS_CODES[statusCode] || String(statusCode);
mockResponse.statusCode = statusCode;
mockResponse.type("txt");
return mockResponse.send(body);
};
mockResponse.json = function json(a, b) {
mockResponse.setHeader("Content-Type", "application/json");
if (typeof a !== "undefined") {
if (typeof a === "number" && typeof b !== "undefined") {
mockResponse.statusCode = a;
mockResponse.write(JSON.stringify(b), "utf8");
} else if (typeof b !== "undefined" && typeof b === "number") {
mockResponse.statusCode = b;
mockResponse.write(JSON.stringify(a), "utf8");
} else {
mockResponse.write(JSON.stringify(a), "utf8");
}
}
mockResponse.emit("send");
mockResponse.end();
return mockResponse;
};
mockResponse.jsonp = function jsonp(a, b) {
mockResponse.setHeader("Content-Type", "text/javascript");
if (typeof a !== "undefined") {
if (typeof a === "number" && typeof b !== "undefined") {
mockResponse.statusCode = a;
_data += JSON.stringify(b);
} else if (typeof b !== "undefined" && typeof b === "number") {
mockResponse.statusCode = b;
_data += JSON.stringify(a);
} else {
_data += JSON.stringify(a);
}
}
mockResponse.emit("send");
mockResponse.end();
return mockResponse;
};
mockResponse.contentType = function contentType(type) {
return mockResponse.set("Content-Type", type.indexOf("/") >= 0 ? type : mime.lookup(type));
};
mockResponse.type = mockResponse.contentType;
mockResponse.location = function setLocation(location) {
return mockResponse.set("Location", location);
};
mockResponse.write = function write(data, encoding) {
mockResponse.headersSent = true;
if (data instanceof Buffer) {
_chunks.push(data);
_size += data.length;
} else if (data instanceof TypedArray) {
_data += new TextDecoder(encoding).decode(data);
} else {
_data += data;
}
if (encoding) {
_encoding = encoding;
}
};
function getEndArguments(args) {
let data;
let encoding;
let callback;
if (args[0]) {
if (typeof args[0] === "function") {
callback = args[0];
} else {
data = args[0];
}
}
if (args[1]) {
const type = typeof args[1];
if (type === "function") {
callback = args[1];
} else if (type === "string" || args[1] instanceof String) {
encoding = args[1];
}
}
if (args[2] && typeof args[2] === "function") {
callback = args[2];
}
return { data, encoding, callback };
}
mockResponse.end = function end(...endArgs) {
if (_endCalled) {
return;
}
mockResponse.finished = true;
mockResponse.writableEnded = true;
mockResponse.headersSent = true;
_endCalled = true;
const args = getEndArguments(endArgs);
if (args.data) {
if (args.data instanceof Buffer) {
_chunks.push(args.data);
_size += args.data.length;
} else if (args.data instanceof TypedArray) {
_data += new TextDecoder(args.encoding).decode(args.data);
} else {
_data += args.data;
}
}
if (_chunks.length) {
switch (_chunks.length) {
case 1:
_buffer = _chunks[0];
break;
default:
_buffer = Buffer.alloc(_size);
for (let i = 0, pos = 0, l = _chunks.length; i < l; i++) {
const chunk = _chunks[i];
chunk.copy(_buffer, pos);
pos += chunk.length;
}
break;
}
}
if (args.encoding) {
_encoding = args.encoding;
}
mockResponse.emit("end");
mockResponse.writableFinished = true;
mockResponse.emit("finish");
if (args.callback) {
args.callback();
}
};
mockResponse.vary = function vary(fields) {
const header = mockResponse.getHeader("Vary") || "";
let values = header.length ? header.split(", ") : [];
const uniqueFields = (Array.isArray(fields) ? fields : [fields]).filter((field) => {
const regex = new RegExp(field, "i");
const matches = values.filter((value) => value.match(regex));
return !matches.length;
});
values = values.concat(uniqueFields);
return mockResponse.setHeader("Vary", values.join(", "));
};
mockResponse.attachment = function attachment(filename) {
if (filename) {
mockResponse.type(path.extname(filename));
}
mockResponse.set("Content-Disposition", contentDisposition(filename));
return this;
};
mockResponse.append = function append(field, val) {
const prev = mockResponse.get(field);
let value = val;
if (prev) {
value = Array.isArray(prev) ? prev.concat(val) : [prev].concat(val);
}
return mockResponse.set(field, value);
};
mockResponse.header = function header(field, val) {
if (arguments.length === 2) {
let value;
if (Array.isArray(val)) {
value = val.map(String);
} else {
value = String(val);
}
mockResponse.setHeader(field, value);
} else if (typeof field === "string") {
return mockResponse.getHeader(field);
} else {
for (const key in field) {
if ({}.hasOwnProperty.call(field, key)) {
mockResponse.setHeader(key, field[key]);
}
}
}
return mockResponse;
};
mockResponse.set = mockResponse.header;
mockResponse.getHeaders = function getHeaders() {
return JSON.parse(JSON.stringify(mockResponse._headers));
};
mockResponse.getHeader = function getHeader(name) {
return mockResponse._headers[name.toLowerCase()];
};
mockResponse.get = mockResponse.getHeader;
mockResponse.getHeaderNames = function getHeaderNames() {
return Object.keys(mockResponse._headers);
};
mockResponse.hasHeader = function hasHeader(name) {
return name.toLowerCase() in mockResponse._headers;
};
mockResponse.setHeader = function setHeader(name, value) {
mockResponse._headers[name.toLowerCase()] = value;
return this;
};
mockResponse.appendHeader = function appendHeader(name, value) {
mockResponse.append(name, value);
return this;
};
mockResponse.removeHeader = function removeHeader(name) {
delete mockResponse._headers[name.toLowerCase()];
};
mockResponse.setEncoding = function setEncoding(encoding) {
_encoding = encoding;
};
mockResponse.getEncoding = function getEncoding() {
return _encoding;
};
mockResponse.redirect = function redirect(a, b) {
switch (arguments.length) {
case 1:
mockResponse.statusCode = 302;
_redirectUrl = a;
break;
case 2:
if (typeof a === "number") {
mockResponse.statusCode = a;
_redirectUrl = b;
}
break;
}
mockResponse.end();
};
mockResponse.render = function render(a, b, c) {
_renderView = a;
let data = b;
let done = c;
if (typeof b === "function") {
done = b;
data = {};
}
switch (arguments.length) {
case 2:
case 3:
_renderData = data;
break;
}
if (typeof done === "function") {
done(null, "");
} else {
mockResponse.emit("render");
mockResponse.end();
}
};
mockResponse.format = function format(supported = {}) {
const types = Object.keys(supported);
if (types.length === 0) {
return mockResponse.sendStatus(406);
}
if (!mockRequest) {
throw new Error(
"Request object unavailable. Use createMocks or pass in a request object in createResponse to use format."
);
}
const accepted = mockRequest.accepts(types);
if (accepted) {
return supported[accepted]();
}
if (supported.default) {
return supported.default();
}
return mockResponse.sendStatus(406);
};
mockResponse.destroy = function destroy(...args) {
return writableStream.destroy.apply(this, args);
};
mockResponse.destroySoon = function destroySoon(...args) {
return writableStream.destroySoon.apply(this, args);
};
mockResponse._isEndCalled = function _isEndCalled() {
return _endCalled;
};
mockResponse._getHeaders = function _getHeaders() {
return mockResponse._headers;
};
mockResponse._getLocals = function _getLocals() {
return mockResponse.locals;
};
mockResponse._getData = function _getData() {
return _data;
};
mockResponse._getJSONData = function _getJSONData() {
return JSON.parse(_data);
};
mockResponse._getBuffer = function _getBuffer() {
return _buffer;
};
mockResponse._getChunks = function _getChunks() {
return _chunks;
};
mockResponse._getStatusCode = function _getStatusCode() {
return mockResponse.statusCode;
};
mockResponse._getStatusMessage = function _getStatusMessage() {
return mockResponse.statusMessage;
};
mockResponse._isJSON = function _isJSON() {
return mockResponse.getHeader("Content-Type") === "application/json";
};
mockResponse._isUTF8 = function _isUTF8() {
if (!_encoding) {
return false;
}
return _encoding === "utf8";
};
mockResponse._isDataLengthValid = function _isDataLengthValid() {
if (mockResponse.getHeader("Content-Length")) {
return mockResponse.getHeader("Content-Length").toString() === _data.length.toString();
}
return true;
};
mockResponse._getRedirectUrl = function _getRedirectUrl() {
return _redirectUrl;
};
mockResponse._getRenderView = function _getRenderView() {
return _renderView;
};
mockResponse._getRenderData = function _getRenderData() {
return _renderData;
};
return mockResponse;
}
mockResponse.createResponse = createResponse;
return mockResponse;
}
var mockExpress = {exports: {}};
var mergeDescriptors;
var hasRequiredMergeDescriptors;
function requireMergeDescriptors () {
if (hasRequiredMergeDescriptors) return mergeDescriptors;
hasRequiredMergeDescriptors = 1;
/*!
* merge-descriptors
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
mergeDescriptors = merge;
var hasOwnProperty = Object.prototype.hasOwnProperty;
function merge(dest, src, redefine) {
if (!dest) {
throw new TypeError("argument dest is required");
}
if (!src) {
throw new TypeError("argument src is required");
}
if (redefine === void 0) {
redefine = true;
}
Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) {
if (!redefine && hasOwnProperty.call(dest, name)) {
return;
}
var descriptor = Object.getOwnPropertyDescriptor(src, name);
Object.defineProperty(dest, name, descriptor);
});
return dest;
}
return mergeDescriptors;
}
var methods;
var hasRequiredMethods;
function requireMethods () {
if (hasRequiredMethods) return methods;
hasRequiredMethods = 1;
/*!
* methods
* Copyright(c) 2013-2014 TJ Holowaychuk
* Copyright(c) 2015-2016 Douglas Christopher Wilson
* MIT Licensed
*/
var http = require$$3$1;
methods = getCurrentNodeMethods() || getBasicNodeMethods();
function getCurrentNodeMethods() {
return http.METHODS && http.METHODS.map(function lowerCaseMethod(method) {
return method.toLowerCase();
});
}
function getBasicNodeMethods() {
return [
"get",
"post",
"put",
"head",
"delete",
"options",
"trace",
"copy",
"lock",
"mkcol",
"move",
"purge",
"propfind",
"proppatch",
"unlock",
"report",
"mkactivity",
"checkout",
"merge",
"m-search",
"notify",
"subscribe",
"unsubscribe",
"patch",
"search",
"connect"
];
}
return methods;
}
var compat = {exports: {}};
var callsiteTostring;
var hasRequiredCallsiteTostring;
function requireCallsiteTostring () {
if (hasRequiredCallsiteTostring) return callsiteTostring;
hasRequiredCallsiteTostring = 1;
/*!
* depd
* Copyright(c) 2014 Douglas Christopher Wilson
* MIT Licensed
*/
callsiteTostring = callSiteToString;
function callSiteFileLocation(callSite) {
var fileName;
var fileLocation = "";
if (callSite.isNative()) {
fileLocation = "native";
} else if (callSite.isEval()) {
fileName = callSite.getScriptNameOrSourceURL();
if (!fileName) {
fileLocation = callSite.getEvalOrigin();
}
} else {
fileName = callSite.getFileName();
}
if (fileName) {
fileLocation += fileName;
var lineNumber = callSite.getLineNumber();
if (lineNumber != null) {
fileLocation += ":" + lineNumber;
var columnNumber = callSite.getColumnNumber();
if (columnNumber) {
fileLocation += ":" + columnNumber;
}
}
}
return fileLocation || "unknown source";
}
function callSiteToString(callSite) {
var addSuffix = true;
var fileLocation = callSiteFileLocation(callSite);
var functionName = callSite.getFunctionName();
var isConstructor = callSite.isConstructor();
var isMethodCall = !(callSite.isToplevel() || isConstructor);
var line = "";
if (isMethodCall) {
var methodName = callSite.getMethodName();
var typeName = getConstructorName(callSite);
if (functionName) {
if (typeName && functionName.indexOf(typeName) !== 0) {
line += typeName + ".";
}
line += functionName;
if (methodName && functionName.lastIndexOf("." + methodName) !== functionName.length - methodName.length - 1) {
line += " [as " + methodName + "]";
}
} else {
line += typeName + "." + (methodName || "<anonymous>");
}
} else if (isConstructor) {
line += "new " + (functionName || "<anonymous>");
} else if (functionName) {
line += functionName;
} else {
addSuffix = false;
line += fileLocation;
}
if (addSuffix) {
line += " (" + fileLocation + ")";
}
return line;
}
function getConstructorName(obj) {
var receiver = obj.receiver;
return receiver.constructor && receiver.constructor.name || null;
}
return callsiteTostring;
}
var eventListenerCount_1;
var hasRequiredEventListenerCount;
function requireEventListenerCount () {
if (hasRequiredEventListenerCount) return eventListenerCount_1;
hasRequiredEventListenerCount = 1;
/*!
* depd
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
eventListenerCount_1 = eventListenerCount;
function eventListenerCount(emitter, type) {
return emitter.listeners(type).length;
}
return eventListenerCount_1;
}
var hasRequiredCompat;
function requireCompat () {
if (hasRequiredCompat) return compat.exports;
hasRequiredCompat = 1;
(function (module) {
/*!
* depd
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*/
var EventEmitter = require$$1$1.EventEmitter;
lazyProperty(module.exports, "callSiteToString", function callSiteToString() {
var limit = Error.stackTraceLimit;
var obj = {};
var prep = Error.prepareStackTrace;
function prepareObjectStackTrace(obj2, stack2) {
return stack2;
}
Error.prepareStackTrace = prepareObjectStackTrace;
Error.stackTraceLimit = 2;
Error.captureStackTrace(obj);
var stack = obj.stack.slice();
Error.prepareStackTrace = prep;
Error.stackTraceLimit = limit;
return stack[0].toString ? toString : requireCallsiteTostring();
});
lazyProperty(module.exports, "eventListenerCount", function eventListenerCount() {
return EventEmitter.listenerCount || requireEventListenerCount();
});
function lazyProperty(obj, prop, getter) {
function get() {
var val = getter();
Object.defineProperty(obj, prop, {
configurable: true,
enumerable: true,
value: val
});
return val;
}
Object.defineProperty(obj, prop, {
configurable: true,
enumerable: true,
get
});
}
function toString(obj) {
return obj.toString();
}
} (compat));
return compat.exports;
}
var depd_1;
var hasRequiredDepd;
function requireDepd () {
if (hasRequiredDepd) return depd_1;
hasRequiredDepd = 1;
/*!
* depd
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*/
var callSiteToString = requireCompat().callSiteToString;
var eventListenerCount = requireCompat().eventListenerCount;
var relative = require$$1$2.relative;
depd_1 = depd;
var basePath = process.cwd();
function containsNamespace(str, namespace) {
var vals = str.split(/[ ,]+/);
var ns = String(namespace).toLowerCase();
for (var i = 0; i < vals.length; i++) {
var val = vals[i];
if (val && (val === "*" || val.toLowerCase() === ns)) {
return true;
}
}
return false;
}
function convertDataDescriptorToAccessor(obj, prop, message2) {
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
var value = descriptor.value;
descriptor.get = function getter() {
return value;
};
if (descriptor.writable) {
descriptor.set = function setter(val) {
return value = val;
};
}
delete descriptor.value;
delete descriptor.writable;
Object.defineProperty(obj, prop, descriptor);
return descriptor;
}
function createArgumentsString(arity) {
var str = "";
for (var i = 0; i < arity; i++) {
str += ", arg" + i;
}
return str.substr(2);
}
function createStackString(stack2) {
var str = this.name + ": " + this.namespace;
if (this.message) {
str += " deprecated " + this.message;
}
for (var i = 0; i < stack2.length; i++) {
str += "\n at " + callSiteToString(stack2[i]);
}
return str;
}
function depd(namespace) {
if (!namespace) {
throw new TypeError("argument namespace is required");
}
var stack2 = getStack();
var site2 = callSiteLocation(stack2[1]);
var file = site2[0];
function deprecate2(message2) {
log.call(deprecate2, message2);
}
deprecate2._file = file;
deprecate2._ignored = isignored(namespace);
deprecate2._namespace = namespace;
deprecate2._traced = istraced(namespace);
deprecate2._warned = /* @__PURE__ */ Object.create(null);
deprecate2.function = wrapfunction;
deprecate2.property = wrapproperty;
return deprecate2;
}
function isignored(namespace) {
if (process.noDeprecation) {
return true;
}
var str = process.env.NO_DEPRECATION || "";
return containsNamespace(str, namespace);
}
function istraced(namespace) {
if (process.traceDeprecation) {
return true;
}
var str = process.env.TRACE_DEPRECATION || "";
return containsNamespace(str, namespace);
}
function log(message2, site2) {
var haslisteners = eventListenerCount(process, "deprecation") !== 0;
if (!haslisteners && this._ignored) {
return;
}
var caller;
var callFile;
var callSite;
var depSite;
var i = 0;
var seen = false;
var stack2 = getStack();
var file = this._file;
if (site2) {
depSite = site2;
callSite = callSiteLocation(stack2[1]);
callSite.name = depSite.name;
file = callSite[0];
} else {
i = 2;
depSite = callSiteLocation(stack2[i]);
callSite = depSite;
}
for (; i < stack2.length; i++) {
caller = callSiteLocation(stack2[i]);
callFile = caller[0];
if (callFile === file) {
seen = true;
} else if (callFile === this._file) {
file = this._file;
} else if (seen) {
break;
}
}
var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0;
if (key !== void 0 && key in this._warned) {
return;
}
this._warned[key] = true;
var msg = message2;
if (!msg) {
msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite);
}
if (haslisteners) {
var err = DeprecationError(this._namespace, msg, stack2.slice(i));
process.emit("deprecation", err);
return;
}
var format = process.stderr.isTTY ? formatColor : formatPlain;
var output = format.call(this, msg, caller, stack2.slice(i));
process.stderr.write(output + "\n", "utf8");
}
function callSiteLocation(callSite) {
var file = callSite.getFileName() || "<anonymous>";
var line = callSite.getLineNumber();
var colm = callSite.getColumnNumber();
if (callSite.isEval()) {
file = callSite.getEvalOrigin() + ", " + file;
}
var site2 = [file, line, colm];
site2.callSite = callSite;
site2.name = callSite.getFunctionName();
return site2;
}
function defaultMessage(site2) {
var callSite = site2.callSite;
var funcName = site2.name;
if (!funcName) {
funcName = "<anonymous@" + formatLocation(site2) + ">";
}
var context = callSite.getThis();
var typeName = context && callSite.getTypeName();
if (typeName === "Object") {
typeName = void 0;
}
if (typeName === "Function") {
typeName = context.name || typeName;
}
return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName;
}
function formatPlain(msg, caller, stack2) {
var timestamp = (/* @__PURE__ */ new Date()).toUTCString();
var formatted = timestamp + " " + this._namespace + " deprecated " + msg;
if (this._traced) {
for (var i = 0; i < stack2.length; i++) {
formatted += "\n at " + callSiteToString(stack2[i]);
}
return formatted;
}
if (caller) {
formatted += " at " + formatLocation(caller);
}
return formatted;
}
function formatColor(msg, caller, stack2) {
var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m";
if (this._traced) {
for (var i = 0; i < stack2.length; i++) {
formatted += "\n \x1B[36mat " + callSiteToString(stack2[i]) + "\x1B[39m";
}
return formatted;
}
if (caller) {
formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m";
}
return formatted;
}
function formatLocation(callSite) {
return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
}
function getStack() {
var limit = Error.stackTraceLimit;
var obj = {};
var prep = Error.prepareStackTrace;
Error.prepareStackTrace = prepareObjectStackTrace;
Error.stackTraceLimit = Math.max(10, limit);
Error.captureStackTrace(obj);
var stack2 = obj.stack.slice(1);
Error.prepareStackTrace = prep;
Error.stackTraceLimit = limit;
return stack2;
}
function prepareObjectStackTrace(obj, stack2) {
return stack2;
}
function wrapfunction(fn, message) {
if (typeof fn !== "function") {
throw new TypeError("argument fn must be a function");
}
var args = createArgumentsString(fn.length);
var stack = getStack();
var site = callSiteLocation(stack[1]);
site.name = fn.name;
var deprecatedfn = eval("(function (" + args + ') {\n"use strict"\nlog.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n})');
return deprecatedfn;
}
function wrapproperty(obj, prop, message2) {
if (!obj || typeof obj !== "object" && typeof obj !== "function") {
throw new TypeError("argument obj must be object");
}
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
if (!descriptor) {
throw new TypeError("must call property on owner object");
}
if (!descriptor.configurable) {
throw new TypeError("property must be configurable");
}
var deprecate2 = this;
var stack2 = getStack();
var site2 = callSiteLocation(stack2[1]);
site2.name = prop;
if ("value" in descriptor) {
descriptor = convertDataDescriptorToAccessor(obj, prop);
}
var get = descriptor.get;
var set = descriptor.set;
if (typeof get === "function") {
descriptor.get = function getter() {
log.call(deprecate2, message2, site2);
return get.apply(this, arguments);
};
}
if (typeof set === "function") {
descriptor.set = function setter() {
log.call(deprecate2, message2, site2);
return set.apply(this, arguments);
};
}
Object.defineProperty(obj, prop, descriptor);
}
function DeprecationError(namespace, message2, stack2) {
var error = new Error();
var stackString;
Object.defineProperty(error, "constructor", {
value: DeprecationError
});
Object.defineProperty(error, "message", {
configurable: true,
enumerable: false,
value: message2,
writable: true
});
Object.defineProperty(error, "name", {
enumerable: false,
configurable: true,
value: "DeprecationError",
writable: true
});
Object.defineProperty(error, "namespace", {
configurable: true,
enumerable: false,
value: namespace,
writable: true
});
Object.defineProperty(error, "stack", {
configurable: true,
enumerable: false,
get: function() {
if (stackString !== void 0) {
return stackString;
}
return stackString = createStackString.call(this, stack2);
},
set: function setter(val) {
stackString = val;
}
});
return error;
}
return depd_1;
}
var mockApplication;
var hasRequiredMockApplication;
function requireMockApplication () {
if (hasRequiredMockApplication) return mockApplication;
hasRequiredMockApplication = 1;
const methods = requireMethods();
const deprecate = requireDepd()("express");
const app = {};
const trustProxyDefaultSymbol = "@@symbol:trust_proxy_default";
app.init = function init() {
this.cache = {};
this.settings = {};
this.engines = {};
this.defaultConfiguration();
};
app.defaultConfiguration = function defaultConfiguration() {
this.enable("x-powered-by");
this.set("etag", "weak");
const env = process.env.NODE_ENV || "development";
this.set("env", env);
this.set("query parser", "extended");
this.set("subdomain offset", 2);
this.set("trust proxy", false);
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
configurable: true,
value: true
});
this.locals = /* @__PURE__ */ Object.create(null);
this.mountpath = "/";
this.locals.settings = this.settings;
this.set("jsonp callback name", "callback");
if (env === "production") {
this.enable("view cache");
}
Object.defineProperty(this, "router", {
get() {
throw new Error(
"'app.router' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app."
);
}
});
};
app.lazyrouter = () => {
};
app.handle = () => {
};
app.route = () => {
};
app.render = () => {
};
app.listen = () => {
};
app.use = function use() {
return this;
};
app.engine = function engine() {
return this;
};
app.param = function param() {
return this;
};
app.set = function set(setting, val) {
if (arguments.length === 1) {
return this.settings[setting];
}
this.settings[setting] = val;
return this;
};
app.path = function path() {
return "";
};
app.enabled = function enabled(setting) {
return !!this.set(setting);
};
app.disabled = function disabled(setting) {
return !this.set(setting);
};
app.enable = function enable(setting) {
return this.set(setting, true);
};
app.disable = function disable(setting) {
return this.set(setting, false);
};
methods.forEach((method) => {
app[method] = function httpMethod() {
return this;
};
});
app.all = function all() {
return this;
};
app.del = deprecate.function(app.delete, "app.del: Use app.delete instead");
mockApplication = app;
return mockApplication;
}
var fresh_1;
var hasRequiredFresh;
function requireFresh () {
if (hasRequiredFresh) return fresh_1;
hasRequiredFresh = 1;
/*!
* fresh
* Copyright(c) 2012 TJ Holowaychuk
* Copyright(c) 2016-2017 Douglas Christopher Wilson
* MIT Licensed
*/
var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/;
fresh_1 = fresh;
function fresh(reqHeaders, resHeaders) {
var modifiedSince = reqHeaders["if-modified-since"];
var noneMatch = reqHeaders["if-none-match"];
if (!modifiedSince && !noneMatch) {
return false;
}
var cacheControl = reqHeaders["cache-control"];
if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
return false;
}
if (noneMatch && noneMatch !== "*") {
var etag = resHeaders["etag"];
if (!etag) {
return false;
}
var etagStale = true;
var matches = parseTokenList(noneMatch);
for (var i = 0; i < matches.length; i++) {
var match = matches[i];
if (match === etag || match === "W/" + etag || "W/" + match === etag) {
etagStale = false;
break;
}
}
if (etagStale) {
return false;
}
}
if (modifiedSince) {
var lastModified = resHeaders["last-modified"];
var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince));
if (modifiedStale) {
return false;
}
}
return true;
}
function parseHttpDate(date) {
var timestamp = date && Date.parse(date);
return typeof timestamp === "number" ? timestamp : NaN;
}
function parseTokenList(str) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = str.length; i < len; i++) {
switch (str.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
list.push(str.substring(start, end));
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
list.push(str.substring(start, end));
return list;
}
return fresh_1;
}
var defineGetter_1;
var hasRequiredDefineGetter;
function requireDefineGetter () {
if (hasRequiredDefineGetter) return defineGetter_1;
hasRequiredDefineGetter = 1;
function defineGetter(obj, name, getter) {
Object.defineProperty(obj, name, {
configurable: true,
enumerable: true,
get: getter
});
}
defineGetter_1 = defineGetter;
return defineGetter_1;
}
var mockRequest;
var hasRequiredMockRequest;
function requireMockRequest () {
if (hasRequiredMockRequest) return mockRequest;
hasRequiredMockRequest = 1;
const accepts = requireAccepts();
const typeis = requireTypeIs();
const parseRange = requireRangeParser();
const parse = requireParseurl();
const { isIP } = require$$4;
const fresh = requireFresh();
const http = require$$3$1;
const defineGetter = requireDefineGetter();
const req = {
__proto__: http.IncomingMessage.prototype
};
req.header = function header(name) {
const headerName = name.toLowerCase();
switch (headerName) {
case "referer":
case "referrer":
return this.headers.referrer || this.headers.referer;
default:
return this.headers[headerName];
}
};
req.get = req.header;
req.accepts = function acceptTypes(...args) {
const accept = accepts(this);
return accept.types(...args);
};
req.acceptsEncodings = function acceptsEncodings(...args) {
const accept = accepts(this);
return accept.encodings(...args);
};
req.acceptsEncoding = req.acceptsEncodings;
req.acceptsCharsets = function acceptsCharsets(...args) {
const accept = accepts(this);
return accept.charsets(...args);
};
req.acceptsCharset = req.acceptsCharsets;
req.acceptsLanguages = function acceptsLanguages(...args) {
const accept = accepts(this);
return accept.languages(...args);
};
req.acceptsLanguage = req.acceptsLanguages;
req.range = function getRange(size) {
const range = this.get("Range");
if (!range) {
return void 0;
}
return parseRange(size, range);
};
req.param = function param(name, defaultValue) {
const params = this.params || {};
const body = this.body || {};
const query = this.query || {};
if (params[name] !== null && {}.hasOwnProperty.call(params, name)) {
return params[name];
}
if (body[name] !== null) {
return body[name];
}
if (query[name] !== null) {
return query[name];
}
return defaultValue;
};
req.is = function is(...args) {
let types = args;
if (Array.isArray(args[0])) {
types = args[0];
}
return typeis(this, types);
};
defineGetter(req, "protocol", function protocol() {
let { proto } = this.options;
proto = this.get("X-Forwarded-Proto") || proto;
return proto.split(/\s*,\s*/)[0];
});
defineGetter(req, "secure", function secure() {
return this.protocol === "https";
});
defineGetter(req, "ip", function ip() {
return this.options.ip || "127.0.0.1";
});
defineGetter(req, "ips", function ips() {
return [this.ip];
});
defineGetter(req, "subdomains", function subdomains() {
const { hostname: hostname2 } = this;
if (!hostname2) {
return [];
}
const offset = this.app.get("subdomain offset");
const domains = !isIP(hostname2) ? hostname2.split(".").reverse() : [hostname2];
return domains.slice(offset);
});
defineGetter(req, "path", function path() {
return parse(this).pathname;
});
defineGetter(req, "hostname", function hostname() {
let host2 = this.get("X-Forwarded-Host");
if (!host2) {
host2 = this.get("Host");
}
if (!host2) {
return void 0;
}
const offset = host2[0] === "[" ? host2.indexOf("]") + 1 : 0;
const index = host2.indexOf(":", offset);
return index < 0 ? host2.substring(0, index) : host2;
});
defineGetter(req, "host", function host() {
return this.hostname;
});
defineGetter(req, "fresh", function isFresh() {
const { method } = this;
const { statusCode } = this.res;
if (method !== "GET" && method !== "HEAD") {
return false;
}
if (statusCode >= 200 && statusCode < 300 || statusCode === 304) {
return fresh(this.headers, this.res._headers || {});
}
return false;
});
defineGetter(req, "stale", function stale() {
return !this.fresh;
});
defineGetter(req, "xhr", function xhr() {
const val = this.get("X-Requested-With") || "";
return val.toLowerCase() === "xmlhttprequest";
});
mockRequest = req;
return mockRequest;
}
var hasRequiredMockExpress;
function requireMockExpress () {
if (hasRequiredMockExpress) return mockExpress.exports;
hasRequiredMockExpress = 1;
const { EventEmitter } = require$$1$1;
const mixin = requireMergeDescriptors();
const application = requireMockApplication();
const request = requireMockRequest();
const response = requireMockResponse();
const expressResponse = {
createResponse: response.createResponse
};
function createApplication() {
const app = function() {
};
mixin(app, EventEmitter.prototype, false);
mixin(app, application, false);
app.request = {
__proto__: request,
app
};
app.response = {
__proto__: expressResponse.createResponse(),
app
};
app.init();
return app;
}
mockExpress.exports = createApplication;
mockExpress.exports.application = application;
mockExpress.exports.request = request;
mockExpress.exports.response = expressResponse;
return mockExpress.exports;
}
var hasRequiredHttpMock;
function requireHttpMock () {
if (hasRequiredHttpMock) return httpMock;
hasRequiredHttpMock = 1;
const request = requireMockRequest$1();
const response = requireMockResponse();
const express = requireMockExpress();
const createRequestResponse = function(reqOpts, resOpts) {
const req = request.createRequest(reqOpts);
const res = response.createResponse({ ...resOpts, req });
return { req, res };
};
httpMock.createRequest = request.createRequest;
httpMock.createResponse = response.createResponse;
httpMock.createMocks = createRequestResponse;
httpMock.express = express;
return httpMock;
}
var httpMockExports = requireHttpMock();
function mockAppAtRequest(message, connectApp) {
message.app = connectApp;
message.app.get = (data) => {
return false;
};
return message;
}
async function transformRequestToIncomingMessage(connectApp, request, options) {
const parsedURL = new URL(request.url, "http://localhost");
const query = {};
for (const [key, value] of parsedURL.searchParams.entries()) {
query[key] = value;
}
let body;
try {
body = await request.clone().json();
} catch {
body = void 0;
}
const message = httpMockExports.createRequest({
method: request.method.toUpperCase(),
url: parsedURL.pathname + parsedURL.search,
path: parsedURL.pathname,
originalUrl: parsedURL.pathname + parsedURL.search,
baseUrl: parsedURL.origin,
headers: request.headers.toJSON(),
query,
body,
...options
});
return mockAppAtRequest(message, connectApp);
}
function transformResponseToServerResponse(serverResponse) {
return new Response(
serverResponse._getData() || serverResponse._getBuffer(),
{
status: serverResponse.statusCode,
statusText: serverResponse.statusMessage,
// @ts-expect-error
headers: serverResponse.getHeaders()
}
);
}
function createResponse(request, resolve) {
const response = httpMockExports.createResponse({
req: request
});
if (!response._implicitHeader)
response._implicitHeader = () => {
};
const end = response.end;
response.end = (...args) => {
const call = end.call(response, ...args);
const webResponse = transformResponseToServerResponse(response);
resolve(webResponse);
return call;
};
return response;
}
function connect(...middlewares) {
const connectApp = Connect();
for (const middleware of middlewares) {
connectApp.use(middleware);
}
return new Elysia({
name: "connect",
seed: middlewares
}).onRequest(async function processConnectMiddlewares({ request, set }) {
const message = await transformRequestToIncomingMessage(connectApp, request);
return await new Promise((resolve) => {
const response = createResponse(message, resolve);
connectApp.handle(message, response, () => {
const webResponse = transformResponseToServerResponse(response);
webResponse.headers.forEach((value, key) => {
set.headers[key] = value;
});
set.status = webResponse.status;
resolve(void 0);
});
});
});
}
export { connect };