UNPKG

electron-dl-manager

Version:

A library for implementing file downloads in Electron with 'save as' dialog and id support.

2 lines 163 kB
/*! For license information please see index.js.LICENSE.txt */ !function(a,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.exampleTypescriptPackage=e():a.exampleTypescriptPackage=e()}(this,(()=>{return a={207:(a,e,i)=>{const n=i(896),o=i(928),s=o.join(__dirname,"path.txt");a.exports=function(){let a;if(n.existsSync(s)&&(a=n.readFileSync(s,"utf-8")),process.env.ELECTRON_OVERRIDE_DIST_PATH)return o.join(process.env.ELECTRON_OVERRIDE_DIST_PATH,a||"electron");if(a)return o.join(__dirname,"dist",a);throw new Error("Electron failed to install correctly, please delete node_modules/electron and try installing again")}()},834:a=>{"use strict";a.exports=a=>{if("string"!=typeof a)throw new TypeError("Expected a string");return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},911:(a,e,i)=>{"use strict";var n=i(217);a.exports=function(){var a={};return Object.keys(n).forEach((function(e){var i=n[e];i.extensions&&i.extensions.length>0&&i.extensions.forEach((function(i){a[i]=e}))})),a}},819:(a,e,i)=>{"use strict";const n=i(911),o=i(891);a.exports=a=>{const e=o.desc(n()),i=Object.keys(e).filter((e=>a.endsWith(e)));return 0===i.length?[]:i.map((a=>({ext:a,mime:e[a]})))},a.exports.mime=a=>{const e=o.desc(n()),i=Object.keys(e).filter((i=>e[i]===a));return 0===i.length?[]:i.map((a=>({ext:a,mime:e[a]})))}},368:a=>{"use strict";var e=Object.prototype.toString;a.exports=function(a){var i;return"[object Object]"===e.call(a)&&(null===(i=Object.getPrototypeOf(a))||i===Object.getPrototypeOf({}))}},217:(a,e,i)=>{a.exports=i(813)},891:(a,e,i)=>{"use strict";var n=i(568);a.exports.desc=function(a){return n(a,(function(a,e){return e.length-a.length}))},a.exports.asc=function(a){return n(a,(function(a,e){return a.length-e.length}))}},568:(a,e,i)=>{"use strict";var n=i(368);a.exports=function(a,e){if(!n(a))throw new TypeError("Expected a plain object");"function"==typeof(e=e||{})&&(e={compare:e});var i=e.deep,o=[],s=[],c=function(a){var t=o.indexOf(a);if(-1!==t)return s[t];var p={},r=Object.keys(a).sort(e.compare);o.push(a),s.push(p);for(var l=0;l<r.length;l++){var u=r[l],m=a[u];p[u]=i&&n(m)?c(m):m}return p};return c(a)}},851:(a,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CallbackDispatcher=void 0,e.CallbackDispatcher=class{logger;callbacks;downloadDataId;constructor(a,e,i){this.downloadDataId=a,this.callbacks=e,this.logger=i}log(a){this.logger(`[${this.downloadDataId}] ${a}`)}async onDownloadStarted(a){const{callbacks:e}=this;if(e.onDownloadStarted){this.log("Calling onDownloadStarted");try{await e.onDownloadStarted(a)}catch(a){this.log(`Error during onDownloadStarted: ${a}`),this.handleError(a)}}}async onDownloadCompleted(a){const{callbacks:e}=this;if(e.onDownloadCompleted){this.log("Calling onDownloadCompleted");try{await e.onDownloadCompleted(a)}catch(a){this.log(`Error during onDownloadCompleted: ${a}`),this.handleError(a)}}}async onDownloadProgress(a){const{callbacks:e}=this;if(e.onDownloadProgress){this.log(` Calling onDownloadProgress ${a.percentCompleted}%`);try{await e.onDownloadProgress(a)}catch(a){this.log(`Error during onDownloadProgress: ${a}`),this.handleError(a)}}}async onDownloadCancelled(a){const{callbacks:e}=this;if(e.onDownloadCancelled){this.log("Calling onDownloadCancelled");try{await e.onDownloadCancelled(a)}catch(a){this.log(`Error during onDownloadCancelled: ${a}`),this.handleError(a)}}}async onDownloadInterrupted(a){const{callbacks:e}=this;if(e.onDownloadInterrupted){this.log("Calling onDownloadInterrupted");try{await e.onDownloadInterrupted(a)}catch(a){this.log(`Error during onDownloadInterrupted: ${a}`),this.handleError(a)}}}handleError(a,e){const{callbacks:i}=this;i.onError&&i.onError(a,e)}}},489:(a,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DownloadData=void 0;const n=i(116);e.DownloadData=class{id;item;webContents;event;resolvedFilename;cancelledFromSaveAsDialog;percentCompleted;downloadRateBytesPerSecond;estimatedTimeRemainingSeconds;interruptedVia;constructor(){this.id=(0,n.generateRandomId)(),this.resolvedFilename="testFile.txt",this.percentCompleted=0,this.cancelledFromSaveAsDialog=!1,this.item={},this.webContents={},this.event={},this.downloadRateBytesPerSecond=0,this.estimatedTimeRemainingSeconds=0}isDownloadInProgress(){return"progressing"===this.item.getState()}isDownloadCompleted(){return"completed"===this.item.getState()}isDownloadCancelled(){return"cancelled"===this.item.getState()}isDownloadInterrupted(){return"interrupted"===this.item.getState()}isDownloadResumable(){return this.item.canResume()}isDownloadPaused(){return this.item.isPaused()}}},200:function(a,e,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(a,e,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(e,i);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[i]}}),Object.defineProperty(a,n,o)}:function(a,e,i,n){void 0===n&&(n=i),a[n]=e[i]}),o=this&&this.__setModuleDefault||(Object.create?function(a,e){Object.defineProperty(a,"default",{enumerable:!0,value:e})}:function(a,e){a.default=e}),s=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var e={};if(null!=a)for(var i in a)"default"!==i&&Object.prototype.hasOwnProperty.call(a,i)&&n(e,a,i);return o(e,a),e};Object.defineProperty(e,"__esModule",{value:!0}),e.DownloadInitiator=void 0;const c=s(i(760)),t=i(851),p=i(489),r=i(116);e.DownloadInitiator=class{logger;onItemUpdated;onItemDone;onDownloadInit;onCleanup;callbackDispatcher;downloadData;config;onUpdateHandler;constructor(a){this.downloadData=new p.DownloadData,this.logger=a.debugLogger||(()=>{}),this.onItemUpdated=()=>Promise.resolve(),this.onItemDone=()=>Promise.resolve(),this.onCleanup=a.onCleanup||(()=>{}),this.onDownloadInit=a.onDownloadInit||(()=>{}),this.config={},this.callbackDispatcher={}}log(a){this.logger(`[${this.downloadData.id}] ${a}`)}getDownloadId(){return this.downloadData.id}getDownloadData(){return this.downloadData}generateOnWillDownload(a){return this.config=a,this.callbackDispatcher=new t.CallbackDispatcher(this.downloadData.id,a.callbacks,this.logger),async(a,e,i)=>{e.pause(),this.downloadData.item=e,this.downloadData.webContents=i,this.downloadData.event=a,this.onDownloadInit&&this.onDownloadInit(this.downloadData),this.config.saveDialogOptions?this.initSaveAsInteractiveDownload():await this.initNonInteractiveDownload()}}initSaveAsInteractiveDownload(){this.log("Prompting save as dialog");const{directory:a,overwrite:e,saveDialogOptions:i}=this.config,{item:n}=this.downloadData,o=(0,r.determineFilePath)({directory:a,item:n,overwrite:e});n.setSaveDialogOptions({...i,defaultPath:o});const s=setInterval((async()=>{n.pause(),n.getSavePath()?(clearInterval(s),this.log(`User selected save path to ${n.getSavePath()}`),this.log("Initiating download item handlers"),this.downloadData.resolvedFilename=c.basename(n.getSavePath()),this.augmentDownloadItem(n),await this.callbackDispatcher.onDownloadStarted(this.downloadData),this.downloadData.isDownloadCompleted()?await this.callbackDispatcher.onDownloadCompleted(this.downloadData):(this.onUpdateHandler=this.generateItemOnUpdated(),n.on("updated",this.onUpdateHandler),n.once("done",this.generateItemOnDone())),n._userInitiatedPause||n.resume()):this.downloadData.isDownloadCancelled()?(clearInterval(s),this.log("Download was cancelled"),this.downloadData.cancelledFromSaveAsDialog=!0,await this.callbackDispatcher.onDownloadCancelled(this.downloadData)):this.log("Waiting for save path to be chosen by user")}),1e3)}augmentDownloadItem(a){a._userInitiatedPause=!1;const e=a.pause.bind(a);a.pause=()=>{a._userInitiatedPause=!0,this.onUpdateHandler&&(a.off("updated",this.onUpdateHandler),this.onUpdateHandler=void 0),e()};const i=a.resume.bind(a);a.resume=()=>{this.onUpdateHandler||(this.onUpdateHandler=this.generateItemOnUpdated(),a.on("updated",this.onUpdateHandler)),i()}}async initNonInteractiveDownload(){const{directory:a,saveAsFilename:e,overwrite:i}=this.config,{item:n}=this.downloadData,o=(0,r.determineFilePath)({directory:a,saveAsFilename:e,item:n,overwrite:i});this.log(`Setting save path to ${o}`),n.setSavePath(o),this.log("Initiating download item handlers"),this.downloadData.resolvedFilename=c.basename(o),this.augmentDownloadItem(n),await this.callbackDispatcher.onDownloadStarted(this.downloadData),this.onUpdateHandler=this.generateItemOnUpdated(),n.on("updated",this.onUpdateHandler),n.once("done",this.generateItemOnDone()),n._userInitiatedPause||n.resume()}updateProgress(){const{item:a}=this.downloadData,e=(0,r.calculateDownloadMetrics)(a),i=a.getReceivedBytes(),n=a.getTotalBytes();i>a.getTotalBytes()&&this.log(`Downloaded bytes (${i}) is greater than total bytes (${n})`),this.downloadData.downloadRateBytesPerSecond=e.downloadRateBytesPerSecond,this.downloadData.estimatedTimeRemainingSeconds=e.estimatedTimeRemainingSeconds,this.downloadData.percentCompleted=e.percentCompleted}generateItemOnUpdated(){return async(a,e)=>{switch(e){case"progressing":this.updateProgress(),await this.callbackDispatcher.onDownloadProgress(this.downloadData);break;case"interrupted":this.downloadData.interruptedVia="in-progress",await this.callbackDispatcher.onDownloadInterrupted(this.downloadData);break;default:this.log(`Unexpected itemOnUpdated state: ${e}`)}}}generateItemOnDone(){return async(a,e)=>{switch(e){case"completed":this.log(`Download completed. Total bytes: ${this.downloadData.item.getTotalBytes()}`),await this.callbackDispatcher.onDownloadCompleted(this.downloadData);break;case"cancelled":this.log(`Download cancelled. Total bytes: ${this.downloadData.item.getReceivedBytes()} / ${this.downloadData.item.getTotalBytes()}`),await this.callbackDispatcher.onDownloadCancelled(this.downloadData);break;case"interrupted":this.log(`Download interrupted. Total bytes: ${this.downloadData.item.getReceivedBytes()} / ${this.downloadData.item.getTotalBytes()}`),this.downloadData.interruptedVia="completed",await this.callbackDispatcher.onDownloadInterrupted(this.downloadData);break;default:this.log(`Unexpected itemOnDone state: ${e}`)}this.cleanup()}}cleanup(){const{item:a}=this.downloadData;a&&(this.log("Cleaning up download item event listeners"),a.removeListener("updated",this.onItemUpdated),a.removeListener("done",this.onItemDone)),this.onCleanup&&this.onCleanup(this.downloadData),this.onUpdateHandler=void 0}}},748:(a,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ElectronDownloadManager=void 0;const n=i(200),o=i(116);class s{promise=Promise.resolve();add(a){return this.promise=this.promise.then((()=>a())),this.promise}}e.ElectronDownloadManager=class{downloadData;logger;downloadQueue=new s;constructor(a={}){this.downloadData={},this.logger=a.debugLogger||(()=>{})}log(a){this.logger(a)}getDownloadData(a){return this.downloadData[a]}cancelDownload(a){const e=this.downloadData[a];e?.item?(this.log(`[${a}] Cancelling download`),e.item.cancel()):this.log(`[${a}] Download ${a} not found for cancellation`)}pauseDownload(a){const e=this.downloadData[a];e?.item?(this.log(`[${a}] Pausing download`),e.item.pause()):this.log(`[${a}] Download ${a} not found for pausing`)}resumeDownload(a){const e=this.downloadData[a];e?.item?.isPaused()?(this.log(`[${a}] Resuming download`),e.item.resume()):this.log(`[${a}] Download ${a} not found or is not in a paused state`)}getActiveDownloadCount(){return Object.values(this.downloadData).filter((a=>a.isDownloadInProgress())).length}async download(a){return this.downloadQueue.add((()=>new Promise(((e,i)=>{try{if(a.saveAsFilename&&a.saveDialogOptions)return i(Error("You cannot define both saveAsFilename and saveDialogOptions to start a download"));const s=new n.DownloadInitiator({debugLogger:this.logger,onCleanup:a=>{this.cleanup(a)},onDownloadInit:a=>{this.downloadData[a.id]=a,e(a.id)}});this.log(`[${s.getDownloadId()}] Registering download for url: ${(0,o.truncateUrl)(a.url)}`),a.window.webContents.session.once("will-download",s.generateOnWillDownload(a)),a.window.webContents.downloadURL(a.url,a.downloadURLOptions)}catch(a){i(a)}}))))}cleanup(a){delete this.downloadData[a.id]}}},42:(a,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ElectronDownloadManagerMock=void 0;const n=i(489);e.ElectronDownloadManagerMock=class{async download(a){return"mock-download-id"}cancelDownload(a){}pauseDownload(a){}resumeDownload(a){}getActiveDownloadCount(){return 0}getDownloadData(a){const e=new n.DownloadData;return e.id=a,e}}},229:function(a,e,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(a,e,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(e,i);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[i]}}),Object.defineProperty(a,n,o)}:function(a,e,i,n){void 0===n&&(n=i),a[n]=e[i]}),o=this&&this.__exportStar||function(a,e){for(var i in a)"default"===i||Object.prototype.hasOwnProperty.call(e,i)||n(e,a,i)};Object.defineProperty(e,"__esModule",{value:!0}),e.truncateUrl=e.generateRandomId=e.getFilenameFromMime=void 0,o(i(696),e),o(i(748),e),o(i(851),e),o(i(489),e),o(i(200),e),o(i(42),e);var s=i(116);Object.defineProperty(e,"getFilenameFromMime",{enumerable:!0,get:function(){return s.getFilenameFromMime}});var c=i(116);Object.defineProperty(e,"generateRandomId",{enumerable:!0,get:function(){return c.generateRandomId}});var t=i(116);Object.defineProperty(e,"truncateUrl",{enumerable:!0,get:function(){return t.truncateUrl}})},696:(a,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0})},116:function(a,e,i){"use strict";var n=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(e,"__esModule",{value:!0}),e.calculateDownloadMetrics=e.determineFilePath=e.getFilenameFromMime=e.generateRandomId=e.truncateUrl=void 0;const o=n(i(598)),s=n(i(760)),c=i(207),t=n(i(819)),p=n(i(955));function r(a,e){const i=t.default.mime(e);return 1!==i.length?a:`${a}.${i[0].ext}`}e.truncateUrl=function(a){return a.length>50?`${a.slice(0,50)}...`:a},e.generateRandomId=function(){const a=(new Date).getTime(),e=Math.floor(1e3*Math.random()),i=a.toString()+e.toString(),n=o.default.createHash("sha256");return n.update(i),n.digest("hex").substring(0,6)},e.getFilenameFromMime=r,e.determineFilePath=function({directory:a,saveAsFilename:e,item:i,overwrite:n}){if(a&&!s.default.isAbsolute(a))throw new Error("The `directory` option must be an absolute path");let o;if(a=a||c.app?.getPath("downloads"),e)o=s.default.join(a,e);else{const e=i.getFilename(),c=s.default.extname(e)?e:r(e,i.getMimeType());o=n?s.default.join(a,c):p.default.sync(s.default.join(a,c))}return o},e.calculateDownloadMetrics=function(a){const e=a.getReceivedBytes(),i=a.getTotalBytes(),n=a.getStartTime(),o=Math.floor((new Date).getTime()/1e3)-n;let s=a.getCurrentBytesPerSecond?a.getCurrentBytesPerSecond():0,c=0;o>0&&(s||(s=e/o),s>0&&(c=(i-e)/s));let t=0;return t=a.getPercentComplete?a.getPercentComplete():i>0?Math.min(Number.parseFloat((e/i*100).toFixed(2)),100):0,{percentCompleted:t,downloadRateBytesPerSecond:s,estimatedTimeRemainingSeconds:c}}},955:(a,e,i)=>{"use strict";const n=i(928),o=i(879),s=i(834);class c extends Error{constructor(a,e){super("Max tries reached."),this.originalPath=a,this.lastTriedPath=e}}const t=(a,e)=>{const i=a.match(/^(?<filename>.*)\((?<index>\d+)\)$/);let{filename:n,index:o}=i?i.groups:{filename:a,index:0};return n=n.trim(),[`${n}${e}`,`${n} (${++o})${e}`]},p=(a,e)=>{const i=n.extname(a),o=n.dirname(a),[s,c]=e(n.basename(a,i),i);return[n.join(o,s),n.join(o,c)]},r=async(a,{incrementer:e=t,maxTries:i=Number.POSITIVE_INFINITY}={})=>{let n=0,[s]=p(a,e),r=a;for(;;){if(!await o(r))return r;if(++n>i)throw new c(s,r);[s,r]=p(r,e)}};a.exports=r,a.exports.default=r,a.exports.sync=(a,{incrementer:e=t,maxTries:i=Number.POSITIVE_INFINITY}={})=>{let n=0,[s]=p(a,e),r=a;for(;;){if(!o.sync(r))return r;if(++n>i)throw new c(s,r);[s,r]=p(r,e)}},a.exports.MaxTryError=c,a.exports.separatorIncrementer=a=>{const e=s(a);return(i,n)=>{const o=new RegExp(`^(?<filename>.*)${e}(?<index>\\d+)$`).exec(i);let{filename:s,index:c}=o?o.groups:{filename:i,index:0};return[`${s}${n}`,`${s.trim()}${a}${++c}${n}`]}}},879:(a,e,i)=>{"use strict";const n=i(896),{promisify:o}=i(23),s=o(n.access);a.exports=async a=>{try{return await s(a),!0}catch(a){return!1}},a.exports.sync=a=>{try{return n.accessSync(a),!0}catch(a){return!1}}},896:a=>{"use strict";a.exports=require("fs")},598:a=>{"use strict";a.exports=require("node:crypto")},760:a=>{"use strict";a.exports=require("node:path")},928:a=>{"use strict";a.exports=require("path")},23:a=>{"use strict";a.exports=require("util")},813:a=>{"use strict";a.exports=JSON.parse('{"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"