cli.js 241 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107
  1. 'use strict';
  2. var require$$0$1 = require('events');
  3. var build = require('./chunks/dep-1be34a63.js');
  4. var path = require('path');
  5. var require$$0$2 = require('tty');
  6. var require$$0$3 = require('util');
  7. var fs = require('fs');
  8. var require$$4 = require('net');
  9. var require$$0$4 = require('zlib');
  10. require('os');
  11. require('url');
  12. require('http');
  13. require('stream');
  14. require('resolve');
  15. require('module');
  16. require('https');
  17. require('tls');
  18. require('crypto');
  19. require('assert');
  20. require('buffer');
  21. require('querystring');
  22. require('repl');
  23. require('vm');
  24. require('console');
  25. require('esbuild');
  26. require('worker_threads');
  27. require('child_process');
  28. require('readline');
  29. function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
  30. var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
  31. var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
  32. var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
  33. var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
  34. var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4);
  35. var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4);
  36. function toArr(any) {
  37. return any == null ? [] : Array.isArray(any) ? any : [any];
  38. }
  39. function toVal(out, key, val, opts) {
  40. var x, old=out[key], nxt=(
  41. !!~opts.string.indexOf(key) ? (val == null || val === true ? '' : String(val))
  42. : typeof val === 'boolean' ? val
  43. : !!~opts.boolean.indexOf(key) ? (val === 'false' ? false : val === 'true' || (out._.push((x = +val,x * 0 === 0) ? x : val),!!val))
  44. : (x = +val,x * 0 === 0) ? x : val
  45. );
  46. out[key] = old == null ? nxt : (Array.isArray(old) ? old.concat(nxt) : [old, nxt]);
  47. }
  48. function mri2 (args, opts) {
  49. args = args || [];
  50. opts = opts || {};
  51. var k, arr, arg, name, val, out={ _:[] };
  52. var i=0, j=0, idx=0, len=args.length;
  53. const alibi = opts.alias !== void 0;
  54. const strict = opts.unknown !== void 0;
  55. const defaults = opts.default !== void 0;
  56. opts.alias = opts.alias || {};
  57. opts.string = toArr(opts.string);
  58. opts.boolean = toArr(opts.boolean);
  59. if (alibi) {
  60. for (k in opts.alias) {
  61. arr = opts.alias[k] = toArr(opts.alias[k]);
  62. for (i=0; i < arr.length; i++) {
  63. (opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);
  64. }
  65. }
  66. }
  67. for (i=opts.boolean.length; i-- > 0;) {
  68. arr = opts.alias[opts.boolean[i]] || [];
  69. for (j=arr.length; j-- > 0;) opts.boolean.push(arr[j]);
  70. }
  71. for (i=opts.string.length; i-- > 0;) {
  72. arr = opts.alias[opts.string[i]] || [];
  73. for (j=arr.length; j-- > 0;) opts.string.push(arr[j]);
  74. }
  75. if (defaults) {
  76. for (k in opts.default) {
  77. name = typeof opts.default[k];
  78. arr = opts.alias[k] = opts.alias[k] || [];
  79. if (opts[name] !== void 0) {
  80. opts[name].push(k);
  81. for (i=0; i < arr.length; i++) {
  82. opts[name].push(arr[i]);
  83. }
  84. }
  85. }
  86. }
  87. const keys = strict ? Object.keys(opts.alias) : [];
  88. for (i=0; i < len; i++) {
  89. arg = args[i];
  90. if (arg === '--') {
  91. out._ = out._.concat(args.slice(++i));
  92. break;
  93. }
  94. for (j=0; j < arg.length; j++) {
  95. if (arg.charCodeAt(j) !== 45) break; // "-"
  96. }
  97. if (j === 0) {
  98. out._.push(arg);
  99. } else if (arg.substring(j, j + 3) === 'no-') {
  100. name = arg.substring(j + 3);
  101. if (strict && !~keys.indexOf(name)) {
  102. return opts.unknown(arg);
  103. }
  104. out[name] = false;
  105. } else {
  106. for (idx=j+1; idx < arg.length; idx++) {
  107. if (arg.charCodeAt(idx) === 61) break; // "="
  108. }
  109. name = arg.substring(j, idx);
  110. val = arg.substring(++idx) || (i+1 === len || (''+args[i+1]).charCodeAt(0) === 45 || args[++i]);
  111. arr = (j === 2 ? [name] : name);
  112. for (idx=0; idx < arr.length; idx++) {
  113. name = arr[idx];
  114. if (strict && !~keys.indexOf(name)) return opts.unknown('-'.repeat(j) + name);
  115. toVal(out, name, (idx + 1 < arr.length) || val, opts);
  116. }
  117. }
  118. }
  119. if (defaults) {
  120. for (k in opts.default) {
  121. if (out[k] === void 0) {
  122. out[k] = opts.default[k];
  123. }
  124. }
  125. }
  126. if (alibi) {
  127. for (k in out) {
  128. arr = opts.alias[k] || [];
  129. while (arr.length > 0) {
  130. out[arr.shift()] = out[k];
  131. }
  132. }
  133. }
  134. return out;
  135. }
  136. const removeBrackets = (v) => v.replace(/[<[].+/, "").trim();
  137. const findAllBrackets = (v) => {
  138. const ANGLED_BRACKET_RE_GLOBAL = /<([^>]+)>/g;
  139. const SQUARE_BRACKET_RE_GLOBAL = /\[([^\]]+)\]/g;
  140. const res = [];
  141. const parse = (match) => {
  142. let variadic = false;
  143. let value = match[1];
  144. if (value.startsWith("...")) {
  145. value = value.slice(3);
  146. variadic = true;
  147. }
  148. return {
  149. required: match[0].startsWith("<"),
  150. value,
  151. variadic
  152. };
  153. };
  154. let angledMatch;
  155. while (angledMatch = ANGLED_BRACKET_RE_GLOBAL.exec(v)) {
  156. res.push(parse(angledMatch));
  157. }
  158. let squareMatch;
  159. while (squareMatch = SQUARE_BRACKET_RE_GLOBAL.exec(v)) {
  160. res.push(parse(squareMatch));
  161. }
  162. return res;
  163. };
  164. const getMriOptions = (options) => {
  165. const result = {alias: {}, boolean: []};
  166. for (const [index, option] of options.entries()) {
  167. if (option.names.length > 1) {
  168. result.alias[option.names[0]] = option.names.slice(1);
  169. }
  170. if (option.isBoolean) {
  171. if (option.negated) {
  172. const hasStringTypeOption = options.some((o, i) => {
  173. return i !== index && o.names.some((name) => option.names.includes(name)) && typeof o.required === "boolean";
  174. });
  175. if (!hasStringTypeOption) {
  176. result.boolean.push(option.names[0]);
  177. }
  178. } else {
  179. result.boolean.push(option.names[0]);
  180. }
  181. }
  182. }
  183. return result;
  184. };
  185. const findLongest = (arr) => {
  186. return arr.sort((a, b) => {
  187. return a.length > b.length ? -1 : 1;
  188. })[0];
  189. };
  190. const padRight = (str, length) => {
  191. return str.length >= length ? str : `${str}${" ".repeat(length - str.length)}`;
  192. };
  193. const camelcase = (input) => {
  194. return input.replace(/([a-z])-([a-z])/g, (_, p1, p2) => {
  195. return p1 + p2.toUpperCase();
  196. });
  197. };
  198. const setDotProp = (obj, keys, val) => {
  199. let i = 0;
  200. let length = keys.length;
  201. let t = obj;
  202. let x;
  203. for (; i < length; ++i) {
  204. x = t[keys[i]];
  205. t = t[keys[i]] = i === length - 1 ? val : x != null ? x : !!~keys[i + 1].indexOf(".") || !(+keys[i + 1] > -1) ? {} : [];
  206. }
  207. };
  208. const setByType = (obj, transforms) => {
  209. for (const key of Object.keys(transforms)) {
  210. const transform = transforms[key];
  211. if (transform.shouldTransform) {
  212. obj[key] = Array.prototype.concat.call([], obj[key]);
  213. if (typeof transform.transformFunction === "function") {
  214. obj[key] = obj[key].map(transform.transformFunction);
  215. }
  216. }
  217. }
  218. };
  219. const getFileName = (input) => {
  220. const m = /([^\\\/]+)$/.exec(input);
  221. return m ? m[1] : "";
  222. };
  223. const camelcaseOptionName = (name) => {
  224. return name.split(".").map((v, i) => {
  225. return i === 0 ? camelcase(v) : v;
  226. }).join(".");
  227. };
  228. class CACError extends Error {
  229. constructor(message) {
  230. super(message);
  231. this.name = this.constructor.name;
  232. if (typeof Error.captureStackTrace === "function") {
  233. Error.captureStackTrace(this, this.constructor);
  234. } else {
  235. this.stack = new Error(message).stack;
  236. }
  237. }
  238. }
  239. class Option {
  240. constructor(rawName, description, config) {
  241. this.rawName = rawName;
  242. this.description = description;
  243. this.config = Object.assign({}, config);
  244. rawName = rawName.replace(/\.\*/g, "");
  245. this.negated = false;
  246. this.names = removeBrackets(rawName).split(",").map((v) => {
  247. let name = v.trim().replace(/^-{1,2}/, "");
  248. if (name.startsWith("no-")) {
  249. this.negated = true;
  250. name = name.replace(/^no-/, "");
  251. }
  252. return camelcaseOptionName(name);
  253. }).sort((a, b) => a.length > b.length ? 1 : -1);
  254. this.name = this.names[this.names.length - 1];
  255. if (this.negated && this.config.default == null) {
  256. this.config.default = true;
  257. }
  258. if (rawName.includes("<")) {
  259. this.required = true;
  260. } else if (rawName.includes("[")) {
  261. this.required = false;
  262. } else {
  263. this.isBoolean = true;
  264. }
  265. }
  266. }
  267. const processArgs = process.argv;
  268. const platformInfo = `${process.platform}-${process.arch} node-${process.version}`;
  269. class Command {
  270. constructor(rawName, description, config = {}, cli) {
  271. this.rawName = rawName;
  272. this.description = description;
  273. this.config = config;
  274. this.cli = cli;
  275. this.options = [];
  276. this.aliasNames = [];
  277. this.name = removeBrackets(rawName);
  278. this.args = findAllBrackets(rawName);
  279. this.examples = [];
  280. }
  281. usage(text) {
  282. this.usageText = text;
  283. return this;
  284. }
  285. allowUnknownOptions() {
  286. this.config.allowUnknownOptions = true;
  287. return this;
  288. }
  289. ignoreOptionDefaultValue() {
  290. this.config.ignoreOptionDefaultValue = true;
  291. return this;
  292. }
  293. version(version, customFlags = "-v, --version") {
  294. this.versionNumber = version;
  295. this.option(customFlags, "Display version number");
  296. return this;
  297. }
  298. example(example) {
  299. this.examples.push(example);
  300. return this;
  301. }
  302. option(rawName, description, config) {
  303. const option = new Option(rawName, description, config);
  304. this.options.push(option);
  305. return this;
  306. }
  307. alias(name) {
  308. this.aliasNames.push(name);
  309. return this;
  310. }
  311. action(callback) {
  312. this.commandAction = callback;
  313. return this;
  314. }
  315. isMatched(name) {
  316. return this.name === name || this.aliasNames.includes(name);
  317. }
  318. get isDefaultCommand() {
  319. return this.name === "" || this.aliasNames.includes("!");
  320. }
  321. get isGlobalCommand() {
  322. return this instanceof GlobalCommand;
  323. }
  324. hasOption(name) {
  325. name = name.split(".")[0];
  326. return this.options.find((option) => {
  327. return option.names.includes(name);
  328. });
  329. }
  330. outputHelp() {
  331. const {name, commands} = this.cli;
  332. const {
  333. versionNumber,
  334. options: globalOptions,
  335. helpCallback
  336. } = this.cli.globalCommand;
  337. let sections = [
  338. {
  339. body: `${name}${versionNumber ? `/${versionNumber}` : ""}`
  340. }
  341. ];
  342. sections.push({
  343. title: "Usage",
  344. body: ` $ ${name} ${this.usageText || this.rawName}`
  345. });
  346. const showCommands = (this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0;
  347. if (showCommands) {
  348. const longestCommandName = findLongest(commands.map((command) => command.rawName));
  349. sections.push({
  350. title: "Commands",
  351. body: commands.map((command) => {
  352. return ` ${padRight(command.rawName, longestCommandName.length)} ${command.description}`;
  353. }).join("\n")
  354. });
  355. sections.push({
  356. title: `For more info, run any command with the \`--help\` flag`,
  357. body: commands.map((command) => ` $ ${name}${command.name === "" ? "" : ` ${command.name}`} --help`).join("\n")
  358. });
  359. }
  360. const options = this.isGlobalCommand ? globalOptions : [...this.options, ...globalOptions || []];
  361. if (options.length > 0) {
  362. const longestOptionName = findLongest(options.map((option) => option.rawName));
  363. sections.push({
  364. title: "Options",
  365. body: options.map((option) => {
  366. return ` ${padRight(option.rawName, longestOptionName.length)} ${option.description} ${option.config.default === void 0 ? "" : `(default: ${option.config.default})`}`;
  367. }).join("\n")
  368. });
  369. }
  370. if (this.examples.length > 0) {
  371. sections.push({
  372. title: "Examples",
  373. body: this.examples.map((example) => {
  374. if (typeof example === "function") {
  375. return example(name);
  376. }
  377. return example;
  378. }).join("\n")
  379. });
  380. }
  381. if (helpCallback) {
  382. sections = helpCallback(sections) || sections;
  383. }
  384. console.log(sections.map((section) => {
  385. return section.title ? `${section.title}:
  386. ${section.body}` : section.body;
  387. }).join("\n\n"));
  388. }
  389. outputVersion() {
  390. const {name} = this.cli;
  391. const {versionNumber} = this.cli.globalCommand;
  392. if (versionNumber) {
  393. console.log(`${name}/${versionNumber} ${platformInfo}`);
  394. }
  395. }
  396. checkRequiredArgs() {
  397. const minimalArgsCount = this.args.filter((arg) => arg.required).length;
  398. if (this.cli.args.length < minimalArgsCount) {
  399. throw new CACError(`missing required args for command \`${this.rawName}\``);
  400. }
  401. }
  402. checkUnknownOptions() {
  403. const {options, globalCommand} = this.cli;
  404. if (!this.config.allowUnknownOptions) {
  405. for (const name of Object.keys(options)) {
  406. if (name !== "--" && !this.hasOption(name) && !globalCommand.hasOption(name)) {
  407. throw new CACError(`Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``);
  408. }
  409. }
  410. }
  411. }
  412. checkOptionValue() {
  413. const {options: parsedOptions, globalCommand} = this.cli;
  414. const options = [...globalCommand.options, ...this.options];
  415. for (const option of options) {
  416. const value = parsedOptions[option.name.split(".")[0]];
  417. if (option.required) {
  418. const hasNegated = options.some((o) => o.negated && o.names.includes(option.name));
  419. if (value === true || value === false && !hasNegated) {
  420. throw new CACError(`option \`${option.rawName}\` value is missing`);
  421. }
  422. }
  423. }
  424. }
  425. }
  426. class GlobalCommand extends Command {
  427. constructor(cli) {
  428. super("@@global@@", "", {}, cli);
  429. }
  430. }
  431. var __assign = Object.assign;
  432. class CAC extends require$$0$1.EventEmitter {
  433. constructor(name = "") {
  434. super();
  435. this.name = name;
  436. this.commands = [];
  437. this.rawArgs = [];
  438. this.args = [];
  439. this.options = {};
  440. this.globalCommand = new GlobalCommand(this);
  441. this.globalCommand.usage("<command> [options]");
  442. }
  443. usage(text) {
  444. this.globalCommand.usage(text);
  445. return this;
  446. }
  447. command(rawName, description, config) {
  448. const command = new Command(rawName, description || "", config, this);
  449. command.globalCommand = this.globalCommand;
  450. this.commands.push(command);
  451. return command;
  452. }
  453. option(rawName, description, config) {
  454. this.globalCommand.option(rawName, description, config);
  455. return this;
  456. }
  457. help(callback) {
  458. this.globalCommand.option("-h, --help", "Display this message");
  459. this.globalCommand.helpCallback = callback;
  460. this.showHelpOnExit = true;
  461. return this;
  462. }
  463. version(version, customFlags = "-v, --version") {
  464. this.globalCommand.version(version, customFlags);
  465. this.showVersionOnExit = true;
  466. return this;
  467. }
  468. example(example) {
  469. this.globalCommand.example(example);
  470. return this;
  471. }
  472. outputHelp() {
  473. if (this.matchedCommand) {
  474. this.matchedCommand.outputHelp();
  475. } else {
  476. this.globalCommand.outputHelp();
  477. }
  478. }
  479. outputVersion() {
  480. this.globalCommand.outputVersion();
  481. }
  482. setParsedInfo({args, options}, matchedCommand, matchedCommandName) {
  483. this.args = args;
  484. this.options = options;
  485. if (matchedCommand) {
  486. this.matchedCommand = matchedCommand;
  487. }
  488. if (matchedCommandName) {
  489. this.matchedCommandName = matchedCommandName;
  490. }
  491. return this;
  492. }
  493. unsetMatchedCommand() {
  494. this.matchedCommand = void 0;
  495. this.matchedCommandName = void 0;
  496. }
  497. parse(argv = processArgs, {
  498. run = true
  499. } = {}) {
  500. this.rawArgs = argv;
  501. if (!this.name) {
  502. this.name = argv[1] ? getFileName(argv[1]) : "cli";
  503. }
  504. let shouldParse = true;
  505. for (const command of this.commands) {
  506. const parsed = this.mri(argv.slice(2), command);
  507. const commandName = parsed.args[0];
  508. if (command.isMatched(commandName)) {
  509. shouldParse = false;
  510. const parsedInfo = __assign(__assign({}, parsed), {
  511. args: parsed.args.slice(1)
  512. });
  513. this.setParsedInfo(parsedInfo, command, commandName);
  514. this.emit(`command:${commandName}`, command);
  515. }
  516. }
  517. if (shouldParse) {
  518. for (const command of this.commands) {
  519. if (command.name === "") {
  520. shouldParse = false;
  521. const parsed = this.mri(argv.slice(2), command);
  522. this.setParsedInfo(parsed, command);
  523. this.emit(`command:!`, command);
  524. }
  525. }
  526. }
  527. if (shouldParse) {
  528. const parsed = this.mri(argv.slice(2));
  529. this.setParsedInfo(parsed);
  530. }
  531. if (this.options.help && this.showHelpOnExit) {
  532. this.outputHelp();
  533. run = false;
  534. this.unsetMatchedCommand();
  535. }
  536. if (this.options.version && this.showVersionOnExit) {
  537. this.outputVersion();
  538. run = false;
  539. this.unsetMatchedCommand();
  540. }
  541. const parsedArgv = {args: this.args, options: this.options};
  542. if (run) {
  543. this.runMatchedCommand();
  544. }
  545. if (!this.matchedCommand && this.args[0]) {
  546. this.emit("command:*");
  547. }
  548. return parsedArgv;
  549. }
  550. mri(argv, command) {
  551. const cliOptions = [
  552. ...this.globalCommand.options,
  553. ...command ? command.options : []
  554. ];
  555. const mriOptions = getMriOptions(cliOptions);
  556. let argsAfterDoubleDashes = [];
  557. const doubleDashesIndex = argv.indexOf("--");
  558. if (doubleDashesIndex > -1) {
  559. argsAfterDoubleDashes = argv.slice(doubleDashesIndex + 1);
  560. argv = argv.slice(0, doubleDashesIndex);
  561. }
  562. let parsed = mri2(argv, mriOptions);
  563. parsed = Object.keys(parsed).reduce((res, name) => {
  564. return __assign(__assign({}, res), {
  565. [camelcaseOptionName(name)]: parsed[name]
  566. });
  567. }, {_: []});
  568. const args = parsed._;
  569. const options = {
  570. "--": argsAfterDoubleDashes
  571. };
  572. const ignoreDefault = command && command.config.ignoreOptionDefaultValue ? command.config.ignoreOptionDefaultValue : this.globalCommand.config.ignoreOptionDefaultValue;
  573. let transforms = Object.create(null);
  574. for (const cliOption of cliOptions) {
  575. if (!ignoreDefault && cliOption.config.default !== void 0) {
  576. for (const name of cliOption.names) {
  577. options[name] = cliOption.config.default;
  578. }
  579. }
  580. if (Array.isArray(cliOption.config.type)) {
  581. if (transforms[cliOption.name] === void 0) {
  582. transforms[cliOption.name] = Object.create(null);
  583. transforms[cliOption.name]["shouldTransform"] = true;
  584. transforms[cliOption.name]["transformFunction"] = cliOption.config.type[0];
  585. }
  586. }
  587. }
  588. for (const key of Object.keys(parsed)) {
  589. if (key !== "_") {
  590. const keys = key.split(".");
  591. setDotProp(options, keys, parsed[key]);
  592. setByType(options, transforms);
  593. }
  594. }
  595. return {
  596. args,
  597. options
  598. };
  599. }
  600. runMatchedCommand() {
  601. const {args, options, matchedCommand: command} = this;
  602. if (!command || !command.commandAction)
  603. return;
  604. command.checkUnknownOptions();
  605. command.checkOptionValue();
  606. command.checkRequiredArgs();
  607. const actionArgs = [];
  608. command.args.forEach((arg, index) => {
  609. if (arg.variadic) {
  610. actionArgs.push(args.slice(index));
  611. } else {
  612. actionArgs.push(args[index]);
  613. }
  614. });
  615. actionArgs.push(options);
  616. return command.commandAction.apply(this, actionArgs);
  617. }
  618. }
  619. const cac = (name = "") => new CAC(name);
  620. var compression$2 = {exports: {}};
  621. var negotiator = {exports: {}};
  622. var charset = {exports: {}};
  623. /**
  624. * negotiator
  625. * Copyright(c) 2012 Isaac Z. Schlueter
  626. * Copyright(c) 2014 Federico Romero
  627. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  628. * MIT Licensed
  629. */
  630. /**
  631. * Module exports.
  632. * @public
  633. */
  634. charset.exports = preferredCharsets;
  635. charset.exports.preferredCharsets = preferredCharsets;
  636. /**
  637. * Module variables.
  638. * @private
  639. */
  640. var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
  641. /**
  642. * Parse the Accept-Charset header.
  643. * @private
  644. */
  645. function parseAcceptCharset(accept) {
  646. var accepts = accept.split(',');
  647. for (var i = 0, j = 0; i < accepts.length; i++) {
  648. var charset = parseCharset(accepts[i].trim(), i);
  649. if (charset) {
  650. accepts[j++] = charset;
  651. }
  652. }
  653. // trim accepts
  654. accepts.length = j;
  655. return accepts;
  656. }
  657. /**
  658. * Parse a charset from the Accept-Charset header.
  659. * @private
  660. */
  661. function parseCharset(str, i) {
  662. var match = simpleCharsetRegExp.exec(str);
  663. if (!match) return null;
  664. var charset = match[1];
  665. var q = 1;
  666. if (match[2]) {
  667. var params = match[2].split(';');
  668. for (var j = 0; j < params.length; j++) {
  669. var p = params[j].trim().split('=');
  670. if (p[0] === 'q') {
  671. q = parseFloat(p[1]);
  672. break;
  673. }
  674. }
  675. }
  676. return {
  677. charset: charset,
  678. q: q,
  679. i: i
  680. };
  681. }
  682. /**
  683. * Get the priority of a charset.
  684. * @private
  685. */
  686. function getCharsetPriority(charset, accepted, index) {
  687. var priority = {o: -1, q: 0, s: 0};
  688. for (var i = 0; i < accepted.length; i++) {
  689. var spec = specify$3(charset, accepted[i], index);
  690. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  691. priority = spec;
  692. }
  693. }
  694. return priority;
  695. }
  696. /**
  697. * Get the specificity of the charset.
  698. * @private
  699. */
  700. function specify$3(charset, spec, index) {
  701. var s = 0;
  702. if(spec.charset.toLowerCase() === charset.toLowerCase()){
  703. s |= 1;
  704. } else if (spec.charset !== '*' ) {
  705. return null
  706. }
  707. return {
  708. i: index,
  709. o: spec.i,
  710. q: spec.q,
  711. s: s
  712. }
  713. }
  714. /**
  715. * Get the preferred charsets from an Accept-Charset header.
  716. * @public
  717. */
  718. function preferredCharsets(accept, provided) {
  719. // RFC 2616 sec 14.2: no header = *
  720. var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || '');
  721. if (!provided) {
  722. // sorted list of all charsets
  723. return accepts
  724. .filter(isQuality$3)
  725. .sort(compareSpecs$3)
  726. .map(getFullCharset);
  727. }
  728. var priorities = provided.map(function getPriority(type, index) {
  729. return getCharsetPriority(type, accepts, index);
  730. });
  731. // sorted list of accepted charsets
  732. return priorities.filter(isQuality$3).sort(compareSpecs$3).map(function getCharset(priority) {
  733. return provided[priorities.indexOf(priority)];
  734. });
  735. }
  736. /**
  737. * Compare two specs.
  738. * @private
  739. */
  740. function compareSpecs$3(a, b) {
  741. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  742. }
  743. /**
  744. * Get full charset string.
  745. * @private
  746. */
  747. function getFullCharset(spec) {
  748. return spec.charset;
  749. }
  750. /**
  751. * Check if a spec has any quality.
  752. * @private
  753. */
  754. function isQuality$3(spec) {
  755. return spec.q > 0;
  756. }
  757. var encoding = {exports: {}};
  758. /**
  759. * negotiator
  760. * Copyright(c) 2012 Isaac Z. Schlueter
  761. * Copyright(c) 2014 Federico Romero
  762. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  763. * MIT Licensed
  764. */
  765. /**
  766. * Module exports.
  767. * @public
  768. */
  769. encoding.exports = preferredEncodings;
  770. encoding.exports.preferredEncodings = preferredEncodings;
  771. /**
  772. * Module variables.
  773. * @private
  774. */
  775. var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
  776. /**
  777. * Parse the Accept-Encoding header.
  778. * @private
  779. */
  780. function parseAcceptEncoding(accept) {
  781. var accepts = accept.split(',');
  782. var hasIdentity = false;
  783. var minQuality = 1;
  784. for (var i = 0, j = 0; i < accepts.length; i++) {
  785. var encoding = parseEncoding(accepts[i].trim(), i);
  786. if (encoding) {
  787. accepts[j++] = encoding;
  788. hasIdentity = hasIdentity || specify$2('identity', encoding);
  789. minQuality = Math.min(minQuality, encoding.q || 1);
  790. }
  791. }
  792. if (!hasIdentity) {
  793. /*
  794. * If identity doesn't explicitly appear in the accept-encoding header,
  795. * it's added to the list of acceptable encoding with the lowest q
  796. */
  797. accepts[j++] = {
  798. encoding: 'identity',
  799. q: minQuality,
  800. i: i
  801. };
  802. }
  803. // trim accepts
  804. accepts.length = j;
  805. return accepts;
  806. }
  807. /**
  808. * Parse an encoding from the Accept-Encoding header.
  809. * @private
  810. */
  811. function parseEncoding(str, i) {
  812. var match = simpleEncodingRegExp.exec(str);
  813. if (!match) return null;
  814. var encoding = match[1];
  815. var q = 1;
  816. if (match[2]) {
  817. var params = match[2].split(';');
  818. for (var j = 0; j < params.length; j++) {
  819. var p = params[j].trim().split('=');
  820. if (p[0] === 'q') {
  821. q = parseFloat(p[1]);
  822. break;
  823. }
  824. }
  825. }
  826. return {
  827. encoding: encoding,
  828. q: q,
  829. i: i
  830. };
  831. }
  832. /**
  833. * Get the priority of an encoding.
  834. * @private
  835. */
  836. function getEncodingPriority(encoding, accepted, index) {
  837. var priority = {o: -1, q: 0, s: 0};
  838. for (var i = 0; i < accepted.length; i++) {
  839. var spec = specify$2(encoding, accepted[i], index);
  840. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  841. priority = spec;
  842. }
  843. }
  844. return priority;
  845. }
  846. /**
  847. * Get the specificity of the encoding.
  848. * @private
  849. */
  850. function specify$2(encoding, spec, index) {
  851. var s = 0;
  852. if(spec.encoding.toLowerCase() === encoding.toLowerCase()){
  853. s |= 1;
  854. } else if (spec.encoding !== '*' ) {
  855. return null
  856. }
  857. return {
  858. i: index,
  859. o: spec.i,
  860. q: spec.q,
  861. s: s
  862. }
  863. }
  864. /**
  865. * Get the preferred encodings from an Accept-Encoding header.
  866. * @public
  867. */
  868. function preferredEncodings(accept, provided) {
  869. var accepts = parseAcceptEncoding(accept || '');
  870. if (!provided) {
  871. // sorted list of all encodings
  872. return accepts
  873. .filter(isQuality$2)
  874. .sort(compareSpecs$2)
  875. .map(getFullEncoding);
  876. }
  877. var priorities = provided.map(function getPriority(type, index) {
  878. return getEncodingPriority(type, accepts, index);
  879. });
  880. // sorted list of accepted encodings
  881. return priorities.filter(isQuality$2).sort(compareSpecs$2).map(function getEncoding(priority) {
  882. return provided[priorities.indexOf(priority)];
  883. });
  884. }
  885. /**
  886. * Compare two specs.
  887. * @private
  888. */
  889. function compareSpecs$2(a, b) {
  890. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  891. }
  892. /**
  893. * Get full encoding string.
  894. * @private
  895. */
  896. function getFullEncoding(spec) {
  897. return spec.encoding;
  898. }
  899. /**
  900. * Check if a spec has any quality.
  901. * @private
  902. */
  903. function isQuality$2(spec) {
  904. return spec.q > 0;
  905. }
  906. var language = {exports: {}};
  907. /**
  908. * negotiator
  909. * Copyright(c) 2012 Isaac Z. Schlueter
  910. * Copyright(c) 2014 Federico Romero
  911. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  912. * MIT Licensed
  913. */
  914. /**
  915. * Module exports.
  916. * @public
  917. */
  918. language.exports = preferredLanguages;
  919. language.exports.preferredLanguages = preferredLanguages;
  920. /**
  921. * Module variables.
  922. * @private
  923. */
  924. var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
  925. /**
  926. * Parse the Accept-Language header.
  927. * @private
  928. */
  929. function parseAcceptLanguage(accept) {
  930. var accepts = accept.split(',');
  931. for (var i = 0, j = 0; i < accepts.length; i++) {
  932. var language = parseLanguage(accepts[i].trim(), i);
  933. if (language) {
  934. accepts[j++] = language;
  935. }
  936. }
  937. // trim accepts
  938. accepts.length = j;
  939. return accepts;
  940. }
  941. /**
  942. * Parse a language from the Accept-Language header.
  943. * @private
  944. */
  945. function parseLanguage(str, i) {
  946. var match = simpleLanguageRegExp.exec(str);
  947. if (!match) return null;
  948. var prefix = match[1],
  949. suffix = match[2],
  950. full = prefix;
  951. if (suffix) full += "-" + suffix;
  952. var q = 1;
  953. if (match[3]) {
  954. var params = match[3].split(';');
  955. for (var j = 0; j < params.length; j++) {
  956. var p = params[j].split('=');
  957. if (p[0] === 'q') q = parseFloat(p[1]);
  958. }
  959. }
  960. return {
  961. prefix: prefix,
  962. suffix: suffix,
  963. q: q,
  964. i: i,
  965. full: full
  966. };
  967. }
  968. /**
  969. * Get the priority of a language.
  970. * @private
  971. */
  972. function getLanguagePriority(language, accepted, index) {
  973. var priority = {o: -1, q: 0, s: 0};
  974. for (var i = 0; i < accepted.length; i++) {
  975. var spec = specify$1(language, accepted[i], index);
  976. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  977. priority = spec;
  978. }
  979. }
  980. return priority;
  981. }
  982. /**
  983. * Get the specificity of the language.
  984. * @private
  985. */
  986. function specify$1(language, spec, index) {
  987. var p = parseLanguage(language);
  988. if (!p) return null;
  989. var s = 0;
  990. if(spec.full.toLowerCase() === p.full.toLowerCase()){
  991. s |= 4;
  992. } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
  993. s |= 2;
  994. } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
  995. s |= 1;
  996. } else if (spec.full !== '*' ) {
  997. return null
  998. }
  999. return {
  1000. i: index,
  1001. o: spec.i,
  1002. q: spec.q,
  1003. s: s
  1004. }
  1005. }
  1006. /**
  1007. * Get the preferred languages from an Accept-Language header.
  1008. * @public
  1009. */
  1010. function preferredLanguages(accept, provided) {
  1011. // RFC 2616 sec 14.4: no header = *
  1012. var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || '');
  1013. if (!provided) {
  1014. // sorted list of all languages
  1015. return accepts
  1016. .filter(isQuality$1)
  1017. .sort(compareSpecs$1)
  1018. .map(getFullLanguage);
  1019. }
  1020. var priorities = provided.map(function getPriority(type, index) {
  1021. return getLanguagePriority(type, accepts, index);
  1022. });
  1023. // sorted list of accepted languages
  1024. return priorities.filter(isQuality$1).sort(compareSpecs$1).map(function getLanguage(priority) {
  1025. return provided[priorities.indexOf(priority)];
  1026. });
  1027. }
  1028. /**
  1029. * Compare two specs.
  1030. * @private
  1031. */
  1032. function compareSpecs$1(a, b) {
  1033. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  1034. }
  1035. /**
  1036. * Get full language string.
  1037. * @private
  1038. */
  1039. function getFullLanguage(spec) {
  1040. return spec.full;
  1041. }
  1042. /**
  1043. * Check if a spec has any quality.
  1044. * @private
  1045. */
  1046. function isQuality$1(spec) {
  1047. return spec.q > 0;
  1048. }
  1049. var mediaType = {exports: {}};
  1050. /**
  1051. * negotiator
  1052. * Copyright(c) 2012 Isaac Z. Schlueter
  1053. * Copyright(c) 2014 Federico Romero
  1054. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  1055. * MIT Licensed
  1056. */
  1057. /**
  1058. * Module exports.
  1059. * @public
  1060. */
  1061. mediaType.exports = preferredMediaTypes;
  1062. mediaType.exports.preferredMediaTypes = preferredMediaTypes;
  1063. /**
  1064. * Module variables.
  1065. * @private
  1066. */
  1067. var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
  1068. /**
  1069. * Parse the Accept header.
  1070. * @private
  1071. */
  1072. function parseAccept(accept) {
  1073. var accepts = splitMediaTypes(accept);
  1074. for (var i = 0, j = 0; i < accepts.length; i++) {
  1075. var mediaType = parseMediaType(accepts[i].trim(), i);
  1076. if (mediaType) {
  1077. accepts[j++] = mediaType;
  1078. }
  1079. }
  1080. // trim accepts
  1081. accepts.length = j;
  1082. return accepts;
  1083. }
  1084. /**
  1085. * Parse a media type from the Accept header.
  1086. * @private
  1087. */
  1088. function parseMediaType(str, i) {
  1089. var match = simpleMediaTypeRegExp.exec(str);
  1090. if (!match) return null;
  1091. var params = Object.create(null);
  1092. var q = 1;
  1093. var subtype = match[2];
  1094. var type = match[1];
  1095. if (match[3]) {
  1096. var kvps = splitParameters(match[3]).map(splitKeyValuePair);
  1097. for (var j = 0; j < kvps.length; j++) {
  1098. var pair = kvps[j];
  1099. var key = pair[0].toLowerCase();
  1100. var val = pair[1];
  1101. // get the value, unwrapping quotes
  1102. var value = val && val[0] === '"' && val[val.length - 1] === '"'
  1103. ? val.substr(1, val.length - 2)
  1104. : val;
  1105. if (key === 'q') {
  1106. q = parseFloat(value);
  1107. break;
  1108. }
  1109. // store parameter
  1110. params[key] = value;
  1111. }
  1112. }
  1113. return {
  1114. type: type,
  1115. subtype: subtype,
  1116. params: params,
  1117. q: q,
  1118. i: i
  1119. };
  1120. }
  1121. /**
  1122. * Get the priority of a media type.
  1123. * @private
  1124. */
  1125. function getMediaTypePriority(type, accepted, index) {
  1126. var priority = {o: -1, q: 0, s: 0};
  1127. for (var i = 0; i < accepted.length; i++) {
  1128. var spec = specify(type, accepted[i], index);
  1129. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  1130. priority = spec;
  1131. }
  1132. }
  1133. return priority;
  1134. }
  1135. /**
  1136. * Get the specificity of the media type.
  1137. * @private
  1138. */
  1139. function specify(type, spec, index) {
  1140. var p = parseMediaType(type);
  1141. var s = 0;
  1142. if (!p) {
  1143. return null;
  1144. }
  1145. if(spec.type.toLowerCase() == p.type.toLowerCase()) {
  1146. s |= 4;
  1147. } else if(spec.type != '*') {
  1148. return null;
  1149. }
  1150. if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
  1151. s |= 2;
  1152. } else if(spec.subtype != '*') {
  1153. return null;
  1154. }
  1155. var keys = Object.keys(spec.params);
  1156. if (keys.length > 0) {
  1157. if (keys.every(function (k) {
  1158. return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase();
  1159. })) {
  1160. s |= 1;
  1161. } else {
  1162. return null
  1163. }
  1164. }
  1165. return {
  1166. i: index,
  1167. o: spec.i,
  1168. q: spec.q,
  1169. s: s,
  1170. }
  1171. }
  1172. /**
  1173. * Get the preferred media types from an Accept header.
  1174. * @public
  1175. */
  1176. function preferredMediaTypes(accept, provided) {
  1177. // RFC 2616 sec 14.2: no header = */*
  1178. var accepts = parseAccept(accept === undefined ? '*/*' : accept || '');
  1179. if (!provided) {
  1180. // sorted list of all types
  1181. return accepts
  1182. .filter(isQuality)
  1183. .sort(compareSpecs)
  1184. .map(getFullType);
  1185. }
  1186. var priorities = provided.map(function getPriority(type, index) {
  1187. return getMediaTypePriority(type, accepts, index);
  1188. });
  1189. // sorted list of accepted types
  1190. return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) {
  1191. return provided[priorities.indexOf(priority)];
  1192. });
  1193. }
  1194. /**
  1195. * Compare two specs.
  1196. * @private
  1197. */
  1198. function compareSpecs(a, b) {
  1199. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  1200. }
  1201. /**
  1202. * Get full type string.
  1203. * @private
  1204. */
  1205. function getFullType(spec) {
  1206. return spec.type + '/' + spec.subtype;
  1207. }
  1208. /**
  1209. * Check if a spec has any quality.
  1210. * @private
  1211. */
  1212. function isQuality(spec) {
  1213. return spec.q > 0;
  1214. }
  1215. /**
  1216. * Count the number of quotes in a string.
  1217. * @private
  1218. */
  1219. function quoteCount(string) {
  1220. var count = 0;
  1221. var index = 0;
  1222. while ((index = string.indexOf('"', index)) !== -1) {
  1223. count++;
  1224. index++;
  1225. }
  1226. return count;
  1227. }
  1228. /**
  1229. * Split a key value pair.
  1230. * @private
  1231. */
  1232. function splitKeyValuePair(str) {
  1233. var index = str.indexOf('=');
  1234. var key;
  1235. var val;
  1236. if (index === -1) {
  1237. key = str;
  1238. } else {
  1239. key = str.substr(0, index);
  1240. val = str.substr(index + 1);
  1241. }
  1242. return [key, val];
  1243. }
  1244. /**
  1245. * Split an Accept header into media types.
  1246. * @private
  1247. */
  1248. function splitMediaTypes(accept) {
  1249. var accepts = accept.split(',');
  1250. for (var i = 1, j = 0; i < accepts.length; i++) {
  1251. if (quoteCount(accepts[j]) % 2 == 0) {
  1252. accepts[++j] = accepts[i];
  1253. } else {
  1254. accepts[j] += ',' + accepts[i];
  1255. }
  1256. }
  1257. // trim accepts
  1258. accepts.length = j + 1;
  1259. return accepts;
  1260. }
  1261. /**
  1262. * Split a string of parameters.
  1263. * @private
  1264. */
  1265. function splitParameters(str) {
  1266. var parameters = str.split(';');
  1267. for (var i = 1, j = 0; i < parameters.length; i++) {
  1268. if (quoteCount(parameters[j]) % 2 == 0) {
  1269. parameters[++j] = parameters[i];
  1270. } else {
  1271. parameters[j] += ';' + parameters[i];
  1272. }
  1273. }
  1274. // trim parameters
  1275. parameters.length = j + 1;
  1276. for (var i = 0; i < parameters.length; i++) {
  1277. parameters[i] = parameters[i].trim();
  1278. }
  1279. return parameters;
  1280. }
  1281. /*!
  1282. * negotiator
  1283. * Copyright(c) 2012 Federico Romero
  1284. * Copyright(c) 2012-2014 Isaac Z. Schlueter
  1285. * Copyright(c) 2015 Douglas Christopher Wilson
  1286. * MIT Licensed
  1287. */
  1288. /**
  1289. * Cached loaded submodules.
  1290. * @private
  1291. */
  1292. var modules = Object.create(null);
  1293. /**
  1294. * Module exports.
  1295. * @public
  1296. */
  1297. negotiator.exports = Negotiator$1;
  1298. negotiator.exports.Negotiator = Negotiator$1;
  1299. /**
  1300. * Create a Negotiator instance from a request.
  1301. * @param {object} request
  1302. * @public
  1303. */
  1304. function Negotiator$1(request) {
  1305. if (!(this instanceof Negotiator$1)) {
  1306. return new Negotiator$1(request);
  1307. }
  1308. this.request = request;
  1309. }
  1310. Negotiator$1.prototype.charset = function charset(available) {
  1311. var set = this.charsets(available);
  1312. return set && set[0];
  1313. };
  1314. Negotiator$1.prototype.charsets = function charsets(available) {
  1315. var preferredCharsets = loadModule('charset').preferredCharsets;
  1316. return preferredCharsets(this.request.headers['accept-charset'], available);
  1317. };
  1318. Negotiator$1.prototype.encoding = function encoding(available) {
  1319. var set = this.encodings(available);
  1320. return set && set[0];
  1321. };
  1322. Negotiator$1.prototype.encodings = function encodings(available) {
  1323. var preferredEncodings = loadModule('encoding').preferredEncodings;
  1324. return preferredEncodings(this.request.headers['accept-encoding'], available);
  1325. };
  1326. Negotiator$1.prototype.language = function language(available) {
  1327. var set = this.languages(available);
  1328. return set && set[0];
  1329. };
  1330. Negotiator$1.prototype.languages = function languages(available) {
  1331. var preferredLanguages = loadModule('language').preferredLanguages;
  1332. return preferredLanguages(this.request.headers['accept-language'], available);
  1333. };
  1334. Negotiator$1.prototype.mediaType = function mediaType(available) {
  1335. var set = this.mediaTypes(available);
  1336. return set && set[0];
  1337. };
  1338. Negotiator$1.prototype.mediaTypes = function mediaTypes(available) {
  1339. var preferredMediaTypes = loadModule('mediaType').preferredMediaTypes;
  1340. return preferredMediaTypes(this.request.headers.accept, available);
  1341. };
  1342. // Backwards compatibility
  1343. Negotiator$1.prototype.preferredCharset = Negotiator$1.prototype.charset;
  1344. Negotiator$1.prototype.preferredCharsets = Negotiator$1.prototype.charsets;
  1345. Negotiator$1.prototype.preferredEncoding = Negotiator$1.prototype.encoding;
  1346. Negotiator$1.prototype.preferredEncodings = Negotiator$1.prototype.encodings;
  1347. Negotiator$1.prototype.preferredLanguage = Negotiator$1.prototype.language;
  1348. Negotiator$1.prototype.preferredLanguages = Negotiator$1.prototype.languages;
  1349. Negotiator$1.prototype.preferredMediaType = Negotiator$1.prototype.mediaType;
  1350. Negotiator$1.prototype.preferredMediaTypes = Negotiator$1.prototype.mediaTypes;
  1351. /**
  1352. * Load the given module.
  1353. * @private
  1354. */
  1355. function loadModule(moduleName) {
  1356. var module = modules[moduleName];
  1357. if (module !== undefined) {
  1358. return module;
  1359. }
  1360. // This uses a switch for static require analysis
  1361. switch (moduleName) {
  1362. case 'charset':
  1363. module = charset.exports;
  1364. break;
  1365. case 'encoding':
  1366. module = encoding.exports;
  1367. break;
  1368. case 'language':
  1369. module = language.exports;
  1370. break;
  1371. case 'mediaType':
  1372. module = mediaType.exports;
  1373. break;
  1374. default:
  1375. throw new Error('Cannot find module \'' + moduleName + '\'');
  1376. }
  1377. // Store to prevent invoking require()
  1378. modules[moduleName] = module;
  1379. return module;
  1380. }
  1381. var mimeTypes = {};
  1382. var require$$0 = {
  1383. "application/1d-interleaved-parityfec": {
  1384. source: "iana"
  1385. },
  1386. "application/3gpdash-qoe-report+xml": {
  1387. source: "iana",
  1388. charset: "UTF-8",
  1389. compressible: true
  1390. },
  1391. "application/3gpp-ims+xml": {
  1392. source: "iana",
  1393. compressible: true
  1394. },
  1395. "application/3gpphal+json": {
  1396. source: "iana",
  1397. compressible: true
  1398. },
  1399. "application/3gpphalforms+json": {
  1400. source: "iana",
  1401. compressible: true
  1402. },
  1403. "application/a2l": {
  1404. source: "iana"
  1405. },
  1406. "application/activemessage": {
  1407. source: "iana"
  1408. },
  1409. "application/activity+json": {
  1410. source: "iana",
  1411. compressible: true
  1412. },
  1413. "application/alto-costmap+json": {
  1414. source: "iana",
  1415. compressible: true
  1416. },
  1417. "application/alto-costmapfilter+json": {
  1418. source: "iana",
  1419. compressible: true
  1420. },
  1421. "application/alto-directory+json": {
  1422. source: "iana",
  1423. compressible: true
  1424. },
  1425. "application/alto-endpointcost+json": {
  1426. source: "iana",
  1427. compressible: true
  1428. },
  1429. "application/alto-endpointcostparams+json": {
  1430. source: "iana",
  1431. compressible: true
  1432. },
  1433. "application/alto-endpointprop+json": {
  1434. source: "iana",
  1435. compressible: true
  1436. },
  1437. "application/alto-endpointpropparams+json": {
  1438. source: "iana",
  1439. compressible: true
  1440. },
  1441. "application/alto-error+json": {
  1442. source: "iana",
  1443. compressible: true
  1444. },
  1445. "application/alto-networkmap+json": {
  1446. source: "iana",
  1447. compressible: true
  1448. },
  1449. "application/alto-networkmapfilter+json": {
  1450. source: "iana",
  1451. compressible: true
  1452. },
  1453. "application/alto-updatestreamcontrol+json": {
  1454. source: "iana",
  1455. compressible: true
  1456. },
  1457. "application/alto-updatestreamparams+json": {
  1458. source: "iana",
  1459. compressible: true
  1460. },
  1461. "application/aml": {
  1462. source: "iana"
  1463. },
  1464. "application/andrew-inset": {
  1465. source: "iana",
  1466. extensions: [
  1467. "ez"
  1468. ]
  1469. },
  1470. "application/applefile": {
  1471. source: "iana"
  1472. },
  1473. "application/applixware": {
  1474. source: "apache",
  1475. extensions: [
  1476. "aw"
  1477. ]
  1478. },
  1479. "application/atf": {
  1480. source: "iana"
  1481. },
  1482. "application/atfx": {
  1483. source: "iana"
  1484. },
  1485. "application/atom+xml": {
  1486. source: "iana",
  1487. compressible: true,
  1488. extensions: [
  1489. "atom"
  1490. ]
  1491. },
  1492. "application/atomcat+xml": {
  1493. source: "iana",
  1494. compressible: true,
  1495. extensions: [
  1496. "atomcat"
  1497. ]
  1498. },
  1499. "application/atomdeleted+xml": {
  1500. source: "iana",
  1501. compressible: true,
  1502. extensions: [
  1503. "atomdeleted"
  1504. ]
  1505. },
  1506. "application/atomicmail": {
  1507. source: "iana"
  1508. },
  1509. "application/atomsvc+xml": {
  1510. source: "iana",
  1511. compressible: true,
  1512. extensions: [
  1513. "atomsvc"
  1514. ]
  1515. },
  1516. "application/atsc-dwd+xml": {
  1517. source: "iana",
  1518. compressible: true,
  1519. extensions: [
  1520. "dwd"
  1521. ]
  1522. },
  1523. "application/atsc-dynamic-event-message": {
  1524. source: "iana"
  1525. },
  1526. "application/atsc-held+xml": {
  1527. source: "iana",
  1528. compressible: true,
  1529. extensions: [
  1530. "held"
  1531. ]
  1532. },
  1533. "application/atsc-rdt+json": {
  1534. source: "iana",
  1535. compressible: true
  1536. },
  1537. "application/atsc-rsat+xml": {
  1538. source: "iana",
  1539. compressible: true,
  1540. extensions: [
  1541. "rsat"
  1542. ]
  1543. },
  1544. "application/atxml": {
  1545. source: "iana"
  1546. },
  1547. "application/auth-policy+xml": {
  1548. source: "iana",
  1549. compressible: true
  1550. },
  1551. "application/bacnet-xdd+zip": {
  1552. source: "iana",
  1553. compressible: false
  1554. },
  1555. "application/batch-smtp": {
  1556. source: "iana"
  1557. },
  1558. "application/bdoc": {
  1559. compressible: false,
  1560. extensions: [
  1561. "bdoc"
  1562. ]
  1563. },
  1564. "application/beep+xml": {
  1565. source: "iana",
  1566. charset: "UTF-8",
  1567. compressible: true
  1568. },
  1569. "application/calendar+json": {
  1570. source: "iana",
  1571. compressible: true
  1572. },
  1573. "application/calendar+xml": {
  1574. source: "iana",
  1575. compressible: true,
  1576. extensions: [
  1577. "xcs"
  1578. ]
  1579. },
  1580. "application/call-completion": {
  1581. source: "iana"
  1582. },
  1583. "application/cals-1840": {
  1584. source: "iana"
  1585. },
  1586. "application/captive+json": {
  1587. source: "iana",
  1588. compressible: true
  1589. },
  1590. "application/cbor": {
  1591. source: "iana"
  1592. },
  1593. "application/cbor-seq": {
  1594. source: "iana"
  1595. },
  1596. "application/cccex": {
  1597. source: "iana"
  1598. },
  1599. "application/ccmp+xml": {
  1600. source: "iana",
  1601. compressible: true
  1602. },
  1603. "application/ccxml+xml": {
  1604. source: "iana",
  1605. compressible: true,
  1606. extensions: [
  1607. "ccxml"
  1608. ]
  1609. },
  1610. "application/cdfx+xml": {
  1611. source: "iana",
  1612. compressible: true,
  1613. extensions: [
  1614. "cdfx"
  1615. ]
  1616. },
  1617. "application/cdmi-capability": {
  1618. source: "iana",
  1619. extensions: [
  1620. "cdmia"
  1621. ]
  1622. },
  1623. "application/cdmi-container": {
  1624. source: "iana",
  1625. extensions: [
  1626. "cdmic"
  1627. ]
  1628. },
  1629. "application/cdmi-domain": {
  1630. source: "iana",
  1631. extensions: [
  1632. "cdmid"
  1633. ]
  1634. },
  1635. "application/cdmi-object": {
  1636. source: "iana",
  1637. extensions: [
  1638. "cdmio"
  1639. ]
  1640. },
  1641. "application/cdmi-queue": {
  1642. source: "iana",
  1643. extensions: [
  1644. "cdmiq"
  1645. ]
  1646. },
  1647. "application/cdni": {
  1648. source: "iana"
  1649. },
  1650. "application/cea": {
  1651. source: "iana"
  1652. },
  1653. "application/cea-2018+xml": {
  1654. source: "iana",
  1655. compressible: true
  1656. },
  1657. "application/cellml+xml": {
  1658. source: "iana",
  1659. compressible: true
  1660. },
  1661. "application/cfw": {
  1662. source: "iana"
  1663. },
  1664. "application/clr": {
  1665. source: "iana"
  1666. },
  1667. "application/clue+xml": {
  1668. source: "iana",
  1669. compressible: true
  1670. },
  1671. "application/clue_info+xml": {
  1672. source: "iana",
  1673. compressible: true
  1674. },
  1675. "application/cms": {
  1676. source: "iana"
  1677. },
  1678. "application/cnrp+xml": {
  1679. source: "iana",
  1680. compressible: true
  1681. },
  1682. "application/coap-group+json": {
  1683. source: "iana",
  1684. compressible: true
  1685. },
  1686. "application/coap-payload": {
  1687. source: "iana"
  1688. },
  1689. "application/commonground": {
  1690. source: "iana"
  1691. },
  1692. "application/conference-info+xml": {
  1693. source: "iana",
  1694. compressible: true
  1695. },
  1696. "application/cose": {
  1697. source: "iana"
  1698. },
  1699. "application/cose-key": {
  1700. source: "iana"
  1701. },
  1702. "application/cose-key-set": {
  1703. source: "iana"
  1704. },
  1705. "application/cpl+xml": {
  1706. source: "iana",
  1707. compressible: true
  1708. },
  1709. "application/csrattrs": {
  1710. source: "iana"
  1711. },
  1712. "application/csta+xml": {
  1713. source: "iana",
  1714. compressible: true
  1715. },
  1716. "application/cstadata+xml": {
  1717. source: "iana",
  1718. compressible: true
  1719. },
  1720. "application/csvm+json": {
  1721. source: "iana",
  1722. compressible: true
  1723. },
  1724. "application/cu-seeme": {
  1725. source: "apache",
  1726. extensions: [
  1727. "cu"
  1728. ]
  1729. },
  1730. "application/cwt": {
  1731. source: "iana"
  1732. },
  1733. "application/cybercash": {
  1734. source: "iana"
  1735. },
  1736. "application/dart": {
  1737. compressible: true
  1738. },
  1739. "application/dash+xml": {
  1740. source: "iana",
  1741. compressible: true,
  1742. extensions: [
  1743. "mpd"
  1744. ]
  1745. },
  1746. "application/dashdelta": {
  1747. source: "iana"
  1748. },
  1749. "application/davmount+xml": {
  1750. source: "iana",
  1751. compressible: true,
  1752. extensions: [
  1753. "davmount"
  1754. ]
  1755. },
  1756. "application/dca-rft": {
  1757. source: "iana"
  1758. },
  1759. "application/dcd": {
  1760. source: "iana"
  1761. },
  1762. "application/dec-dx": {
  1763. source: "iana"
  1764. },
  1765. "application/dialog-info+xml": {
  1766. source: "iana",
  1767. compressible: true
  1768. },
  1769. "application/dicom": {
  1770. source: "iana"
  1771. },
  1772. "application/dicom+json": {
  1773. source: "iana",
  1774. compressible: true
  1775. },
  1776. "application/dicom+xml": {
  1777. source: "iana",
  1778. compressible: true
  1779. },
  1780. "application/dii": {
  1781. source: "iana"
  1782. },
  1783. "application/dit": {
  1784. source: "iana"
  1785. },
  1786. "application/dns": {
  1787. source: "iana"
  1788. },
  1789. "application/dns+json": {
  1790. source: "iana",
  1791. compressible: true
  1792. },
  1793. "application/dns-message": {
  1794. source: "iana"
  1795. },
  1796. "application/docbook+xml": {
  1797. source: "apache",
  1798. compressible: true,
  1799. extensions: [
  1800. "dbk"
  1801. ]
  1802. },
  1803. "application/dots+cbor": {
  1804. source: "iana"
  1805. },
  1806. "application/dskpp+xml": {
  1807. source: "iana",
  1808. compressible: true
  1809. },
  1810. "application/dssc+der": {
  1811. source: "iana",
  1812. extensions: [
  1813. "dssc"
  1814. ]
  1815. },
  1816. "application/dssc+xml": {
  1817. source: "iana",
  1818. compressible: true,
  1819. extensions: [
  1820. "xdssc"
  1821. ]
  1822. },
  1823. "application/dvcs": {
  1824. source: "iana"
  1825. },
  1826. "application/ecmascript": {
  1827. source: "iana",
  1828. compressible: true,
  1829. extensions: [
  1830. "es",
  1831. "ecma"
  1832. ]
  1833. },
  1834. "application/edi-consent": {
  1835. source: "iana"
  1836. },
  1837. "application/edi-x12": {
  1838. source: "iana",
  1839. compressible: false
  1840. },
  1841. "application/edifact": {
  1842. source: "iana",
  1843. compressible: false
  1844. },
  1845. "application/efi": {
  1846. source: "iana"
  1847. },
  1848. "application/elm+json": {
  1849. source: "iana",
  1850. charset: "UTF-8",
  1851. compressible: true
  1852. },
  1853. "application/elm+xml": {
  1854. source: "iana",
  1855. compressible: true
  1856. },
  1857. "application/emergencycalldata.cap+xml": {
  1858. source: "iana",
  1859. charset: "UTF-8",
  1860. compressible: true
  1861. },
  1862. "application/emergencycalldata.comment+xml": {
  1863. source: "iana",
  1864. compressible: true
  1865. },
  1866. "application/emergencycalldata.control+xml": {
  1867. source: "iana",
  1868. compressible: true
  1869. },
  1870. "application/emergencycalldata.deviceinfo+xml": {
  1871. source: "iana",
  1872. compressible: true
  1873. },
  1874. "application/emergencycalldata.ecall.msd": {
  1875. source: "iana"
  1876. },
  1877. "application/emergencycalldata.providerinfo+xml": {
  1878. source: "iana",
  1879. compressible: true
  1880. },
  1881. "application/emergencycalldata.serviceinfo+xml": {
  1882. source: "iana",
  1883. compressible: true
  1884. },
  1885. "application/emergencycalldata.subscriberinfo+xml": {
  1886. source: "iana",
  1887. compressible: true
  1888. },
  1889. "application/emergencycalldata.veds+xml": {
  1890. source: "iana",
  1891. compressible: true
  1892. },
  1893. "application/emma+xml": {
  1894. source: "iana",
  1895. compressible: true,
  1896. extensions: [
  1897. "emma"
  1898. ]
  1899. },
  1900. "application/emotionml+xml": {
  1901. source: "iana",
  1902. compressible: true,
  1903. extensions: [
  1904. "emotionml"
  1905. ]
  1906. },
  1907. "application/encaprtp": {
  1908. source: "iana"
  1909. },
  1910. "application/epp+xml": {
  1911. source: "iana",
  1912. compressible: true
  1913. },
  1914. "application/epub+zip": {
  1915. source: "iana",
  1916. compressible: false,
  1917. extensions: [
  1918. "epub"
  1919. ]
  1920. },
  1921. "application/eshop": {
  1922. source: "iana"
  1923. },
  1924. "application/exi": {
  1925. source: "iana",
  1926. extensions: [
  1927. "exi"
  1928. ]
  1929. },
  1930. "application/expect-ct-report+json": {
  1931. source: "iana",
  1932. compressible: true
  1933. },
  1934. "application/fastinfoset": {
  1935. source: "iana"
  1936. },
  1937. "application/fastsoap": {
  1938. source: "iana"
  1939. },
  1940. "application/fdt+xml": {
  1941. source: "iana",
  1942. compressible: true,
  1943. extensions: [
  1944. "fdt"
  1945. ]
  1946. },
  1947. "application/fhir+json": {
  1948. source: "iana",
  1949. charset: "UTF-8",
  1950. compressible: true
  1951. },
  1952. "application/fhir+xml": {
  1953. source: "iana",
  1954. charset: "UTF-8",
  1955. compressible: true
  1956. },
  1957. "application/fido.trusted-apps+json": {
  1958. compressible: true
  1959. },
  1960. "application/fits": {
  1961. source: "iana"
  1962. },
  1963. "application/flexfec": {
  1964. source: "iana"
  1965. },
  1966. "application/font-sfnt": {
  1967. source: "iana"
  1968. },
  1969. "application/font-tdpfr": {
  1970. source: "iana",
  1971. extensions: [
  1972. "pfr"
  1973. ]
  1974. },
  1975. "application/font-woff": {
  1976. source: "iana",
  1977. compressible: false
  1978. },
  1979. "application/framework-attributes+xml": {
  1980. source: "iana",
  1981. compressible: true
  1982. },
  1983. "application/geo+json": {
  1984. source: "iana",
  1985. compressible: true,
  1986. extensions: [
  1987. "geojson"
  1988. ]
  1989. },
  1990. "application/geo+json-seq": {
  1991. source: "iana"
  1992. },
  1993. "application/geopackage+sqlite3": {
  1994. source: "iana"
  1995. },
  1996. "application/geoxacml+xml": {
  1997. source: "iana",
  1998. compressible: true
  1999. },
  2000. "application/gltf-buffer": {
  2001. source: "iana"
  2002. },
  2003. "application/gml+xml": {
  2004. source: "iana",
  2005. compressible: true,
  2006. extensions: [
  2007. "gml"
  2008. ]
  2009. },
  2010. "application/gpx+xml": {
  2011. source: "apache",
  2012. compressible: true,
  2013. extensions: [
  2014. "gpx"
  2015. ]
  2016. },
  2017. "application/gxf": {
  2018. source: "apache",
  2019. extensions: [
  2020. "gxf"
  2021. ]
  2022. },
  2023. "application/gzip": {
  2024. source: "iana",
  2025. compressible: false,
  2026. extensions: [
  2027. "gz"
  2028. ]
  2029. },
  2030. "application/h224": {
  2031. source: "iana"
  2032. },
  2033. "application/held+xml": {
  2034. source: "iana",
  2035. compressible: true
  2036. },
  2037. "application/hjson": {
  2038. extensions: [
  2039. "hjson"
  2040. ]
  2041. },
  2042. "application/http": {
  2043. source: "iana"
  2044. },
  2045. "application/hyperstudio": {
  2046. source: "iana",
  2047. extensions: [
  2048. "stk"
  2049. ]
  2050. },
  2051. "application/ibe-key-request+xml": {
  2052. source: "iana",
  2053. compressible: true
  2054. },
  2055. "application/ibe-pkg-reply+xml": {
  2056. source: "iana",
  2057. compressible: true
  2058. },
  2059. "application/ibe-pp-data": {
  2060. source: "iana"
  2061. },
  2062. "application/iges": {
  2063. source: "iana"
  2064. },
  2065. "application/im-iscomposing+xml": {
  2066. source: "iana",
  2067. charset: "UTF-8",
  2068. compressible: true
  2069. },
  2070. "application/index": {
  2071. source: "iana"
  2072. },
  2073. "application/index.cmd": {
  2074. source: "iana"
  2075. },
  2076. "application/index.obj": {
  2077. source: "iana"
  2078. },
  2079. "application/index.response": {
  2080. source: "iana"
  2081. },
  2082. "application/index.vnd": {
  2083. source: "iana"
  2084. },
  2085. "application/inkml+xml": {
  2086. source: "iana",
  2087. compressible: true,
  2088. extensions: [
  2089. "ink",
  2090. "inkml"
  2091. ]
  2092. },
  2093. "application/iotp": {
  2094. source: "iana"
  2095. },
  2096. "application/ipfix": {
  2097. source: "iana",
  2098. extensions: [
  2099. "ipfix"
  2100. ]
  2101. },
  2102. "application/ipp": {
  2103. source: "iana"
  2104. },
  2105. "application/isup": {
  2106. source: "iana"
  2107. },
  2108. "application/its+xml": {
  2109. source: "iana",
  2110. compressible: true,
  2111. extensions: [
  2112. "its"
  2113. ]
  2114. },
  2115. "application/java-archive": {
  2116. source: "apache",
  2117. compressible: false,
  2118. extensions: [
  2119. "jar",
  2120. "war",
  2121. "ear"
  2122. ]
  2123. },
  2124. "application/java-serialized-object": {
  2125. source: "apache",
  2126. compressible: false,
  2127. extensions: [
  2128. "ser"
  2129. ]
  2130. },
  2131. "application/java-vm": {
  2132. source: "apache",
  2133. compressible: false,
  2134. extensions: [
  2135. "class"
  2136. ]
  2137. },
  2138. "application/javascript": {
  2139. source: "iana",
  2140. charset: "UTF-8",
  2141. compressible: true,
  2142. extensions: [
  2143. "js",
  2144. "mjs"
  2145. ]
  2146. },
  2147. "application/jf2feed+json": {
  2148. source: "iana",
  2149. compressible: true
  2150. },
  2151. "application/jose": {
  2152. source: "iana"
  2153. },
  2154. "application/jose+json": {
  2155. source: "iana",
  2156. compressible: true
  2157. },
  2158. "application/jrd+json": {
  2159. source: "iana",
  2160. compressible: true
  2161. },
  2162. "application/jscalendar+json": {
  2163. source: "iana",
  2164. compressible: true
  2165. },
  2166. "application/json": {
  2167. source: "iana",
  2168. charset: "UTF-8",
  2169. compressible: true,
  2170. extensions: [
  2171. "json",
  2172. "map"
  2173. ]
  2174. },
  2175. "application/json-patch+json": {
  2176. source: "iana",
  2177. compressible: true
  2178. },
  2179. "application/json-seq": {
  2180. source: "iana"
  2181. },
  2182. "application/json5": {
  2183. extensions: [
  2184. "json5"
  2185. ]
  2186. },
  2187. "application/jsonml+json": {
  2188. source: "apache",
  2189. compressible: true,
  2190. extensions: [
  2191. "jsonml"
  2192. ]
  2193. },
  2194. "application/jwk+json": {
  2195. source: "iana",
  2196. compressible: true
  2197. },
  2198. "application/jwk-set+json": {
  2199. source: "iana",
  2200. compressible: true
  2201. },
  2202. "application/jwt": {
  2203. source: "iana"
  2204. },
  2205. "application/kpml-request+xml": {
  2206. source: "iana",
  2207. compressible: true
  2208. },
  2209. "application/kpml-response+xml": {
  2210. source: "iana",
  2211. compressible: true
  2212. },
  2213. "application/ld+json": {
  2214. source: "iana",
  2215. compressible: true,
  2216. extensions: [
  2217. "jsonld"
  2218. ]
  2219. },
  2220. "application/lgr+xml": {
  2221. source: "iana",
  2222. compressible: true,
  2223. extensions: [
  2224. "lgr"
  2225. ]
  2226. },
  2227. "application/link-format": {
  2228. source: "iana"
  2229. },
  2230. "application/load-control+xml": {
  2231. source: "iana",
  2232. compressible: true
  2233. },
  2234. "application/lost+xml": {
  2235. source: "iana",
  2236. compressible: true,
  2237. extensions: [
  2238. "lostxml"
  2239. ]
  2240. },
  2241. "application/lostsync+xml": {
  2242. source: "iana",
  2243. compressible: true
  2244. },
  2245. "application/lpf+zip": {
  2246. source: "iana",
  2247. compressible: false
  2248. },
  2249. "application/lxf": {
  2250. source: "iana"
  2251. },
  2252. "application/mac-binhex40": {
  2253. source: "iana",
  2254. extensions: [
  2255. "hqx"
  2256. ]
  2257. },
  2258. "application/mac-compactpro": {
  2259. source: "apache",
  2260. extensions: [
  2261. "cpt"
  2262. ]
  2263. },
  2264. "application/macwriteii": {
  2265. source: "iana"
  2266. },
  2267. "application/mads+xml": {
  2268. source: "iana",
  2269. compressible: true,
  2270. extensions: [
  2271. "mads"
  2272. ]
  2273. },
  2274. "application/manifest+json": {
  2275. source: "iana",
  2276. charset: "UTF-8",
  2277. compressible: true,
  2278. extensions: [
  2279. "webmanifest"
  2280. ]
  2281. },
  2282. "application/marc": {
  2283. source: "iana",
  2284. extensions: [
  2285. "mrc"
  2286. ]
  2287. },
  2288. "application/marcxml+xml": {
  2289. source: "iana",
  2290. compressible: true,
  2291. extensions: [
  2292. "mrcx"
  2293. ]
  2294. },
  2295. "application/mathematica": {
  2296. source: "iana",
  2297. extensions: [
  2298. "ma",
  2299. "nb",
  2300. "mb"
  2301. ]
  2302. },
  2303. "application/mathml+xml": {
  2304. source: "iana",
  2305. compressible: true,
  2306. extensions: [
  2307. "mathml"
  2308. ]
  2309. },
  2310. "application/mathml-content+xml": {
  2311. source: "iana",
  2312. compressible: true
  2313. },
  2314. "application/mathml-presentation+xml": {
  2315. source: "iana",
  2316. compressible: true
  2317. },
  2318. "application/mbms-associated-procedure-description+xml": {
  2319. source: "iana",
  2320. compressible: true
  2321. },
  2322. "application/mbms-deregister+xml": {
  2323. source: "iana",
  2324. compressible: true
  2325. },
  2326. "application/mbms-envelope+xml": {
  2327. source: "iana",
  2328. compressible: true
  2329. },
  2330. "application/mbms-msk+xml": {
  2331. source: "iana",
  2332. compressible: true
  2333. },
  2334. "application/mbms-msk-response+xml": {
  2335. source: "iana",
  2336. compressible: true
  2337. },
  2338. "application/mbms-protection-description+xml": {
  2339. source: "iana",
  2340. compressible: true
  2341. },
  2342. "application/mbms-reception-report+xml": {
  2343. source: "iana",
  2344. compressible: true
  2345. },
  2346. "application/mbms-register+xml": {
  2347. source: "iana",
  2348. compressible: true
  2349. },
  2350. "application/mbms-register-response+xml": {
  2351. source: "iana",
  2352. compressible: true
  2353. },
  2354. "application/mbms-schedule+xml": {
  2355. source: "iana",
  2356. compressible: true
  2357. },
  2358. "application/mbms-user-service-description+xml": {
  2359. source: "iana",
  2360. compressible: true
  2361. },
  2362. "application/mbox": {
  2363. source: "iana",
  2364. extensions: [
  2365. "mbox"
  2366. ]
  2367. },
  2368. "application/media-policy-dataset+xml": {
  2369. source: "iana",
  2370. compressible: true
  2371. },
  2372. "application/media_control+xml": {
  2373. source: "iana",
  2374. compressible: true
  2375. },
  2376. "application/mediaservercontrol+xml": {
  2377. source: "iana",
  2378. compressible: true,
  2379. extensions: [
  2380. "mscml"
  2381. ]
  2382. },
  2383. "application/merge-patch+json": {
  2384. source: "iana",
  2385. compressible: true
  2386. },
  2387. "application/metalink+xml": {
  2388. source: "apache",
  2389. compressible: true,
  2390. extensions: [
  2391. "metalink"
  2392. ]
  2393. },
  2394. "application/metalink4+xml": {
  2395. source: "iana",
  2396. compressible: true,
  2397. extensions: [
  2398. "meta4"
  2399. ]
  2400. },
  2401. "application/mets+xml": {
  2402. source: "iana",
  2403. compressible: true,
  2404. extensions: [
  2405. "mets"
  2406. ]
  2407. },
  2408. "application/mf4": {
  2409. source: "iana"
  2410. },
  2411. "application/mikey": {
  2412. source: "iana"
  2413. },
  2414. "application/mipc": {
  2415. source: "iana"
  2416. },
  2417. "application/missing-blocks+cbor-seq": {
  2418. source: "iana"
  2419. },
  2420. "application/mmt-aei+xml": {
  2421. source: "iana",
  2422. compressible: true,
  2423. extensions: [
  2424. "maei"
  2425. ]
  2426. },
  2427. "application/mmt-usd+xml": {
  2428. source: "iana",
  2429. compressible: true,
  2430. extensions: [
  2431. "musd"
  2432. ]
  2433. },
  2434. "application/mods+xml": {
  2435. source: "iana",
  2436. compressible: true,
  2437. extensions: [
  2438. "mods"
  2439. ]
  2440. },
  2441. "application/moss-keys": {
  2442. source: "iana"
  2443. },
  2444. "application/moss-signature": {
  2445. source: "iana"
  2446. },
  2447. "application/mosskey-data": {
  2448. source: "iana"
  2449. },
  2450. "application/mosskey-request": {
  2451. source: "iana"
  2452. },
  2453. "application/mp21": {
  2454. source: "iana",
  2455. extensions: [
  2456. "m21",
  2457. "mp21"
  2458. ]
  2459. },
  2460. "application/mp4": {
  2461. source: "iana",
  2462. extensions: [
  2463. "mp4s",
  2464. "m4p"
  2465. ]
  2466. },
  2467. "application/mpeg4-generic": {
  2468. source: "iana"
  2469. },
  2470. "application/mpeg4-iod": {
  2471. source: "iana"
  2472. },
  2473. "application/mpeg4-iod-xmt": {
  2474. source: "iana"
  2475. },
  2476. "application/mrb-consumer+xml": {
  2477. source: "iana",
  2478. compressible: true
  2479. },
  2480. "application/mrb-publish+xml": {
  2481. source: "iana",
  2482. compressible: true
  2483. },
  2484. "application/msc-ivr+xml": {
  2485. source: "iana",
  2486. charset: "UTF-8",
  2487. compressible: true
  2488. },
  2489. "application/msc-mixer+xml": {
  2490. source: "iana",
  2491. charset: "UTF-8",
  2492. compressible: true
  2493. },
  2494. "application/msword": {
  2495. source: "iana",
  2496. compressible: false,
  2497. extensions: [
  2498. "doc",
  2499. "dot"
  2500. ]
  2501. },
  2502. "application/mud+json": {
  2503. source: "iana",
  2504. compressible: true
  2505. },
  2506. "application/multipart-core": {
  2507. source: "iana"
  2508. },
  2509. "application/mxf": {
  2510. source: "iana",
  2511. extensions: [
  2512. "mxf"
  2513. ]
  2514. },
  2515. "application/n-quads": {
  2516. source: "iana",
  2517. extensions: [
  2518. "nq"
  2519. ]
  2520. },
  2521. "application/n-triples": {
  2522. source: "iana",
  2523. extensions: [
  2524. "nt"
  2525. ]
  2526. },
  2527. "application/nasdata": {
  2528. source: "iana"
  2529. },
  2530. "application/news-checkgroups": {
  2531. source: "iana",
  2532. charset: "US-ASCII"
  2533. },
  2534. "application/news-groupinfo": {
  2535. source: "iana",
  2536. charset: "US-ASCII"
  2537. },
  2538. "application/news-transmission": {
  2539. source: "iana"
  2540. },
  2541. "application/nlsml+xml": {
  2542. source: "iana",
  2543. compressible: true
  2544. },
  2545. "application/node": {
  2546. source: "iana",
  2547. extensions: [
  2548. "cjs"
  2549. ]
  2550. },
  2551. "application/nss": {
  2552. source: "iana"
  2553. },
  2554. "application/oauth-authz-req+jwt": {
  2555. source: "iana"
  2556. },
  2557. "application/ocsp-request": {
  2558. source: "iana"
  2559. },
  2560. "application/ocsp-response": {
  2561. source: "iana"
  2562. },
  2563. "application/octet-stream": {
  2564. source: "iana",
  2565. compressible: false,
  2566. extensions: [
  2567. "bin",
  2568. "dms",
  2569. "lrf",
  2570. "mar",
  2571. "so",
  2572. "dist",
  2573. "distz",
  2574. "pkg",
  2575. "bpk",
  2576. "dump",
  2577. "elc",
  2578. "deploy",
  2579. "exe",
  2580. "dll",
  2581. "deb",
  2582. "dmg",
  2583. "iso",
  2584. "img",
  2585. "msi",
  2586. "msp",
  2587. "msm",
  2588. "buffer"
  2589. ]
  2590. },
  2591. "application/oda": {
  2592. source: "iana",
  2593. extensions: [
  2594. "oda"
  2595. ]
  2596. },
  2597. "application/odm+xml": {
  2598. source: "iana",
  2599. compressible: true
  2600. },
  2601. "application/odx": {
  2602. source: "iana"
  2603. },
  2604. "application/oebps-package+xml": {
  2605. source: "iana",
  2606. compressible: true,
  2607. extensions: [
  2608. "opf"
  2609. ]
  2610. },
  2611. "application/ogg": {
  2612. source: "iana",
  2613. compressible: false,
  2614. extensions: [
  2615. "ogx"
  2616. ]
  2617. },
  2618. "application/omdoc+xml": {
  2619. source: "apache",
  2620. compressible: true,
  2621. extensions: [
  2622. "omdoc"
  2623. ]
  2624. },
  2625. "application/onenote": {
  2626. source: "apache",
  2627. extensions: [
  2628. "onetoc",
  2629. "onetoc2",
  2630. "onetmp",
  2631. "onepkg"
  2632. ]
  2633. },
  2634. "application/opc-nodeset+xml": {
  2635. source: "iana",
  2636. compressible: true
  2637. },
  2638. "application/oscore": {
  2639. source: "iana"
  2640. },
  2641. "application/oxps": {
  2642. source: "iana",
  2643. extensions: [
  2644. "oxps"
  2645. ]
  2646. },
  2647. "application/p21+zip": {
  2648. source: "iana",
  2649. compressible: false
  2650. },
  2651. "application/p2p-overlay+xml": {
  2652. source: "iana",
  2653. compressible: true,
  2654. extensions: [
  2655. "relo"
  2656. ]
  2657. },
  2658. "application/parityfec": {
  2659. source: "iana"
  2660. },
  2661. "application/passport": {
  2662. source: "iana"
  2663. },
  2664. "application/patch-ops-error+xml": {
  2665. source: "iana",
  2666. compressible: true,
  2667. extensions: [
  2668. "xer"
  2669. ]
  2670. },
  2671. "application/pdf": {
  2672. source: "iana",
  2673. compressible: false,
  2674. extensions: [
  2675. "pdf"
  2676. ]
  2677. },
  2678. "application/pdx": {
  2679. source: "iana"
  2680. },
  2681. "application/pem-certificate-chain": {
  2682. source: "iana"
  2683. },
  2684. "application/pgp-encrypted": {
  2685. source: "iana",
  2686. compressible: false,
  2687. extensions: [
  2688. "pgp"
  2689. ]
  2690. },
  2691. "application/pgp-keys": {
  2692. source: "iana"
  2693. },
  2694. "application/pgp-signature": {
  2695. source: "iana",
  2696. extensions: [
  2697. "asc",
  2698. "sig"
  2699. ]
  2700. },
  2701. "application/pics-rules": {
  2702. source: "apache",
  2703. extensions: [
  2704. "prf"
  2705. ]
  2706. },
  2707. "application/pidf+xml": {
  2708. source: "iana",
  2709. charset: "UTF-8",
  2710. compressible: true
  2711. },
  2712. "application/pidf-diff+xml": {
  2713. source: "iana",
  2714. charset: "UTF-8",
  2715. compressible: true
  2716. },
  2717. "application/pkcs10": {
  2718. source: "iana",
  2719. extensions: [
  2720. "p10"
  2721. ]
  2722. },
  2723. "application/pkcs12": {
  2724. source: "iana"
  2725. },
  2726. "application/pkcs7-mime": {
  2727. source: "iana",
  2728. extensions: [
  2729. "p7m",
  2730. "p7c"
  2731. ]
  2732. },
  2733. "application/pkcs7-signature": {
  2734. source: "iana",
  2735. extensions: [
  2736. "p7s"
  2737. ]
  2738. },
  2739. "application/pkcs8": {
  2740. source: "iana",
  2741. extensions: [
  2742. "p8"
  2743. ]
  2744. },
  2745. "application/pkcs8-encrypted": {
  2746. source: "iana"
  2747. },
  2748. "application/pkix-attr-cert": {
  2749. source: "iana",
  2750. extensions: [
  2751. "ac"
  2752. ]
  2753. },
  2754. "application/pkix-cert": {
  2755. source: "iana",
  2756. extensions: [
  2757. "cer"
  2758. ]
  2759. },
  2760. "application/pkix-crl": {
  2761. source: "iana",
  2762. extensions: [
  2763. "crl"
  2764. ]
  2765. },
  2766. "application/pkix-pkipath": {
  2767. source: "iana",
  2768. extensions: [
  2769. "pkipath"
  2770. ]
  2771. },
  2772. "application/pkixcmp": {
  2773. source: "iana",
  2774. extensions: [
  2775. "pki"
  2776. ]
  2777. },
  2778. "application/pls+xml": {
  2779. source: "iana",
  2780. compressible: true,
  2781. extensions: [
  2782. "pls"
  2783. ]
  2784. },
  2785. "application/poc-settings+xml": {
  2786. source: "iana",
  2787. charset: "UTF-8",
  2788. compressible: true
  2789. },
  2790. "application/postscript": {
  2791. source: "iana",
  2792. compressible: true,
  2793. extensions: [
  2794. "ai",
  2795. "eps",
  2796. "ps"
  2797. ]
  2798. },
  2799. "application/ppsp-tracker+json": {
  2800. source: "iana",
  2801. compressible: true
  2802. },
  2803. "application/problem+json": {
  2804. source: "iana",
  2805. compressible: true
  2806. },
  2807. "application/problem+xml": {
  2808. source: "iana",
  2809. compressible: true
  2810. },
  2811. "application/provenance+xml": {
  2812. source: "iana",
  2813. compressible: true,
  2814. extensions: [
  2815. "provx"
  2816. ]
  2817. },
  2818. "application/prs.alvestrand.titrax-sheet": {
  2819. source: "iana"
  2820. },
  2821. "application/prs.cww": {
  2822. source: "iana",
  2823. extensions: [
  2824. "cww"
  2825. ]
  2826. },
  2827. "application/prs.cyn": {
  2828. source: "iana",
  2829. charset: "7-BIT"
  2830. },
  2831. "application/prs.hpub+zip": {
  2832. source: "iana",
  2833. compressible: false
  2834. },
  2835. "application/prs.nprend": {
  2836. source: "iana"
  2837. },
  2838. "application/prs.plucker": {
  2839. source: "iana"
  2840. },
  2841. "application/prs.rdf-xml-crypt": {
  2842. source: "iana"
  2843. },
  2844. "application/prs.xsf+xml": {
  2845. source: "iana",
  2846. compressible: true
  2847. },
  2848. "application/pskc+xml": {
  2849. source: "iana",
  2850. compressible: true,
  2851. extensions: [
  2852. "pskcxml"
  2853. ]
  2854. },
  2855. "application/pvd+json": {
  2856. source: "iana",
  2857. compressible: true
  2858. },
  2859. "application/qsig": {
  2860. source: "iana"
  2861. },
  2862. "application/raml+yaml": {
  2863. compressible: true,
  2864. extensions: [
  2865. "raml"
  2866. ]
  2867. },
  2868. "application/raptorfec": {
  2869. source: "iana"
  2870. },
  2871. "application/rdap+json": {
  2872. source: "iana",
  2873. compressible: true
  2874. },
  2875. "application/rdf+xml": {
  2876. source: "iana",
  2877. compressible: true,
  2878. extensions: [
  2879. "rdf",
  2880. "owl"
  2881. ]
  2882. },
  2883. "application/reginfo+xml": {
  2884. source: "iana",
  2885. compressible: true,
  2886. extensions: [
  2887. "rif"
  2888. ]
  2889. },
  2890. "application/relax-ng-compact-syntax": {
  2891. source: "iana",
  2892. extensions: [
  2893. "rnc"
  2894. ]
  2895. },
  2896. "application/remote-printing": {
  2897. source: "iana"
  2898. },
  2899. "application/reputon+json": {
  2900. source: "iana",
  2901. compressible: true
  2902. },
  2903. "application/resource-lists+xml": {
  2904. source: "iana",
  2905. compressible: true,
  2906. extensions: [
  2907. "rl"
  2908. ]
  2909. },
  2910. "application/resource-lists-diff+xml": {
  2911. source: "iana",
  2912. compressible: true,
  2913. extensions: [
  2914. "rld"
  2915. ]
  2916. },
  2917. "application/rfc+xml": {
  2918. source: "iana",
  2919. compressible: true
  2920. },
  2921. "application/riscos": {
  2922. source: "iana"
  2923. },
  2924. "application/rlmi+xml": {
  2925. source: "iana",
  2926. compressible: true
  2927. },
  2928. "application/rls-services+xml": {
  2929. source: "iana",
  2930. compressible: true,
  2931. extensions: [
  2932. "rs"
  2933. ]
  2934. },
  2935. "application/route-apd+xml": {
  2936. source: "iana",
  2937. compressible: true,
  2938. extensions: [
  2939. "rapd"
  2940. ]
  2941. },
  2942. "application/route-s-tsid+xml": {
  2943. source: "iana",
  2944. compressible: true,
  2945. extensions: [
  2946. "sls"
  2947. ]
  2948. },
  2949. "application/route-usd+xml": {
  2950. source: "iana",
  2951. compressible: true,
  2952. extensions: [
  2953. "rusd"
  2954. ]
  2955. },
  2956. "application/rpki-ghostbusters": {
  2957. source: "iana",
  2958. extensions: [
  2959. "gbr"
  2960. ]
  2961. },
  2962. "application/rpki-manifest": {
  2963. source: "iana",
  2964. extensions: [
  2965. "mft"
  2966. ]
  2967. },
  2968. "application/rpki-publication": {
  2969. source: "iana"
  2970. },
  2971. "application/rpki-roa": {
  2972. source: "iana",
  2973. extensions: [
  2974. "roa"
  2975. ]
  2976. },
  2977. "application/rpki-updown": {
  2978. source: "iana"
  2979. },
  2980. "application/rsd+xml": {
  2981. source: "apache",
  2982. compressible: true,
  2983. extensions: [
  2984. "rsd"
  2985. ]
  2986. },
  2987. "application/rss+xml": {
  2988. source: "apache",
  2989. compressible: true,
  2990. extensions: [
  2991. "rss"
  2992. ]
  2993. },
  2994. "application/rtf": {
  2995. source: "iana",
  2996. compressible: true,
  2997. extensions: [
  2998. "rtf"
  2999. ]
  3000. },
  3001. "application/rtploopback": {
  3002. source: "iana"
  3003. },
  3004. "application/rtx": {
  3005. source: "iana"
  3006. },
  3007. "application/samlassertion+xml": {
  3008. source: "iana",
  3009. compressible: true
  3010. },
  3011. "application/samlmetadata+xml": {
  3012. source: "iana",
  3013. compressible: true
  3014. },
  3015. "application/sarif+json": {
  3016. source: "iana",
  3017. compressible: true
  3018. },
  3019. "application/sarif-external-properties+json": {
  3020. source: "iana",
  3021. compressible: true
  3022. },
  3023. "application/sbe": {
  3024. source: "iana"
  3025. },
  3026. "application/sbml+xml": {
  3027. source: "iana",
  3028. compressible: true,
  3029. extensions: [
  3030. "sbml"
  3031. ]
  3032. },
  3033. "application/scaip+xml": {
  3034. source: "iana",
  3035. compressible: true
  3036. },
  3037. "application/scim+json": {
  3038. source: "iana",
  3039. compressible: true
  3040. },
  3041. "application/scvp-cv-request": {
  3042. source: "iana",
  3043. extensions: [
  3044. "scq"
  3045. ]
  3046. },
  3047. "application/scvp-cv-response": {
  3048. source: "iana",
  3049. extensions: [
  3050. "scs"
  3051. ]
  3052. },
  3053. "application/scvp-vp-request": {
  3054. source: "iana",
  3055. extensions: [
  3056. "spq"
  3057. ]
  3058. },
  3059. "application/scvp-vp-response": {
  3060. source: "iana",
  3061. extensions: [
  3062. "spp"
  3063. ]
  3064. },
  3065. "application/sdp": {
  3066. source: "iana",
  3067. extensions: [
  3068. "sdp"
  3069. ]
  3070. },
  3071. "application/secevent+jwt": {
  3072. source: "iana"
  3073. },
  3074. "application/senml+cbor": {
  3075. source: "iana"
  3076. },
  3077. "application/senml+json": {
  3078. source: "iana",
  3079. compressible: true
  3080. },
  3081. "application/senml+xml": {
  3082. source: "iana",
  3083. compressible: true,
  3084. extensions: [
  3085. "senmlx"
  3086. ]
  3087. },
  3088. "application/senml-etch+cbor": {
  3089. source: "iana"
  3090. },
  3091. "application/senml-etch+json": {
  3092. source: "iana",
  3093. compressible: true
  3094. },
  3095. "application/senml-exi": {
  3096. source: "iana"
  3097. },
  3098. "application/sensml+cbor": {
  3099. source: "iana"
  3100. },
  3101. "application/sensml+json": {
  3102. source: "iana",
  3103. compressible: true
  3104. },
  3105. "application/sensml+xml": {
  3106. source: "iana",
  3107. compressible: true,
  3108. extensions: [
  3109. "sensmlx"
  3110. ]
  3111. },
  3112. "application/sensml-exi": {
  3113. source: "iana"
  3114. },
  3115. "application/sep+xml": {
  3116. source: "iana",
  3117. compressible: true
  3118. },
  3119. "application/sep-exi": {
  3120. source: "iana"
  3121. },
  3122. "application/session-info": {
  3123. source: "iana"
  3124. },
  3125. "application/set-payment": {
  3126. source: "iana"
  3127. },
  3128. "application/set-payment-initiation": {
  3129. source: "iana",
  3130. extensions: [
  3131. "setpay"
  3132. ]
  3133. },
  3134. "application/set-registration": {
  3135. source: "iana"
  3136. },
  3137. "application/set-registration-initiation": {
  3138. source: "iana",
  3139. extensions: [
  3140. "setreg"
  3141. ]
  3142. },
  3143. "application/sgml": {
  3144. source: "iana"
  3145. },
  3146. "application/sgml-open-catalog": {
  3147. source: "iana"
  3148. },
  3149. "application/shf+xml": {
  3150. source: "iana",
  3151. compressible: true,
  3152. extensions: [
  3153. "shf"
  3154. ]
  3155. },
  3156. "application/sieve": {
  3157. source: "iana",
  3158. extensions: [
  3159. "siv",
  3160. "sieve"
  3161. ]
  3162. },
  3163. "application/simple-filter+xml": {
  3164. source: "iana",
  3165. compressible: true
  3166. },
  3167. "application/simple-message-summary": {
  3168. source: "iana"
  3169. },
  3170. "application/simplesymbolcontainer": {
  3171. source: "iana"
  3172. },
  3173. "application/sipc": {
  3174. source: "iana"
  3175. },
  3176. "application/slate": {
  3177. source: "iana"
  3178. },
  3179. "application/smil": {
  3180. source: "iana"
  3181. },
  3182. "application/smil+xml": {
  3183. source: "iana",
  3184. compressible: true,
  3185. extensions: [
  3186. "smi",
  3187. "smil"
  3188. ]
  3189. },
  3190. "application/smpte336m": {
  3191. source: "iana"
  3192. },
  3193. "application/soap+fastinfoset": {
  3194. source: "iana"
  3195. },
  3196. "application/soap+xml": {
  3197. source: "iana",
  3198. compressible: true
  3199. },
  3200. "application/sparql-query": {
  3201. source: "iana",
  3202. extensions: [
  3203. "rq"
  3204. ]
  3205. },
  3206. "application/sparql-results+xml": {
  3207. source: "iana",
  3208. compressible: true,
  3209. extensions: [
  3210. "srx"
  3211. ]
  3212. },
  3213. "application/spirits-event+xml": {
  3214. source: "iana",
  3215. compressible: true
  3216. },
  3217. "application/sql": {
  3218. source: "iana"
  3219. },
  3220. "application/srgs": {
  3221. source: "iana",
  3222. extensions: [
  3223. "gram"
  3224. ]
  3225. },
  3226. "application/srgs+xml": {
  3227. source: "iana",
  3228. compressible: true,
  3229. extensions: [
  3230. "grxml"
  3231. ]
  3232. },
  3233. "application/sru+xml": {
  3234. source: "iana",
  3235. compressible: true,
  3236. extensions: [
  3237. "sru"
  3238. ]
  3239. },
  3240. "application/ssdl+xml": {
  3241. source: "apache",
  3242. compressible: true,
  3243. extensions: [
  3244. "ssdl"
  3245. ]
  3246. },
  3247. "application/ssml+xml": {
  3248. source: "iana",
  3249. compressible: true,
  3250. extensions: [
  3251. "ssml"
  3252. ]
  3253. },
  3254. "application/stix+json": {
  3255. source: "iana",
  3256. compressible: true
  3257. },
  3258. "application/swid+xml": {
  3259. source: "iana",
  3260. compressible: true,
  3261. extensions: [
  3262. "swidtag"
  3263. ]
  3264. },
  3265. "application/tamp-apex-update": {
  3266. source: "iana"
  3267. },
  3268. "application/tamp-apex-update-confirm": {
  3269. source: "iana"
  3270. },
  3271. "application/tamp-community-update": {
  3272. source: "iana"
  3273. },
  3274. "application/tamp-community-update-confirm": {
  3275. source: "iana"
  3276. },
  3277. "application/tamp-error": {
  3278. source: "iana"
  3279. },
  3280. "application/tamp-sequence-adjust": {
  3281. source: "iana"
  3282. },
  3283. "application/tamp-sequence-adjust-confirm": {
  3284. source: "iana"
  3285. },
  3286. "application/tamp-status-query": {
  3287. source: "iana"
  3288. },
  3289. "application/tamp-status-response": {
  3290. source: "iana"
  3291. },
  3292. "application/tamp-update": {
  3293. source: "iana"
  3294. },
  3295. "application/tamp-update-confirm": {
  3296. source: "iana"
  3297. },
  3298. "application/tar": {
  3299. compressible: true
  3300. },
  3301. "application/taxii+json": {
  3302. source: "iana",
  3303. compressible: true
  3304. },
  3305. "application/td+json": {
  3306. source: "iana",
  3307. compressible: true
  3308. },
  3309. "application/tei+xml": {
  3310. source: "iana",
  3311. compressible: true,
  3312. extensions: [
  3313. "tei",
  3314. "teicorpus"
  3315. ]
  3316. },
  3317. "application/tetra_isi": {
  3318. source: "iana"
  3319. },
  3320. "application/thraud+xml": {
  3321. source: "iana",
  3322. compressible: true,
  3323. extensions: [
  3324. "tfi"
  3325. ]
  3326. },
  3327. "application/timestamp-query": {
  3328. source: "iana"
  3329. },
  3330. "application/timestamp-reply": {
  3331. source: "iana"
  3332. },
  3333. "application/timestamped-data": {
  3334. source: "iana",
  3335. extensions: [
  3336. "tsd"
  3337. ]
  3338. },
  3339. "application/tlsrpt+gzip": {
  3340. source: "iana"
  3341. },
  3342. "application/tlsrpt+json": {
  3343. source: "iana",
  3344. compressible: true
  3345. },
  3346. "application/tnauthlist": {
  3347. source: "iana"
  3348. },
  3349. "application/toml": {
  3350. compressible: true,
  3351. extensions: [
  3352. "toml"
  3353. ]
  3354. },
  3355. "application/trickle-ice-sdpfrag": {
  3356. source: "iana"
  3357. },
  3358. "application/trig": {
  3359. source: "iana",
  3360. extensions: [
  3361. "trig"
  3362. ]
  3363. },
  3364. "application/ttml+xml": {
  3365. source: "iana",
  3366. compressible: true,
  3367. extensions: [
  3368. "ttml"
  3369. ]
  3370. },
  3371. "application/tve-trigger": {
  3372. source: "iana"
  3373. },
  3374. "application/tzif": {
  3375. source: "iana"
  3376. },
  3377. "application/tzif-leap": {
  3378. source: "iana"
  3379. },
  3380. "application/ubjson": {
  3381. compressible: false,
  3382. extensions: [
  3383. "ubj"
  3384. ]
  3385. },
  3386. "application/ulpfec": {
  3387. source: "iana"
  3388. },
  3389. "application/urc-grpsheet+xml": {
  3390. source: "iana",
  3391. compressible: true
  3392. },
  3393. "application/urc-ressheet+xml": {
  3394. source: "iana",
  3395. compressible: true,
  3396. extensions: [
  3397. "rsheet"
  3398. ]
  3399. },
  3400. "application/urc-targetdesc+xml": {
  3401. source: "iana",
  3402. compressible: true,
  3403. extensions: [
  3404. "td"
  3405. ]
  3406. },
  3407. "application/urc-uisocketdesc+xml": {
  3408. source: "iana",
  3409. compressible: true
  3410. },
  3411. "application/vcard+json": {
  3412. source: "iana",
  3413. compressible: true
  3414. },
  3415. "application/vcard+xml": {
  3416. source: "iana",
  3417. compressible: true
  3418. },
  3419. "application/vemmi": {
  3420. source: "iana"
  3421. },
  3422. "application/vividence.scriptfile": {
  3423. source: "apache"
  3424. },
  3425. "application/vnd.1000minds.decision-model+xml": {
  3426. source: "iana",
  3427. compressible: true,
  3428. extensions: [
  3429. "1km"
  3430. ]
  3431. },
  3432. "application/vnd.3gpp-prose+xml": {
  3433. source: "iana",
  3434. compressible: true
  3435. },
  3436. "application/vnd.3gpp-prose-pc3ch+xml": {
  3437. source: "iana",
  3438. compressible: true
  3439. },
  3440. "application/vnd.3gpp-v2x-local-service-information": {
  3441. source: "iana"
  3442. },
  3443. "application/vnd.3gpp.5gnas": {
  3444. source: "iana"
  3445. },
  3446. "application/vnd.3gpp.access-transfer-events+xml": {
  3447. source: "iana",
  3448. compressible: true
  3449. },
  3450. "application/vnd.3gpp.bsf+xml": {
  3451. source: "iana",
  3452. compressible: true
  3453. },
  3454. "application/vnd.3gpp.gmop+xml": {
  3455. source: "iana",
  3456. compressible: true
  3457. },
  3458. "application/vnd.3gpp.gtpc": {
  3459. source: "iana"
  3460. },
  3461. "application/vnd.3gpp.interworking-data": {
  3462. source: "iana"
  3463. },
  3464. "application/vnd.3gpp.lpp": {
  3465. source: "iana"
  3466. },
  3467. "application/vnd.3gpp.mc-signalling-ear": {
  3468. source: "iana"
  3469. },
  3470. "application/vnd.3gpp.mcdata-affiliation-command+xml": {
  3471. source: "iana",
  3472. compressible: true
  3473. },
  3474. "application/vnd.3gpp.mcdata-info+xml": {
  3475. source: "iana",
  3476. compressible: true
  3477. },
  3478. "application/vnd.3gpp.mcdata-payload": {
  3479. source: "iana"
  3480. },
  3481. "application/vnd.3gpp.mcdata-service-config+xml": {
  3482. source: "iana",
  3483. compressible: true
  3484. },
  3485. "application/vnd.3gpp.mcdata-signalling": {
  3486. source: "iana"
  3487. },
  3488. "application/vnd.3gpp.mcdata-ue-config+xml": {
  3489. source: "iana",
  3490. compressible: true
  3491. },
  3492. "application/vnd.3gpp.mcdata-user-profile+xml": {
  3493. source: "iana",
  3494. compressible: true
  3495. },
  3496. "application/vnd.3gpp.mcptt-affiliation-command+xml": {
  3497. source: "iana",
  3498. compressible: true
  3499. },
  3500. "application/vnd.3gpp.mcptt-floor-request+xml": {
  3501. source: "iana",
  3502. compressible: true
  3503. },
  3504. "application/vnd.3gpp.mcptt-info+xml": {
  3505. source: "iana",
  3506. compressible: true
  3507. },
  3508. "application/vnd.3gpp.mcptt-location-info+xml": {
  3509. source: "iana",
  3510. compressible: true
  3511. },
  3512. "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
  3513. source: "iana",
  3514. compressible: true
  3515. },
  3516. "application/vnd.3gpp.mcptt-service-config+xml": {
  3517. source: "iana",
  3518. compressible: true
  3519. },
  3520. "application/vnd.3gpp.mcptt-signed+xml": {
  3521. source: "iana",
  3522. compressible: true
  3523. },
  3524. "application/vnd.3gpp.mcptt-ue-config+xml": {
  3525. source: "iana",
  3526. compressible: true
  3527. },
  3528. "application/vnd.3gpp.mcptt-ue-init-config+xml": {
  3529. source: "iana",
  3530. compressible: true
  3531. },
  3532. "application/vnd.3gpp.mcptt-user-profile+xml": {
  3533. source: "iana",
  3534. compressible: true
  3535. },
  3536. "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
  3537. source: "iana",
  3538. compressible: true
  3539. },
  3540. "application/vnd.3gpp.mcvideo-affiliation-info+xml": {
  3541. source: "iana",
  3542. compressible: true
  3543. },
  3544. "application/vnd.3gpp.mcvideo-info+xml": {
  3545. source: "iana",
  3546. compressible: true
  3547. },
  3548. "application/vnd.3gpp.mcvideo-location-info+xml": {
  3549. source: "iana",
  3550. compressible: true
  3551. },
  3552. "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
  3553. source: "iana",
  3554. compressible: true
  3555. },
  3556. "application/vnd.3gpp.mcvideo-service-config+xml": {
  3557. source: "iana",
  3558. compressible: true
  3559. },
  3560. "application/vnd.3gpp.mcvideo-transmission-request+xml": {
  3561. source: "iana",
  3562. compressible: true
  3563. },
  3564. "application/vnd.3gpp.mcvideo-ue-config+xml": {
  3565. source: "iana",
  3566. compressible: true
  3567. },
  3568. "application/vnd.3gpp.mcvideo-user-profile+xml": {
  3569. source: "iana",
  3570. compressible: true
  3571. },
  3572. "application/vnd.3gpp.mid-call+xml": {
  3573. source: "iana",
  3574. compressible: true
  3575. },
  3576. "application/vnd.3gpp.ngap": {
  3577. source: "iana"
  3578. },
  3579. "application/vnd.3gpp.pfcp": {
  3580. source: "iana"
  3581. },
  3582. "application/vnd.3gpp.pic-bw-large": {
  3583. source: "iana",
  3584. extensions: [
  3585. "plb"
  3586. ]
  3587. },
  3588. "application/vnd.3gpp.pic-bw-small": {
  3589. source: "iana",
  3590. extensions: [
  3591. "psb"
  3592. ]
  3593. },
  3594. "application/vnd.3gpp.pic-bw-var": {
  3595. source: "iana",
  3596. extensions: [
  3597. "pvb"
  3598. ]
  3599. },
  3600. "application/vnd.3gpp.s1ap": {
  3601. source: "iana"
  3602. },
  3603. "application/vnd.3gpp.sms": {
  3604. source: "iana"
  3605. },
  3606. "application/vnd.3gpp.sms+xml": {
  3607. source: "iana",
  3608. compressible: true
  3609. },
  3610. "application/vnd.3gpp.srvcc-ext+xml": {
  3611. source: "iana",
  3612. compressible: true
  3613. },
  3614. "application/vnd.3gpp.srvcc-info+xml": {
  3615. source: "iana",
  3616. compressible: true
  3617. },
  3618. "application/vnd.3gpp.state-and-event-info+xml": {
  3619. source: "iana",
  3620. compressible: true
  3621. },
  3622. "application/vnd.3gpp.ussd+xml": {
  3623. source: "iana",
  3624. compressible: true
  3625. },
  3626. "application/vnd.3gpp2.bcmcsinfo+xml": {
  3627. source: "iana",
  3628. compressible: true
  3629. },
  3630. "application/vnd.3gpp2.sms": {
  3631. source: "iana"
  3632. },
  3633. "application/vnd.3gpp2.tcap": {
  3634. source: "iana",
  3635. extensions: [
  3636. "tcap"
  3637. ]
  3638. },
  3639. "application/vnd.3lightssoftware.imagescal": {
  3640. source: "iana"
  3641. },
  3642. "application/vnd.3m.post-it-notes": {
  3643. source: "iana",
  3644. extensions: [
  3645. "pwn"
  3646. ]
  3647. },
  3648. "application/vnd.accpac.simply.aso": {
  3649. source: "iana",
  3650. extensions: [
  3651. "aso"
  3652. ]
  3653. },
  3654. "application/vnd.accpac.simply.imp": {
  3655. source: "iana",
  3656. extensions: [
  3657. "imp"
  3658. ]
  3659. },
  3660. "application/vnd.acucobol": {
  3661. source: "iana",
  3662. extensions: [
  3663. "acu"
  3664. ]
  3665. },
  3666. "application/vnd.acucorp": {
  3667. source: "iana",
  3668. extensions: [
  3669. "atc",
  3670. "acutc"
  3671. ]
  3672. },
  3673. "application/vnd.adobe.air-application-installer-package+zip": {
  3674. source: "apache",
  3675. compressible: false,
  3676. extensions: [
  3677. "air"
  3678. ]
  3679. },
  3680. "application/vnd.adobe.flash.movie": {
  3681. source: "iana"
  3682. },
  3683. "application/vnd.adobe.formscentral.fcdt": {
  3684. source: "iana",
  3685. extensions: [
  3686. "fcdt"
  3687. ]
  3688. },
  3689. "application/vnd.adobe.fxp": {
  3690. source: "iana",
  3691. extensions: [
  3692. "fxp",
  3693. "fxpl"
  3694. ]
  3695. },
  3696. "application/vnd.adobe.partial-upload": {
  3697. source: "iana"
  3698. },
  3699. "application/vnd.adobe.xdp+xml": {
  3700. source: "iana",
  3701. compressible: true,
  3702. extensions: [
  3703. "xdp"
  3704. ]
  3705. },
  3706. "application/vnd.adobe.xfdf": {
  3707. source: "iana",
  3708. extensions: [
  3709. "xfdf"
  3710. ]
  3711. },
  3712. "application/vnd.aether.imp": {
  3713. source: "iana"
  3714. },
  3715. "application/vnd.afpc.afplinedata": {
  3716. source: "iana"
  3717. },
  3718. "application/vnd.afpc.afplinedata-pagedef": {
  3719. source: "iana"
  3720. },
  3721. "application/vnd.afpc.cmoca-cmresource": {
  3722. source: "iana"
  3723. },
  3724. "application/vnd.afpc.foca-charset": {
  3725. source: "iana"
  3726. },
  3727. "application/vnd.afpc.foca-codedfont": {
  3728. source: "iana"
  3729. },
  3730. "application/vnd.afpc.foca-codepage": {
  3731. source: "iana"
  3732. },
  3733. "application/vnd.afpc.modca": {
  3734. source: "iana"
  3735. },
  3736. "application/vnd.afpc.modca-cmtable": {
  3737. source: "iana"
  3738. },
  3739. "application/vnd.afpc.modca-formdef": {
  3740. source: "iana"
  3741. },
  3742. "application/vnd.afpc.modca-mediummap": {
  3743. source: "iana"
  3744. },
  3745. "application/vnd.afpc.modca-objectcontainer": {
  3746. source: "iana"
  3747. },
  3748. "application/vnd.afpc.modca-overlay": {
  3749. source: "iana"
  3750. },
  3751. "application/vnd.afpc.modca-pagesegment": {
  3752. source: "iana"
  3753. },
  3754. "application/vnd.ah-barcode": {
  3755. source: "iana"
  3756. },
  3757. "application/vnd.ahead.space": {
  3758. source: "iana",
  3759. extensions: [
  3760. "ahead"
  3761. ]
  3762. },
  3763. "application/vnd.airzip.filesecure.azf": {
  3764. source: "iana",
  3765. extensions: [
  3766. "azf"
  3767. ]
  3768. },
  3769. "application/vnd.airzip.filesecure.azs": {
  3770. source: "iana",
  3771. extensions: [
  3772. "azs"
  3773. ]
  3774. },
  3775. "application/vnd.amadeus+json": {
  3776. source: "iana",
  3777. compressible: true
  3778. },
  3779. "application/vnd.amazon.ebook": {
  3780. source: "apache",
  3781. extensions: [
  3782. "azw"
  3783. ]
  3784. },
  3785. "application/vnd.amazon.mobi8-ebook": {
  3786. source: "iana"
  3787. },
  3788. "application/vnd.americandynamics.acc": {
  3789. source: "iana",
  3790. extensions: [
  3791. "acc"
  3792. ]
  3793. },
  3794. "application/vnd.amiga.ami": {
  3795. source: "iana",
  3796. extensions: [
  3797. "ami"
  3798. ]
  3799. },
  3800. "application/vnd.amundsen.maze+xml": {
  3801. source: "iana",
  3802. compressible: true
  3803. },
  3804. "application/vnd.android.ota": {
  3805. source: "iana"
  3806. },
  3807. "application/vnd.android.package-archive": {
  3808. source: "apache",
  3809. compressible: false,
  3810. extensions: [
  3811. "apk"
  3812. ]
  3813. },
  3814. "application/vnd.anki": {
  3815. source: "iana"
  3816. },
  3817. "application/vnd.anser-web-certificate-issue-initiation": {
  3818. source: "iana",
  3819. extensions: [
  3820. "cii"
  3821. ]
  3822. },
  3823. "application/vnd.anser-web-funds-transfer-initiation": {
  3824. source: "apache",
  3825. extensions: [
  3826. "fti"
  3827. ]
  3828. },
  3829. "application/vnd.antix.game-component": {
  3830. source: "iana",
  3831. extensions: [
  3832. "atx"
  3833. ]
  3834. },
  3835. "application/vnd.apache.arrow.file": {
  3836. source: "iana"
  3837. },
  3838. "application/vnd.apache.arrow.stream": {
  3839. source: "iana"
  3840. },
  3841. "application/vnd.apache.thrift.binary": {
  3842. source: "iana"
  3843. },
  3844. "application/vnd.apache.thrift.compact": {
  3845. source: "iana"
  3846. },
  3847. "application/vnd.apache.thrift.json": {
  3848. source: "iana"
  3849. },
  3850. "application/vnd.api+json": {
  3851. source: "iana",
  3852. compressible: true
  3853. },
  3854. "application/vnd.aplextor.warrp+json": {
  3855. source: "iana",
  3856. compressible: true
  3857. },
  3858. "application/vnd.apothekende.reservation+json": {
  3859. source: "iana",
  3860. compressible: true
  3861. },
  3862. "application/vnd.apple.installer+xml": {
  3863. source: "iana",
  3864. compressible: true,
  3865. extensions: [
  3866. "mpkg"
  3867. ]
  3868. },
  3869. "application/vnd.apple.keynote": {
  3870. source: "iana",
  3871. extensions: [
  3872. "key"
  3873. ]
  3874. },
  3875. "application/vnd.apple.mpegurl": {
  3876. source: "iana",
  3877. extensions: [
  3878. "m3u8"
  3879. ]
  3880. },
  3881. "application/vnd.apple.numbers": {
  3882. source: "iana",
  3883. extensions: [
  3884. "numbers"
  3885. ]
  3886. },
  3887. "application/vnd.apple.pages": {
  3888. source: "iana",
  3889. extensions: [
  3890. "pages"
  3891. ]
  3892. },
  3893. "application/vnd.apple.pkpass": {
  3894. compressible: false,
  3895. extensions: [
  3896. "pkpass"
  3897. ]
  3898. },
  3899. "application/vnd.arastra.swi": {
  3900. source: "iana"
  3901. },
  3902. "application/vnd.aristanetworks.swi": {
  3903. source: "iana",
  3904. extensions: [
  3905. "swi"
  3906. ]
  3907. },
  3908. "application/vnd.artisan+json": {
  3909. source: "iana",
  3910. compressible: true
  3911. },
  3912. "application/vnd.artsquare": {
  3913. source: "iana"
  3914. },
  3915. "application/vnd.astraea-software.iota": {
  3916. source: "iana",
  3917. extensions: [
  3918. "iota"
  3919. ]
  3920. },
  3921. "application/vnd.audiograph": {
  3922. source: "iana",
  3923. extensions: [
  3924. "aep"
  3925. ]
  3926. },
  3927. "application/vnd.autopackage": {
  3928. source: "iana"
  3929. },
  3930. "application/vnd.avalon+json": {
  3931. source: "iana",
  3932. compressible: true
  3933. },
  3934. "application/vnd.avistar+xml": {
  3935. source: "iana",
  3936. compressible: true
  3937. },
  3938. "application/vnd.balsamiq.bmml+xml": {
  3939. source: "iana",
  3940. compressible: true,
  3941. extensions: [
  3942. "bmml"
  3943. ]
  3944. },
  3945. "application/vnd.balsamiq.bmpr": {
  3946. source: "iana"
  3947. },
  3948. "application/vnd.banana-accounting": {
  3949. source: "iana"
  3950. },
  3951. "application/vnd.bbf.usp.error": {
  3952. source: "iana"
  3953. },
  3954. "application/vnd.bbf.usp.msg": {
  3955. source: "iana"
  3956. },
  3957. "application/vnd.bbf.usp.msg+json": {
  3958. source: "iana",
  3959. compressible: true
  3960. },
  3961. "application/vnd.bekitzur-stech+json": {
  3962. source: "iana",
  3963. compressible: true
  3964. },
  3965. "application/vnd.bint.med-content": {
  3966. source: "iana"
  3967. },
  3968. "application/vnd.biopax.rdf+xml": {
  3969. source: "iana",
  3970. compressible: true
  3971. },
  3972. "application/vnd.blink-idb-value-wrapper": {
  3973. source: "iana"
  3974. },
  3975. "application/vnd.blueice.multipass": {
  3976. source: "iana",
  3977. extensions: [
  3978. "mpm"
  3979. ]
  3980. },
  3981. "application/vnd.bluetooth.ep.oob": {
  3982. source: "iana"
  3983. },
  3984. "application/vnd.bluetooth.le.oob": {
  3985. source: "iana"
  3986. },
  3987. "application/vnd.bmi": {
  3988. source: "iana",
  3989. extensions: [
  3990. "bmi"
  3991. ]
  3992. },
  3993. "application/vnd.bpf": {
  3994. source: "iana"
  3995. },
  3996. "application/vnd.bpf3": {
  3997. source: "iana"
  3998. },
  3999. "application/vnd.businessobjects": {
  4000. source: "iana",
  4001. extensions: [
  4002. "rep"
  4003. ]
  4004. },
  4005. "application/vnd.byu.uapi+json": {
  4006. source: "iana",
  4007. compressible: true
  4008. },
  4009. "application/vnd.cab-jscript": {
  4010. source: "iana"
  4011. },
  4012. "application/vnd.canon-cpdl": {
  4013. source: "iana"
  4014. },
  4015. "application/vnd.canon-lips": {
  4016. source: "iana"
  4017. },
  4018. "application/vnd.capasystems-pg+json": {
  4019. source: "iana",
  4020. compressible: true
  4021. },
  4022. "application/vnd.cendio.thinlinc.clientconf": {
  4023. source: "iana"
  4024. },
  4025. "application/vnd.century-systems.tcp_stream": {
  4026. source: "iana"
  4027. },
  4028. "application/vnd.chemdraw+xml": {
  4029. source: "iana",
  4030. compressible: true,
  4031. extensions: [
  4032. "cdxml"
  4033. ]
  4034. },
  4035. "application/vnd.chess-pgn": {
  4036. source: "iana"
  4037. },
  4038. "application/vnd.chipnuts.karaoke-mmd": {
  4039. source: "iana",
  4040. extensions: [
  4041. "mmd"
  4042. ]
  4043. },
  4044. "application/vnd.ciedi": {
  4045. source: "iana"
  4046. },
  4047. "application/vnd.cinderella": {
  4048. source: "iana",
  4049. extensions: [
  4050. "cdy"
  4051. ]
  4052. },
  4053. "application/vnd.cirpack.isdn-ext": {
  4054. source: "iana"
  4055. },
  4056. "application/vnd.citationstyles.style+xml": {
  4057. source: "iana",
  4058. compressible: true,
  4059. extensions: [
  4060. "csl"
  4061. ]
  4062. },
  4063. "application/vnd.claymore": {
  4064. source: "iana",
  4065. extensions: [
  4066. "cla"
  4067. ]
  4068. },
  4069. "application/vnd.cloanto.rp9": {
  4070. source: "iana",
  4071. extensions: [
  4072. "rp9"
  4073. ]
  4074. },
  4075. "application/vnd.clonk.c4group": {
  4076. source: "iana",
  4077. extensions: [
  4078. "c4g",
  4079. "c4d",
  4080. "c4f",
  4081. "c4p",
  4082. "c4u"
  4083. ]
  4084. },
  4085. "application/vnd.cluetrust.cartomobile-config": {
  4086. source: "iana",
  4087. extensions: [
  4088. "c11amc"
  4089. ]
  4090. },
  4091. "application/vnd.cluetrust.cartomobile-config-pkg": {
  4092. source: "iana",
  4093. extensions: [
  4094. "c11amz"
  4095. ]
  4096. },
  4097. "application/vnd.coffeescript": {
  4098. source: "iana"
  4099. },
  4100. "application/vnd.collabio.xodocuments.document": {
  4101. source: "iana"
  4102. },
  4103. "application/vnd.collabio.xodocuments.document-template": {
  4104. source: "iana"
  4105. },
  4106. "application/vnd.collabio.xodocuments.presentation": {
  4107. source: "iana"
  4108. },
  4109. "application/vnd.collabio.xodocuments.presentation-template": {
  4110. source: "iana"
  4111. },
  4112. "application/vnd.collabio.xodocuments.spreadsheet": {
  4113. source: "iana"
  4114. },
  4115. "application/vnd.collabio.xodocuments.spreadsheet-template": {
  4116. source: "iana"
  4117. },
  4118. "application/vnd.collection+json": {
  4119. source: "iana",
  4120. compressible: true
  4121. },
  4122. "application/vnd.collection.doc+json": {
  4123. source: "iana",
  4124. compressible: true
  4125. },
  4126. "application/vnd.collection.next+json": {
  4127. source: "iana",
  4128. compressible: true
  4129. },
  4130. "application/vnd.comicbook+zip": {
  4131. source: "iana",
  4132. compressible: false
  4133. },
  4134. "application/vnd.comicbook-rar": {
  4135. source: "iana"
  4136. },
  4137. "application/vnd.commerce-battelle": {
  4138. source: "iana"
  4139. },
  4140. "application/vnd.commonspace": {
  4141. source: "iana",
  4142. extensions: [
  4143. "csp"
  4144. ]
  4145. },
  4146. "application/vnd.contact.cmsg": {
  4147. source: "iana",
  4148. extensions: [
  4149. "cdbcmsg"
  4150. ]
  4151. },
  4152. "application/vnd.coreos.ignition+json": {
  4153. source: "iana",
  4154. compressible: true
  4155. },
  4156. "application/vnd.cosmocaller": {
  4157. source: "iana",
  4158. extensions: [
  4159. "cmc"
  4160. ]
  4161. },
  4162. "application/vnd.crick.clicker": {
  4163. source: "iana",
  4164. extensions: [
  4165. "clkx"
  4166. ]
  4167. },
  4168. "application/vnd.crick.clicker.keyboard": {
  4169. source: "iana",
  4170. extensions: [
  4171. "clkk"
  4172. ]
  4173. },
  4174. "application/vnd.crick.clicker.palette": {
  4175. source: "iana",
  4176. extensions: [
  4177. "clkp"
  4178. ]
  4179. },
  4180. "application/vnd.crick.clicker.template": {
  4181. source: "iana",
  4182. extensions: [
  4183. "clkt"
  4184. ]
  4185. },
  4186. "application/vnd.crick.clicker.wordbank": {
  4187. source: "iana",
  4188. extensions: [
  4189. "clkw"
  4190. ]
  4191. },
  4192. "application/vnd.criticaltools.wbs+xml": {
  4193. source: "iana",
  4194. compressible: true,
  4195. extensions: [
  4196. "wbs"
  4197. ]
  4198. },
  4199. "application/vnd.cryptii.pipe+json": {
  4200. source: "iana",
  4201. compressible: true
  4202. },
  4203. "application/vnd.crypto-shade-file": {
  4204. source: "iana"
  4205. },
  4206. "application/vnd.cryptomator.encrypted": {
  4207. source: "iana"
  4208. },
  4209. "application/vnd.cryptomator.vault": {
  4210. source: "iana"
  4211. },
  4212. "application/vnd.ctc-posml": {
  4213. source: "iana",
  4214. extensions: [
  4215. "pml"
  4216. ]
  4217. },
  4218. "application/vnd.ctct.ws+xml": {
  4219. source: "iana",
  4220. compressible: true
  4221. },
  4222. "application/vnd.cups-pdf": {
  4223. source: "iana"
  4224. },
  4225. "application/vnd.cups-postscript": {
  4226. source: "iana"
  4227. },
  4228. "application/vnd.cups-ppd": {
  4229. source: "iana",
  4230. extensions: [
  4231. "ppd"
  4232. ]
  4233. },
  4234. "application/vnd.cups-raster": {
  4235. source: "iana"
  4236. },
  4237. "application/vnd.cups-raw": {
  4238. source: "iana"
  4239. },
  4240. "application/vnd.curl": {
  4241. source: "iana"
  4242. },
  4243. "application/vnd.curl.car": {
  4244. source: "apache",
  4245. extensions: [
  4246. "car"
  4247. ]
  4248. },
  4249. "application/vnd.curl.pcurl": {
  4250. source: "apache",
  4251. extensions: [
  4252. "pcurl"
  4253. ]
  4254. },
  4255. "application/vnd.cyan.dean.root+xml": {
  4256. source: "iana",
  4257. compressible: true
  4258. },
  4259. "application/vnd.cybank": {
  4260. source: "iana"
  4261. },
  4262. "application/vnd.cyclonedx+json": {
  4263. source: "iana",
  4264. compressible: true
  4265. },
  4266. "application/vnd.cyclonedx+xml": {
  4267. source: "iana",
  4268. compressible: true
  4269. },
  4270. "application/vnd.d2l.coursepackage1p0+zip": {
  4271. source: "iana",
  4272. compressible: false
  4273. },
  4274. "application/vnd.d3m-dataset": {
  4275. source: "iana"
  4276. },
  4277. "application/vnd.d3m-problem": {
  4278. source: "iana"
  4279. },
  4280. "application/vnd.dart": {
  4281. source: "iana",
  4282. compressible: true,
  4283. extensions: [
  4284. "dart"
  4285. ]
  4286. },
  4287. "application/vnd.data-vision.rdz": {
  4288. source: "iana",
  4289. extensions: [
  4290. "rdz"
  4291. ]
  4292. },
  4293. "application/vnd.datapackage+json": {
  4294. source: "iana",
  4295. compressible: true
  4296. },
  4297. "application/vnd.dataresource+json": {
  4298. source: "iana",
  4299. compressible: true
  4300. },
  4301. "application/vnd.dbf": {
  4302. source: "iana",
  4303. extensions: [
  4304. "dbf"
  4305. ]
  4306. },
  4307. "application/vnd.debian.binary-package": {
  4308. source: "iana"
  4309. },
  4310. "application/vnd.dece.data": {
  4311. source: "iana",
  4312. extensions: [
  4313. "uvf",
  4314. "uvvf",
  4315. "uvd",
  4316. "uvvd"
  4317. ]
  4318. },
  4319. "application/vnd.dece.ttml+xml": {
  4320. source: "iana",
  4321. compressible: true,
  4322. extensions: [
  4323. "uvt",
  4324. "uvvt"
  4325. ]
  4326. },
  4327. "application/vnd.dece.unspecified": {
  4328. source: "iana",
  4329. extensions: [
  4330. "uvx",
  4331. "uvvx"
  4332. ]
  4333. },
  4334. "application/vnd.dece.zip": {
  4335. source: "iana",
  4336. extensions: [
  4337. "uvz",
  4338. "uvvz"
  4339. ]
  4340. },
  4341. "application/vnd.denovo.fcselayout-link": {
  4342. source: "iana",
  4343. extensions: [
  4344. "fe_launch"
  4345. ]
  4346. },
  4347. "application/vnd.desmume.movie": {
  4348. source: "iana"
  4349. },
  4350. "application/vnd.dir-bi.plate-dl-nosuffix": {
  4351. source: "iana"
  4352. },
  4353. "application/vnd.dm.delegation+xml": {
  4354. source: "iana",
  4355. compressible: true
  4356. },
  4357. "application/vnd.dna": {
  4358. source: "iana",
  4359. extensions: [
  4360. "dna"
  4361. ]
  4362. },
  4363. "application/vnd.document+json": {
  4364. source: "iana",
  4365. compressible: true
  4366. },
  4367. "application/vnd.dolby.mlp": {
  4368. source: "apache",
  4369. extensions: [
  4370. "mlp"
  4371. ]
  4372. },
  4373. "application/vnd.dolby.mobile.1": {
  4374. source: "iana"
  4375. },
  4376. "application/vnd.dolby.mobile.2": {
  4377. source: "iana"
  4378. },
  4379. "application/vnd.doremir.scorecloud-binary-document": {
  4380. source: "iana"
  4381. },
  4382. "application/vnd.dpgraph": {
  4383. source: "iana",
  4384. extensions: [
  4385. "dpg"
  4386. ]
  4387. },
  4388. "application/vnd.dreamfactory": {
  4389. source: "iana",
  4390. extensions: [
  4391. "dfac"
  4392. ]
  4393. },
  4394. "application/vnd.drive+json": {
  4395. source: "iana",
  4396. compressible: true
  4397. },
  4398. "application/vnd.ds-keypoint": {
  4399. source: "apache",
  4400. extensions: [
  4401. "kpxx"
  4402. ]
  4403. },
  4404. "application/vnd.dtg.local": {
  4405. source: "iana"
  4406. },
  4407. "application/vnd.dtg.local.flash": {
  4408. source: "iana"
  4409. },
  4410. "application/vnd.dtg.local.html": {
  4411. source: "iana"
  4412. },
  4413. "application/vnd.dvb.ait": {
  4414. source: "iana",
  4415. extensions: [
  4416. "ait"
  4417. ]
  4418. },
  4419. "application/vnd.dvb.dvbisl+xml": {
  4420. source: "iana",
  4421. compressible: true
  4422. },
  4423. "application/vnd.dvb.dvbj": {
  4424. source: "iana"
  4425. },
  4426. "application/vnd.dvb.esgcontainer": {
  4427. source: "iana"
  4428. },
  4429. "application/vnd.dvb.ipdcdftnotifaccess": {
  4430. source: "iana"
  4431. },
  4432. "application/vnd.dvb.ipdcesgaccess": {
  4433. source: "iana"
  4434. },
  4435. "application/vnd.dvb.ipdcesgaccess2": {
  4436. source: "iana"
  4437. },
  4438. "application/vnd.dvb.ipdcesgpdd": {
  4439. source: "iana"
  4440. },
  4441. "application/vnd.dvb.ipdcroaming": {
  4442. source: "iana"
  4443. },
  4444. "application/vnd.dvb.iptv.alfec-base": {
  4445. source: "iana"
  4446. },
  4447. "application/vnd.dvb.iptv.alfec-enhancement": {
  4448. source: "iana"
  4449. },
  4450. "application/vnd.dvb.notif-aggregate-root+xml": {
  4451. source: "iana",
  4452. compressible: true
  4453. },
  4454. "application/vnd.dvb.notif-container+xml": {
  4455. source: "iana",
  4456. compressible: true
  4457. },
  4458. "application/vnd.dvb.notif-generic+xml": {
  4459. source: "iana",
  4460. compressible: true
  4461. },
  4462. "application/vnd.dvb.notif-ia-msglist+xml": {
  4463. source: "iana",
  4464. compressible: true
  4465. },
  4466. "application/vnd.dvb.notif-ia-registration-request+xml": {
  4467. source: "iana",
  4468. compressible: true
  4469. },
  4470. "application/vnd.dvb.notif-ia-registration-response+xml": {
  4471. source: "iana",
  4472. compressible: true
  4473. },
  4474. "application/vnd.dvb.notif-init+xml": {
  4475. source: "iana",
  4476. compressible: true
  4477. },
  4478. "application/vnd.dvb.pfr": {
  4479. source: "iana"
  4480. },
  4481. "application/vnd.dvb.service": {
  4482. source: "iana",
  4483. extensions: [
  4484. "svc"
  4485. ]
  4486. },
  4487. "application/vnd.dxr": {
  4488. source: "iana"
  4489. },
  4490. "application/vnd.dynageo": {
  4491. source: "iana",
  4492. extensions: [
  4493. "geo"
  4494. ]
  4495. },
  4496. "application/vnd.dzr": {
  4497. source: "iana"
  4498. },
  4499. "application/vnd.easykaraoke.cdgdownload": {
  4500. source: "iana"
  4501. },
  4502. "application/vnd.ecdis-update": {
  4503. source: "iana"
  4504. },
  4505. "application/vnd.ecip.rlp": {
  4506. source: "iana"
  4507. },
  4508. "application/vnd.ecowin.chart": {
  4509. source: "iana",
  4510. extensions: [
  4511. "mag"
  4512. ]
  4513. },
  4514. "application/vnd.ecowin.filerequest": {
  4515. source: "iana"
  4516. },
  4517. "application/vnd.ecowin.fileupdate": {
  4518. source: "iana"
  4519. },
  4520. "application/vnd.ecowin.series": {
  4521. source: "iana"
  4522. },
  4523. "application/vnd.ecowin.seriesrequest": {
  4524. source: "iana"
  4525. },
  4526. "application/vnd.ecowin.seriesupdate": {
  4527. source: "iana"
  4528. },
  4529. "application/vnd.efi.img": {
  4530. source: "iana"
  4531. },
  4532. "application/vnd.efi.iso": {
  4533. source: "iana"
  4534. },
  4535. "application/vnd.emclient.accessrequest+xml": {
  4536. source: "iana",
  4537. compressible: true
  4538. },
  4539. "application/vnd.enliven": {
  4540. source: "iana",
  4541. extensions: [
  4542. "nml"
  4543. ]
  4544. },
  4545. "application/vnd.enphase.envoy": {
  4546. source: "iana"
  4547. },
  4548. "application/vnd.eprints.data+xml": {
  4549. source: "iana",
  4550. compressible: true
  4551. },
  4552. "application/vnd.epson.esf": {
  4553. source: "iana",
  4554. extensions: [
  4555. "esf"
  4556. ]
  4557. },
  4558. "application/vnd.epson.msf": {
  4559. source: "iana",
  4560. extensions: [
  4561. "msf"
  4562. ]
  4563. },
  4564. "application/vnd.epson.quickanime": {
  4565. source: "iana",
  4566. extensions: [
  4567. "qam"
  4568. ]
  4569. },
  4570. "application/vnd.epson.salt": {
  4571. source: "iana",
  4572. extensions: [
  4573. "slt"
  4574. ]
  4575. },
  4576. "application/vnd.epson.ssf": {
  4577. source: "iana",
  4578. extensions: [
  4579. "ssf"
  4580. ]
  4581. },
  4582. "application/vnd.ericsson.quickcall": {
  4583. source: "iana"
  4584. },
  4585. "application/vnd.espass-espass+zip": {
  4586. source: "iana",
  4587. compressible: false
  4588. },
  4589. "application/vnd.eszigno3+xml": {
  4590. source: "iana",
  4591. compressible: true,
  4592. extensions: [
  4593. "es3",
  4594. "et3"
  4595. ]
  4596. },
  4597. "application/vnd.etsi.aoc+xml": {
  4598. source: "iana",
  4599. compressible: true
  4600. },
  4601. "application/vnd.etsi.asic-e+zip": {
  4602. source: "iana",
  4603. compressible: false
  4604. },
  4605. "application/vnd.etsi.asic-s+zip": {
  4606. source: "iana",
  4607. compressible: false
  4608. },
  4609. "application/vnd.etsi.cug+xml": {
  4610. source: "iana",
  4611. compressible: true
  4612. },
  4613. "application/vnd.etsi.iptvcommand+xml": {
  4614. source: "iana",
  4615. compressible: true
  4616. },
  4617. "application/vnd.etsi.iptvdiscovery+xml": {
  4618. source: "iana",
  4619. compressible: true
  4620. },
  4621. "application/vnd.etsi.iptvprofile+xml": {
  4622. source: "iana",
  4623. compressible: true
  4624. },
  4625. "application/vnd.etsi.iptvsad-bc+xml": {
  4626. source: "iana",
  4627. compressible: true
  4628. },
  4629. "application/vnd.etsi.iptvsad-cod+xml": {
  4630. source: "iana",
  4631. compressible: true
  4632. },
  4633. "application/vnd.etsi.iptvsad-npvr+xml": {
  4634. source: "iana",
  4635. compressible: true
  4636. },
  4637. "application/vnd.etsi.iptvservice+xml": {
  4638. source: "iana",
  4639. compressible: true
  4640. },
  4641. "application/vnd.etsi.iptvsync+xml": {
  4642. source: "iana",
  4643. compressible: true
  4644. },
  4645. "application/vnd.etsi.iptvueprofile+xml": {
  4646. source: "iana",
  4647. compressible: true
  4648. },
  4649. "application/vnd.etsi.mcid+xml": {
  4650. source: "iana",
  4651. compressible: true
  4652. },
  4653. "application/vnd.etsi.mheg5": {
  4654. source: "iana"
  4655. },
  4656. "application/vnd.etsi.overload-control-policy-dataset+xml": {
  4657. source: "iana",
  4658. compressible: true
  4659. },
  4660. "application/vnd.etsi.pstn+xml": {
  4661. source: "iana",
  4662. compressible: true
  4663. },
  4664. "application/vnd.etsi.sci+xml": {
  4665. source: "iana",
  4666. compressible: true
  4667. },
  4668. "application/vnd.etsi.simservs+xml": {
  4669. source: "iana",
  4670. compressible: true
  4671. },
  4672. "application/vnd.etsi.timestamp-token": {
  4673. source: "iana"
  4674. },
  4675. "application/vnd.etsi.tsl+xml": {
  4676. source: "iana",
  4677. compressible: true
  4678. },
  4679. "application/vnd.etsi.tsl.der": {
  4680. source: "iana"
  4681. },
  4682. "application/vnd.eudora.data": {
  4683. source: "iana"
  4684. },
  4685. "application/vnd.evolv.ecig.profile": {
  4686. source: "iana"
  4687. },
  4688. "application/vnd.evolv.ecig.settings": {
  4689. source: "iana"
  4690. },
  4691. "application/vnd.evolv.ecig.theme": {
  4692. source: "iana"
  4693. },
  4694. "application/vnd.exstream-empower+zip": {
  4695. source: "iana",
  4696. compressible: false
  4697. },
  4698. "application/vnd.exstream-package": {
  4699. source: "iana"
  4700. },
  4701. "application/vnd.ezpix-album": {
  4702. source: "iana",
  4703. extensions: [
  4704. "ez2"
  4705. ]
  4706. },
  4707. "application/vnd.ezpix-package": {
  4708. source: "iana",
  4709. extensions: [
  4710. "ez3"
  4711. ]
  4712. },
  4713. "application/vnd.f-secure.mobile": {
  4714. source: "iana"
  4715. },
  4716. "application/vnd.fastcopy-disk-image": {
  4717. source: "iana"
  4718. },
  4719. "application/vnd.fdf": {
  4720. source: "iana",
  4721. extensions: [
  4722. "fdf"
  4723. ]
  4724. },
  4725. "application/vnd.fdsn.mseed": {
  4726. source: "iana",
  4727. extensions: [
  4728. "mseed"
  4729. ]
  4730. },
  4731. "application/vnd.fdsn.seed": {
  4732. source: "iana",
  4733. extensions: [
  4734. "seed",
  4735. "dataless"
  4736. ]
  4737. },
  4738. "application/vnd.ffsns": {
  4739. source: "iana"
  4740. },
  4741. "application/vnd.ficlab.flb+zip": {
  4742. source: "iana",
  4743. compressible: false
  4744. },
  4745. "application/vnd.filmit.zfc": {
  4746. source: "iana"
  4747. },
  4748. "application/vnd.fints": {
  4749. source: "iana"
  4750. },
  4751. "application/vnd.firemonkeys.cloudcell": {
  4752. source: "iana"
  4753. },
  4754. "application/vnd.flographit": {
  4755. source: "iana",
  4756. extensions: [
  4757. "gph"
  4758. ]
  4759. },
  4760. "application/vnd.fluxtime.clip": {
  4761. source: "iana",
  4762. extensions: [
  4763. "ftc"
  4764. ]
  4765. },
  4766. "application/vnd.font-fontforge-sfd": {
  4767. source: "iana"
  4768. },
  4769. "application/vnd.framemaker": {
  4770. source: "iana",
  4771. extensions: [
  4772. "fm",
  4773. "frame",
  4774. "maker",
  4775. "book"
  4776. ]
  4777. },
  4778. "application/vnd.frogans.fnc": {
  4779. source: "iana",
  4780. extensions: [
  4781. "fnc"
  4782. ]
  4783. },
  4784. "application/vnd.frogans.ltf": {
  4785. source: "iana",
  4786. extensions: [
  4787. "ltf"
  4788. ]
  4789. },
  4790. "application/vnd.fsc.weblaunch": {
  4791. source: "iana",
  4792. extensions: [
  4793. "fsc"
  4794. ]
  4795. },
  4796. "application/vnd.fujifilm.fb.docuworks": {
  4797. source: "iana"
  4798. },
  4799. "application/vnd.fujifilm.fb.docuworks.binder": {
  4800. source: "iana"
  4801. },
  4802. "application/vnd.fujifilm.fb.docuworks.container": {
  4803. source: "iana"
  4804. },
  4805. "application/vnd.fujifilm.fb.jfi+xml": {
  4806. source: "iana",
  4807. compressible: true
  4808. },
  4809. "application/vnd.fujitsu.oasys": {
  4810. source: "iana",
  4811. extensions: [
  4812. "oas"
  4813. ]
  4814. },
  4815. "application/vnd.fujitsu.oasys2": {
  4816. source: "iana",
  4817. extensions: [
  4818. "oa2"
  4819. ]
  4820. },
  4821. "application/vnd.fujitsu.oasys3": {
  4822. source: "iana",
  4823. extensions: [
  4824. "oa3"
  4825. ]
  4826. },
  4827. "application/vnd.fujitsu.oasysgp": {
  4828. source: "iana",
  4829. extensions: [
  4830. "fg5"
  4831. ]
  4832. },
  4833. "application/vnd.fujitsu.oasysprs": {
  4834. source: "iana",
  4835. extensions: [
  4836. "bh2"
  4837. ]
  4838. },
  4839. "application/vnd.fujixerox.art-ex": {
  4840. source: "iana"
  4841. },
  4842. "application/vnd.fujixerox.art4": {
  4843. source: "iana"
  4844. },
  4845. "application/vnd.fujixerox.ddd": {
  4846. source: "iana",
  4847. extensions: [
  4848. "ddd"
  4849. ]
  4850. },
  4851. "application/vnd.fujixerox.docuworks": {
  4852. source: "iana",
  4853. extensions: [
  4854. "xdw"
  4855. ]
  4856. },
  4857. "application/vnd.fujixerox.docuworks.binder": {
  4858. source: "iana",
  4859. extensions: [
  4860. "xbd"
  4861. ]
  4862. },
  4863. "application/vnd.fujixerox.docuworks.container": {
  4864. source: "iana"
  4865. },
  4866. "application/vnd.fujixerox.hbpl": {
  4867. source: "iana"
  4868. },
  4869. "application/vnd.fut-misnet": {
  4870. source: "iana"
  4871. },
  4872. "application/vnd.futoin+cbor": {
  4873. source: "iana"
  4874. },
  4875. "application/vnd.futoin+json": {
  4876. source: "iana",
  4877. compressible: true
  4878. },
  4879. "application/vnd.fuzzysheet": {
  4880. source: "iana",
  4881. extensions: [
  4882. "fzs"
  4883. ]
  4884. },
  4885. "application/vnd.genomatix.tuxedo": {
  4886. source: "iana",
  4887. extensions: [
  4888. "txd"
  4889. ]
  4890. },
  4891. "application/vnd.gentics.grd+json": {
  4892. source: "iana",
  4893. compressible: true
  4894. },
  4895. "application/vnd.geo+json": {
  4896. source: "iana",
  4897. compressible: true
  4898. },
  4899. "application/vnd.geocube+xml": {
  4900. source: "iana",
  4901. compressible: true
  4902. },
  4903. "application/vnd.geogebra.file": {
  4904. source: "iana",
  4905. extensions: [
  4906. "ggb"
  4907. ]
  4908. },
  4909. "application/vnd.geogebra.slides": {
  4910. source: "iana"
  4911. },
  4912. "application/vnd.geogebra.tool": {
  4913. source: "iana",
  4914. extensions: [
  4915. "ggt"
  4916. ]
  4917. },
  4918. "application/vnd.geometry-explorer": {
  4919. source: "iana",
  4920. extensions: [
  4921. "gex",
  4922. "gre"
  4923. ]
  4924. },
  4925. "application/vnd.geonext": {
  4926. source: "iana",
  4927. extensions: [
  4928. "gxt"
  4929. ]
  4930. },
  4931. "application/vnd.geoplan": {
  4932. source: "iana",
  4933. extensions: [
  4934. "g2w"
  4935. ]
  4936. },
  4937. "application/vnd.geospace": {
  4938. source: "iana",
  4939. extensions: [
  4940. "g3w"
  4941. ]
  4942. },
  4943. "application/vnd.gerber": {
  4944. source: "iana"
  4945. },
  4946. "application/vnd.globalplatform.card-content-mgt": {
  4947. source: "iana"
  4948. },
  4949. "application/vnd.globalplatform.card-content-mgt-response": {
  4950. source: "iana"
  4951. },
  4952. "application/vnd.gmx": {
  4953. source: "iana",
  4954. extensions: [
  4955. "gmx"
  4956. ]
  4957. },
  4958. "application/vnd.google-apps.document": {
  4959. compressible: false,
  4960. extensions: [
  4961. "gdoc"
  4962. ]
  4963. },
  4964. "application/vnd.google-apps.presentation": {
  4965. compressible: false,
  4966. extensions: [
  4967. "gslides"
  4968. ]
  4969. },
  4970. "application/vnd.google-apps.spreadsheet": {
  4971. compressible: false,
  4972. extensions: [
  4973. "gsheet"
  4974. ]
  4975. },
  4976. "application/vnd.google-earth.kml+xml": {
  4977. source: "iana",
  4978. compressible: true,
  4979. extensions: [
  4980. "kml"
  4981. ]
  4982. },
  4983. "application/vnd.google-earth.kmz": {
  4984. source: "iana",
  4985. compressible: false,
  4986. extensions: [
  4987. "kmz"
  4988. ]
  4989. },
  4990. "application/vnd.gov.sk.e-form+xml": {
  4991. source: "iana",
  4992. compressible: true
  4993. },
  4994. "application/vnd.gov.sk.e-form+zip": {
  4995. source: "iana",
  4996. compressible: false
  4997. },
  4998. "application/vnd.gov.sk.xmldatacontainer+xml": {
  4999. source: "iana",
  5000. compressible: true
  5001. },
  5002. "application/vnd.grafeq": {
  5003. source: "iana",
  5004. extensions: [
  5005. "gqf",
  5006. "gqs"
  5007. ]
  5008. },
  5009. "application/vnd.gridmp": {
  5010. source: "iana"
  5011. },
  5012. "application/vnd.groove-account": {
  5013. source: "iana",
  5014. extensions: [
  5015. "gac"
  5016. ]
  5017. },
  5018. "application/vnd.groove-help": {
  5019. source: "iana",
  5020. extensions: [
  5021. "ghf"
  5022. ]
  5023. },
  5024. "application/vnd.groove-identity-message": {
  5025. source: "iana",
  5026. extensions: [
  5027. "gim"
  5028. ]
  5029. },
  5030. "application/vnd.groove-injector": {
  5031. source: "iana",
  5032. extensions: [
  5033. "grv"
  5034. ]
  5035. },
  5036. "application/vnd.groove-tool-message": {
  5037. source: "iana",
  5038. extensions: [
  5039. "gtm"
  5040. ]
  5041. },
  5042. "application/vnd.groove-tool-template": {
  5043. source: "iana",
  5044. extensions: [
  5045. "tpl"
  5046. ]
  5047. },
  5048. "application/vnd.groove-vcard": {
  5049. source: "iana",
  5050. extensions: [
  5051. "vcg"
  5052. ]
  5053. },
  5054. "application/vnd.hal+json": {
  5055. source: "iana",
  5056. compressible: true
  5057. },
  5058. "application/vnd.hal+xml": {
  5059. source: "iana",
  5060. compressible: true,
  5061. extensions: [
  5062. "hal"
  5063. ]
  5064. },
  5065. "application/vnd.handheld-entertainment+xml": {
  5066. source: "iana",
  5067. compressible: true,
  5068. extensions: [
  5069. "zmm"
  5070. ]
  5071. },
  5072. "application/vnd.hbci": {
  5073. source: "iana",
  5074. extensions: [
  5075. "hbci"
  5076. ]
  5077. },
  5078. "application/vnd.hc+json": {
  5079. source: "iana",
  5080. compressible: true
  5081. },
  5082. "application/vnd.hcl-bireports": {
  5083. source: "iana"
  5084. },
  5085. "application/vnd.hdt": {
  5086. source: "iana"
  5087. },
  5088. "application/vnd.heroku+json": {
  5089. source: "iana",
  5090. compressible: true
  5091. },
  5092. "application/vnd.hhe.lesson-player": {
  5093. source: "iana",
  5094. extensions: [
  5095. "les"
  5096. ]
  5097. },
  5098. "application/vnd.hp-hpgl": {
  5099. source: "iana",
  5100. extensions: [
  5101. "hpgl"
  5102. ]
  5103. },
  5104. "application/vnd.hp-hpid": {
  5105. source: "iana",
  5106. extensions: [
  5107. "hpid"
  5108. ]
  5109. },
  5110. "application/vnd.hp-hps": {
  5111. source: "iana",
  5112. extensions: [
  5113. "hps"
  5114. ]
  5115. },
  5116. "application/vnd.hp-jlyt": {
  5117. source: "iana",
  5118. extensions: [
  5119. "jlt"
  5120. ]
  5121. },
  5122. "application/vnd.hp-pcl": {
  5123. source: "iana",
  5124. extensions: [
  5125. "pcl"
  5126. ]
  5127. },
  5128. "application/vnd.hp-pclxl": {
  5129. source: "iana",
  5130. extensions: [
  5131. "pclxl"
  5132. ]
  5133. },
  5134. "application/vnd.httphone": {
  5135. source: "iana"
  5136. },
  5137. "application/vnd.hydrostatix.sof-data": {
  5138. source: "iana",
  5139. extensions: [
  5140. "sfd-hdstx"
  5141. ]
  5142. },
  5143. "application/vnd.hyper+json": {
  5144. source: "iana",
  5145. compressible: true
  5146. },
  5147. "application/vnd.hyper-item+json": {
  5148. source: "iana",
  5149. compressible: true
  5150. },
  5151. "application/vnd.hyperdrive+json": {
  5152. source: "iana",
  5153. compressible: true
  5154. },
  5155. "application/vnd.hzn-3d-crossword": {
  5156. source: "iana"
  5157. },
  5158. "application/vnd.ibm.afplinedata": {
  5159. source: "iana"
  5160. },
  5161. "application/vnd.ibm.electronic-media": {
  5162. source: "iana"
  5163. },
  5164. "application/vnd.ibm.minipay": {
  5165. source: "iana",
  5166. extensions: [
  5167. "mpy"
  5168. ]
  5169. },
  5170. "application/vnd.ibm.modcap": {
  5171. source: "iana",
  5172. extensions: [
  5173. "afp",
  5174. "listafp",
  5175. "list3820"
  5176. ]
  5177. },
  5178. "application/vnd.ibm.rights-management": {
  5179. source: "iana",
  5180. extensions: [
  5181. "irm"
  5182. ]
  5183. },
  5184. "application/vnd.ibm.secure-container": {
  5185. source: "iana",
  5186. extensions: [
  5187. "sc"
  5188. ]
  5189. },
  5190. "application/vnd.iccprofile": {
  5191. source: "iana",
  5192. extensions: [
  5193. "icc",
  5194. "icm"
  5195. ]
  5196. },
  5197. "application/vnd.ieee.1905": {
  5198. source: "iana"
  5199. },
  5200. "application/vnd.igloader": {
  5201. source: "iana",
  5202. extensions: [
  5203. "igl"
  5204. ]
  5205. },
  5206. "application/vnd.imagemeter.folder+zip": {
  5207. source: "iana",
  5208. compressible: false
  5209. },
  5210. "application/vnd.imagemeter.image+zip": {
  5211. source: "iana",
  5212. compressible: false
  5213. },
  5214. "application/vnd.immervision-ivp": {
  5215. source: "iana",
  5216. extensions: [
  5217. "ivp"
  5218. ]
  5219. },
  5220. "application/vnd.immervision-ivu": {
  5221. source: "iana",
  5222. extensions: [
  5223. "ivu"
  5224. ]
  5225. },
  5226. "application/vnd.ims.imsccv1p1": {
  5227. source: "iana"
  5228. },
  5229. "application/vnd.ims.imsccv1p2": {
  5230. source: "iana"
  5231. },
  5232. "application/vnd.ims.imsccv1p3": {
  5233. source: "iana"
  5234. },
  5235. "application/vnd.ims.lis.v2.result+json": {
  5236. source: "iana",
  5237. compressible: true
  5238. },
  5239. "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
  5240. source: "iana",
  5241. compressible: true
  5242. },
  5243. "application/vnd.ims.lti.v2.toolproxy+json": {
  5244. source: "iana",
  5245. compressible: true
  5246. },
  5247. "application/vnd.ims.lti.v2.toolproxy.id+json": {
  5248. source: "iana",
  5249. compressible: true
  5250. },
  5251. "application/vnd.ims.lti.v2.toolsettings+json": {
  5252. source: "iana",
  5253. compressible: true
  5254. },
  5255. "application/vnd.ims.lti.v2.toolsettings.simple+json": {
  5256. source: "iana",
  5257. compressible: true
  5258. },
  5259. "application/vnd.informedcontrol.rms+xml": {
  5260. source: "iana",
  5261. compressible: true
  5262. },
  5263. "application/vnd.informix-visionary": {
  5264. source: "iana"
  5265. },
  5266. "application/vnd.infotech.project": {
  5267. source: "iana"
  5268. },
  5269. "application/vnd.infotech.project+xml": {
  5270. source: "iana",
  5271. compressible: true
  5272. },
  5273. "application/vnd.innopath.wamp.notification": {
  5274. source: "iana"
  5275. },
  5276. "application/vnd.insors.igm": {
  5277. source: "iana",
  5278. extensions: [
  5279. "igm"
  5280. ]
  5281. },
  5282. "application/vnd.intercon.formnet": {
  5283. source: "iana",
  5284. extensions: [
  5285. "xpw",
  5286. "xpx"
  5287. ]
  5288. },
  5289. "application/vnd.intergeo": {
  5290. source: "iana",
  5291. extensions: [
  5292. "i2g"
  5293. ]
  5294. },
  5295. "application/vnd.intertrust.digibox": {
  5296. source: "iana"
  5297. },
  5298. "application/vnd.intertrust.nncp": {
  5299. source: "iana"
  5300. },
  5301. "application/vnd.intu.qbo": {
  5302. source: "iana",
  5303. extensions: [
  5304. "qbo"
  5305. ]
  5306. },
  5307. "application/vnd.intu.qfx": {
  5308. source: "iana",
  5309. extensions: [
  5310. "qfx"
  5311. ]
  5312. },
  5313. "application/vnd.iptc.g2.catalogitem+xml": {
  5314. source: "iana",
  5315. compressible: true
  5316. },
  5317. "application/vnd.iptc.g2.conceptitem+xml": {
  5318. source: "iana",
  5319. compressible: true
  5320. },
  5321. "application/vnd.iptc.g2.knowledgeitem+xml": {
  5322. source: "iana",
  5323. compressible: true
  5324. },
  5325. "application/vnd.iptc.g2.newsitem+xml": {
  5326. source: "iana",
  5327. compressible: true
  5328. },
  5329. "application/vnd.iptc.g2.newsmessage+xml": {
  5330. source: "iana",
  5331. compressible: true
  5332. },
  5333. "application/vnd.iptc.g2.packageitem+xml": {
  5334. source: "iana",
  5335. compressible: true
  5336. },
  5337. "application/vnd.iptc.g2.planningitem+xml": {
  5338. source: "iana",
  5339. compressible: true
  5340. },
  5341. "application/vnd.ipunplugged.rcprofile": {
  5342. source: "iana",
  5343. extensions: [
  5344. "rcprofile"
  5345. ]
  5346. },
  5347. "application/vnd.irepository.package+xml": {
  5348. source: "iana",
  5349. compressible: true,
  5350. extensions: [
  5351. "irp"
  5352. ]
  5353. },
  5354. "application/vnd.is-xpr": {
  5355. source: "iana",
  5356. extensions: [
  5357. "xpr"
  5358. ]
  5359. },
  5360. "application/vnd.isac.fcs": {
  5361. source: "iana",
  5362. extensions: [
  5363. "fcs"
  5364. ]
  5365. },
  5366. "application/vnd.iso11783-10+zip": {
  5367. source: "iana",
  5368. compressible: false
  5369. },
  5370. "application/vnd.jam": {
  5371. source: "iana",
  5372. extensions: [
  5373. "jam"
  5374. ]
  5375. },
  5376. "application/vnd.japannet-directory-service": {
  5377. source: "iana"
  5378. },
  5379. "application/vnd.japannet-jpnstore-wakeup": {
  5380. source: "iana"
  5381. },
  5382. "application/vnd.japannet-payment-wakeup": {
  5383. source: "iana"
  5384. },
  5385. "application/vnd.japannet-registration": {
  5386. source: "iana"
  5387. },
  5388. "application/vnd.japannet-registration-wakeup": {
  5389. source: "iana"
  5390. },
  5391. "application/vnd.japannet-setstore-wakeup": {
  5392. source: "iana"
  5393. },
  5394. "application/vnd.japannet-verification": {
  5395. source: "iana"
  5396. },
  5397. "application/vnd.japannet-verification-wakeup": {
  5398. source: "iana"
  5399. },
  5400. "application/vnd.jcp.javame.midlet-rms": {
  5401. source: "iana",
  5402. extensions: [
  5403. "rms"
  5404. ]
  5405. },
  5406. "application/vnd.jisp": {
  5407. source: "iana",
  5408. extensions: [
  5409. "jisp"
  5410. ]
  5411. },
  5412. "application/vnd.joost.joda-archive": {
  5413. source: "iana",
  5414. extensions: [
  5415. "joda"
  5416. ]
  5417. },
  5418. "application/vnd.jsk.isdn-ngn": {
  5419. source: "iana"
  5420. },
  5421. "application/vnd.kahootz": {
  5422. source: "iana",
  5423. extensions: [
  5424. "ktz",
  5425. "ktr"
  5426. ]
  5427. },
  5428. "application/vnd.kde.karbon": {
  5429. source: "iana",
  5430. extensions: [
  5431. "karbon"
  5432. ]
  5433. },
  5434. "application/vnd.kde.kchart": {
  5435. source: "iana",
  5436. extensions: [
  5437. "chrt"
  5438. ]
  5439. },
  5440. "application/vnd.kde.kformula": {
  5441. source: "iana",
  5442. extensions: [
  5443. "kfo"
  5444. ]
  5445. },
  5446. "application/vnd.kde.kivio": {
  5447. source: "iana",
  5448. extensions: [
  5449. "flw"
  5450. ]
  5451. },
  5452. "application/vnd.kde.kontour": {
  5453. source: "iana",
  5454. extensions: [
  5455. "kon"
  5456. ]
  5457. },
  5458. "application/vnd.kde.kpresenter": {
  5459. source: "iana",
  5460. extensions: [
  5461. "kpr",
  5462. "kpt"
  5463. ]
  5464. },
  5465. "application/vnd.kde.kspread": {
  5466. source: "iana",
  5467. extensions: [
  5468. "ksp"
  5469. ]
  5470. },
  5471. "application/vnd.kde.kword": {
  5472. source: "iana",
  5473. extensions: [
  5474. "kwd",
  5475. "kwt"
  5476. ]
  5477. },
  5478. "application/vnd.kenameaapp": {
  5479. source: "iana",
  5480. extensions: [
  5481. "htke"
  5482. ]
  5483. },
  5484. "application/vnd.kidspiration": {
  5485. source: "iana",
  5486. extensions: [
  5487. "kia"
  5488. ]
  5489. },
  5490. "application/vnd.kinar": {
  5491. source: "iana",
  5492. extensions: [
  5493. "kne",
  5494. "knp"
  5495. ]
  5496. },
  5497. "application/vnd.koan": {
  5498. source: "iana",
  5499. extensions: [
  5500. "skp",
  5501. "skd",
  5502. "skt",
  5503. "skm"
  5504. ]
  5505. },
  5506. "application/vnd.kodak-descriptor": {
  5507. source: "iana",
  5508. extensions: [
  5509. "sse"
  5510. ]
  5511. },
  5512. "application/vnd.las": {
  5513. source: "iana"
  5514. },
  5515. "application/vnd.las.las+json": {
  5516. source: "iana",
  5517. compressible: true
  5518. },
  5519. "application/vnd.las.las+xml": {
  5520. source: "iana",
  5521. compressible: true,
  5522. extensions: [
  5523. "lasxml"
  5524. ]
  5525. },
  5526. "application/vnd.laszip": {
  5527. source: "iana"
  5528. },
  5529. "application/vnd.leap+json": {
  5530. source: "iana",
  5531. compressible: true
  5532. },
  5533. "application/vnd.liberty-request+xml": {
  5534. source: "iana",
  5535. compressible: true
  5536. },
  5537. "application/vnd.llamagraphics.life-balance.desktop": {
  5538. source: "iana",
  5539. extensions: [
  5540. "lbd"
  5541. ]
  5542. },
  5543. "application/vnd.llamagraphics.life-balance.exchange+xml": {
  5544. source: "iana",
  5545. compressible: true,
  5546. extensions: [
  5547. "lbe"
  5548. ]
  5549. },
  5550. "application/vnd.logipipe.circuit+zip": {
  5551. source: "iana",
  5552. compressible: false
  5553. },
  5554. "application/vnd.loom": {
  5555. source: "iana"
  5556. },
  5557. "application/vnd.lotus-1-2-3": {
  5558. source: "iana",
  5559. extensions: [
  5560. "123"
  5561. ]
  5562. },
  5563. "application/vnd.lotus-approach": {
  5564. source: "iana",
  5565. extensions: [
  5566. "apr"
  5567. ]
  5568. },
  5569. "application/vnd.lotus-freelance": {
  5570. source: "iana",
  5571. extensions: [
  5572. "pre"
  5573. ]
  5574. },
  5575. "application/vnd.lotus-notes": {
  5576. source: "iana",
  5577. extensions: [
  5578. "nsf"
  5579. ]
  5580. },
  5581. "application/vnd.lotus-organizer": {
  5582. source: "iana",
  5583. extensions: [
  5584. "org"
  5585. ]
  5586. },
  5587. "application/vnd.lotus-screencam": {
  5588. source: "iana",
  5589. extensions: [
  5590. "scm"
  5591. ]
  5592. },
  5593. "application/vnd.lotus-wordpro": {
  5594. source: "iana",
  5595. extensions: [
  5596. "lwp"
  5597. ]
  5598. },
  5599. "application/vnd.macports.portpkg": {
  5600. source: "iana",
  5601. extensions: [
  5602. "portpkg"
  5603. ]
  5604. },
  5605. "application/vnd.mapbox-vector-tile": {
  5606. source: "iana",
  5607. extensions: [
  5608. "mvt"
  5609. ]
  5610. },
  5611. "application/vnd.marlin.drm.actiontoken+xml": {
  5612. source: "iana",
  5613. compressible: true
  5614. },
  5615. "application/vnd.marlin.drm.conftoken+xml": {
  5616. source: "iana",
  5617. compressible: true
  5618. },
  5619. "application/vnd.marlin.drm.license+xml": {
  5620. source: "iana",
  5621. compressible: true
  5622. },
  5623. "application/vnd.marlin.drm.mdcf": {
  5624. source: "iana"
  5625. },
  5626. "application/vnd.mason+json": {
  5627. source: "iana",
  5628. compressible: true
  5629. },
  5630. "application/vnd.maxmind.maxmind-db": {
  5631. source: "iana"
  5632. },
  5633. "application/vnd.mcd": {
  5634. source: "iana",
  5635. extensions: [
  5636. "mcd"
  5637. ]
  5638. },
  5639. "application/vnd.medcalcdata": {
  5640. source: "iana",
  5641. extensions: [
  5642. "mc1"
  5643. ]
  5644. },
  5645. "application/vnd.mediastation.cdkey": {
  5646. source: "iana",
  5647. extensions: [
  5648. "cdkey"
  5649. ]
  5650. },
  5651. "application/vnd.meridian-slingshot": {
  5652. source: "iana"
  5653. },
  5654. "application/vnd.mfer": {
  5655. source: "iana",
  5656. extensions: [
  5657. "mwf"
  5658. ]
  5659. },
  5660. "application/vnd.mfmp": {
  5661. source: "iana",
  5662. extensions: [
  5663. "mfm"
  5664. ]
  5665. },
  5666. "application/vnd.micro+json": {
  5667. source: "iana",
  5668. compressible: true
  5669. },
  5670. "application/vnd.micrografx.flo": {
  5671. source: "iana",
  5672. extensions: [
  5673. "flo"
  5674. ]
  5675. },
  5676. "application/vnd.micrografx.igx": {
  5677. source: "iana",
  5678. extensions: [
  5679. "igx"
  5680. ]
  5681. },
  5682. "application/vnd.microsoft.portable-executable": {
  5683. source: "iana"
  5684. },
  5685. "application/vnd.microsoft.windows.thumbnail-cache": {
  5686. source: "iana"
  5687. },
  5688. "application/vnd.miele+json": {
  5689. source: "iana",
  5690. compressible: true
  5691. },
  5692. "application/vnd.mif": {
  5693. source: "iana",
  5694. extensions: [
  5695. "mif"
  5696. ]
  5697. },
  5698. "application/vnd.minisoft-hp3000-save": {
  5699. source: "iana"
  5700. },
  5701. "application/vnd.mitsubishi.misty-guard.trustweb": {
  5702. source: "iana"
  5703. },
  5704. "application/vnd.mobius.daf": {
  5705. source: "iana",
  5706. extensions: [
  5707. "daf"
  5708. ]
  5709. },
  5710. "application/vnd.mobius.dis": {
  5711. source: "iana",
  5712. extensions: [
  5713. "dis"
  5714. ]
  5715. },
  5716. "application/vnd.mobius.mbk": {
  5717. source: "iana",
  5718. extensions: [
  5719. "mbk"
  5720. ]
  5721. },
  5722. "application/vnd.mobius.mqy": {
  5723. source: "iana",
  5724. extensions: [
  5725. "mqy"
  5726. ]
  5727. },
  5728. "application/vnd.mobius.msl": {
  5729. source: "iana",
  5730. extensions: [
  5731. "msl"
  5732. ]
  5733. },
  5734. "application/vnd.mobius.plc": {
  5735. source: "iana",
  5736. extensions: [
  5737. "plc"
  5738. ]
  5739. },
  5740. "application/vnd.mobius.txf": {
  5741. source: "iana",
  5742. extensions: [
  5743. "txf"
  5744. ]
  5745. },
  5746. "application/vnd.mophun.application": {
  5747. source: "iana",
  5748. extensions: [
  5749. "mpn"
  5750. ]
  5751. },
  5752. "application/vnd.mophun.certificate": {
  5753. source: "iana",
  5754. extensions: [
  5755. "mpc"
  5756. ]
  5757. },
  5758. "application/vnd.motorola.flexsuite": {
  5759. source: "iana"
  5760. },
  5761. "application/vnd.motorola.flexsuite.adsi": {
  5762. source: "iana"
  5763. },
  5764. "application/vnd.motorola.flexsuite.fis": {
  5765. source: "iana"
  5766. },
  5767. "application/vnd.motorola.flexsuite.gotap": {
  5768. source: "iana"
  5769. },
  5770. "application/vnd.motorola.flexsuite.kmr": {
  5771. source: "iana"
  5772. },
  5773. "application/vnd.motorola.flexsuite.ttc": {
  5774. source: "iana"
  5775. },
  5776. "application/vnd.motorola.flexsuite.wem": {
  5777. source: "iana"
  5778. },
  5779. "application/vnd.motorola.iprm": {
  5780. source: "iana"
  5781. },
  5782. "application/vnd.mozilla.xul+xml": {
  5783. source: "iana",
  5784. compressible: true,
  5785. extensions: [
  5786. "xul"
  5787. ]
  5788. },
  5789. "application/vnd.ms-3mfdocument": {
  5790. source: "iana"
  5791. },
  5792. "application/vnd.ms-artgalry": {
  5793. source: "iana",
  5794. extensions: [
  5795. "cil"
  5796. ]
  5797. },
  5798. "application/vnd.ms-asf": {
  5799. source: "iana"
  5800. },
  5801. "application/vnd.ms-cab-compressed": {
  5802. source: "iana",
  5803. extensions: [
  5804. "cab"
  5805. ]
  5806. },
  5807. "application/vnd.ms-color.iccprofile": {
  5808. source: "apache"
  5809. },
  5810. "application/vnd.ms-excel": {
  5811. source: "iana",
  5812. compressible: false,
  5813. extensions: [
  5814. "xls",
  5815. "xlm",
  5816. "xla",
  5817. "xlc",
  5818. "xlt",
  5819. "xlw"
  5820. ]
  5821. },
  5822. "application/vnd.ms-excel.addin.macroenabled.12": {
  5823. source: "iana",
  5824. extensions: [
  5825. "xlam"
  5826. ]
  5827. },
  5828. "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
  5829. source: "iana",
  5830. extensions: [
  5831. "xlsb"
  5832. ]
  5833. },
  5834. "application/vnd.ms-excel.sheet.macroenabled.12": {
  5835. source: "iana",
  5836. extensions: [
  5837. "xlsm"
  5838. ]
  5839. },
  5840. "application/vnd.ms-excel.template.macroenabled.12": {
  5841. source: "iana",
  5842. extensions: [
  5843. "xltm"
  5844. ]
  5845. },
  5846. "application/vnd.ms-fontobject": {
  5847. source: "iana",
  5848. compressible: true,
  5849. extensions: [
  5850. "eot"
  5851. ]
  5852. },
  5853. "application/vnd.ms-htmlhelp": {
  5854. source: "iana",
  5855. extensions: [
  5856. "chm"
  5857. ]
  5858. },
  5859. "application/vnd.ms-ims": {
  5860. source: "iana",
  5861. extensions: [
  5862. "ims"
  5863. ]
  5864. },
  5865. "application/vnd.ms-lrm": {
  5866. source: "iana",
  5867. extensions: [
  5868. "lrm"
  5869. ]
  5870. },
  5871. "application/vnd.ms-office.activex+xml": {
  5872. source: "iana",
  5873. compressible: true
  5874. },
  5875. "application/vnd.ms-officetheme": {
  5876. source: "iana",
  5877. extensions: [
  5878. "thmx"
  5879. ]
  5880. },
  5881. "application/vnd.ms-opentype": {
  5882. source: "apache",
  5883. compressible: true
  5884. },
  5885. "application/vnd.ms-outlook": {
  5886. compressible: false,
  5887. extensions: [
  5888. "msg"
  5889. ]
  5890. },
  5891. "application/vnd.ms-package.obfuscated-opentype": {
  5892. source: "apache"
  5893. },
  5894. "application/vnd.ms-pki.seccat": {
  5895. source: "apache",
  5896. extensions: [
  5897. "cat"
  5898. ]
  5899. },
  5900. "application/vnd.ms-pki.stl": {
  5901. source: "apache",
  5902. extensions: [
  5903. "stl"
  5904. ]
  5905. },
  5906. "application/vnd.ms-playready.initiator+xml": {
  5907. source: "iana",
  5908. compressible: true
  5909. },
  5910. "application/vnd.ms-powerpoint": {
  5911. source: "iana",
  5912. compressible: false,
  5913. extensions: [
  5914. "ppt",
  5915. "pps",
  5916. "pot"
  5917. ]
  5918. },
  5919. "application/vnd.ms-powerpoint.addin.macroenabled.12": {
  5920. source: "iana",
  5921. extensions: [
  5922. "ppam"
  5923. ]
  5924. },
  5925. "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
  5926. source: "iana",
  5927. extensions: [
  5928. "pptm"
  5929. ]
  5930. },
  5931. "application/vnd.ms-powerpoint.slide.macroenabled.12": {
  5932. source: "iana",
  5933. extensions: [
  5934. "sldm"
  5935. ]
  5936. },
  5937. "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
  5938. source: "iana",
  5939. extensions: [
  5940. "ppsm"
  5941. ]
  5942. },
  5943. "application/vnd.ms-powerpoint.template.macroenabled.12": {
  5944. source: "iana",
  5945. extensions: [
  5946. "potm"
  5947. ]
  5948. },
  5949. "application/vnd.ms-printdevicecapabilities+xml": {
  5950. source: "iana",
  5951. compressible: true
  5952. },
  5953. "application/vnd.ms-printing.printticket+xml": {
  5954. source: "apache",
  5955. compressible: true
  5956. },
  5957. "application/vnd.ms-printschematicket+xml": {
  5958. source: "iana",
  5959. compressible: true
  5960. },
  5961. "application/vnd.ms-project": {
  5962. source: "iana",
  5963. extensions: [
  5964. "mpp",
  5965. "mpt"
  5966. ]
  5967. },
  5968. "application/vnd.ms-tnef": {
  5969. source: "iana"
  5970. },
  5971. "application/vnd.ms-windows.devicepairing": {
  5972. source: "iana"
  5973. },
  5974. "application/vnd.ms-windows.nwprinting.oob": {
  5975. source: "iana"
  5976. },
  5977. "application/vnd.ms-windows.printerpairing": {
  5978. source: "iana"
  5979. },
  5980. "application/vnd.ms-windows.wsd.oob": {
  5981. source: "iana"
  5982. },
  5983. "application/vnd.ms-wmdrm.lic-chlg-req": {
  5984. source: "iana"
  5985. },
  5986. "application/vnd.ms-wmdrm.lic-resp": {
  5987. source: "iana"
  5988. },
  5989. "application/vnd.ms-wmdrm.meter-chlg-req": {
  5990. source: "iana"
  5991. },
  5992. "application/vnd.ms-wmdrm.meter-resp": {
  5993. source: "iana"
  5994. },
  5995. "application/vnd.ms-word.document.macroenabled.12": {
  5996. source: "iana",
  5997. extensions: [
  5998. "docm"
  5999. ]
  6000. },
  6001. "application/vnd.ms-word.template.macroenabled.12": {
  6002. source: "iana",
  6003. extensions: [
  6004. "dotm"
  6005. ]
  6006. },
  6007. "application/vnd.ms-works": {
  6008. source: "iana",
  6009. extensions: [
  6010. "wps",
  6011. "wks",
  6012. "wcm",
  6013. "wdb"
  6014. ]
  6015. },
  6016. "application/vnd.ms-wpl": {
  6017. source: "iana",
  6018. extensions: [
  6019. "wpl"
  6020. ]
  6021. },
  6022. "application/vnd.ms-xpsdocument": {
  6023. source: "iana",
  6024. compressible: false,
  6025. extensions: [
  6026. "xps"
  6027. ]
  6028. },
  6029. "application/vnd.msa-disk-image": {
  6030. source: "iana"
  6031. },
  6032. "application/vnd.mseq": {
  6033. source: "iana",
  6034. extensions: [
  6035. "mseq"
  6036. ]
  6037. },
  6038. "application/vnd.msign": {
  6039. source: "iana"
  6040. },
  6041. "application/vnd.multiad.creator": {
  6042. source: "iana"
  6043. },
  6044. "application/vnd.multiad.creator.cif": {
  6045. source: "iana"
  6046. },
  6047. "application/vnd.music-niff": {
  6048. source: "iana"
  6049. },
  6050. "application/vnd.musician": {
  6051. source: "iana",
  6052. extensions: [
  6053. "mus"
  6054. ]
  6055. },
  6056. "application/vnd.muvee.style": {
  6057. source: "iana",
  6058. extensions: [
  6059. "msty"
  6060. ]
  6061. },
  6062. "application/vnd.mynfc": {
  6063. source: "iana",
  6064. extensions: [
  6065. "taglet"
  6066. ]
  6067. },
  6068. "application/vnd.ncd.control": {
  6069. source: "iana"
  6070. },
  6071. "application/vnd.ncd.reference": {
  6072. source: "iana"
  6073. },
  6074. "application/vnd.nearst.inv+json": {
  6075. source: "iana",
  6076. compressible: true
  6077. },
  6078. "application/vnd.nebumind.line": {
  6079. source: "iana"
  6080. },
  6081. "application/vnd.nervana": {
  6082. source: "iana"
  6083. },
  6084. "application/vnd.netfpx": {
  6085. source: "iana"
  6086. },
  6087. "application/vnd.neurolanguage.nlu": {
  6088. source: "iana",
  6089. extensions: [
  6090. "nlu"
  6091. ]
  6092. },
  6093. "application/vnd.nimn": {
  6094. source: "iana"
  6095. },
  6096. "application/vnd.nintendo.nitro.rom": {
  6097. source: "iana"
  6098. },
  6099. "application/vnd.nintendo.snes.rom": {
  6100. source: "iana"
  6101. },
  6102. "application/vnd.nitf": {
  6103. source: "iana",
  6104. extensions: [
  6105. "ntf",
  6106. "nitf"
  6107. ]
  6108. },
  6109. "application/vnd.noblenet-directory": {
  6110. source: "iana",
  6111. extensions: [
  6112. "nnd"
  6113. ]
  6114. },
  6115. "application/vnd.noblenet-sealer": {
  6116. source: "iana",
  6117. extensions: [
  6118. "nns"
  6119. ]
  6120. },
  6121. "application/vnd.noblenet-web": {
  6122. source: "iana",
  6123. extensions: [
  6124. "nnw"
  6125. ]
  6126. },
  6127. "application/vnd.nokia.catalogs": {
  6128. source: "iana"
  6129. },
  6130. "application/vnd.nokia.conml+wbxml": {
  6131. source: "iana"
  6132. },
  6133. "application/vnd.nokia.conml+xml": {
  6134. source: "iana",
  6135. compressible: true
  6136. },
  6137. "application/vnd.nokia.iptv.config+xml": {
  6138. source: "iana",
  6139. compressible: true
  6140. },
  6141. "application/vnd.nokia.isds-radio-presets": {
  6142. source: "iana"
  6143. },
  6144. "application/vnd.nokia.landmark+wbxml": {
  6145. source: "iana"
  6146. },
  6147. "application/vnd.nokia.landmark+xml": {
  6148. source: "iana",
  6149. compressible: true
  6150. },
  6151. "application/vnd.nokia.landmarkcollection+xml": {
  6152. source: "iana",
  6153. compressible: true
  6154. },
  6155. "application/vnd.nokia.n-gage.ac+xml": {
  6156. source: "iana",
  6157. compressible: true,
  6158. extensions: [
  6159. "ac"
  6160. ]
  6161. },
  6162. "application/vnd.nokia.n-gage.data": {
  6163. source: "iana",
  6164. extensions: [
  6165. "ngdat"
  6166. ]
  6167. },
  6168. "application/vnd.nokia.n-gage.symbian.install": {
  6169. source: "iana",
  6170. extensions: [
  6171. "n-gage"
  6172. ]
  6173. },
  6174. "application/vnd.nokia.ncd": {
  6175. source: "iana"
  6176. },
  6177. "application/vnd.nokia.pcd+wbxml": {
  6178. source: "iana"
  6179. },
  6180. "application/vnd.nokia.pcd+xml": {
  6181. source: "iana",
  6182. compressible: true
  6183. },
  6184. "application/vnd.nokia.radio-preset": {
  6185. source: "iana",
  6186. extensions: [
  6187. "rpst"
  6188. ]
  6189. },
  6190. "application/vnd.nokia.radio-presets": {
  6191. source: "iana",
  6192. extensions: [
  6193. "rpss"
  6194. ]
  6195. },
  6196. "application/vnd.novadigm.edm": {
  6197. source: "iana",
  6198. extensions: [
  6199. "edm"
  6200. ]
  6201. },
  6202. "application/vnd.novadigm.edx": {
  6203. source: "iana",
  6204. extensions: [
  6205. "edx"
  6206. ]
  6207. },
  6208. "application/vnd.novadigm.ext": {
  6209. source: "iana",
  6210. extensions: [
  6211. "ext"
  6212. ]
  6213. },
  6214. "application/vnd.ntt-local.content-share": {
  6215. source: "iana"
  6216. },
  6217. "application/vnd.ntt-local.file-transfer": {
  6218. source: "iana"
  6219. },
  6220. "application/vnd.ntt-local.ogw_remote-access": {
  6221. source: "iana"
  6222. },
  6223. "application/vnd.ntt-local.sip-ta_remote": {
  6224. source: "iana"
  6225. },
  6226. "application/vnd.ntt-local.sip-ta_tcp_stream": {
  6227. source: "iana"
  6228. },
  6229. "application/vnd.oasis.opendocument.chart": {
  6230. source: "iana",
  6231. extensions: [
  6232. "odc"
  6233. ]
  6234. },
  6235. "application/vnd.oasis.opendocument.chart-template": {
  6236. source: "iana",
  6237. extensions: [
  6238. "otc"
  6239. ]
  6240. },
  6241. "application/vnd.oasis.opendocument.database": {
  6242. source: "iana",
  6243. extensions: [
  6244. "odb"
  6245. ]
  6246. },
  6247. "application/vnd.oasis.opendocument.formula": {
  6248. source: "iana",
  6249. extensions: [
  6250. "odf"
  6251. ]
  6252. },
  6253. "application/vnd.oasis.opendocument.formula-template": {
  6254. source: "iana",
  6255. extensions: [
  6256. "odft"
  6257. ]
  6258. },
  6259. "application/vnd.oasis.opendocument.graphics": {
  6260. source: "iana",
  6261. compressible: false,
  6262. extensions: [
  6263. "odg"
  6264. ]
  6265. },
  6266. "application/vnd.oasis.opendocument.graphics-template": {
  6267. source: "iana",
  6268. extensions: [
  6269. "otg"
  6270. ]
  6271. },
  6272. "application/vnd.oasis.opendocument.image": {
  6273. source: "iana",
  6274. extensions: [
  6275. "odi"
  6276. ]
  6277. },
  6278. "application/vnd.oasis.opendocument.image-template": {
  6279. source: "iana",
  6280. extensions: [
  6281. "oti"
  6282. ]
  6283. },
  6284. "application/vnd.oasis.opendocument.presentation": {
  6285. source: "iana",
  6286. compressible: false,
  6287. extensions: [
  6288. "odp"
  6289. ]
  6290. },
  6291. "application/vnd.oasis.opendocument.presentation-template": {
  6292. source: "iana",
  6293. extensions: [
  6294. "otp"
  6295. ]
  6296. },
  6297. "application/vnd.oasis.opendocument.spreadsheet": {
  6298. source: "iana",
  6299. compressible: false,
  6300. extensions: [
  6301. "ods"
  6302. ]
  6303. },
  6304. "application/vnd.oasis.opendocument.spreadsheet-template": {
  6305. source: "iana",
  6306. extensions: [
  6307. "ots"
  6308. ]
  6309. },
  6310. "application/vnd.oasis.opendocument.text": {
  6311. source: "iana",
  6312. compressible: false,
  6313. extensions: [
  6314. "odt"
  6315. ]
  6316. },
  6317. "application/vnd.oasis.opendocument.text-master": {
  6318. source: "iana",
  6319. extensions: [
  6320. "odm"
  6321. ]
  6322. },
  6323. "application/vnd.oasis.opendocument.text-template": {
  6324. source: "iana",
  6325. extensions: [
  6326. "ott"
  6327. ]
  6328. },
  6329. "application/vnd.oasis.opendocument.text-web": {
  6330. source: "iana",
  6331. extensions: [
  6332. "oth"
  6333. ]
  6334. },
  6335. "application/vnd.obn": {
  6336. source: "iana"
  6337. },
  6338. "application/vnd.ocf+cbor": {
  6339. source: "iana"
  6340. },
  6341. "application/vnd.oci.image.manifest.v1+json": {
  6342. source: "iana",
  6343. compressible: true
  6344. },
  6345. "application/vnd.oftn.l10n+json": {
  6346. source: "iana",
  6347. compressible: true
  6348. },
  6349. "application/vnd.oipf.contentaccessdownload+xml": {
  6350. source: "iana",
  6351. compressible: true
  6352. },
  6353. "application/vnd.oipf.contentaccessstreaming+xml": {
  6354. source: "iana",
  6355. compressible: true
  6356. },
  6357. "application/vnd.oipf.cspg-hexbinary": {
  6358. source: "iana"
  6359. },
  6360. "application/vnd.oipf.dae.svg+xml": {
  6361. source: "iana",
  6362. compressible: true
  6363. },
  6364. "application/vnd.oipf.dae.xhtml+xml": {
  6365. source: "iana",
  6366. compressible: true
  6367. },
  6368. "application/vnd.oipf.mippvcontrolmessage+xml": {
  6369. source: "iana",
  6370. compressible: true
  6371. },
  6372. "application/vnd.oipf.pae.gem": {
  6373. source: "iana"
  6374. },
  6375. "application/vnd.oipf.spdiscovery+xml": {
  6376. source: "iana",
  6377. compressible: true
  6378. },
  6379. "application/vnd.oipf.spdlist+xml": {
  6380. source: "iana",
  6381. compressible: true
  6382. },
  6383. "application/vnd.oipf.ueprofile+xml": {
  6384. source: "iana",
  6385. compressible: true
  6386. },
  6387. "application/vnd.oipf.userprofile+xml": {
  6388. source: "iana",
  6389. compressible: true
  6390. },
  6391. "application/vnd.olpc-sugar": {
  6392. source: "iana",
  6393. extensions: [
  6394. "xo"
  6395. ]
  6396. },
  6397. "application/vnd.oma-scws-config": {
  6398. source: "iana"
  6399. },
  6400. "application/vnd.oma-scws-http-request": {
  6401. source: "iana"
  6402. },
  6403. "application/vnd.oma-scws-http-response": {
  6404. source: "iana"
  6405. },
  6406. "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
  6407. source: "iana",
  6408. compressible: true
  6409. },
  6410. "application/vnd.oma.bcast.drm-trigger+xml": {
  6411. source: "iana",
  6412. compressible: true
  6413. },
  6414. "application/vnd.oma.bcast.imd+xml": {
  6415. source: "iana",
  6416. compressible: true
  6417. },
  6418. "application/vnd.oma.bcast.ltkm": {
  6419. source: "iana"
  6420. },
  6421. "application/vnd.oma.bcast.notification+xml": {
  6422. source: "iana",
  6423. compressible: true
  6424. },
  6425. "application/vnd.oma.bcast.provisioningtrigger": {
  6426. source: "iana"
  6427. },
  6428. "application/vnd.oma.bcast.sgboot": {
  6429. source: "iana"
  6430. },
  6431. "application/vnd.oma.bcast.sgdd+xml": {
  6432. source: "iana",
  6433. compressible: true
  6434. },
  6435. "application/vnd.oma.bcast.sgdu": {
  6436. source: "iana"
  6437. },
  6438. "application/vnd.oma.bcast.simple-symbol-container": {
  6439. source: "iana"
  6440. },
  6441. "application/vnd.oma.bcast.smartcard-trigger+xml": {
  6442. source: "iana",
  6443. compressible: true
  6444. },
  6445. "application/vnd.oma.bcast.sprov+xml": {
  6446. source: "iana",
  6447. compressible: true
  6448. },
  6449. "application/vnd.oma.bcast.stkm": {
  6450. source: "iana"
  6451. },
  6452. "application/vnd.oma.cab-address-book+xml": {
  6453. source: "iana",
  6454. compressible: true
  6455. },
  6456. "application/vnd.oma.cab-feature-handler+xml": {
  6457. source: "iana",
  6458. compressible: true
  6459. },
  6460. "application/vnd.oma.cab-pcc+xml": {
  6461. source: "iana",
  6462. compressible: true
  6463. },
  6464. "application/vnd.oma.cab-subs-invite+xml": {
  6465. source: "iana",
  6466. compressible: true
  6467. },
  6468. "application/vnd.oma.cab-user-prefs+xml": {
  6469. source: "iana",
  6470. compressible: true
  6471. },
  6472. "application/vnd.oma.dcd": {
  6473. source: "iana"
  6474. },
  6475. "application/vnd.oma.dcdc": {
  6476. source: "iana"
  6477. },
  6478. "application/vnd.oma.dd2+xml": {
  6479. source: "iana",
  6480. compressible: true,
  6481. extensions: [
  6482. "dd2"
  6483. ]
  6484. },
  6485. "application/vnd.oma.drm.risd+xml": {
  6486. source: "iana",
  6487. compressible: true
  6488. },
  6489. "application/vnd.oma.group-usage-list+xml": {
  6490. source: "iana",
  6491. compressible: true
  6492. },
  6493. "application/vnd.oma.lwm2m+cbor": {
  6494. source: "iana"
  6495. },
  6496. "application/vnd.oma.lwm2m+json": {
  6497. source: "iana",
  6498. compressible: true
  6499. },
  6500. "application/vnd.oma.lwm2m+tlv": {
  6501. source: "iana"
  6502. },
  6503. "application/vnd.oma.pal+xml": {
  6504. source: "iana",
  6505. compressible: true
  6506. },
  6507. "application/vnd.oma.poc.detailed-progress-report+xml": {
  6508. source: "iana",
  6509. compressible: true
  6510. },
  6511. "application/vnd.oma.poc.final-report+xml": {
  6512. source: "iana",
  6513. compressible: true
  6514. },
  6515. "application/vnd.oma.poc.groups+xml": {
  6516. source: "iana",
  6517. compressible: true
  6518. },
  6519. "application/vnd.oma.poc.invocation-descriptor+xml": {
  6520. source: "iana",
  6521. compressible: true
  6522. },
  6523. "application/vnd.oma.poc.optimized-progress-report+xml": {
  6524. source: "iana",
  6525. compressible: true
  6526. },
  6527. "application/vnd.oma.push": {
  6528. source: "iana"
  6529. },
  6530. "application/vnd.oma.scidm.messages+xml": {
  6531. source: "iana",
  6532. compressible: true
  6533. },
  6534. "application/vnd.oma.xcap-directory+xml": {
  6535. source: "iana",
  6536. compressible: true
  6537. },
  6538. "application/vnd.omads-email+xml": {
  6539. source: "iana",
  6540. charset: "UTF-8",
  6541. compressible: true
  6542. },
  6543. "application/vnd.omads-file+xml": {
  6544. source: "iana",
  6545. charset: "UTF-8",
  6546. compressible: true
  6547. },
  6548. "application/vnd.omads-folder+xml": {
  6549. source: "iana",
  6550. charset: "UTF-8",
  6551. compressible: true
  6552. },
  6553. "application/vnd.omaloc-supl-init": {
  6554. source: "iana"
  6555. },
  6556. "application/vnd.onepager": {
  6557. source: "iana"
  6558. },
  6559. "application/vnd.onepagertamp": {
  6560. source: "iana"
  6561. },
  6562. "application/vnd.onepagertamx": {
  6563. source: "iana"
  6564. },
  6565. "application/vnd.onepagertat": {
  6566. source: "iana"
  6567. },
  6568. "application/vnd.onepagertatp": {
  6569. source: "iana"
  6570. },
  6571. "application/vnd.onepagertatx": {
  6572. source: "iana"
  6573. },
  6574. "application/vnd.openblox.game+xml": {
  6575. source: "iana",
  6576. compressible: true,
  6577. extensions: [
  6578. "obgx"
  6579. ]
  6580. },
  6581. "application/vnd.openblox.game-binary": {
  6582. source: "iana"
  6583. },
  6584. "application/vnd.openeye.oeb": {
  6585. source: "iana"
  6586. },
  6587. "application/vnd.openofficeorg.extension": {
  6588. source: "apache",
  6589. extensions: [
  6590. "oxt"
  6591. ]
  6592. },
  6593. "application/vnd.openstreetmap.data+xml": {
  6594. source: "iana",
  6595. compressible: true,
  6596. extensions: [
  6597. "osm"
  6598. ]
  6599. },
  6600. "application/vnd.opentimestamps.ots": {
  6601. source: "iana"
  6602. },
  6603. "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
  6604. source: "iana",
  6605. compressible: true
  6606. },
  6607. "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
  6608. source: "iana",
  6609. compressible: true
  6610. },
  6611. "application/vnd.openxmlformats-officedocument.drawing+xml": {
  6612. source: "iana",
  6613. compressible: true
  6614. },
  6615. "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
  6616. source: "iana",
  6617. compressible: true
  6618. },
  6619. "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
  6620. source: "iana",
  6621. compressible: true
  6622. },
  6623. "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
  6624. source: "iana",
  6625. compressible: true
  6626. },
  6627. "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
  6628. source: "iana",
  6629. compressible: true
  6630. },
  6631. "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
  6632. source: "iana",
  6633. compressible: true
  6634. },
  6635. "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
  6636. source: "iana",
  6637. compressible: true
  6638. },
  6639. "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
  6640. source: "iana",
  6641. compressible: true
  6642. },
  6643. "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
  6644. source: "iana",
  6645. compressible: true
  6646. },
  6647. "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
  6648. source: "iana",
  6649. compressible: true
  6650. },
  6651. "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
  6652. source: "iana",
  6653. compressible: true
  6654. },
  6655. "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
  6656. source: "iana",
  6657. compressible: true
  6658. },
  6659. "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
  6660. source: "iana",
  6661. compressible: true
  6662. },
  6663. "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
  6664. source: "iana",
  6665. compressible: false,
  6666. extensions: [
  6667. "pptx"
  6668. ]
  6669. },
  6670. "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
  6671. source: "iana",
  6672. compressible: true
  6673. },
  6674. "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
  6675. source: "iana",
  6676. compressible: true
  6677. },
  6678. "application/vnd.openxmlformats-officedocument.presentationml.slide": {
  6679. source: "iana",
  6680. extensions: [
  6681. "sldx"
  6682. ]
  6683. },
  6684. "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
  6685. source: "iana",
  6686. compressible: true
  6687. },
  6688. "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
  6689. source: "iana",
  6690. compressible: true
  6691. },
  6692. "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
  6693. source: "iana",
  6694. compressible: true
  6695. },
  6696. "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
  6697. source: "iana",
  6698. extensions: [
  6699. "ppsx"
  6700. ]
  6701. },
  6702. "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
  6703. source: "iana",
  6704. compressible: true
  6705. },
  6706. "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
  6707. source: "iana",
  6708. compressible: true
  6709. },
  6710. "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
  6711. source: "iana",
  6712. compressible: true
  6713. },
  6714. "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
  6715. source: "iana",
  6716. compressible: true
  6717. },
  6718. "application/vnd.openxmlformats-officedocument.presentationml.template": {
  6719. source: "iana",
  6720. extensions: [
  6721. "potx"
  6722. ]
  6723. },
  6724. "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
  6725. source: "iana",
  6726. compressible: true
  6727. },
  6728. "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
  6729. source: "iana",
  6730. compressible: true
  6731. },
  6732. "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
  6733. source: "iana",
  6734. compressible: true
  6735. },
  6736. "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
  6737. source: "iana",
  6738. compressible: true
  6739. },
  6740. "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
  6741. source: "iana",
  6742. compressible: true
  6743. },
  6744. "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
  6745. source: "iana",
  6746. compressible: true
  6747. },
  6748. "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
  6749. source: "iana",
  6750. compressible: true
  6751. },
  6752. "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
  6753. source: "iana",
  6754. compressible: true
  6755. },
  6756. "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
  6757. source: "iana",
  6758. compressible: true
  6759. },
  6760. "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
  6761. source: "iana",
  6762. compressible: true
  6763. },
  6764. "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
  6765. source: "iana",
  6766. compressible: true
  6767. },
  6768. "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
  6769. source: "iana",
  6770. compressible: true
  6771. },
  6772. "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
  6773. source: "iana",
  6774. compressible: true
  6775. },
  6776. "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
  6777. source: "iana",
  6778. compressible: true
  6779. },
  6780. "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
  6781. source: "iana",
  6782. compressible: true
  6783. },
  6784. "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
  6785. source: "iana",
  6786. compressible: false,
  6787. extensions: [
  6788. "xlsx"
  6789. ]
  6790. },
  6791. "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
  6792. source: "iana",
  6793. compressible: true
  6794. },
  6795. "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
  6796. source: "iana",
  6797. compressible: true
  6798. },
  6799. "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
  6800. source: "iana",
  6801. compressible: true
  6802. },
  6803. "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
  6804. source: "iana",
  6805. compressible: true
  6806. },
  6807. "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
  6808. source: "iana",
  6809. compressible: true
  6810. },
  6811. "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
  6812. source: "iana",
  6813. extensions: [
  6814. "xltx"
  6815. ]
  6816. },
  6817. "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
  6818. source: "iana",
  6819. compressible: true
  6820. },
  6821. "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
  6822. source: "iana",
  6823. compressible: true
  6824. },
  6825. "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
  6826. source: "iana",
  6827. compressible: true
  6828. },
  6829. "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
  6830. source: "iana",
  6831. compressible: true
  6832. },
  6833. "application/vnd.openxmlformats-officedocument.theme+xml": {
  6834. source: "iana",
  6835. compressible: true
  6836. },
  6837. "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
  6838. source: "iana",
  6839. compressible: true
  6840. },
  6841. "application/vnd.openxmlformats-officedocument.vmldrawing": {
  6842. source: "iana"
  6843. },
  6844. "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
  6845. source: "iana",
  6846. compressible: true
  6847. },
  6848. "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
  6849. source: "iana",
  6850. compressible: false,
  6851. extensions: [
  6852. "docx"
  6853. ]
  6854. },
  6855. "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
  6856. source: "iana",
  6857. compressible: true
  6858. },
  6859. "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
  6860. source: "iana",
  6861. compressible: true
  6862. },
  6863. "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
  6864. source: "iana",
  6865. compressible: true
  6866. },
  6867. "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
  6868. source: "iana",
  6869. compressible: true
  6870. },
  6871. "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
  6872. source: "iana",
  6873. compressible: true
  6874. },
  6875. "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
  6876. source: "iana",
  6877. compressible: true
  6878. },
  6879. "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
  6880. source: "iana",
  6881. compressible: true
  6882. },
  6883. "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
  6884. source: "iana",
  6885. compressible: true
  6886. },
  6887. "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
  6888. source: "iana",
  6889. compressible: true
  6890. },
  6891. "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
  6892. source: "iana",
  6893. extensions: [
  6894. "dotx"
  6895. ]
  6896. },
  6897. "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
  6898. source: "iana",
  6899. compressible: true
  6900. },
  6901. "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
  6902. source: "iana",
  6903. compressible: true
  6904. },
  6905. "application/vnd.openxmlformats-package.core-properties+xml": {
  6906. source: "iana",
  6907. compressible: true
  6908. },
  6909. "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
  6910. source: "iana",
  6911. compressible: true
  6912. },
  6913. "application/vnd.openxmlformats-package.relationships+xml": {
  6914. source: "iana",
  6915. compressible: true
  6916. },
  6917. "application/vnd.oracle.resource+json": {
  6918. source: "iana",
  6919. compressible: true
  6920. },
  6921. "application/vnd.orange.indata": {
  6922. source: "iana"
  6923. },
  6924. "application/vnd.osa.netdeploy": {
  6925. source: "iana"
  6926. },
  6927. "application/vnd.osgeo.mapguide.package": {
  6928. source: "iana",
  6929. extensions: [
  6930. "mgp"
  6931. ]
  6932. },
  6933. "application/vnd.osgi.bundle": {
  6934. source: "iana"
  6935. },
  6936. "application/vnd.osgi.dp": {
  6937. source: "iana",
  6938. extensions: [
  6939. "dp"
  6940. ]
  6941. },
  6942. "application/vnd.osgi.subsystem": {
  6943. source: "iana",
  6944. extensions: [
  6945. "esa"
  6946. ]
  6947. },
  6948. "application/vnd.otps.ct-kip+xml": {
  6949. source: "iana",
  6950. compressible: true
  6951. },
  6952. "application/vnd.oxli.countgraph": {
  6953. source: "iana"
  6954. },
  6955. "application/vnd.pagerduty+json": {
  6956. source: "iana",
  6957. compressible: true
  6958. },
  6959. "application/vnd.palm": {
  6960. source: "iana",
  6961. extensions: [
  6962. "pdb",
  6963. "pqa",
  6964. "oprc"
  6965. ]
  6966. },
  6967. "application/vnd.panoply": {
  6968. source: "iana"
  6969. },
  6970. "application/vnd.paos.xml": {
  6971. source: "iana"
  6972. },
  6973. "application/vnd.patentdive": {
  6974. source: "iana"
  6975. },
  6976. "application/vnd.patientecommsdoc": {
  6977. source: "iana"
  6978. },
  6979. "application/vnd.pawaafile": {
  6980. source: "iana",
  6981. extensions: [
  6982. "paw"
  6983. ]
  6984. },
  6985. "application/vnd.pcos": {
  6986. source: "iana"
  6987. },
  6988. "application/vnd.pg.format": {
  6989. source: "iana",
  6990. extensions: [
  6991. "str"
  6992. ]
  6993. },
  6994. "application/vnd.pg.osasli": {
  6995. source: "iana",
  6996. extensions: [
  6997. "ei6"
  6998. ]
  6999. },
  7000. "application/vnd.piaccess.application-licence": {
  7001. source: "iana"
  7002. },
  7003. "application/vnd.picsel": {
  7004. source: "iana",
  7005. extensions: [
  7006. "efif"
  7007. ]
  7008. },
  7009. "application/vnd.pmi.widget": {
  7010. source: "iana",
  7011. extensions: [
  7012. "wg"
  7013. ]
  7014. },
  7015. "application/vnd.poc.group-advertisement+xml": {
  7016. source: "iana",
  7017. compressible: true
  7018. },
  7019. "application/vnd.pocketlearn": {
  7020. source: "iana",
  7021. extensions: [
  7022. "plf"
  7023. ]
  7024. },
  7025. "application/vnd.powerbuilder6": {
  7026. source: "iana",
  7027. extensions: [
  7028. "pbd"
  7029. ]
  7030. },
  7031. "application/vnd.powerbuilder6-s": {
  7032. source: "iana"
  7033. },
  7034. "application/vnd.powerbuilder7": {
  7035. source: "iana"
  7036. },
  7037. "application/vnd.powerbuilder7-s": {
  7038. source: "iana"
  7039. },
  7040. "application/vnd.powerbuilder75": {
  7041. source: "iana"
  7042. },
  7043. "application/vnd.powerbuilder75-s": {
  7044. source: "iana"
  7045. },
  7046. "application/vnd.preminet": {
  7047. source: "iana"
  7048. },
  7049. "application/vnd.previewsystems.box": {
  7050. source: "iana",
  7051. extensions: [
  7052. "box"
  7053. ]
  7054. },
  7055. "application/vnd.proteus.magazine": {
  7056. source: "iana",
  7057. extensions: [
  7058. "mgz"
  7059. ]
  7060. },
  7061. "application/vnd.psfs": {
  7062. source: "iana"
  7063. },
  7064. "application/vnd.publishare-delta-tree": {
  7065. source: "iana",
  7066. extensions: [
  7067. "qps"
  7068. ]
  7069. },
  7070. "application/vnd.pvi.ptid1": {
  7071. source: "iana",
  7072. extensions: [
  7073. "ptid"
  7074. ]
  7075. },
  7076. "application/vnd.pwg-multiplexed": {
  7077. source: "iana"
  7078. },
  7079. "application/vnd.pwg-xhtml-print+xml": {
  7080. source: "iana",
  7081. compressible: true
  7082. },
  7083. "application/vnd.qualcomm.brew-app-res": {
  7084. source: "iana"
  7085. },
  7086. "application/vnd.quarantainenet": {
  7087. source: "iana"
  7088. },
  7089. "application/vnd.quark.quarkxpress": {
  7090. source: "iana",
  7091. extensions: [
  7092. "qxd",
  7093. "qxt",
  7094. "qwd",
  7095. "qwt",
  7096. "qxl",
  7097. "qxb"
  7098. ]
  7099. },
  7100. "application/vnd.quobject-quoxdocument": {
  7101. source: "iana"
  7102. },
  7103. "application/vnd.radisys.moml+xml": {
  7104. source: "iana",
  7105. compressible: true
  7106. },
  7107. "application/vnd.radisys.msml+xml": {
  7108. source: "iana",
  7109. compressible: true
  7110. },
  7111. "application/vnd.radisys.msml-audit+xml": {
  7112. source: "iana",
  7113. compressible: true
  7114. },
  7115. "application/vnd.radisys.msml-audit-conf+xml": {
  7116. source: "iana",
  7117. compressible: true
  7118. },
  7119. "application/vnd.radisys.msml-audit-conn+xml": {
  7120. source: "iana",
  7121. compressible: true
  7122. },
  7123. "application/vnd.radisys.msml-audit-dialog+xml": {
  7124. source: "iana",
  7125. compressible: true
  7126. },
  7127. "application/vnd.radisys.msml-audit-stream+xml": {
  7128. source: "iana",
  7129. compressible: true
  7130. },
  7131. "application/vnd.radisys.msml-conf+xml": {
  7132. source: "iana",
  7133. compressible: true
  7134. },
  7135. "application/vnd.radisys.msml-dialog+xml": {
  7136. source: "iana",
  7137. compressible: true
  7138. },
  7139. "application/vnd.radisys.msml-dialog-base+xml": {
  7140. source: "iana",
  7141. compressible: true
  7142. },
  7143. "application/vnd.radisys.msml-dialog-fax-detect+xml": {
  7144. source: "iana",
  7145. compressible: true
  7146. },
  7147. "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
  7148. source: "iana",
  7149. compressible: true
  7150. },
  7151. "application/vnd.radisys.msml-dialog-group+xml": {
  7152. source: "iana",
  7153. compressible: true
  7154. },
  7155. "application/vnd.radisys.msml-dialog-speech+xml": {
  7156. source: "iana",
  7157. compressible: true
  7158. },
  7159. "application/vnd.radisys.msml-dialog-transform+xml": {
  7160. source: "iana",
  7161. compressible: true
  7162. },
  7163. "application/vnd.rainstor.data": {
  7164. source: "iana"
  7165. },
  7166. "application/vnd.rapid": {
  7167. source: "iana"
  7168. },
  7169. "application/vnd.rar": {
  7170. source: "iana",
  7171. extensions: [
  7172. "rar"
  7173. ]
  7174. },
  7175. "application/vnd.realvnc.bed": {
  7176. source: "iana",
  7177. extensions: [
  7178. "bed"
  7179. ]
  7180. },
  7181. "application/vnd.recordare.musicxml": {
  7182. source: "iana",
  7183. extensions: [
  7184. "mxl"
  7185. ]
  7186. },
  7187. "application/vnd.recordare.musicxml+xml": {
  7188. source: "iana",
  7189. compressible: true,
  7190. extensions: [
  7191. "musicxml"
  7192. ]
  7193. },
  7194. "application/vnd.renlearn.rlprint": {
  7195. source: "iana"
  7196. },
  7197. "application/vnd.resilient.logic": {
  7198. source: "iana"
  7199. },
  7200. "application/vnd.restful+json": {
  7201. source: "iana",
  7202. compressible: true
  7203. },
  7204. "application/vnd.rig.cryptonote": {
  7205. source: "iana",
  7206. extensions: [
  7207. "cryptonote"
  7208. ]
  7209. },
  7210. "application/vnd.rim.cod": {
  7211. source: "apache",
  7212. extensions: [
  7213. "cod"
  7214. ]
  7215. },
  7216. "application/vnd.rn-realmedia": {
  7217. source: "apache",
  7218. extensions: [
  7219. "rm"
  7220. ]
  7221. },
  7222. "application/vnd.rn-realmedia-vbr": {
  7223. source: "apache",
  7224. extensions: [
  7225. "rmvb"
  7226. ]
  7227. },
  7228. "application/vnd.route66.link66+xml": {
  7229. source: "iana",
  7230. compressible: true,
  7231. extensions: [
  7232. "link66"
  7233. ]
  7234. },
  7235. "application/vnd.rs-274x": {
  7236. source: "iana"
  7237. },
  7238. "application/vnd.ruckus.download": {
  7239. source: "iana"
  7240. },
  7241. "application/vnd.s3sms": {
  7242. source: "iana"
  7243. },
  7244. "application/vnd.sailingtracker.track": {
  7245. source: "iana",
  7246. extensions: [
  7247. "st"
  7248. ]
  7249. },
  7250. "application/vnd.sar": {
  7251. source: "iana"
  7252. },
  7253. "application/vnd.sbm.cid": {
  7254. source: "iana"
  7255. },
  7256. "application/vnd.sbm.mid2": {
  7257. source: "iana"
  7258. },
  7259. "application/vnd.scribus": {
  7260. source: "iana"
  7261. },
  7262. "application/vnd.sealed.3df": {
  7263. source: "iana"
  7264. },
  7265. "application/vnd.sealed.csf": {
  7266. source: "iana"
  7267. },
  7268. "application/vnd.sealed.doc": {
  7269. source: "iana"
  7270. },
  7271. "application/vnd.sealed.eml": {
  7272. source: "iana"
  7273. },
  7274. "application/vnd.sealed.mht": {
  7275. source: "iana"
  7276. },
  7277. "application/vnd.sealed.net": {
  7278. source: "iana"
  7279. },
  7280. "application/vnd.sealed.ppt": {
  7281. source: "iana"
  7282. },
  7283. "application/vnd.sealed.tiff": {
  7284. source: "iana"
  7285. },
  7286. "application/vnd.sealed.xls": {
  7287. source: "iana"
  7288. },
  7289. "application/vnd.sealedmedia.softseal.html": {
  7290. source: "iana"
  7291. },
  7292. "application/vnd.sealedmedia.softseal.pdf": {
  7293. source: "iana"
  7294. },
  7295. "application/vnd.seemail": {
  7296. source: "iana",
  7297. extensions: [
  7298. "see"
  7299. ]
  7300. },
  7301. "application/vnd.seis+json": {
  7302. source: "iana",
  7303. compressible: true
  7304. },
  7305. "application/vnd.sema": {
  7306. source: "iana",
  7307. extensions: [
  7308. "sema"
  7309. ]
  7310. },
  7311. "application/vnd.semd": {
  7312. source: "iana",
  7313. extensions: [
  7314. "semd"
  7315. ]
  7316. },
  7317. "application/vnd.semf": {
  7318. source: "iana",
  7319. extensions: [
  7320. "semf"
  7321. ]
  7322. },
  7323. "application/vnd.shade-save-file": {
  7324. source: "iana"
  7325. },
  7326. "application/vnd.shana.informed.formdata": {
  7327. source: "iana",
  7328. extensions: [
  7329. "ifm"
  7330. ]
  7331. },
  7332. "application/vnd.shana.informed.formtemplate": {
  7333. source: "iana",
  7334. extensions: [
  7335. "itp"
  7336. ]
  7337. },
  7338. "application/vnd.shana.informed.interchange": {
  7339. source: "iana",
  7340. extensions: [
  7341. "iif"
  7342. ]
  7343. },
  7344. "application/vnd.shana.informed.package": {
  7345. source: "iana",
  7346. extensions: [
  7347. "ipk"
  7348. ]
  7349. },
  7350. "application/vnd.shootproof+json": {
  7351. source: "iana",
  7352. compressible: true
  7353. },
  7354. "application/vnd.shopkick+json": {
  7355. source: "iana",
  7356. compressible: true
  7357. },
  7358. "application/vnd.shp": {
  7359. source: "iana"
  7360. },
  7361. "application/vnd.shx": {
  7362. source: "iana"
  7363. },
  7364. "application/vnd.sigrok.session": {
  7365. source: "iana"
  7366. },
  7367. "application/vnd.simtech-mindmapper": {
  7368. source: "iana",
  7369. extensions: [
  7370. "twd",
  7371. "twds"
  7372. ]
  7373. },
  7374. "application/vnd.siren+json": {
  7375. source: "iana",
  7376. compressible: true
  7377. },
  7378. "application/vnd.smaf": {
  7379. source: "iana",
  7380. extensions: [
  7381. "mmf"
  7382. ]
  7383. },
  7384. "application/vnd.smart.notebook": {
  7385. source: "iana"
  7386. },
  7387. "application/vnd.smart.teacher": {
  7388. source: "iana",
  7389. extensions: [
  7390. "teacher"
  7391. ]
  7392. },
  7393. "application/vnd.snesdev-page-table": {
  7394. source: "iana"
  7395. },
  7396. "application/vnd.software602.filler.form+xml": {
  7397. source: "iana",
  7398. compressible: true,
  7399. extensions: [
  7400. "fo"
  7401. ]
  7402. },
  7403. "application/vnd.software602.filler.form-xml-zip": {
  7404. source: "iana"
  7405. },
  7406. "application/vnd.solent.sdkm+xml": {
  7407. source: "iana",
  7408. compressible: true,
  7409. extensions: [
  7410. "sdkm",
  7411. "sdkd"
  7412. ]
  7413. },
  7414. "application/vnd.spotfire.dxp": {
  7415. source: "iana",
  7416. extensions: [
  7417. "dxp"
  7418. ]
  7419. },
  7420. "application/vnd.spotfire.sfs": {
  7421. source: "iana",
  7422. extensions: [
  7423. "sfs"
  7424. ]
  7425. },
  7426. "application/vnd.sqlite3": {
  7427. source: "iana"
  7428. },
  7429. "application/vnd.sss-cod": {
  7430. source: "iana"
  7431. },
  7432. "application/vnd.sss-dtf": {
  7433. source: "iana"
  7434. },
  7435. "application/vnd.sss-ntf": {
  7436. source: "iana"
  7437. },
  7438. "application/vnd.stardivision.calc": {
  7439. source: "apache",
  7440. extensions: [
  7441. "sdc"
  7442. ]
  7443. },
  7444. "application/vnd.stardivision.draw": {
  7445. source: "apache",
  7446. extensions: [
  7447. "sda"
  7448. ]
  7449. },
  7450. "application/vnd.stardivision.impress": {
  7451. source: "apache",
  7452. extensions: [
  7453. "sdd"
  7454. ]
  7455. },
  7456. "application/vnd.stardivision.math": {
  7457. source: "apache",
  7458. extensions: [
  7459. "smf"
  7460. ]
  7461. },
  7462. "application/vnd.stardivision.writer": {
  7463. source: "apache",
  7464. extensions: [
  7465. "sdw",
  7466. "vor"
  7467. ]
  7468. },
  7469. "application/vnd.stardivision.writer-global": {
  7470. source: "apache",
  7471. extensions: [
  7472. "sgl"
  7473. ]
  7474. },
  7475. "application/vnd.stepmania.package": {
  7476. source: "iana",
  7477. extensions: [
  7478. "smzip"
  7479. ]
  7480. },
  7481. "application/vnd.stepmania.stepchart": {
  7482. source: "iana",
  7483. extensions: [
  7484. "sm"
  7485. ]
  7486. },
  7487. "application/vnd.street-stream": {
  7488. source: "iana"
  7489. },
  7490. "application/vnd.sun.wadl+xml": {
  7491. source: "iana",
  7492. compressible: true,
  7493. extensions: [
  7494. "wadl"
  7495. ]
  7496. },
  7497. "application/vnd.sun.xml.calc": {
  7498. source: "apache",
  7499. extensions: [
  7500. "sxc"
  7501. ]
  7502. },
  7503. "application/vnd.sun.xml.calc.template": {
  7504. source: "apache",
  7505. extensions: [
  7506. "stc"
  7507. ]
  7508. },
  7509. "application/vnd.sun.xml.draw": {
  7510. source: "apache",
  7511. extensions: [
  7512. "sxd"
  7513. ]
  7514. },
  7515. "application/vnd.sun.xml.draw.template": {
  7516. source: "apache",
  7517. extensions: [
  7518. "std"
  7519. ]
  7520. },
  7521. "application/vnd.sun.xml.impress": {
  7522. source: "apache",
  7523. extensions: [
  7524. "sxi"
  7525. ]
  7526. },
  7527. "application/vnd.sun.xml.impress.template": {
  7528. source: "apache",
  7529. extensions: [
  7530. "sti"
  7531. ]
  7532. },
  7533. "application/vnd.sun.xml.math": {
  7534. source: "apache",
  7535. extensions: [
  7536. "sxm"
  7537. ]
  7538. },
  7539. "application/vnd.sun.xml.writer": {
  7540. source: "apache",
  7541. extensions: [
  7542. "sxw"
  7543. ]
  7544. },
  7545. "application/vnd.sun.xml.writer.global": {
  7546. source: "apache",
  7547. extensions: [
  7548. "sxg"
  7549. ]
  7550. },
  7551. "application/vnd.sun.xml.writer.template": {
  7552. source: "apache",
  7553. extensions: [
  7554. "stw"
  7555. ]
  7556. },
  7557. "application/vnd.sus-calendar": {
  7558. source: "iana",
  7559. extensions: [
  7560. "sus",
  7561. "susp"
  7562. ]
  7563. },
  7564. "application/vnd.svd": {
  7565. source: "iana",
  7566. extensions: [
  7567. "svd"
  7568. ]
  7569. },
  7570. "application/vnd.swiftview-ics": {
  7571. source: "iana"
  7572. },
  7573. "application/vnd.sycle+xml": {
  7574. source: "iana",
  7575. compressible: true
  7576. },
  7577. "application/vnd.symbian.install": {
  7578. source: "apache",
  7579. extensions: [
  7580. "sis",
  7581. "sisx"
  7582. ]
  7583. },
  7584. "application/vnd.syncml+xml": {
  7585. source: "iana",
  7586. charset: "UTF-8",
  7587. compressible: true,
  7588. extensions: [
  7589. "xsm"
  7590. ]
  7591. },
  7592. "application/vnd.syncml.dm+wbxml": {
  7593. source: "iana",
  7594. charset: "UTF-8",
  7595. extensions: [
  7596. "bdm"
  7597. ]
  7598. },
  7599. "application/vnd.syncml.dm+xml": {
  7600. source: "iana",
  7601. charset: "UTF-8",
  7602. compressible: true,
  7603. extensions: [
  7604. "xdm"
  7605. ]
  7606. },
  7607. "application/vnd.syncml.dm.notification": {
  7608. source: "iana"
  7609. },
  7610. "application/vnd.syncml.dmddf+wbxml": {
  7611. source: "iana"
  7612. },
  7613. "application/vnd.syncml.dmddf+xml": {
  7614. source: "iana",
  7615. charset: "UTF-8",
  7616. compressible: true,
  7617. extensions: [
  7618. "ddf"
  7619. ]
  7620. },
  7621. "application/vnd.syncml.dmtnds+wbxml": {
  7622. source: "iana"
  7623. },
  7624. "application/vnd.syncml.dmtnds+xml": {
  7625. source: "iana",
  7626. charset: "UTF-8",
  7627. compressible: true
  7628. },
  7629. "application/vnd.syncml.ds.notification": {
  7630. source: "iana"
  7631. },
  7632. "application/vnd.tableschema+json": {
  7633. source: "iana",
  7634. compressible: true
  7635. },
  7636. "application/vnd.tao.intent-module-archive": {
  7637. source: "iana",
  7638. extensions: [
  7639. "tao"
  7640. ]
  7641. },
  7642. "application/vnd.tcpdump.pcap": {
  7643. source: "iana",
  7644. extensions: [
  7645. "pcap",
  7646. "cap",
  7647. "dmp"
  7648. ]
  7649. },
  7650. "application/vnd.think-cell.ppttc+json": {
  7651. source: "iana",
  7652. compressible: true
  7653. },
  7654. "application/vnd.tmd.mediaflex.api+xml": {
  7655. source: "iana",
  7656. compressible: true
  7657. },
  7658. "application/vnd.tml": {
  7659. source: "iana"
  7660. },
  7661. "application/vnd.tmobile-livetv": {
  7662. source: "iana",
  7663. extensions: [
  7664. "tmo"
  7665. ]
  7666. },
  7667. "application/vnd.tri.onesource": {
  7668. source: "iana"
  7669. },
  7670. "application/vnd.trid.tpt": {
  7671. source: "iana",
  7672. extensions: [
  7673. "tpt"
  7674. ]
  7675. },
  7676. "application/vnd.triscape.mxs": {
  7677. source: "iana",
  7678. extensions: [
  7679. "mxs"
  7680. ]
  7681. },
  7682. "application/vnd.trueapp": {
  7683. source: "iana",
  7684. extensions: [
  7685. "tra"
  7686. ]
  7687. },
  7688. "application/vnd.truedoc": {
  7689. source: "iana"
  7690. },
  7691. "application/vnd.ubisoft.webplayer": {
  7692. source: "iana"
  7693. },
  7694. "application/vnd.ufdl": {
  7695. source: "iana",
  7696. extensions: [
  7697. "ufd",
  7698. "ufdl"
  7699. ]
  7700. },
  7701. "application/vnd.uiq.theme": {
  7702. source: "iana",
  7703. extensions: [
  7704. "utz"
  7705. ]
  7706. },
  7707. "application/vnd.umajin": {
  7708. source: "iana",
  7709. extensions: [
  7710. "umj"
  7711. ]
  7712. },
  7713. "application/vnd.unity": {
  7714. source: "iana",
  7715. extensions: [
  7716. "unityweb"
  7717. ]
  7718. },
  7719. "application/vnd.uoml+xml": {
  7720. source: "iana",
  7721. compressible: true,
  7722. extensions: [
  7723. "uoml"
  7724. ]
  7725. },
  7726. "application/vnd.uplanet.alert": {
  7727. source: "iana"
  7728. },
  7729. "application/vnd.uplanet.alert-wbxml": {
  7730. source: "iana"
  7731. },
  7732. "application/vnd.uplanet.bearer-choice": {
  7733. source: "iana"
  7734. },
  7735. "application/vnd.uplanet.bearer-choice-wbxml": {
  7736. source: "iana"
  7737. },
  7738. "application/vnd.uplanet.cacheop": {
  7739. source: "iana"
  7740. },
  7741. "application/vnd.uplanet.cacheop-wbxml": {
  7742. source: "iana"
  7743. },
  7744. "application/vnd.uplanet.channel": {
  7745. source: "iana"
  7746. },
  7747. "application/vnd.uplanet.channel-wbxml": {
  7748. source: "iana"
  7749. },
  7750. "application/vnd.uplanet.list": {
  7751. source: "iana"
  7752. },
  7753. "application/vnd.uplanet.list-wbxml": {
  7754. source: "iana"
  7755. },
  7756. "application/vnd.uplanet.listcmd": {
  7757. source: "iana"
  7758. },
  7759. "application/vnd.uplanet.listcmd-wbxml": {
  7760. source: "iana"
  7761. },
  7762. "application/vnd.uplanet.signal": {
  7763. source: "iana"
  7764. },
  7765. "application/vnd.uri-map": {
  7766. source: "iana"
  7767. },
  7768. "application/vnd.valve.source.material": {
  7769. source: "iana"
  7770. },
  7771. "application/vnd.vcx": {
  7772. source: "iana",
  7773. extensions: [
  7774. "vcx"
  7775. ]
  7776. },
  7777. "application/vnd.vd-study": {
  7778. source: "iana"
  7779. },
  7780. "application/vnd.vectorworks": {
  7781. source: "iana"
  7782. },
  7783. "application/vnd.vel+json": {
  7784. source: "iana",
  7785. compressible: true
  7786. },
  7787. "application/vnd.verimatrix.vcas": {
  7788. source: "iana"
  7789. },
  7790. "application/vnd.veritone.aion+json": {
  7791. source: "iana",
  7792. compressible: true
  7793. },
  7794. "application/vnd.veryant.thin": {
  7795. source: "iana"
  7796. },
  7797. "application/vnd.ves.encrypted": {
  7798. source: "iana"
  7799. },
  7800. "application/vnd.vidsoft.vidconference": {
  7801. source: "iana"
  7802. },
  7803. "application/vnd.visio": {
  7804. source: "iana",
  7805. extensions: [
  7806. "vsd",
  7807. "vst",
  7808. "vss",
  7809. "vsw"
  7810. ]
  7811. },
  7812. "application/vnd.visionary": {
  7813. source: "iana",
  7814. extensions: [
  7815. "vis"
  7816. ]
  7817. },
  7818. "application/vnd.vividence.scriptfile": {
  7819. source: "iana"
  7820. },
  7821. "application/vnd.vsf": {
  7822. source: "iana",
  7823. extensions: [
  7824. "vsf"
  7825. ]
  7826. },
  7827. "application/vnd.wap.sic": {
  7828. source: "iana"
  7829. },
  7830. "application/vnd.wap.slc": {
  7831. source: "iana"
  7832. },
  7833. "application/vnd.wap.wbxml": {
  7834. source: "iana",
  7835. charset: "UTF-8",
  7836. extensions: [
  7837. "wbxml"
  7838. ]
  7839. },
  7840. "application/vnd.wap.wmlc": {
  7841. source: "iana",
  7842. extensions: [
  7843. "wmlc"
  7844. ]
  7845. },
  7846. "application/vnd.wap.wmlscriptc": {
  7847. source: "iana",
  7848. extensions: [
  7849. "wmlsc"
  7850. ]
  7851. },
  7852. "application/vnd.webturbo": {
  7853. source: "iana",
  7854. extensions: [
  7855. "wtb"
  7856. ]
  7857. },
  7858. "application/vnd.wfa.dpp": {
  7859. source: "iana"
  7860. },
  7861. "application/vnd.wfa.p2p": {
  7862. source: "iana"
  7863. },
  7864. "application/vnd.wfa.wsc": {
  7865. source: "iana"
  7866. },
  7867. "application/vnd.windows.devicepairing": {
  7868. source: "iana"
  7869. },
  7870. "application/vnd.wmc": {
  7871. source: "iana"
  7872. },
  7873. "application/vnd.wmf.bootstrap": {
  7874. source: "iana"
  7875. },
  7876. "application/vnd.wolfram.mathematica": {
  7877. source: "iana"
  7878. },
  7879. "application/vnd.wolfram.mathematica.package": {
  7880. source: "iana"
  7881. },
  7882. "application/vnd.wolfram.player": {
  7883. source: "iana",
  7884. extensions: [
  7885. "nbp"
  7886. ]
  7887. },
  7888. "application/vnd.wordperfect": {
  7889. source: "iana",
  7890. extensions: [
  7891. "wpd"
  7892. ]
  7893. },
  7894. "application/vnd.wqd": {
  7895. source: "iana",
  7896. extensions: [
  7897. "wqd"
  7898. ]
  7899. },
  7900. "application/vnd.wrq-hp3000-labelled": {
  7901. source: "iana"
  7902. },
  7903. "application/vnd.wt.stf": {
  7904. source: "iana",
  7905. extensions: [
  7906. "stf"
  7907. ]
  7908. },
  7909. "application/vnd.wv.csp+wbxml": {
  7910. source: "iana"
  7911. },
  7912. "application/vnd.wv.csp+xml": {
  7913. source: "iana",
  7914. compressible: true
  7915. },
  7916. "application/vnd.wv.ssp+xml": {
  7917. source: "iana",
  7918. compressible: true
  7919. },
  7920. "application/vnd.xacml+json": {
  7921. source: "iana",
  7922. compressible: true
  7923. },
  7924. "application/vnd.xara": {
  7925. source: "iana",
  7926. extensions: [
  7927. "xar"
  7928. ]
  7929. },
  7930. "application/vnd.xfdl": {
  7931. source: "iana",
  7932. extensions: [
  7933. "xfdl"
  7934. ]
  7935. },
  7936. "application/vnd.xfdl.webform": {
  7937. source: "iana"
  7938. },
  7939. "application/vnd.xmi+xml": {
  7940. source: "iana",
  7941. compressible: true
  7942. },
  7943. "application/vnd.xmpie.cpkg": {
  7944. source: "iana"
  7945. },
  7946. "application/vnd.xmpie.dpkg": {
  7947. source: "iana"
  7948. },
  7949. "application/vnd.xmpie.plan": {
  7950. source: "iana"
  7951. },
  7952. "application/vnd.xmpie.ppkg": {
  7953. source: "iana"
  7954. },
  7955. "application/vnd.xmpie.xlim": {
  7956. source: "iana"
  7957. },
  7958. "application/vnd.yamaha.hv-dic": {
  7959. source: "iana",
  7960. extensions: [
  7961. "hvd"
  7962. ]
  7963. },
  7964. "application/vnd.yamaha.hv-script": {
  7965. source: "iana",
  7966. extensions: [
  7967. "hvs"
  7968. ]
  7969. },
  7970. "application/vnd.yamaha.hv-voice": {
  7971. source: "iana",
  7972. extensions: [
  7973. "hvp"
  7974. ]
  7975. },
  7976. "application/vnd.yamaha.openscoreformat": {
  7977. source: "iana",
  7978. extensions: [
  7979. "osf"
  7980. ]
  7981. },
  7982. "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
  7983. source: "iana",
  7984. compressible: true,
  7985. extensions: [
  7986. "osfpvg"
  7987. ]
  7988. },
  7989. "application/vnd.yamaha.remote-setup": {
  7990. source: "iana"
  7991. },
  7992. "application/vnd.yamaha.smaf-audio": {
  7993. source: "iana",
  7994. extensions: [
  7995. "saf"
  7996. ]
  7997. },
  7998. "application/vnd.yamaha.smaf-phrase": {
  7999. source: "iana",
  8000. extensions: [
  8001. "spf"
  8002. ]
  8003. },
  8004. "application/vnd.yamaha.through-ngn": {
  8005. source: "iana"
  8006. },
  8007. "application/vnd.yamaha.tunnel-udpencap": {
  8008. source: "iana"
  8009. },
  8010. "application/vnd.yaoweme": {
  8011. source: "iana"
  8012. },
  8013. "application/vnd.yellowriver-custom-menu": {
  8014. source: "iana",
  8015. extensions: [
  8016. "cmp"
  8017. ]
  8018. },
  8019. "application/vnd.youtube.yt": {
  8020. source: "iana"
  8021. },
  8022. "application/vnd.zul": {
  8023. source: "iana",
  8024. extensions: [
  8025. "zir",
  8026. "zirz"
  8027. ]
  8028. },
  8029. "application/vnd.zzazz.deck+xml": {
  8030. source: "iana",
  8031. compressible: true,
  8032. extensions: [
  8033. "zaz"
  8034. ]
  8035. },
  8036. "application/voicexml+xml": {
  8037. source: "iana",
  8038. compressible: true,
  8039. extensions: [
  8040. "vxml"
  8041. ]
  8042. },
  8043. "application/voucher-cms+json": {
  8044. source: "iana",
  8045. compressible: true
  8046. },
  8047. "application/vq-rtcpxr": {
  8048. source: "iana"
  8049. },
  8050. "application/wasm": {
  8051. source: "iana",
  8052. compressible: true,
  8053. extensions: [
  8054. "wasm"
  8055. ]
  8056. },
  8057. "application/watcherinfo+xml": {
  8058. source: "iana",
  8059. compressible: true
  8060. },
  8061. "application/webpush-options+json": {
  8062. source: "iana",
  8063. compressible: true
  8064. },
  8065. "application/whoispp-query": {
  8066. source: "iana"
  8067. },
  8068. "application/whoispp-response": {
  8069. source: "iana"
  8070. },
  8071. "application/widget": {
  8072. source: "iana",
  8073. extensions: [
  8074. "wgt"
  8075. ]
  8076. },
  8077. "application/winhlp": {
  8078. source: "apache",
  8079. extensions: [
  8080. "hlp"
  8081. ]
  8082. },
  8083. "application/wita": {
  8084. source: "iana"
  8085. },
  8086. "application/wordperfect5.1": {
  8087. source: "iana"
  8088. },
  8089. "application/wsdl+xml": {
  8090. source: "iana",
  8091. compressible: true,
  8092. extensions: [
  8093. "wsdl"
  8094. ]
  8095. },
  8096. "application/wspolicy+xml": {
  8097. source: "iana",
  8098. compressible: true,
  8099. extensions: [
  8100. "wspolicy"
  8101. ]
  8102. },
  8103. "application/x-7z-compressed": {
  8104. source: "apache",
  8105. compressible: false,
  8106. extensions: [
  8107. "7z"
  8108. ]
  8109. },
  8110. "application/x-abiword": {
  8111. source: "apache",
  8112. extensions: [
  8113. "abw"
  8114. ]
  8115. },
  8116. "application/x-ace-compressed": {
  8117. source: "apache",
  8118. extensions: [
  8119. "ace"
  8120. ]
  8121. },
  8122. "application/x-amf": {
  8123. source: "apache"
  8124. },
  8125. "application/x-apple-diskimage": {
  8126. source: "apache",
  8127. extensions: [
  8128. "dmg"
  8129. ]
  8130. },
  8131. "application/x-arj": {
  8132. compressible: false,
  8133. extensions: [
  8134. "arj"
  8135. ]
  8136. },
  8137. "application/x-authorware-bin": {
  8138. source: "apache",
  8139. extensions: [
  8140. "aab",
  8141. "x32",
  8142. "u32",
  8143. "vox"
  8144. ]
  8145. },
  8146. "application/x-authorware-map": {
  8147. source: "apache",
  8148. extensions: [
  8149. "aam"
  8150. ]
  8151. },
  8152. "application/x-authorware-seg": {
  8153. source: "apache",
  8154. extensions: [
  8155. "aas"
  8156. ]
  8157. },
  8158. "application/x-bcpio": {
  8159. source: "apache",
  8160. extensions: [
  8161. "bcpio"
  8162. ]
  8163. },
  8164. "application/x-bdoc": {
  8165. compressible: false,
  8166. extensions: [
  8167. "bdoc"
  8168. ]
  8169. },
  8170. "application/x-bittorrent": {
  8171. source: "apache",
  8172. extensions: [
  8173. "torrent"
  8174. ]
  8175. },
  8176. "application/x-blorb": {
  8177. source: "apache",
  8178. extensions: [
  8179. "blb",
  8180. "blorb"
  8181. ]
  8182. },
  8183. "application/x-bzip": {
  8184. source: "apache",
  8185. compressible: false,
  8186. extensions: [
  8187. "bz"
  8188. ]
  8189. },
  8190. "application/x-bzip2": {
  8191. source: "apache",
  8192. compressible: false,
  8193. extensions: [
  8194. "bz2",
  8195. "boz"
  8196. ]
  8197. },
  8198. "application/x-cbr": {
  8199. source: "apache",
  8200. extensions: [
  8201. "cbr",
  8202. "cba",
  8203. "cbt",
  8204. "cbz",
  8205. "cb7"
  8206. ]
  8207. },
  8208. "application/x-cdlink": {
  8209. source: "apache",
  8210. extensions: [
  8211. "vcd"
  8212. ]
  8213. },
  8214. "application/x-cfs-compressed": {
  8215. source: "apache",
  8216. extensions: [
  8217. "cfs"
  8218. ]
  8219. },
  8220. "application/x-chat": {
  8221. source: "apache",
  8222. extensions: [
  8223. "chat"
  8224. ]
  8225. },
  8226. "application/x-chess-pgn": {
  8227. source: "apache",
  8228. extensions: [
  8229. "pgn"
  8230. ]
  8231. },
  8232. "application/x-chrome-extension": {
  8233. extensions: [
  8234. "crx"
  8235. ]
  8236. },
  8237. "application/x-cocoa": {
  8238. source: "nginx",
  8239. extensions: [
  8240. "cco"
  8241. ]
  8242. },
  8243. "application/x-compress": {
  8244. source: "apache"
  8245. },
  8246. "application/x-conference": {
  8247. source: "apache",
  8248. extensions: [
  8249. "nsc"
  8250. ]
  8251. },
  8252. "application/x-cpio": {
  8253. source: "apache",
  8254. extensions: [
  8255. "cpio"
  8256. ]
  8257. },
  8258. "application/x-csh": {
  8259. source: "apache",
  8260. extensions: [
  8261. "csh"
  8262. ]
  8263. },
  8264. "application/x-deb": {
  8265. compressible: false
  8266. },
  8267. "application/x-debian-package": {
  8268. source: "apache",
  8269. extensions: [
  8270. "deb",
  8271. "udeb"
  8272. ]
  8273. },
  8274. "application/x-dgc-compressed": {
  8275. source: "apache",
  8276. extensions: [
  8277. "dgc"
  8278. ]
  8279. },
  8280. "application/x-director": {
  8281. source: "apache",
  8282. extensions: [
  8283. "dir",
  8284. "dcr",
  8285. "dxr",
  8286. "cst",
  8287. "cct",
  8288. "cxt",
  8289. "w3d",
  8290. "fgd",
  8291. "swa"
  8292. ]
  8293. },
  8294. "application/x-doom": {
  8295. source: "apache",
  8296. extensions: [
  8297. "wad"
  8298. ]
  8299. },
  8300. "application/x-dtbncx+xml": {
  8301. source: "apache",
  8302. compressible: true,
  8303. extensions: [
  8304. "ncx"
  8305. ]
  8306. },
  8307. "application/x-dtbook+xml": {
  8308. source: "apache",
  8309. compressible: true,
  8310. extensions: [
  8311. "dtb"
  8312. ]
  8313. },
  8314. "application/x-dtbresource+xml": {
  8315. source: "apache",
  8316. compressible: true,
  8317. extensions: [
  8318. "res"
  8319. ]
  8320. },
  8321. "application/x-dvi": {
  8322. source: "apache",
  8323. compressible: false,
  8324. extensions: [
  8325. "dvi"
  8326. ]
  8327. },
  8328. "application/x-envoy": {
  8329. source: "apache",
  8330. extensions: [
  8331. "evy"
  8332. ]
  8333. },
  8334. "application/x-eva": {
  8335. source: "apache",
  8336. extensions: [
  8337. "eva"
  8338. ]
  8339. },
  8340. "application/x-font-bdf": {
  8341. source: "apache",
  8342. extensions: [
  8343. "bdf"
  8344. ]
  8345. },
  8346. "application/x-font-dos": {
  8347. source: "apache"
  8348. },
  8349. "application/x-font-framemaker": {
  8350. source: "apache"
  8351. },
  8352. "application/x-font-ghostscript": {
  8353. source: "apache",
  8354. extensions: [
  8355. "gsf"
  8356. ]
  8357. },
  8358. "application/x-font-libgrx": {
  8359. source: "apache"
  8360. },
  8361. "application/x-font-linux-psf": {
  8362. source: "apache",
  8363. extensions: [
  8364. "psf"
  8365. ]
  8366. },
  8367. "application/x-font-pcf": {
  8368. source: "apache",
  8369. extensions: [
  8370. "pcf"
  8371. ]
  8372. },
  8373. "application/x-font-snf": {
  8374. source: "apache",
  8375. extensions: [
  8376. "snf"
  8377. ]
  8378. },
  8379. "application/x-font-speedo": {
  8380. source: "apache"
  8381. },
  8382. "application/x-font-sunos-news": {
  8383. source: "apache"
  8384. },
  8385. "application/x-font-type1": {
  8386. source: "apache",
  8387. extensions: [
  8388. "pfa",
  8389. "pfb",
  8390. "pfm",
  8391. "afm"
  8392. ]
  8393. },
  8394. "application/x-font-vfont": {
  8395. source: "apache"
  8396. },
  8397. "application/x-freearc": {
  8398. source: "apache",
  8399. extensions: [
  8400. "arc"
  8401. ]
  8402. },
  8403. "application/x-futuresplash": {
  8404. source: "apache",
  8405. extensions: [
  8406. "spl"
  8407. ]
  8408. },
  8409. "application/x-gca-compressed": {
  8410. source: "apache",
  8411. extensions: [
  8412. "gca"
  8413. ]
  8414. },
  8415. "application/x-glulx": {
  8416. source: "apache",
  8417. extensions: [
  8418. "ulx"
  8419. ]
  8420. },
  8421. "application/x-gnumeric": {
  8422. source: "apache",
  8423. extensions: [
  8424. "gnumeric"
  8425. ]
  8426. },
  8427. "application/x-gramps-xml": {
  8428. source: "apache",
  8429. extensions: [
  8430. "gramps"
  8431. ]
  8432. },
  8433. "application/x-gtar": {
  8434. source: "apache",
  8435. extensions: [
  8436. "gtar"
  8437. ]
  8438. },
  8439. "application/x-gzip": {
  8440. source: "apache"
  8441. },
  8442. "application/x-hdf": {
  8443. source: "apache",
  8444. extensions: [
  8445. "hdf"
  8446. ]
  8447. },
  8448. "application/x-httpd-php": {
  8449. compressible: true,
  8450. extensions: [
  8451. "php"
  8452. ]
  8453. },
  8454. "application/x-install-instructions": {
  8455. source: "apache",
  8456. extensions: [
  8457. "install"
  8458. ]
  8459. },
  8460. "application/x-iso9660-image": {
  8461. source: "apache",
  8462. extensions: [
  8463. "iso"
  8464. ]
  8465. },
  8466. "application/x-java-archive-diff": {
  8467. source: "nginx",
  8468. extensions: [
  8469. "jardiff"
  8470. ]
  8471. },
  8472. "application/x-java-jnlp-file": {
  8473. source: "apache",
  8474. compressible: false,
  8475. extensions: [
  8476. "jnlp"
  8477. ]
  8478. },
  8479. "application/x-javascript": {
  8480. compressible: true
  8481. },
  8482. "application/x-keepass2": {
  8483. extensions: [
  8484. "kdbx"
  8485. ]
  8486. },
  8487. "application/x-latex": {
  8488. source: "apache",
  8489. compressible: false,
  8490. extensions: [
  8491. "latex"
  8492. ]
  8493. },
  8494. "application/x-lua-bytecode": {
  8495. extensions: [
  8496. "luac"
  8497. ]
  8498. },
  8499. "application/x-lzh-compressed": {
  8500. source: "apache",
  8501. extensions: [
  8502. "lzh",
  8503. "lha"
  8504. ]
  8505. },
  8506. "application/x-makeself": {
  8507. source: "nginx",
  8508. extensions: [
  8509. "run"
  8510. ]
  8511. },
  8512. "application/x-mie": {
  8513. source: "apache",
  8514. extensions: [
  8515. "mie"
  8516. ]
  8517. },
  8518. "application/x-mobipocket-ebook": {
  8519. source: "apache",
  8520. extensions: [
  8521. "prc",
  8522. "mobi"
  8523. ]
  8524. },
  8525. "application/x-mpegurl": {
  8526. compressible: false
  8527. },
  8528. "application/x-ms-application": {
  8529. source: "apache",
  8530. extensions: [
  8531. "application"
  8532. ]
  8533. },
  8534. "application/x-ms-shortcut": {
  8535. source: "apache",
  8536. extensions: [
  8537. "lnk"
  8538. ]
  8539. },
  8540. "application/x-ms-wmd": {
  8541. source: "apache",
  8542. extensions: [
  8543. "wmd"
  8544. ]
  8545. },
  8546. "application/x-ms-wmz": {
  8547. source: "apache",
  8548. extensions: [
  8549. "wmz"
  8550. ]
  8551. },
  8552. "application/x-ms-xbap": {
  8553. source: "apache",
  8554. extensions: [
  8555. "xbap"
  8556. ]
  8557. },
  8558. "application/x-msaccess": {
  8559. source: "apache",
  8560. extensions: [
  8561. "mdb"
  8562. ]
  8563. },
  8564. "application/x-msbinder": {
  8565. source: "apache",
  8566. extensions: [
  8567. "obd"
  8568. ]
  8569. },
  8570. "application/x-mscardfile": {
  8571. source: "apache",
  8572. extensions: [
  8573. "crd"
  8574. ]
  8575. },
  8576. "application/x-msclip": {
  8577. source: "apache",
  8578. extensions: [
  8579. "clp"
  8580. ]
  8581. },
  8582. "application/x-msdos-program": {
  8583. extensions: [
  8584. "exe"
  8585. ]
  8586. },
  8587. "application/x-msdownload": {
  8588. source: "apache",
  8589. extensions: [
  8590. "exe",
  8591. "dll",
  8592. "com",
  8593. "bat",
  8594. "msi"
  8595. ]
  8596. },
  8597. "application/x-msmediaview": {
  8598. source: "apache",
  8599. extensions: [
  8600. "mvb",
  8601. "m13",
  8602. "m14"
  8603. ]
  8604. },
  8605. "application/x-msmetafile": {
  8606. source: "apache",
  8607. extensions: [
  8608. "wmf",
  8609. "wmz",
  8610. "emf",
  8611. "emz"
  8612. ]
  8613. },
  8614. "application/x-msmoney": {
  8615. source: "apache",
  8616. extensions: [
  8617. "mny"
  8618. ]
  8619. },
  8620. "application/x-mspublisher": {
  8621. source: "apache",
  8622. extensions: [
  8623. "pub"
  8624. ]
  8625. },
  8626. "application/x-msschedule": {
  8627. source: "apache",
  8628. extensions: [
  8629. "scd"
  8630. ]
  8631. },
  8632. "application/x-msterminal": {
  8633. source: "apache",
  8634. extensions: [
  8635. "trm"
  8636. ]
  8637. },
  8638. "application/x-mswrite": {
  8639. source: "apache",
  8640. extensions: [
  8641. "wri"
  8642. ]
  8643. },
  8644. "application/x-netcdf": {
  8645. source: "apache",
  8646. extensions: [
  8647. "nc",
  8648. "cdf"
  8649. ]
  8650. },
  8651. "application/x-ns-proxy-autoconfig": {
  8652. compressible: true,
  8653. extensions: [
  8654. "pac"
  8655. ]
  8656. },
  8657. "application/x-nzb": {
  8658. source: "apache",
  8659. extensions: [
  8660. "nzb"
  8661. ]
  8662. },
  8663. "application/x-perl": {
  8664. source: "nginx",
  8665. extensions: [
  8666. "pl",
  8667. "pm"
  8668. ]
  8669. },
  8670. "application/x-pilot": {
  8671. source: "nginx",
  8672. extensions: [
  8673. "prc",
  8674. "pdb"
  8675. ]
  8676. },
  8677. "application/x-pkcs12": {
  8678. source: "apache",
  8679. compressible: false,
  8680. extensions: [
  8681. "p12",
  8682. "pfx"
  8683. ]
  8684. },
  8685. "application/x-pkcs7-certificates": {
  8686. source: "apache",
  8687. extensions: [
  8688. "p7b",
  8689. "spc"
  8690. ]
  8691. },
  8692. "application/x-pkcs7-certreqresp": {
  8693. source: "apache",
  8694. extensions: [
  8695. "p7r"
  8696. ]
  8697. },
  8698. "application/x-pki-message": {
  8699. source: "iana"
  8700. },
  8701. "application/x-rar-compressed": {
  8702. source: "apache",
  8703. compressible: false,
  8704. extensions: [
  8705. "rar"
  8706. ]
  8707. },
  8708. "application/x-redhat-package-manager": {
  8709. source: "nginx",
  8710. extensions: [
  8711. "rpm"
  8712. ]
  8713. },
  8714. "application/x-research-info-systems": {
  8715. source: "apache",
  8716. extensions: [
  8717. "ris"
  8718. ]
  8719. },
  8720. "application/x-sea": {
  8721. source: "nginx",
  8722. extensions: [
  8723. "sea"
  8724. ]
  8725. },
  8726. "application/x-sh": {
  8727. source: "apache",
  8728. compressible: true,
  8729. extensions: [
  8730. "sh"
  8731. ]
  8732. },
  8733. "application/x-shar": {
  8734. source: "apache",
  8735. extensions: [
  8736. "shar"
  8737. ]
  8738. },
  8739. "application/x-shockwave-flash": {
  8740. source: "apache",
  8741. compressible: false,
  8742. extensions: [
  8743. "swf"
  8744. ]
  8745. },
  8746. "application/x-silverlight-app": {
  8747. source: "apache",
  8748. extensions: [
  8749. "xap"
  8750. ]
  8751. },
  8752. "application/x-sql": {
  8753. source: "apache",
  8754. extensions: [
  8755. "sql"
  8756. ]
  8757. },
  8758. "application/x-stuffit": {
  8759. source: "apache",
  8760. compressible: false,
  8761. extensions: [
  8762. "sit"
  8763. ]
  8764. },
  8765. "application/x-stuffitx": {
  8766. source: "apache",
  8767. extensions: [
  8768. "sitx"
  8769. ]
  8770. },
  8771. "application/x-subrip": {
  8772. source: "apache",
  8773. extensions: [
  8774. "srt"
  8775. ]
  8776. },
  8777. "application/x-sv4cpio": {
  8778. source: "apache",
  8779. extensions: [
  8780. "sv4cpio"
  8781. ]
  8782. },
  8783. "application/x-sv4crc": {
  8784. source: "apache",
  8785. extensions: [
  8786. "sv4crc"
  8787. ]
  8788. },
  8789. "application/x-t3vm-image": {
  8790. source: "apache",
  8791. extensions: [
  8792. "t3"
  8793. ]
  8794. },
  8795. "application/x-tads": {
  8796. source: "apache",
  8797. extensions: [
  8798. "gam"
  8799. ]
  8800. },
  8801. "application/x-tar": {
  8802. source: "apache",
  8803. compressible: true,
  8804. extensions: [
  8805. "tar"
  8806. ]
  8807. },
  8808. "application/x-tcl": {
  8809. source: "apache",
  8810. extensions: [
  8811. "tcl",
  8812. "tk"
  8813. ]
  8814. },
  8815. "application/x-tex": {
  8816. source: "apache",
  8817. extensions: [
  8818. "tex"
  8819. ]
  8820. },
  8821. "application/x-tex-tfm": {
  8822. source: "apache",
  8823. extensions: [
  8824. "tfm"
  8825. ]
  8826. },
  8827. "application/x-texinfo": {
  8828. source: "apache",
  8829. extensions: [
  8830. "texinfo",
  8831. "texi"
  8832. ]
  8833. },
  8834. "application/x-tgif": {
  8835. source: "apache",
  8836. extensions: [
  8837. "obj"
  8838. ]
  8839. },
  8840. "application/x-ustar": {
  8841. source: "apache",
  8842. extensions: [
  8843. "ustar"
  8844. ]
  8845. },
  8846. "application/x-virtualbox-hdd": {
  8847. compressible: true,
  8848. extensions: [
  8849. "hdd"
  8850. ]
  8851. },
  8852. "application/x-virtualbox-ova": {
  8853. compressible: true,
  8854. extensions: [
  8855. "ova"
  8856. ]
  8857. },
  8858. "application/x-virtualbox-ovf": {
  8859. compressible: true,
  8860. extensions: [
  8861. "ovf"
  8862. ]
  8863. },
  8864. "application/x-virtualbox-vbox": {
  8865. compressible: true,
  8866. extensions: [
  8867. "vbox"
  8868. ]
  8869. },
  8870. "application/x-virtualbox-vbox-extpack": {
  8871. compressible: false,
  8872. extensions: [
  8873. "vbox-extpack"
  8874. ]
  8875. },
  8876. "application/x-virtualbox-vdi": {
  8877. compressible: true,
  8878. extensions: [
  8879. "vdi"
  8880. ]
  8881. },
  8882. "application/x-virtualbox-vhd": {
  8883. compressible: true,
  8884. extensions: [
  8885. "vhd"
  8886. ]
  8887. },
  8888. "application/x-virtualbox-vmdk": {
  8889. compressible: true,
  8890. extensions: [
  8891. "vmdk"
  8892. ]
  8893. },
  8894. "application/x-wais-source": {
  8895. source: "apache",
  8896. extensions: [
  8897. "src"
  8898. ]
  8899. },
  8900. "application/x-web-app-manifest+json": {
  8901. compressible: true,
  8902. extensions: [
  8903. "webapp"
  8904. ]
  8905. },
  8906. "application/x-www-form-urlencoded": {
  8907. source: "iana",
  8908. compressible: true
  8909. },
  8910. "application/x-x509-ca-cert": {
  8911. source: "iana",
  8912. extensions: [
  8913. "der",
  8914. "crt",
  8915. "pem"
  8916. ]
  8917. },
  8918. "application/x-x509-ca-ra-cert": {
  8919. source: "iana"
  8920. },
  8921. "application/x-x509-next-ca-cert": {
  8922. source: "iana"
  8923. },
  8924. "application/x-xfig": {
  8925. source: "apache",
  8926. extensions: [
  8927. "fig"
  8928. ]
  8929. },
  8930. "application/x-xliff+xml": {
  8931. source: "apache",
  8932. compressible: true,
  8933. extensions: [
  8934. "xlf"
  8935. ]
  8936. },
  8937. "application/x-xpinstall": {
  8938. source: "apache",
  8939. compressible: false,
  8940. extensions: [
  8941. "xpi"
  8942. ]
  8943. },
  8944. "application/x-xz": {
  8945. source: "apache",
  8946. extensions: [
  8947. "xz"
  8948. ]
  8949. },
  8950. "application/x-zmachine": {
  8951. source: "apache",
  8952. extensions: [
  8953. "z1",
  8954. "z2",
  8955. "z3",
  8956. "z4",
  8957. "z5",
  8958. "z6",
  8959. "z7",
  8960. "z8"
  8961. ]
  8962. },
  8963. "application/x400-bp": {
  8964. source: "iana"
  8965. },
  8966. "application/xacml+xml": {
  8967. source: "iana",
  8968. compressible: true
  8969. },
  8970. "application/xaml+xml": {
  8971. source: "apache",
  8972. compressible: true,
  8973. extensions: [
  8974. "xaml"
  8975. ]
  8976. },
  8977. "application/xcap-att+xml": {
  8978. source: "iana",
  8979. compressible: true,
  8980. extensions: [
  8981. "xav"
  8982. ]
  8983. },
  8984. "application/xcap-caps+xml": {
  8985. source: "iana",
  8986. compressible: true,
  8987. extensions: [
  8988. "xca"
  8989. ]
  8990. },
  8991. "application/xcap-diff+xml": {
  8992. source: "iana",
  8993. compressible: true,
  8994. extensions: [
  8995. "xdf"
  8996. ]
  8997. },
  8998. "application/xcap-el+xml": {
  8999. source: "iana",
  9000. compressible: true,
  9001. extensions: [
  9002. "xel"
  9003. ]
  9004. },
  9005. "application/xcap-error+xml": {
  9006. source: "iana",
  9007. compressible: true
  9008. },
  9009. "application/xcap-ns+xml": {
  9010. source: "iana",
  9011. compressible: true,
  9012. extensions: [
  9013. "xns"
  9014. ]
  9015. },
  9016. "application/xcon-conference-info+xml": {
  9017. source: "iana",
  9018. compressible: true
  9019. },
  9020. "application/xcon-conference-info-diff+xml": {
  9021. source: "iana",
  9022. compressible: true
  9023. },
  9024. "application/xenc+xml": {
  9025. source: "iana",
  9026. compressible: true,
  9027. extensions: [
  9028. "xenc"
  9029. ]
  9030. },
  9031. "application/xhtml+xml": {
  9032. source: "iana",
  9033. compressible: true,
  9034. extensions: [
  9035. "xhtml",
  9036. "xht"
  9037. ]
  9038. },
  9039. "application/xhtml-voice+xml": {
  9040. source: "apache",
  9041. compressible: true
  9042. },
  9043. "application/xliff+xml": {
  9044. source: "iana",
  9045. compressible: true,
  9046. extensions: [
  9047. "xlf"
  9048. ]
  9049. },
  9050. "application/xml": {
  9051. source: "iana",
  9052. compressible: true,
  9053. extensions: [
  9054. "xml",
  9055. "xsl",
  9056. "xsd",
  9057. "rng"
  9058. ]
  9059. },
  9060. "application/xml-dtd": {
  9061. source: "iana",
  9062. compressible: true,
  9063. extensions: [
  9064. "dtd"
  9065. ]
  9066. },
  9067. "application/xml-external-parsed-entity": {
  9068. source: "iana"
  9069. },
  9070. "application/xml-patch+xml": {
  9071. source: "iana",
  9072. compressible: true
  9073. },
  9074. "application/xmpp+xml": {
  9075. source: "iana",
  9076. compressible: true
  9077. },
  9078. "application/xop+xml": {
  9079. source: "iana",
  9080. compressible: true,
  9081. extensions: [
  9082. "xop"
  9083. ]
  9084. },
  9085. "application/xproc+xml": {
  9086. source: "apache",
  9087. compressible: true,
  9088. extensions: [
  9089. "xpl"
  9090. ]
  9091. },
  9092. "application/xslt+xml": {
  9093. source: "iana",
  9094. compressible: true,
  9095. extensions: [
  9096. "xsl",
  9097. "xslt"
  9098. ]
  9099. },
  9100. "application/xspf+xml": {
  9101. source: "apache",
  9102. compressible: true,
  9103. extensions: [
  9104. "xspf"
  9105. ]
  9106. },
  9107. "application/xv+xml": {
  9108. source: "iana",
  9109. compressible: true,
  9110. extensions: [
  9111. "mxml",
  9112. "xhvml",
  9113. "xvml",
  9114. "xvm"
  9115. ]
  9116. },
  9117. "application/yang": {
  9118. source: "iana",
  9119. extensions: [
  9120. "yang"
  9121. ]
  9122. },
  9123. "application/yang-data+json": {
  9124. source: "iana",
  9125. compressible: true
  9126. },
  9127. "application/yang-data+xml": {
  9128. source: "iana",
  9129. compressible: true
  9130. },
  9131. "application/yang-patch+json": {
  9132. source: "iana",
  9133. compressible: true
  9134. },
  9135. "application/yang-patch+xml": {
  9136. source: "iana",
  9137. compressible: true
  9138. },
  9139. "application/yin+xml": {
  9140. source: "iana",
  9141. compressible: true,
  9142. extensions: [
  9143. "yin"
  9144. ]
  9145. },
  9146. "application/zip": {
  9147. source: "iana",
  9148. compressible: false,
  9149. extensions: [
  9150. "zip"
  9151. ]
  9152. },
  9153. "application/zlib": {
  9154. source: "iana"
  9155. },
  9156. "application/zstd": {
  9157. source: "iana"
  9158. },
  9159. "audio/1d-interleaved-parityfec": {
  9160. source: "iana"
  9161. },
  9162. "audio/32kadpcm": {
  9163. source: "iana"
  9164. },
  9165. "audio/3gpp": {
  9166. source: "iana",
  9167. compressible: false,
  9168. extensions: [
  9169. "3gpp"
  9170. ]
  9171. },
  9172. "audio/3gpp2": {
  9173. source: "iana"
  9174. },
  9175. "audio/aac": {
  9176. source: "iana"
  9177. },
  9178. "audio/ac3": {
  9179. source: "iana"
  9180. },
  9181. "audio/adpcm": {
  9182. source: "apache",
  9183. extensions: [
  9184. "adp"
  9185. ]
  9186. },
  9187. "audio/amr": {
  9188. source: "iana",
  9189. extensions: [
  9190. "amr"
  9191. ]
  9192. },
  9193. "audio/amr-wb": {
  9194. source: "iana"
  9195. },
  9196. "audio/amr-wb+": {
  9197. source: "iana"
  9198. },
  9199. "audio/aptx": {
  9200. source: "iana"
  9201. },
  9202. "audio/asc": {
  9203. source: "iana"
  9204. },
  9205. "audio/atrac-advanced-lossless": {
  9206. source: "iana"
  9207. },
  9208. "audio/atrac-x": {
  9209. source: "iana"
  9210. },
  9211. "audio/atrac3": {
  9212. source: "iana"
  9213. },
  9214. "audio/basic": {
  9215. source: "iana",
  9216. compressible: false,
  9217. extensions: [
  9218. "au",
  9219. "snd"
  9220. ]
  9221. },
  9222. "audio/bv16": {
  9223. source: "iana"
  9224. },
  9225. "audio/bv32": {
  9226. source: "iana"
  9227. },
  9228. "audio/clearmode": {
  9229. source: "iana"
  9230. },
  9231. "audio/cn": {
  9232. source: "iana"
  9233. },
  9234. "audio/dat12": {
  9235. source: "iana"
  9236. },
  9237. "audio/dls": {
  9238. source: "iana"
  9239. },
  9240. "audio/dsr-es201108": {
  9241. source: "iana"
  9242. },
  9243. "audio/dsr-es202050": {
  9244. source: "iana"
  9245. },
  9246. "audio/dsr-es202211": {
  9247. source: "iana"
  9248. },
  9249. "audio/dsr-es202212": {
  9250. source: "iana"
  9251. },
  9252. "audio/dv": {
  9253. source: "iana"
  9254. },
  9255. "audio/dvi4": {
  9256. source: "iana"
  9257. },
  9258. "audio/eac3": {
  9259. source: "iana"
  9260. },
  9261. "audio/encaprtp": {
  9262. source: "iana"
  9263. },
  9264. "audio/evrc": {
  9265. source: "iana"
  9266. },
  9267. "audio/evrc-qcp": {
  9268. source: "iana"
  9269. },
  9270. "audio/evrc0": {
  9271. source: "iana"
  9272. },
  9273. "audio/evrc1": {
  9274. source: "iana"
  9275. },
  9276. "audio/evrcb": {
  9277. source: "iana"
  9278. },
  9279. "audio/evrcb0": {
  9280. source: "iana"
  9281. },
  9282. "audio/evrcb1": {
  9283. source: "iana"
  9284. },
  9285. "audio/evrcnw": {
  9286. source: "iana"
  9287. },
  9288. "audio/evrcnw0": {
  9289. source: "iana"
  9290. },
  9291. "audio/evrcnw1": {
  9292. source: "iana"
  9293. },
  9294. "audio/evrcwb": {
  9295. source: "iana"
  9296. },
  9297. "audio/evrcwb0": {
  9298. source: "iana"
  9299. },
  9300. "audio/evrcwb1": {
  9301. source: "iana"
  9302. },
  9303. "audio/evs": {
  9304. source: "iana"
  9305. },
  9306. "audio/flexfec": {
  9307. source: "iana"
  9308. },
  9309. "audio/fwdred": {
  9310. source: "iana"
  9311. },
  9312. "audio/g711-0": {
  9313. source: "iana"
  9314. },
  9315. "audio/g719": {
  9316. source: "iana"
  9317. },
  9318. "audio/g722": {
  9319. source: "iana"
  9320. },
  9321. "audio/g7221": {
  9322. source: "iana"
  9323. },
  9324. "audio/g723": {
  9325. source: "iana"
  9326. },
  9327. "audio/g726-16": {
  9328. source: "iana"
  9329. },
  9330. "audio/g726-24": {
  9331. source: "iana"
  9332. },
  9333. "audio/g726-32": {
  9334. source: "iana"
  9335. },
  9336. "audio/g726-40": {
  9337. source: "iana"
  9338. },
  9339. "audio/g728": {
  9340. source: "iana"
  9341. },
  9342. "audio/g729": {
  9343. source: "iana"
  9344. },
  9345. "audio/g7291": {
  9346. source: "iana"
  9347. },
  9348. "audio/g729d": {
  9349. source: "iana"
  9350. },
  9351. "audio/g729e": {
  9352. source: "iana"
  9353. },
  9354. "audio/gsm": {
  9355. source: "iana"
  9356. },
  9357. "audio/gsm-efr": {
  9358. source: "iana"
  9359. },
  9360. "audio/gsm-hr-08": {
  9361. source: "iana"
  9362. },
  9363. "audio/ilbc": {
  9364. source: "iana"
  9365. },
  9366. "audio/ip-mr_v2.5": {
  9367. source: "iana"
  9368. },
  9369. "audio/isac": {
  9370. source: "apache"
  9371. },
  9372. "audio/l16": {
  9373. source: "iana"
  9374. },
  9375. "audio/l20": {
  9376. source: "iana"
  9377. },
  9378. "audio/l24": {
  9379. source: "iana",
  9380. compressible: false
  9381. },
  9382. "audio/l8": {
  9383. source: "iana"
  9384. },
  9385. "audio/lpc": {
  9386. source: "iana"
  9387. },
  9388. "audio/melp": {
  9389. source: "iana"
  9390. },
  9391. "audio/melp1200": {
  9392. source: "iana"
  9393. },
  9394. "audio/melp2400": {
  9395. source: "iana"
  9396. },
  9397. "audio/melp600": {
  9398. source: "iana"
  9399. },
  9400. "audio/mhas": {
  9401. source: "iana"
  9402. },
  9403. "audio/midi": {
  9404. source: "apache",
  9405. extensions: [
  9406. "mid",
  9407. "midi",
  9408. "kar",
  9409. "rmi"
  9410. ]
  9411. },
  9412. "audio/mobile-xmf": {
  9413. source: "iana",
  9414. extensions: [
  9415. "mxmf"
  9416. ]
  9417. },
  9418. "audio/mp3": {
  9419. compressible: false,
  9420. extensions: [
  9421. "mp3"
  9422. ]
  9423. },
  9424. "audio/mp4": {
  9425. source: "iana",
  9426. compressible: false,
  9427. extensions: [
  9428. "m4a",
  9429. "mp4a"
  9430. ]
  9431. },
  9432. "audio/mp4a-latm": {
  9433. source: "iana"
  9434. },
  9435. "audio/mpa": {
  9436. source: "iana"
  9437. },
  9438. "audio/mpa-robust": {
  9439. source: "iana"
  9440. },
  9441. "audio/mpeg": {
  9442. source: "iana",
  9443. compressible: false,
  9444. extensions: [
  9445. "mpga",
  9446. "mp2",
  9447. "mp2a",
  9448. "mp3",
  9449. "m2a",
  9450. "m3a"
  9451. ]
  9452. },
  9453. "audio/mpeg4-generic": {
  9454. source: "iana"
  9455. },
  9456. "audio/musepack": {
  9457. source: "apache"
  9458. },
  9459. "audio/ogg": {
  9460. source: "iana",
  9461. compressible: false,
  9462. extensions: [
  9463. "oga",
  9464. "ogg",
  9465. "spx",
  9466. "opus"
  9467. ]
  9468. },
  9469. "audio/opus": {
  9470. source: "iana"
  9471. },
  9472. "audio/parityfec": {
  9473. source: "iana"
  9474. },
  9475. "audio/pcma": {
  9476. source: "iana"
  9477. },
  9478. "audio/pcma-wb": {
  9479. source: "iana"
  9480. },
  9481. "audio/pcmu": {
  9482. source: "iana"
  9483. },
  9484. "audio/pcmu-wb": {
  9485. source: "iana"
  9486. },
  9487. "audio/prs.sid": {
  9488. source: "iana"
  9489. },
  9490. "audio/qcelp": {
  9491. source: "iana"
  9492. },
  9493. "audio/raptorfec": {
  9494. source: "iana"
  9495. },
  9496. "audio/red": {
  9497. source: "iana"
  9498. },
  9499. "audio/rtp-enc-aescm128": {
  9500. source: "iana"
  9501. },
  9502. "audio/rtp-midi": {
  9503. source: "iana"
  9504. },
  9505. "audio/rtploopback": {
  9506. source: "iana"
  9507. },
  9508. "audio/rtx": {
  9509. source: "iana"
  9510. },
  9511. "audio/s3m": {
  9512. source: "apache",
  9513. extensions: [
  9514. "s3m"
  9515. ]
  9516. },
  9517. "audio/scip": {
  9518. source: "iana"
  9519. },
  9520. "audio/silk": {
  9521. source: "apache",
  9522. extensions: [
  9523. "sil"
  9524. ]
  9525. },
  9526. "audio/smv": {
  9527. source: "iana"
  9528. },
  9529. "audio/smv-qcp": {
  9530. source: "iana"
  9531. },
  9532. "audio/smv0": {
  9533. source: "iana"
  9534. },
  9535. "audio/sofa": {
  9536. source: "iana"
  9537. },
  9538. "audio/sp-midi": {
  9539. source: "iana"
  9540. },
  9541. "audio/speex": {
  9542. source: "iana"
  9543. },
  9544. "audio/t140c": {
  9545. source: "iana"
  9546. },
  9547. "audio/t38": {
  9548. source: "iana"
  9549. },
  9550. "audio/telephone-event": {
  9551. source: "iana"
  9552. },
  9553. "audio/tetra_acelp": {
  9554. source: "iana"
  9555. },
  9556. "audio/tetra_acelp_bb": {
  9557. source: "iana"
  9558. },
  9559. "audio/tone": {
  9560. source: "iana"
  9561. },
  9562. "audio/tsvcis": {
  9563. source: "iana"
  9564. },
  9565. "audio/uemclip": {
  9566. source: "iana"
  9567. },
  9568. "audio/ulpfec": {
  9569. source: "iana"
  9570. },
  9571. "audio/usac": {
  9572. source: "iana"
  9573. },
  9574. "audio/vdvi": {
  9575. source: "iana"
  9576. },
  9577. "audio/vmr-wb": {
  9578. source: "iana"
  9579. },
  9580. "audio/vnd.3gpp.iufp": {
  9581. source: "iana"
  9582. },
  9583. "audio/vnd.4sb": {
  9584. source: "iana"
  9585. },
  9586. "audio/vnd.audiokoz": {
  9587. source: "iana"
  9588. },
  9589. "audio/vnd.celp": {
  9590. source: "iana"
  9591. },
  9592. "audio/vnd.cisco.nse": {
  9593. source: "iana"
  9594. },
  9595. "audio/vnd.cmles.radio-events": {
  9596. source: "iana"
  9597. },
  9598. "audio/vnd.cns.anp1": {
  9599. source: "iana"
  9600. },
  9601. "audio/vnd.cns.inf1": {
  9602. source: "iana"
  9603. },
  9604. "audio/vnd.dece.audio": {
  9605. source: "iana",
  9606. extensions: [
  9607. "uva",
  9608. "uvva"
  9609. ]
  9610. },
  9611. "audio/vnd.digital-winds": {
  9612. source: "iana",
  9613. extensions: [
  9614. "eol"
  9615. ]
  9616. },
  9617. "audio/vnd.dlna.adts": {
  9618. source: "iana"
  9619. },
  9620. "audio/vnd.dolby.heaac.1": {
  9621. source: "iana"
  9622. },
  9623. "audio/vnd.dolby.heaac.2": {
  9624. source: "iana"
  9625. },
  9626. "audio/vnd.dolby.mlp": {
  9627. source: "iana"
  9628. },
  9629. "audio/vnd.dolby.mps": {
  9630. source: "iana"
  9631. },
  9632. "audio/vnd.dolby.pl2": {
  9633. source: "iana"
  9634. },
  9635. "audio/vnd.dolby.pl2x": {
  9636. source: "iana"
  9637. },
  9638. "audio/vnd.dolby.pl2z": {
  9639. source: "iana"
  9640. },
  9641. "audio/vnd.dolby.pulse.1": {
  9642. source: "iana"
  9643. },
  9644. "audio/vnd.dra": {
  9645. source: "iana",
  9646. extensions: [
  9647. "dra"
  9648. ]
  9649. },
  9650. "audio/vnd.dts": {
  9651. source: "iana",
  9652. extensions: [
  9653. "dts"
  9654. ]
  9655. },
  9656. "audio/vnd.dts.hd": {
  9657. source: "iana",
  9658. extensions: [
  9659. "dtshd"
  9660. ]
  9661. },
  9662. "audio/vnd.dts.uhd": {
  9663. source: "iana"
  9664. },
  9665. "audio/vnd.dvb.file": {
  9666. source: "iana"
  9667. },
  9668. "audio/vnd.everad.plj": {
  9669. source: "iana"
  9670. },
  9671. "audio/vnd.hns.audio": {
  9672. source: "iana"
  9673. },
  9674. "audio/vnd.lucent.voice": {
  9675. source: "iana",
  9676. extensions: [
  9677. "lvp"
  9678. ]
  9679. },
  9680. "audio/vnd.ms-playready.media.pya": {
  9681. source: "iana",
  9682. extensions: [
  9683. "pya"
  9684. ]
  9685. },
  9686. "audio/vnd.nokia.mobile-xmf": {
  9687. source: "iana"
  9688. },
  9689. "audio/vnd.nortel.vbk": {
  9690. source: "iana"
  9691. },
  9692. "audio/vnd.nuera.ecelp4800": {
  9693. source: "iana",
  9694. extensions: [
  9695. "ecelp4800"
  9696. ]
  9697. },
  9698. "audio/vnd.nuera.ecelp7470": {
  9699. source: "iana",
  9700. extensions: [
  9701. "ecelp7470"
  9702. ]
  9703. },
  9704. "audio/vnd.nuera.ecelp9600": {
  9705. source: "iana",
  9706. extensions: [
  9707. "ecelp9600"
  9708. ]
  9709. },
  9710. "audio/vnd.octel.sbc": {
  9711. source: "iana"
  9712. },
  9713. "audio/vnd.presonus.multitrack": {
  9714. source: "iana"
  9715. },
  9716. "audio/vnd.qcelp": {
  9717. source: "iana"
  9718. },
  9719. "audio/vnd.rhetorex.32kadpcm": {
  9720. source: "iana"
  9721. },
  9722. "audio/vnd.rip": {
  9723. source: "iana",
  9724. extensions: [
  9725. "rip"
  9726. ]
  9727. },
  9728. "audio/vnd.rn-realaudio": {
  9729. compressible: false
  9730. },
  9731. "audio/vnd.sealedmedia.softseal.mpeg": {
  9732. source: "iana"
  9733. },
  9734. "audio/vnd.vmx.cvsd": {
  9735. source: "iana"
  9736. },
  9737. "audio/vnd.wave": {
  9738. compressible: false
  9739. },
  9740. "audio/vorbis": {
  9741. source: "iana",
  9742. compressible: false
  9743. },
  9744. "audio/vorbis-config": {
  9745. source: "iana"
  9746. },
  9747. "audio/wav": {
  9748. compressible: false,
  9749. extensions: [
  9750. "wav"
  9751. ]
  9752. },
  9753. "audio/wave": {
  9754. compressible: false,
  9755. extensions: [
  9756. "wav"
  9757. ]
  9758. },
  9759. "audio/webm": {
  9760. source: "apache",
  9761. compressible: false,
  9762. extensions: [
  9763. "weba"
  9764. ]
  9765. },
  9766. "audio/x-aac": {
  9767. source: "apache",
  9768. compressible: false,
  9769. extensions: [
  9770. "aac"
  9771. ]
  9772. },
  9773. "audio/x-aiff": {
  9774. source: "apache",
  9775. extensions: [
  9776. "aif",
  9777. "aiff",
  9778. "aifc"
  9779. ]
  9780. },
  9781. "audio/x-caf": {
  9782. source: "apache",
  9783. compressible: false,
  9784. extensions: [
  9785. "caf"
  9786. ]
  9787. },
  9788. "audio/x-flac": {
  9789. source: "apache",
  9790. extensions: [
  9791. "flac"
  9792. ]
  9793. },
  9794. "audio/x-m4a": {
  9795. source: "nginx",
  9796. extensions: [
  9797. "m4a"
  9798. ]
  9799. },
  9800. "audio/x-matroska": {
  9801. source: "apache",
  9802. extensions: [
  9803. "mka"
  9804. ]
  9805. },
  9806. "audio/x-mpegurl": {
  9807. source: "apache",
  9808. extensions: [
  9809. "m3u"
  9810. ]
  9811. },
  9812. "audio/x-ms-wax": {
  9813. source: "apache",
  9814. extensions: [
  9815. "wax"
  9816. ]
  9817. },
  9818. "audio/x-ms-wma": {
  9819. source: "apache",
  9820. extensions: [
  9821. "wma"
  9822. ]
  9823. },
  9824. "audio/x-pn-realaudio": {
  9825. source: "apache",
  9826. extensions: [
  9827. "ram",
  9828. "ra"
  9829. ]
  9830. },
  9831. "audio/x-pn-realaudio-plugin": {
  9832. source: "apache",
  9833. extensions: [
  9834. "rmp"
  9835. ]
  9836. },
  9837. "audio/x-realaudio": {
  9838. source: "nginx",
  9839. extensions: [
  9840. "ra"
  9841. ]
  9842. },
  9843. "audio/x-tta": {
  9844. source: "apache"
  9845. },
  9846. "audio/x-wav": {
  9847. source: "apache",
  9848. extensions: [
  9849. "wav"
  9850. ]
  9851. },
  9852. "audio/xm": {
  9853. source: "apache",
  9854. extensions: [
  9855. "xm"
  9856. ]
  9857. },
  9858. "chemical/x-cdx": {
  9859. source: "apache",
  9860. extensions: [
  9861. "cdx"
  9862. ]
  9863. },
  9864. "chemical/x-cif": {
  9865. source: "apache",
  9866. extensions: [
  9867. "cif"
  9868. ]
  9869. },
  9870. "chemical/x-cmdf": {
  9871. source: "apache",
  9872. extensions: [
  9873. "cmdf"
  9874. ]
  9875. },
  9876. "chemical/x-cml": {
  9877. source: "apache",
  9878. extensions: [
  9879. "cml"
  9880. ]
  9881. },
  9882. "chemical/x-csml": {
  9883. source: "apache",
  9884. extensions: [
  9885. "csml"
  9886. ]
  9887. },
  9888. "chemical/x-pdb": {
  9889. source: "apache"
  9890. },
  9891. "chemical/x-xyz": {
  9892. source: "apache",
  9893. extensions: [
  9894. "xyz"
  9895. ]
  9896. },
  9897. "font/collection": {
  9898. source: "iana",
  9899. extensions: [
  9900. "ttc"
  9901. ]
  9902. },
  9903. "font/otf": {
  9904. source: "iana",
  9905. compressible: true,
  9906. extensions: [
  9907. "otf"
  9908. ]
  9909. },
  9910. "font/sfnt": {
  9911. source: "iana"
  9912. },
  9913. "font/ttf": {
  9914. source: "iana",
  9915. compressible: true,
  9916. extensions: [
  9917. "ttf"
  9918. ]
  9919. },
  9920. "font/woff": {
  9921. source: "iana",
  9922. extensions: [
  9923. "woff"
  9924. ]
  9925. },
  9926. "font/woff2": {
  9927. source: "iana",
  9928. extensions: [
  9929. "woff2"
  9930. ]
  9931. },
  9932. "image/aces": {
  9933. source: "iana",
  9934. extensions: [
  9935. "exr"
  9936. ]
  9937. },
  9938. "image/apng": {
  9939. compressible: false,
  9940. extensions: [
  9941. "apng"
  9942. ]
  9943. },
  9944. "image/avci": {
  9945. source: "iana"
  9946. },
  9947. "image/avcs": {
  9948. source: "iana"
  9949. },
  9950. "image/avif": {
  9951. source: "iana",
  9952. compressible: false,
  9953. extensions: [
  9954. "avif"
  9955. ]
  9956. },
  9957. "image/bmp": {
  9958. source: "iana",
  9959. compressible: true,
  9960. extensions: [
  9961. "bmp"
  9962. ]
  9963. },
  9964. "image/cgm": {
  9965. source: "iana",
  9966. extensions: [
  9967. "cgm"
  9968. ]
  9969. },
  9970. "image/dicom-rle": {
  9971. source: "iana",
  9972. extensions: [
  9973. "drle"
  9974. ]
  9975. },
  9976. "image/emf": {
  9977. source: "iana",
  9978. extensions: [
  9979. "emf"
  9980. ]
  9981. },
  9982. "image/fits": {
  9983. source: "iana",
  9984. extensions: [
  9985. "fits"
  9986. ]
  9987. },
  9988. "image/g3fax": {
  9989. source: "iana",
  9990. extensions: [
  9991. "g3"
  9992. ]
  9993. },
  9994. "image/gif": {
  9995. source: "iana",
  9996. compressible: false,
  9997. extensions: [
  9998. "gif"
  9999. ]
  10000. },
  10001. "image/heic": {
  10002. source: "iana",
  10003. extensions: [
  10004. "heic"
  10005. ]
  10006. },
  10007. "image/heic-sequence": {
  10008. source: "iana",
  10009. extensions: [
  10010. "heics"
  10011. ]
  10012. },
  10013. "image/heif": {
  10014. source: "iana",
  10015. extensions: [
  10016. "heif"
  10017. ]
  10018. },
  10019. "image/heif-sequence": {
  10020. source: "iana",
  10021. extensions: [
  10022. "heifs"
  10023. ]
  10024. },
  10025. "image/hej2k": {
  10026. source: "iana",
  10027. extensions: [
  10028. "hej2"
  10029. ]
  10030. },
  10031. "image/hsj2": {
  10032. source: "iana",
  10033. extensions: [
  10034. "hsj2"
  10035. ]
  10036. },
  10037. "image/ief": {
  10038. source: "iana",
  10039. extensions: [
  10040. "ief"
  10041. ]
  10042. },
  10043. "image/jls": {
  10044. source: "iana",
  10045. extensions: [
  10046. "jls"
  10047. ]
  10048. },
  10049. "image/jp2": {
  10050. source: "iana",
  10051. compressible: false,
  10052. extensions: [
  10053. "jp2",
  10054. "jpg2"
  10055. ]
  10056. },
  10057. "image/jpeg": {
  10058. source: "iana",
  10059. compressible: false,
  10060. extensions: [
  10061. "jpeg",
  10062. "jpg",
  10063. "jpe"
  10064. ]
  10065. },
  10066. "image/jph": {
  10067. source: "iana",
  10068. extensions: [
  10069. "jph"
  10070. ]
  10071. },
  10072. "image/jphc": {
  10073. source: "iana",
  10074. extensions: [
  10075. "jhc"
  10076. ]
  10077. },
  10078. "image/jpm": {
  10079. source: "iana",
  10080. compressible: false,
  10081. extensions: [
  10082. "jpm"
  10083. ]
  10084. },
  10085. "image/jpx": {
  10086. source: "iana",
  10087. compressible: false,
  10088. extensions: [
  10089. "jpx",
  10090. "jpf"
  10091. ]
  10092. },
  10093. "image/jxr": {
  10094. source: "iana",
  10095. extensions: [
  10096. "jxr"
  10097. ]
  10098. },
  10099. "image/jxra": {
  10100. source: "iana",
  10101. extensions: [
  10102. "jxra"
  10103. ]
  10104. },
  10105. "image/jxrs": {
  10106. source: "iana",
  10107. extensions: [
  10108. "jxrs"
  10109. ]
  10110. },
  10111. "image/jxs": {
  10112. source: "iana",
  10113. extensions: [
  10114. "jxs"
  10115. ]
  10116. },
  10117. "image/jxsc": {
  10118. source: "iana",
  10119. extensions: [
  10120. "jxsc"
  10121. ]
  10122. },
  10123. "image/jxsi": {
  10124. source: "iana",
  10125. extensions: [
  10126. "jxsi"
  10127. ]
  10128. },
  10129. "image/jxss": {
  10130. source: "iana",
  10131. extensions: [
  10132. "jxss"
  10133. ]
  10134. },
  10135. "image/ktx": {
  10136. source: "iana",
  10137. extensions: [
  10138. "ktx"
  10139. ]
  10140. },
  10141. "image/ktx2": {
  10142. source: "iana",
  10143. extensions: [
  10144. "ktx2"
  10145. ]
  10146. },
  10147. "image/naplps": {
  10148. source: "iana"
  10149. },
  10150. "image/pjpeg": {
  10151. compressible: false
  10152. },
  10153. "image/png": {
  10154. source: "iana",
  10155. compressible: false,
  10156. extensions: [
  10157. "png"
  10158. ]
  10159. },
  10160. "image/prs.btif": {
  10161. source: "iana",
  10162. extensions: [
  10163. "btif"
  10164. ]
  10165. },
  10166. "image/prs.pti": {
  10167. source: "iana",
  10168. extensions: [
  10169. "pti"
  10170. ]
  10171. },
  10172. "image/pwg-raster": {
  10173. source: "iana"
  10174. },
  10175. "image/sgi": {
  10176. source: "apache",
  10177. extensions: [
  10178. "sgi"
  10179. ]
  10180. },
  10181. "image/svg+xml": {
  10182. source: "iana",
  10183. compressible: true,
  10184. extensions: [
  10185. "svg",
  10186. "svgz"
  10187. ]
  10188. },
  10189. "image/t38": {
  10190. source: "iana",
  10191. extensions: [
  10192. "t38"
  10193. ]
  10194. },
  10195. "image/tiff": {
  10196. source: "iana",
  10197. compressible: false,
  10198. extensions: [
  10199. "tif",
  10200. "tiff"
  10201. ]
  10202. },
  10203. "image/tiff-fx": {
  10204. source: "iana",
  10205. extensions: [
  10206. "tfx"
  10207. ]
  10208. },
  10209. "image/vnd.adobe.photoshop": {
  10210. source: "iana",
  10211. compressible: true,
  10212. extensions: [
  10213. "psd"
  10214. ]
  10215. },
  10216. "image/vnd.airzip.accelerator.azv": {
  10217. source: "iana",
  10218. extensions: [
  10219. "azv"
  10220. ]
  10221. },
  10222. "image/vnd.cns.inf2": {
  10223. source: "iana"
  10224. },
  10225. "image/vnd.dece.graphic": {
  10226. source: "iana",
  10227. extensions: [
  10228. "uvi",
  10229. "uvvi",
  10230. "uvg",
  10231. "uvvg"
  10232. ]
  10233. },
  10234. "image/vnd.djvu": {
  10235. source: "iana",
  10236. extensions: [
  10237. "djvu",
  10238. "djv"
  10239. ]
  10240. },
  10241. "image/vnd.dvb.subtitle": {
  10242. source: "iana",
  10243. extensions: [
  10244. "sub"
  10245. ]
  10246. },
  10247. "image/vnd.dwg": {
  10248. source: "iana",
  10249. extensions: [
  10250. "dwg"
  10251. ]
  10252. },
  10253. "image/vnd.dxf": {
  10254. source: "iana",
  10255. extensions: [
  10256. "dxf"
  10257. ]
  10258. },
  10259. "image/vnd.fastbidsheet": {
  10260. source: "iana",
  10261. extensions: [
  10262. "fbs"
  10263. ]
  10264. },
  10265. "image/vnd.fpx": {
  10266. source: "iana",
  10267. extensions: [
  10268. "fpx"
  10269. ]
  10270. },
  10271. "image/vnd.fst": {
  10272. source: "iana",
  10273. extensions: [
  10274. "fst"
  10275. ]
  10276. },
  10277. "image/vnd.fujixerox.edmics-mmr": {
  10278. source: "iana",
  10279. extensions: [
  10280. "mmr"
  10281. ]
  10282. },
  10283. "image/vnd.fujixerox.edmics-rlc": {
  10284. source: "iana",
  10285. extensions: [
  10286. "rlc"
  10287. ]
  10288. },
  10289. "image/vnd.globalgraphics.pgb": {
  10290. source: "iana"
  10291. },
  10292. "image/vnd.microsoft.icon": {
  10293. source: "iana",
  10294. extensions: [
  10295. "ico"
  10296. ]
  10297. },
  10298. "image/vnd.mix": {
  10299. source: "iana"
  10300. },
  10301. "image/vnd.mozilla.apng": {
  10302. source: "iana"
  10303. },
  10304. "image/vnd.ms-dds": {
  10305. extensions: [
  10306. "dds"
  10307. ]
  10308. },
  10309. "image/vnd.ms-modi": {
  10310. source: "iana",
  10311. extensions: [
  10312. "mdi"
  10313. ]
  10314. },
  10315. "image/vnd.ms-photo": {
  10316. source: "apache",
  10317. extensions: [
  10318. "wdp"
  10319. ]
  10320. },
  10321. "image/vnd.net-fpx": {
  10322. source: "iana",
  10323. extensions: [
  10324. "npx"
  10325. ]
  10326. },
  10327. "image/vnd.pco.b16": {
  10328. source: "iana",
  10329. extensions: [
  10330. "b16"
  10331. ]
  10332. },
  10333. "image/vnd.radiance": {
  10334. source: "iana"
  10335. },
  10336. "image/vnd.sealed.png": {
  10337. source: "iana"
  10338. },
  10339. "image/vnd.sealedmedia.softseal.gif": {
  10340. source: "iana"
  10341. },
  10342. "image/vnd.sealedmedia.softseal.jpg": {
  10343. source: "iana"
  10344. },
  10345. "image/vnd.svf": {
  10346. source: "iana"
  10347. },
  10348. "image/vnd.tencent.tap": {
  10349. source: "iana",
  10350. extensions: [
  10351. "tap"
  10352. ]
  10353. },
  10354. "image/vnd.valve.source.texture": {
  10355. source: "iana",
  10356. extensions: [
  10357. "vtf"
  10358. ]
  10359. },
  10360. "image/vnd.wap.wbmp": {
  10361. source: "iana",
  10362. extensions: [
  10363. "wbmp"
  10364. ]
  10365. },
  10366. "image/vnd.xiff": {
  10367. source: "iana",
  10368. extensions: [
  10369. "xif"
  10370. ]
  10371. },
  10372. "image/vnd.zbrush.pcx": {
  10373. source: "iana",
  10374. extensions: [
  10375. "pcx"
  10376. ]
  10377. },
  10378. "image/webp": {
  10379. source: "apache",
  10380. extensions: [
  10381. "webp"
  10382. ]
  10383. },
  10384. "image/wmf": {
  10385. source: "iana",
  10386. extensions: [
  10387. "wmf"
  10388. ]
  10389. },
  10390. "image/x-3ds": {
  10391. source: "apache",
  10392. extensions: [
  10393. "3ds"
  10394. ]
  10395. },
  10396. "image/x-cmu-raster": {
  10397. source: "apache",
  10398. extensions: [
  10399. "ras"
  10400. ]
  10401. },
  10402. "image/x-cmx": {
  10403. source: "apache",
  10404. extensions: [
  10405. "cmx"
  10406. ]
  10407. },
  10408. "image/x-freehand": {
  10409. source: "apache",
  10410. extensions: [
  10411. "fh",
  10412. "fhc",
  10413. "fh4",
  10414. "fh5",
  10415. "fh7"
  10416. ]
  10417. },
  10418. "image/x-icon": {
  10419. source: "apache",
  10420. compressible: true,
  10421. extensions: [
  10422. "ico"
  10423. ]
  10424. },
  10425. "image/x-jng": {
  10426. source: "nginx",
  10427. extensions: [
  10428. "jng"
  10429. ]
  10430. },
  10431. "image/x-mrsid-image": {
  10432. source: "apache",
  10433. extensions: [
  10434. "sid"
  10435. ]
  10436. },
  10437. "image/x-ms-bmp": {
  10438. source: "nginx",
  10439. compressible: true,
  10440. extensions: [
  10441. "bmp"
  10442. ]
  10443. },
  10444. "image/x-pcx": {
  10445. source: "apache",
  10446. extensions: [
  10447. "pcx"
  10448. ]
  10449. },
  10450. "image/x-pict": {
  10451. source: "apache",
  10452. extensions: [
  10453. "pic",
  10454. "pct"
  10455. ]
  10456. },
  10457. "image/x-portable-anymap": {
  10458. source: "apache",
  10459. extensions: [
  10460. "pnm"
  10461. ]
  10462. },
  10463. "image/x-portable-bitmap": {
  10464. source: "apache",
  10465. extensions: [
  10466. "pbm"
  10467. ]
  10468. },
  10469. "image/x-portable-graymap": {
  10470. source: "apache",
  10471. extensions: [
  10472. "pgm"
  10473. ]
  10474. },
  10475. "image/x-portable-pixmap": {
  10476. source: "apache",
  10477. extensions: [
  10478. "ppm"
  10479. ]
  10480. },
  10481. "image/x-rgb": {
  10482. source: "apache",
  10483. extensions: [
  10484. "rgb"
  10485. ]
  10486. },
  10487. "image/x-tga": {
  10488. source: "apache",
  10489. extensions: [
  10490. "tga"
  10491. ]
  10492. },
  10493. "image/x-xbitmap": {
  10494. source: "apache",
  10495. extensions: [
  10496. "xbm"
  10497. ]
  10498. },
  10499. "image/x-xcf": {
  10500. compressible: false
  10501. },
  10502. "image/x-xpixmap": {
  10503. source: "apache",
  10504. extensions: [
  10505. "xpm"
  10506. ]
  10507. },
  10508. "image/x-xwindowdump": {
  10509. source: "apache",
  10510. extensions: [
  10511. "xwd"
  10512. ]
  10513. },
  10514. "message/cpim": {
  10515. source: "iana"
  10516. },
  10517. "message/delivery-status": {
  10518. source: "iana"
  10519. },
  10520. "message/disposition-notification": {
  10521. source: "iana",
  10522. extensions: [
  10523. "disposition-notification"
  10524. ]
  10525. },
  10526. "message/external-body": {
  10527. source: "iana"
  10528. },
  10529. "message/feedback-report": {
  10530. source: "iana"
  10531. },
  10532. "message/global": {
  10533. source: "iana",
  10534. extensions: [
  10535. "u8msg"
  10536. ]
  10537. },
  10538. "message/global-delivery-status": {
  10539. source: "iana",
  10540. extensions: [
  10541. "u8dsn"
  10542. ]
  10543. },
  10544. "message/global-disposition-notification": {
  10545. source: "iana",
  10546. extensions: [
  10547. "u8mdn"
  10548. ]
  10549. },
  10550. "message/global-headers": {
  10551. source: "iana",
  10552. extensions: [
  10553. "u8hdr"
  10554. ]
  10555. },
  10556. "message/http": {
  10557. source: "iana",
  10558. compressible: false
  10559. },
  10560. "message/imdn+xml": {
  10561. source: "iana",
  10562. compressible: true
  10563. },
  10564. "message/news": {
  10565. source: "iana"
  10566. },
  10567. "message/partial": {
  10568. source: "iana",
  10569. compressible: false
  10570. },
  10571. "message/rfc822": {
  10572. source: "iana",
  10573. compressible: true,
  10574. extensions: [
  10575. "eml",
  10576. "mime"
  10577. ]
  10578. },
  10579. "message/s-http": {
  10580. source: "iana"
  10581. },
  10582. "message/sip": {
  10583. source: "iana"
  10584. },
  10585. "message/sipfrag": {
  10586. source: "iana"
  10587. },
  10588. "message/tracking-status": {
  10589. source: "iana"
  10590. },
  10591. "message/vnd.si.simp": {
  10592. source: "iana"
  10593. },
  10594. "message/vnd.wfa.wsc": {
  10595. source: "iana",
  10596. extensions: [
  10597. "wsc"
  10598. ]
  10599. },
  10600. "model/3mf": {
  10601. source: "iana",
  10602. extensions: [
  10603. "3mf"
  10604. ]
  10605. },
  10606. "model/e57": {
  10607. source: "iana"
  10608. },
  10609. "model/gltf+json": {
  10610. source: "iana",
  10611. compressible: true,
  10612. extensions: [
  10613. "gltf"
  10614. ]
  10615. },
  10616. "model/gltf-binary": {
  10617. source: "iana",
  10618. compressible: true,
  10619. extensions: [
  10620. "glb"
  10621. ]
  10622. },
  10623. "model/iges": {
  10624. source: "iana",
  10625. compressible: false,
  10626. extensions: [
  10627. "igs",
  10628. "iges"
  10629. ]
  10630. },
  10631. "model/mesh": {
  10632. source: "iana",
  10633. compressible: false,
  10634. extensions: [
  10635. "msh",
  10636. "mesh",
  10637. "silo"
  10638. ]
  10639. },
  10640. "model/mtl": {
  10641. source: "iana",
  10642. extensions: [
  10643. "mtl"
  10644. ]
  10645. },
  10646. "model/obj": {
  10647. source: "iana",
  10648. extensions: [
  10649. "obj"
  10650. ]
  10651. },
  10652. "model/step+zip": {
  10653. source: "iana",
  10654. compressible: false,
  10655. extensions: [
  10656. "stpz"
  10657. ]
  10658. },
  10659. "model/step-xml+zip": {
  10660. source: "iana",
  10661. compressible: false,
  10662. extensions: [
  10663. "stpxz"
  10664. ]
  10665. },
  10666. "model/stl": {
  10667. source: "iana",
  10668. extensions: [
  10669. "stl"
  10670. ]
  10671. },
  10672. "model/vnd.collada+xml": {
  10673. source: "iana",
  10674. compressible: true,
  10675. extensions: [
  10676. "dae"
  10677. ]
  10678. },
  10679. "model/vnd.dwf": {
  10680. source: "iana",
  10681. extensions: [
  10682. "dwf"
  10683. ]
  10684. },
  10685. "model/vnd.flatland.3dml": {
  10686. source: "iana"
  10687. },
  10688. "model/vnd.gdl": {
  10689. source: "iana",
  10690. extensions: [
  10691. "gdl"
  10692. ]
  10693. },
  10694. "model/vnd.gs-gdl": {
  10695. source: "apache"
  10696. },
  10697. "model/vnd.gs.gdl": {
  10698. source: "iana"
  10699. },
  10700. "model/vnd.gtw": {
  10701. source: "iana",
  10702. extensions: [
  10703. "gtw"
  10704. ]
  10705. },
  10706. "model/vnd.moml+xml": {
  10707. source: "iana",
  10708. compressible: true
  10709. },
  10710. "model/vnd.mts": {
  10711. source: "iana",
  10712. extensions: [
  10713. "mts"
  10714. ]
  10715. },
  10716. "model/vnd.opengex": {
  10717. source: "iana",
  10718. extensions: [
  10719. "ogex"
  10720. ]
  10721. },
  10722. "model/vnd.parasolid.transmit.binary": {
  10723. source: "iana",
  10724. extensions: [
  10725. "x_b"
  10726. ]
  10727. },
  10728. "model/vnd.parasolid.transmit.text": {
  10729. source: "iana",
  10730. extensions: [
  10731. "x_t"
  10732. ]
  10733. },
  10734. "model/vnd.pytha.pyox": {
  10735. source: "iana"
  10736. },
  10737. "model/vnd.rosette.annotated-data-model": {
  10738. source: "iana"
  10739. },
  10740. "model/vnd.sap.vds": {
  10741. source: "iana",
  10742. extensions: [
  10743. "vds"
  10744. ]
  10745. },
  10746. "model/vnd.usdz+zip": {
  10747. source: "iana",
  10748. compressible: false,
  10749. extensions: [
  10750. "usdz"
  10751. ]
  10752. },
  10753. "model/vnd.valve.source.compiled-map": {
  10754. source: "iana",
  10755. extensions: [
  10756. "bsp"
  10757. ]
  10758. },
  10759. "model/vnd.vtu": {
  10760. source: "iana",
  10761. extensions: [
  10762. "vtu"
  10763. ]
  10764. },
  10765. "model/vrml": {
  10766. source: "iana",
  10767. compressible: false,
  10768. extensions: [
  10769. "wrl",
  10770. "vrml"
  10771. ]
  10772. },
  10773. "model/x3d+binary": {
  10774. source: "apache",
  10775. compressible: false,
  10776. extensions: [
  10777. "x3db",
  10778. "x3dbz"
  10779. ]
  10780. },
  10781. "model/x3d+fastinfoset": {
  10782. source: "iana",
  10783. extensions: [
  10784. "x3db"
  10785. ]
  10786. },
  10787. "model/x3d+vrml": {
  10788. source: "apache",
  10789. compressible: false,
  10790. extensions: [
  10791. "x3dv",
  10792. "x3dvz"
  10793. ]
  10794. },
  10795. "model/x3d+xml": {
  10796. source: "iana",
  10797. compressible: true,
  10798. extensions: [
  10799. "x3d",
  10800. "x3dz"
  10801. ]
  10802. },
  10803. "model/x3d-vrml": {
  10804. source: "iana",
  10805. extensions: [
  10806. "x3dv"
  10807. ]
  10808. },
  10809. "multipart/alternative": {
  10810. source: "iana",
  10811. compressible: false
  10812. },
  10813. "multipart/appledouble": {
  10814. source: "iana"
  10815. },
  10816. "multipart/byteranges": {
  10817. source: "iana"
  10818. },
  10819. "multipart/digest": {
  10820. source: "iana"
  10821. },
  10822. "multipart/encrypted": {
  10823. source: "iana",
  10824. compressible: false
  10825. },
  10826. "multipart/form-data": {
  10827. source: "iana",
  10828. compressible: false
  10829. },
  10830. "multipart/header-set": {
  10831. source: "iana"
  10832. },
  10833. "multipart/mixed": {
  10834. source: "iana"
  10835. },
  10836. "multipart/multilingual": {
  10837. source: "iana"
  10838. },
  10839. "multipart/parallel": {
  10840. source: "iana"
  10841. },
  10842. "multipart/related": {
  10843. source: "iana",
  10844. compressible: false
  10845. },
  10846. "multipart/report": {
  10847. source: "iana"
  10848. },
  10849. "multipart/signed": {
  10850. source: "iana",
  10851. compressible: false
  10852. },
  10853. "multipart/vnd.bint.med-plus": {
  10854. source: "iana"
  10855. },
  10856. "multipart/voice-message": {
  10857. source: "iana"
  10858. },
  10859. "multipart/x-mixed-replace": {
  10860. source: "iana"
  10861. },
  10862. "text/1d-interleaved-parityfec": {
  10863. source: "iana"
  10864. },
  10865. "text/cache-manifest": {
  10866. source: "iana",
  10867. compressible: true,
  10868. extensions: [
  10869. "appcache",
  10870. "manifest"
  10871. ]
  10872. },
  10873. "text/calendar": {
  10874. source: "iana",
  10875. extensions: [
  10876. "ics",
  10877. "ifb"
  10878. ]
  10879. },
  10880. "text/calender": {
  10881. compressible: true
  10882. },
  10883. "text/cmd": {
  10884. compressible: true
  10885. },
  10886. "text/coffeescript": {
  10887. extensions: [
  10888. "coffee",
  10889. "litcoffee"
  10890. ]
  10891. },
  10892. "text/cql": {
  10893. source: "iana"
  10894. },
  10895. "text/cql-expression": {
  10896. source: "iana"
  10897. },
  10898. "text/cql-identifier": {
  10899. source: "iana"
  10900. },
  10901. "text/css": {
  10902. source: "iana",
  10903. charset: "UTF-8",
  10904. compressible: true,
  10905. extensions: [
  10906. "css"
  10907. ]
  10908. },
  10909. "text/csv": {
  10910. source: "iana",
  10911. compressible: true,
  10912. extensions: [
  10913. "csv"
  10914. ]
  10915. },
  10916. "text/csv-schema": {
  10917. source: "iana"
  10918. },
  10919. "text/directory": {
  10920. source: "iana"
  10921. },
  10922. "text/dns": {
  10923. source: "iana"
  10924. },
  10925. "text/ecmascript": {
  10926. source: "iana"
  10927. },
  10928. "text/encaprtp": {
  10929. source: "iana"
  10930. },
  10931. "text/enriched": {
  10932. source: "iana"
  10933. },
  10934. "text/fhirpath": {
  10935. source: "iana"
  10936. },
  10937. "text/flexfec": {
  10938. source: "iana"
  10939. },
  10940. "text/fwdred": {
  10941. source: "iana"
  10942. },
  10943. "text/gff3": {
  10944. source: "iana"
  10945. },
  10946. "text/grammar-ref-list": {
  10947. source: "iana"
  10948. },
  10949. "text/html": {
  10950. source: "iana",
  10951. compressible: true,
  10952. extensions: [
  10953. "html",
  10954. "htm",
  10955. "shtml"
  10956. ]
  10957. },
  10958. "text/jade": {
  10959. extensions: [
  10960. "jade"
  10961. ]
  10962. },
  10963. "text/javascript": {
  10964. source: "iana",
  10965. compressible: true
  10966. },
  10967. "text/jcr-cnd": {
  10968. source: "iana"
  10969. },
  10970. "text/jsx": {
  10971. compressible: true,
  10972. extensions: [
  10973. "jsx"
  10974. ]
  10975. },
  10976. "text/less": {
  10977. compressible: true,
  10978. extensions: [
  10979. "less"
  10980. ]
  10981. },
  10982. "text/markdown": {
  10983. source: "iana",
  10984. compressible: true,
  10985. extensions: [
  10986. "markdown",
  10987. "md"
  10988. ]
  10989. },
  10990. "text/mathml": {
  10991. source: "nginx",
  10992. extensions: [
  10993. "mml"
  10994. ]
  10995. },
  10996. "text/mdx": {
  10997. compressible: true,
  10998. extensions: [
  10999. "mdx"
  11000. ]
  11001. },
  11002. "text/mizar": {
  11003. source: "iana"
  11004. },
  11005. "text/n3": {
  11006. source: "iana",
  11007. charset: "UTF-8",
  11008. compressible: true,
  11009. extensions: [
  11010. "n3"
  11011. ]
  11012. },
  11013. "text/parameters": {
  11014. source: "iana",
  11015. charset: "UTF-8"
  11016. },
  11017. "text/parityfec": {
  11018. source: "iana"
  11019. },
  11020. "text/plain": {
  11021. source: "iana",
  11022. compressible: true,
  11023. extensions: [
  11024. "txt",
  11025. "text",
  11026. "conf",
  11027. "def",
  11028. "list",
  11029. "log",
  11030. "in",
  11031. "ini"
  11032. ]
  11033. },
  11034. "text/provenance-notation": {
  11035. source: "iana",
  11036. charset: "UTF-8"
  11037. },
  11038. "text/prs.fallenstein.rst": {
  11039. source: "iana"
  11040. },
  11041. "text/prs.lines.tag": {
  11042. source: "iana",
  11043. extensions: [
  11044. "dsc"
  11045. ]
  11046. },
  11047. "text/prs.prop.logic": {
  11048. source: "iana"
  11049. },
  11050. "text/raptorfec": {
  11051. source: "iana"
  11052. },
  11053. "text/red": {
  11054. source: "iana"
  11055. },
  11056. "text/rfc822-headers": {
  11057. source: "iana"
  11058. },
  11059. "text/richtext": {
  11060. source: "iana",
  11061. compressible: true,
  11062. extensions: [
  11063. "rtx"
  11064. ]
  11065. },
  11066. "text/rtf": {
  11067. source: "iana",
  11068. compressible: true,
  11069. extensions: [
  11070. "rtf"
  11071. ]
  11072. },
  11073. "text/rtp-enc-aescm128": {
  11074. source: "iana"
  11075. },
  11076. "text/rtploopback": {
  11077. source: "iana"
  11078. },
  11079. "text/rtx": {
  11080. source: "iana"
  11081. },
  11082. "text/sgml": {
  11083. source: "iana",
  11084. extensions: [
  11085. "sgml",
  11086. "sgm"
  11087. ]
  11088. },
  11089. "text/shaclc": {
  11090. source: "iana"
  11091. },
  11092. "text/shex": {
  11093. source: "iana",
  11094. extensions: [
  11095. "shex"
  11096. ]
  11097. },
  11098. "text/slim": {
  11099. extensions: [
  11100. "slim",
  11101. "slm"
  11102. ]
  11103. },
  11104. "text/spdx": {
  11105. source: "iana",
  11106. extensions: [
  11107. "spdx"
  11108. ]
  11109. },
  11110. "text/strings": {
  11111. source: "iana"
  11112. },
  11113. "text/stylus": {
  11114. extensions: [
  11115. "stylus",
  11116. "styl"
  11117. ]
  11118. },
  11119. "text/t140": {
  11120. source: "iana"
  11121. },
  11122. "text/tab-separated-values": {
  11123. source: "iana",
  11124. compressible: true,
  11125. extensions: [
  11126. "tsv"
  11127. ]
  11128. },
  11129. "text/troff": {
  11130. source: "iana",
  11131. extensions: [
  11132. "t",
  11133. "tr",
  11134. "roff",
  11135. "man",
  11136. "me",
  11137. "ms"
  11138. ]
  11139. },
  11140. "text/turtle": {
  11141. source: "iana",
  11142. charset: "UTF-8",
  11143. extensions: [
  11144. "ttl"
  11145. ]
  11146. },
  11147. "text/ulpfec": {
  11148. source: "iana"
  11149. },
  11150. "text/uri-list": {
  11151. source: "iana",
  11152. compressible: true,
  11153. extensions: [
  11154. "uri",
  11155. "uris",
  11156. "urls"
  11157. ]
  11158. },
  11159. "text/vcard": {
  11160. source: "iana",
  11161. compressible: true,
  11162. extensions: [
  11163. "vcard"
  11164. ]
  11165. },
  11166. "text/vnd.a": {
  11167. source: "iana"
  11168. },
  11169. "text/vnd.abc": {
  11170. source: "iana"
  11171. },
  11172. "text/vnd.ascii-art": {
  11173. source: "iana"
  11174. },
  11175. "text/vnd.curl": {
  11176. source: "iana",
  11177. extensions: [
  11178. "curl"
  11179. ]
  11180. },
  11181. "text/vnd.curl.dcurl": {
  11182. source: "apache",
  11183. extensions: [
  11184. "dcurl"
  11185. ]
  11186. },
  11187. "text/vnd.curl.mcurl": {
  11188. source: "apache",
  11189. extensions: [
  11190. "mcurl"
  11191. ]
  11192. },
  11193. "text/vnd.curl.scurl": {
  11194. source: "apache",
  11195. extensions: [
  11196. "scurl"
  11197. ]
  11198. },
  11199. "text/vnd.debian.copyright": {
  11200. source: "iana",
  11201. charset: "UTF-8"
  11202. },
  11203. "text/vnd.dmclientscript": {
  11204. source: "iana"
  11205. },
  11206. "text/vnd.dvb.subtitle": {
  11207. source: "iana",
  11208. extensions: [
  11209. "sub"
  11210. ]
  11211. },
  11212. "text/vnd.esmertec.theme-descriptor": {
  11213. source: "iana",
  11214. charset: "UTF-8"
  11215. },
  11216. "text/vnd.ficlab.flt": {
  11217. source: "iana"
  11218. },
  11219. "text/vnd.fly": {
  11220. source: "iana",
  11221. extensions: [
  11222. "fly"
  11223. ]
  11224. },
  11225. "text/vnd.fmi.flexstor": {
  11226. source: "iana",
  11227. extensions: [
  11228. "flx"
  11229. ]
  11230. },
  11231. "text/vnd.gml": {
  11232. source: "iana"
  11233. },
  11234. "text/vnd.graphviz": {
  11235. source: "iana",
  11236. extensions: [
  11237. "gv"
  11238. ]
  11239. },
  11240. "text/vnd.hans": {
  11241. source: "iana"
  11242. },
  11243. "text/vnd.hgl": {
  11244. source: "iana"
  11245. },
  11246. "text/vnd.in3d.3dml": {
  11247. source: "iana",
  11248. extensions: [
  11249. "3dml"
  11250. ]
  11251. },
  11252. "text/vnd.in3d.spot": {
  11253. source: "iana",
  11254. extensions: [
  11255. "spot"
  11256. ]
  11257. },
  11258. "text/vnd.iptc.newsml": {
  11259. source: "iana"
  11260. },
  11261. "text/vnd.iptc.nitf": {
  11262. source: "iana"
  11263. },
  11264. "text/vnd.latex-z": {
  11265. source: "iana"
  11266. },
  11267. "text/vnd.motorola.reflex": {
  11268. source: "iana"
  11269. },
  11270. "text/vnd.ms-mediapackage": {
  11271. source: "iana"
  11272. },
  11273. "text/vnd.net2phone.commcenter.command": {
  11274. source: "iana"
  11275. },
  11276. "text/vnd.radisys.msml-basic-layout": {
  11277. source: "iana"
  11278. },
  11279. "text/vnd.senx.warpscript": {
  11280. source: "iana"
  11281. },
  11282. "text/vnd.si.uricatalogue": {
  11283. source: "iana"
  11284. },
  11285. "text/vnd.sosi": {
  11286. source: "iana"
  11287. },
  11288. "text/vnd.sun.j2me.app-descriptor": {
  11289. source: "iana",
  11290. charset: "UTF-8",
  11291. extensions: [
  11292. "jad"
  11293. ]
  11294. },
  11295. "text/vnd.trolltech.linguist": {
  11296. source: "iana",
  11297. charset: "UTF-8"
  11298. },
  11299. "text/vnd.wap.si": {
  11300. source: "iana"
  11301. },
  11302. "text/vnd.wap.sl": {
  11303. source: "iana"
  11304. },
  11305. "text/vnd.wap.wml": {
  11306. source: "iana",
  11307. extensions: [
  11308. "wml"
  11309. ]
  11310. },
  11311. "text/vnd.wap.wmlscript": {
  11312. source: "iana",
  11313. extensions: [
  11314. "wmls"
  11315. ]
  11316. },
  11317. "text/vtt": {
  11318. source: "iana",
  11319. charset: "UTF-8",
  11320. compressible: true,
  11321. extensions: [
  11322. "vtt"
  11323. ]
  11324. },
  11325. "text/x-asm": {
  11326. source: "apache",
  11327. extensions: [
  11328. "s",
  11329. "asm"
  11330. ]
  11331. },
  11332. "text/x-c": {
  11333. source: "apache",
  11334. extensions: [
  11335. "c",
  11336. "cc",
  11337. "cxx",
  11338. "cpp",
  11339. "h",
  11340. "hh",
  11341. "dic"
  11342. ]
  11343. },
  11344. "text/x-component": {
  11345. source: "nginx",
  11346. extensions: [
  11347. "htc"
  11348. ]
  11349. },
  11350. "text/x-fortran": {
  11351. source: "apache",
  11352. extensions: [
  11353. "f",
  11354. "for",
  11355. "f77",
  11356. "f90"
  11357. ]
  11358. },
  11359. "text/x-gwt-rpc": {
  11360. compressible: true
  11361. },
  11362. "text/x-handlebars-template": {
  11363. extensions: [
  11364. "hbs"
  11365. ]
  11366. },
  11367. "text/x-java-source": {
  11368. source: "apache",
  11369. extensions: [
  11370. "java"
  11371. ]
  11372. },
  11373. "text/x-jquery-tmpl": {
  11374. compressible: true
  11375. },
  11376. "text/x-lua": {
  11377. extensions: [
  11378. "lua"
  11379. ]
  11380. },
  11381. "text/x-markdown": {
  11382. compressible: true,
  11383. extensions: [
  11384. "mkd"
  11385. ]
  11386. },
  11387. "text/x-nfo": {
  11388. source: "apache",
  11389. extensions: [
  11390. "nfo"
  11391. ]
  11392. },
  11393. "text/x-opml": {
  11394. source: "apache",
  11395. extensions: [
  11396. "opml"
  11397. ]
  11398. },
  11399. "text/x-org": {
  11400. compressible: true,
  11401. extensions: [
  11402. "org"
  11403. ]
  11404. },
  11405. "text/x-pascal": {
  11406. source: "apache",
  11407. extensions: [
  11408. "p",
  11409. "pas"
  11410. ]
  11411. },
  11412. "text/x-processing": {
  11413. compressible: true,
  11414. extensions: [
  11415. "pde"
  11416. ]
  11417. },
  11418. "text/x-sass": {
  11419. extensions: [
  11420. "sass"
  11421. ]
  11422. },
  11423. "text/x-scss": {
  11424. extensions: [
  11425. "scss"
  11426. ]
  11427. },
  11428. "text/x-setext": {
  11429. source: "apache",
  11430. extensions: [
  11431. "etx"
  11432. ]
  11433. },
  11434. "text/x-sfv": {
  11435. source: "apache",
  11436. extensions: [
  11437. "sfv"
  11438. ]
  11439. },
  11440. "text/x-suse-ymp": {
  11441. compressible: true,
  11442. extensions: [
  11443. "ymp"
  11444. ]
  11445. },
  11446. "text/x-uuencode": {
  11447. source: "apache",
  11448. extensions: [
  11449. "uu"
  11450. ]
  11451. },
  11452. "text/x-vcalendar": {
  11453. source: "apache",
  11454. extensions: [
  11455. "vcs"
  11456. ]
  11457. },
  11458. "text/x-vcard": {
  11459. source: "apache",
  11460. extensions: [
  11461. "vcf"
  11462. ]
  11463. },
  11464. "text/xml": {
  11465. source: "iana",
  11466. compressible: true,
  11467. extensions: [
  11468. "xml"
  11469. ]
  11470. },
  11471. "text/xml-external-parsed-entity": {
  11472. source: "iana"
  11473. },
  11474. "text/yaml": {
  11475. compressible: true,
  11476. extensions: [
  11477. "yaml",
  11478. "yml"
  11479. ]
  11480. },
  11481. "video/1d-interleaved-parityfec": {
  11482. source: "iana"
  11483. },
  11484. "video/3gpp": {
  11485. source: "iana",
  11486. extensions: [
  11487. "3gp",
  11488. "3gpp"
  11489. ]
  11490. },
  11491. "video/3gpp-tt": {
  11492. source: "iana"
  11493. },
  11494. "video/3gpp2": {
  11495. source: "iana",
  11496. extensions: [
  11497. "3g2"
  11498. ]
  11499. },
  11500. "video/av1": {
  11501. source: "iana"
  11502. },
  11503. "video/bmpeg": {
  11504. source: "iana"
  11505. },
  11506. "video/bt656": {
  11507. source: "iana"
  11508. },
  11509. "video/celb": {
  11510. source: "iana"
  11511. },
  11512. "video/dv": {
  11513. source: "iana"
  11514. },
  11515. "video/encaprtp": {
  11516. source: "iana"
  11517. },
  11518. "video/ffv1": {
  11519. source: "iana"
  11520. },
  11521. "video/flexfec": {
  11522. source: "iana"
  11523. },
  11524. "video/h261": {
  11525. source: "iana",
  11526. extensions: [
  11527. "h261"
  11528. ]
  11529. },
  11530. "video/h263": {
  11531. source: "iana",
  11532. extensions: [
  11533. "h263"
  11534. ]
  11535. },
  11536. "video/h263-1998": {
  11537. source: "iana"
  11538. },
  11539. "video/h263-2000": {
  11540. source: "iana"
  11541. },
  11542. "video/h264": {
  11543. source: "iana",
  11544. extensions: [
  11545. "h264"
  11546. ]
  11547. },
  11548. "video/h264-rcdo": {
  11549. source: "iana"
  11550. },
  11551. "video/h264-svc": {
  11552. source: "iana"
  11553. },
  11554. "video/h265": {
  11555. source: "iana"
  11556. },
  11557. "video/iso.segment": {
  11558. source: "iana",
  11559. extensions: [
  11560. "m4s"
  11561. ]
  11562. },
  11563. "video/jpeg": {
  11564. source: "iana",
  11565. extensions: [
  11566. "jpgv"
  11567. ]
  11568. },
  11569. "video/jpeg2000": {
  11570. source: "iana"
  11571. },
  11572. "video/jpm": {
  11573. source: "apache",
  11574. extensions: [
  11575. "jpm",
  11576. "jpgm"
  11577. ]
  11578. },
  11579. "video/mj2": {
  11580. source: "iana",
  11581. extensions: [
  11582. "mj2",
  11583. "mjp2"
  11584. ]
  11585. },
  11586. "video/mp1s": {
  11587. source: "iana"
  11588. },
  11589. "video/mp2p": {
  11590. source: "iana"
  11591. },
  11592. "video/mp2t": {
  11593. source: "iana",
  11594. extensions: [
  11595. "ts"
  11596. ]
  11597. },
  11598. "video/mp4": {
  11599. source: "iana",
  11600. compressible: false,
  11601. extensions: [
  11602. "mp4",
  11603. "mp4v",
  11604. "mpg4"
  11605. ]
  11606. },
  11607. "video/mp4v-es": {
  11608. source: "iana"
  11609. },
  11610. "video/mpeg": {
  11611. source: "iana",
  11612. compressible: false,
  11613. extensions: [
  11614. "mpeg",
  11615. "mpg",
  11616. "mpe",
  11617. "m1v",
  11618. "m2v"
  11619. ]
  11620. },
  11621. "video/mpeg4-generic": {
  11622. source: "iana"
  11623. },
  11624. "video/mpv": {
  11625. source: "iana"
  11626. },
  11627. "video/nv": {
  11628. source: "iana"
  11629. },
  11630. "video/ogg": {
  11631. source: "iana",
  11632. compressible: false,
  11633. extensions: [
  11634. "ogv"
  11635. ]
  11636. },
  11637. "video/parityfec": {
  11638. source: "iana"
  11639. },
  11640. "video/pointer": {
  11641. source: "iana"
  11642. },
  11643. "video/quicktime": {
  11644. source: "iana",
  11645. compressible: false,
  11646. extensions: [
  11647. "qt",
  11648. "mov"
  11649. ]
  11650. },
  11651. "video/raptorfec": {
  11652. source: "iana"
  11653. },
  11654. "video/raw": {
  11655. source: "iana"
  11656. },
  11657. "video/rtp-enc-aescm128": {
  11658. source: "iana"
  11659. },
  11660. "video/rtploopback": {
  11661. source: "iana"
  11662. },
  11663. "video/rtx": {
  11664. source: "iana"
  11665. },
  11666. "video/scip": {
  11667. source: "iana"
  11668. },
  11669. "video/smpte291": {
  11670. source: "iana"
  11671. },
  11672. "video/smpte292m": {
  11673. source: "iana"
  11674. },
  11675. "video/ulpfec": {
  11676. source: "iana"
  11677. },
  11678. "video/vc1": {
  11679. source: "iana"
  11680. },
  11681. "video/vc2": {
  11682. source: "iana"
  11683. },
  11684. "video/vnd.cctv": {
  11685. source: "iana"
  11686. },
  11687. "video/vnd.dece.hd": {
  11688. source: "iana",
  11689. extensions: [
  11690. "uvh",
  11691. "uvvh"
  11692. ]
  11693. },
  11694. "video/vnd.dece.mobile": {
  11695. source: "iana",
  11696. extensions: [
  11697. "uvm",
  11698. "uvvm"
  11699. ]
  11700. },
  11701. "video/vnd.dece.mp4": {
  11702. source: "iana"
  11703. },
  11704. "video/vnd.dece.pd": {
  11705. source: "iana",
  11706. extensions: [
  11707. "uvp",
  11708. "uvvp"
  11709. ]
  11710. },
  11711. "video/vnd.dece.sd": {
  11712. source: "iana",
  11713. extensions: [
  11714. "uvs",
  11715. "uvvs"
  11716. ]
  11717. },
  11718. "video/vnd.dece.video": {
  11719. source: "iana",
  11720. extensions: [
  11721. "uvv",
  11722. "uvvv"
  11723. ]
  11724. },
  11725. "video/vnd.directv.mpeg": {
  11726. source: "iana"
  11727. },
  11728. "video/vnd.directv.mpeg-tts": {
  11729. source: "iana"
  11730. },
  11731. "video/vnd.dlna.mpeg-tts": {
  11732. source: "iana"
  11733. },
  11734. "video/vnd.dvb.file": {
  11735. source: "iana",
  11736. extensions: [
  11737. "dvb"
  11738. ]
  11739. },
  11740. "video/vnd.fvt": {
  11741. source: "iana",
  11742. extensions: [
  11743. "fvt"
  11744. ]
  11745. },
  11746. "video/vnd.hns.video": {
  11747. source: "iana"
  11748. },
  11749. "video/vnd.iptvforum.1dparityfec-1010": {
  11750. source: "iana"
  11751. },
  11752. "video/vnd.iptvforum.1dparityfec-2005": {
  11753. source: "iana"
  11754. },
  11755. "video/vnd.iptvforum.2dparityfec-1010": {
  11756. source: "iana"
  11757. },
  11758. "video/vnd.iptvforum.2dparityfec-2005": {
  11759. source: "iana"
  11760. },
  11761. "video/vnd.iptvforum.ttsavc": {
  11762. source: "iana"
  11763. },
  11764. "video/vnd.iptvforum.ttsmpeg2": {
  11765. source: "iana"
  11766. },
  11767. "video/vnd.motorola.video": {
  11768. source: "iana"
  11769. },
  11770. "video/vnd.motorola.videop": {
  11771. source: "iana"
  11772. },
  11773. "video/vnd.mpegurl": {
  11774. source: "iana",
  11775. extensions: [
  11776. "mxu",
  11777. "m4u"
  11778. ]
  11779. },
  11780. "video/vnd.ms-playready.media.pyv": {
  11781. source: "iana",
  11782. extensions: [
  11783. "pyv"
  11784. ]
  11785. },
  11786. "video/vnd.nokia.interleaved-multimedia": {
  11787. source: "iana"
  11788. },
  11789. "video/vnd.nokia.mp4vr": {
  11790. source: "iana"
  11791. },
  11792. "video/vnd.nokia.videovoip": {
  11793. source: "iana"
  11794. },
  11795. "video/vnd.objectvideo": {
  11796. source: "iana"
  11797. },
  11798. "video/vnd.radgamettools.bink": {
  11799. source: "iana"
  11800. },
  11801. "video/vnd.radgamettools.smacker": {
  11802. source: "iana"
  11803. },
  11804. "video/vnd.sealed.mpeg1": {
  11805. source: "iana"
  11806. },
  11807. "video/vnd.sealed.mpeg4": {
  11808. source: "iana"
  11809. },
  11810. "video/vnd.sealed.swf": {
  11811. source: "iana"
  11812. },
  11813. "video/vnd.sealedmedia.softseal.mov": {
  11814. source: "iana"
  11815. },
  11816. "video/vnd.uvvu.mp4": {
  11817. source: "iana",
  11818. extensions: [
  11819. "uvu",
  11820. "uvvu"
  11821. ]
  11822. },
  11823. "video/vnd.vivo": {
  11824. source: "iana",
  11825. extensions: [
  11826. "viv"
  11827. ]
  11828. },
  11829. "video/vnd.youtube.yt": {
  11830. source: "iana"
  11831. },
  11832. "video/vp8": {
  11833. source: "iana"
  11834. },
  11835. "video/vp9": {
  11836. source: "iana"
  11837. },
  11838. "video/webm": {
  11839. source: "apache",
  11840. compressible: false,
  11841. extensions: [
  11842. "webm"
  11843. ]
  11844. },
  11845. "video/x-f4v": {
  11846. source: "apache",
  11847. extensions: [
  11848. "f4v"
  11849. ]
  11850. },
  11851. "video/x-fli": {
  11852. source: "apache",
  11853. extensions: [
  11854. "fli"
  11855. ]
  11856. },
  11857. "video/x-flv": {
  11858. source: "apache",
  11859. compressible: false,
  11860. extensions: [
  11861. "flv"
  11862. ]
  11863. },
  11864. "video/x-m4v": {
  11865. source: "apache",
  11866. extensions: [
  11867. "m4v"
  11868. ]
  11869. },
  11870. "video/x-matroska": {
  11871. source: "apache",
  11872. compressible: false,
  11873. extensions: [
  11874. "mkv",
  11875. "mk3d",
  11876. "mks"
  11877. ]
  11878. },
  11879. "video/x-mng": {
  11880. source: "apache",
  11881. extensions: [
  11882. "mng"
  11883. ]
  11884. },
  11885. "video/x-ms-asf": {
  11886. source: "apache",
  11887. extensions: [
  11888. "asf",
  11889. "asx"
  11890. ]
  11891. },
  11892. "video/x-ms-vob": {
  11893. source: "apache",
  11894. extensions: [
  11895. "vob"
  11896. ]
  11897. },
  11898. "video/x-ms-wm": {
  11899. source: "apache",
  11900. extensions: [
  11901. "wm"
  11902. ]
  11903. },
  11904. "video/x-ms-wmv": {
  11905. source: "apache",
  11906. compressible: false,
  11907. extensions: [
  11908. "wmv"
  11909. ]
  11910. },
  11911. "video/x-ms-wmx": {
  11912. source: "apache",
  11913. extensions: [
  11914. "wmx"
  11915. ]
  11916. },
  11917. "video/x-ms-wvx": {
  11918. source: "apache",
  11919. extensions: [
  11920. "wvx"
  11921. ]
  11922. },
  11923. "video/x-msvideo": {
  11924. source: "apache",
  11925. extensions: [
  11926. "avi"
  11927. ]
  11928. },
  11929. "video/x-sgi-movie": {
  11930. source: "apache",
  11931. extensions: [
  11932. "movie"
  11933. ]
  11934. },
  11935. "video/x-smv": {
  11936. source: "apache",
  11937. extensions: [
  11938. "smv"
  11939. ]
  11940. },
  11941. "x-conference/x-cooltalk": {
  11942. source: "apache",
  11943. extensions: [
  11944. "ice"
  11945. ]
  11946. },
  11947. "x-shader/x-fragment": {
  11948. compressible: true
  11949. },
  11950. "x-shader/x-vertex": {
  11951. compressible: true
  11952. }
  11953. };
  11954. /*!
  11955. * mime-db
  11956. * Copyright(c) 2014 Jonathan Ong
  11957. * MIT Licensed
  11958. */
  11959. /**
  11960. * Module exports.
  11961. */
  11962. var mimeDb = require$$0;
  11963. /*!
  11964. * mime-types
  11965. * Copyright(c) 2014 Jonathan Ong
  11966. * Copyright(c) 2015 Douglas Christopher Wilson
  11967. * MIT Licensed
  11968. */
  11969. (function (exports) {
  11970. /**
  11971. * Module dependencies.
  11972. * @private
  11973. */
  11974. var db = mimeDb;
  11975. var extname = path__default.extname;
  11976. /**
  11977. * Module variables.
  11978. * @private
  11979. */
  11980. var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
  11981. var TEXT_TYPE_REGEXP = /^text\//i;
  11982. /**
  11983. * Module exports.
  11984. * @public
  11985. */
  11986. exports.charset = charset;
  11987. exports.charsets = { lookup: charset };
  11988. exports.contentType = contentType;
  11989. exports.extension = extension;
  11990. exports.extensions = Object.create(null);
  11991. exports.lookup = lookup;
  11992. exports.types = Object.create(null);
  11993. // Populate the extensions/types maps
  11994. populateMaps(exports.extensions, exports.types);
  11995. /**
  11996. * Get the default charset for a MIME type.
  11997. *
  11998. * @param {string} type
  11999. * @return {boolean|string}
  12000. */
  12001. function charset (type) {
  12002. if (!type || typeof type !== 'string') {
  12003. return false
  12004. }
  12005. // TODO: use media-typer
  12006. var match = EXTRACT_TYPE_REGEXP.exec(type);
  12007. var mime = match && db[match[1].toLowerCase()];
  12008. if (mime && mime.charset) {
  12009. return mime.charset
  12010. }
  12011. // default text/* to utf-8
  12012. if (match && TEXT_TYPE_REGEXP.test(match[1])) {
  12013. return 'UTF-8'
  12014. }
  12015. return false
  12016. }
  12017. /**
  12018. * Create a full Content-Type header given a MIME type or extension.
  12019. *
  12020. * @param {string} str
  12021. * @return {boolean|string}
  12022. */
  12023. function contentType (str) {
  12024. // TODO: should this even be in this module?
  12025. if (!str || typeof str !== 'string') {
  12026. return false
  12027. }
  12028. var mime = str.indexOf('/') === -1
  12029. ? exports.lookup(str)
  12030. : str;
  12031. if (!mime) {
  12032. return false
  12033. }
  12034. // TODO: use content-type or other module
  12035. if (mime.indexOf('charset') === -1) {
  12036. var charset = exports.charset(mime);
  12037. if (charset) mime += '; charset=' + charset.toLowerCase();
  12038. }
  12039. return mime
  12040. }
  12041. /**
  12042. * Get the default extension for a MIME type.
  12043. *
  12044. * @param {string} type
  12045. * @return {boolean|string}
  12046. */
  12047. function extension (type) {
  12048. if (!type || typeof type !== 'string') {
  12049. return false
  12050. }
  12051. // TODO: use media-typer
  12052. var match = EXTRACT_TYPE_REGEXP.exec(type);
  12053. // get extensions
  12054. var exts = match && exports.extensions[match[1].toLowerCase()];
  12055. if (!exts || !exts.length) {
  12056. return false
  12057. }
  12058. return exts[0]
  12059. }
  12060. /**
  12061. * Lookup the MIME type for a file path/extension.
  12062. *
  12063. * @param {string} path
  12064. * @return {boolean|string}
  12065. */
  12066. function lookup (path) {
  12067. if (!path || typeof path !== 'string') {
  12068. return false
  12069. }
  12070. // get the extension ("ext" or ".ext" or full path)
  12071. var extension = extname('x.' + path)
  12072. .toLowerCase()
  12073. .substr(1);
  12074. if (!extension) {
  12075. return false
  12076. }
  12077. return exports.types[extension] || false
  12078. }
  12079. /**
  12080. * Populate the extensions and types maps.
  12081. * @private
  12082. */
  12083. function populateMaps (extensions, types) {
  12084. // source preference (least -> most)
  12085. var preference = ['nginx', 'apache', undefined, 'iana'];
  12086. Object.keys(db).forEach(function forEachMimeType (type) {
  12087. var mime = db[type];
  12088. var exts = mime.extensions;
  12089. if (!exts || !exts.length) {
  12090. return
  12091. }
  12092. // mime -> extensions
  12093. extensions[type] = exts;
  12094. // extension -> mime
  12095. for (var i = 0; i < exts.length; i++) {
  12096. var extension = exts[i];
  12097. if (types[extension]) {
  12098. var from = preference.indexOf(db[types[extension]].source);
  12099. var to = preference.indexOf(mime.source);
  12100. if (types[extension] !== 'application/octet-stream' &&
  12101. (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
  12102. // skip the remapping
  12103. continue
  12104. }
  12105. }
  12106. // set the extension -> mime
  12107. types[extension] = type;
  12108. }
  12109. });
  12110. }
  12111. }(mimeTypes));
  12112. /*!
  12113. * accepts
  12114. * Copyright(c) 2014 Jonathan Ong
  12115. * Copyright(c) 2015 Douglas Christopher Wilson
  12116. * MIT Licensed
  12117. */
  12118. /**
  12119. * Module dependencies.
  12120. * @private
  12121. */
  12122. var Negotiator = negotiator.exports;
  12123. var mime = mimeTypes;
  12124. /**
  12125. * Module exports.
  12126. * @public
  12127. */
  12128. var accepts$1 = Accepts;
  12129. /**
  12130. * Create a new Accepts object for the given req.
  12131. *
  12132. * @param {object} req
  12133. * @public
  12134. */
  12135. function Accepts (req) {
  12136. if (!(this instanceof Accepts)) {
  12137. return new Accepts(req)
  12138. }
  12139. this.headers = req.headers;
  12140. this.negotiator = new Negotiator(req);
  12141. }
  12142. /**
  12143. * Check if the given `type(s)` is acceptable, returning
  12144. * the best match when true, otherwise `undefined`, in which
  12145. * case you should respond with 406 "Not Acceptable".
  12146. *
  12147. * The `type` value may be a single mime type string
  12148. * such as "application/json", the extension name
  12149. * such as "json" or an array `["json", "html", "text/plain"]`. When a list
  12150. * or array is given the _best_ match, if any is returned.
  12151. *
  12152. * Examples:
  12153. *
  12154. * // Accept: text/html
  12155. * this.types('html');
  12156. * // => "html"
  12157. *
  12158. * // Accept: text/*, application/json
  12159. * this.types('html');
  12160. * // => "html"
  12161. * this.types('text/html');
  12162. * // => "text/html"
  12163. * this.types('json', 'text');
  12164. * // => "json"
  12165. * this.types('application/json');
  12166. * // => "application/json"
  12167. *
  12168. * // Accept: text/*, application/json
  12169. * this.types('image/png');
  12170. * this.types('png');
  12171. * // => undefined
  12172. *
  12173. * // Accept: text/*;q=.5, application/json
  12174. * this.types(['html', 'json']);
  12175. * this.types('html', 'json');
  12176. * // => "json"
  12177. *
  12178. * @param {String|Array} types...
  12179. * @return {String|Array|Boolean}
  12180. * @public
  12181. */
  12182. Accepts.prototype.type =
  12183. Accepts.prototype.types = function (types_) {
  12184. var types = types_;
  12185. // support flattened arguments
  12186. if (types && !Array.isArray(types)) {
  12187. types = new Array(arguments.length);
  12188. for (var i = 0; i < types.length; i++) {
  12189. types[i] = arguments[i];
  12190. }
  12191. }
  12192. // no types, return all requested types
  12193. if (!types || types.length === 0) {
  12194. return this.negotiator.mediaTypes()
  12195. }
  12196. // no accept header, return first given type
  12197. if (!this.headers.accept) {
  12198. return types[0]
  12199. }
  12200. var mimes = types.map(extToMime);
  12201. var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
  12202. var first = accepts[0];
  12203. return first
  12204. ? types[mimes.indexOf(first)]
  12205. : false
  12206. };
  12207. /**
  12208. * Return accepted encodings or best fit based on `encodings`.
  12209. *
  12210. * Given `Accept-Encoding: gzip, deflate`
  12211. * an array sorted by quality is returned:
  12212. *
  12213. * ['gzip', 'deflate']
  12214. *
  12215. * @param {String|Array} encodings...
  12216. * @return {String|Array}
  12217. * @public
  12218. */
  12219. Accepts.prototype.encoding =
  12220. Accepts.prototype.encodings = function (encodings_) {
  12221. var encodings = encodings_;
  12222. // support flattened arguments
  12223. if (encodings && !Array.isArray(encodings)) {
  12224. encodings = new Array(arguments.length);
  12225. for (var i = 0; i < encodings.length; i++) {
  12226. encodings[i] = arguments[i];
  12227. }
  12228. }
  12229. // no encodings, return all requested encodings
  12230. if (!encodings || encodings.length === 0) {
  12231. return this.negotiator.encodings()
  12232. }
  12233. return this.negotiator.encodings(encodings)[0] || false
  12234. };
  12235. /**
  12236. * Return accepted charsets or best fit based on `charsets`.
  12237. *
  12238. * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
  12239. * an array sorted by quality is returned:
  12240. *
  12241. * ['utf-8', 'utf-7', 'iso-8859-1']
  12242. *
  12243. * @param {String|Array} charsets...
  12244. * @return {String|Array}
  12245. * @public
  12246. */
  12247. Accepts.prototype.charset =
  12248. Accepts.prototype.charsets = function (charsets_) {
  12249. var charsets = charsets_;
  12250. // support flattened arguments
  12251. if (charsets && !Array.isArray(charsets)) {
  12252. charsets = new Array(arguments.length);
  12253. for (var i = 0; i < charsets.length; i++) {
  12254. charsets[i] = arguments[i];
  12255. }
  12256. }
  12257. // no charsets, return all requested charsets
  12258. if (!charsets || charsets.length === 0) {
  12259. return this.negotiator.charsets()
  12260. }
  12261. return this.negotiator.charsets(charsets)[0] || false
  12262. };
  12263. /**
  12264. * Return accepted languages or best fit based on `langs`.
  12265. *
  12266. * Given `Accept-Language: en;q=0.8, es, pt`
  12267. * an array sorted by quality is returned:
  12268. *
  12269. * ['es', 'pt', 'en']
  12270. *
  12271. * @param {String|Array} langs...
  12272. * @return {Array|String}
  12273. * @public
  12274. */
  12275. Accepts.prototype.lang =
  12276. Accepts.prototype.langs =
  12277. Accepts.prototype.language =
  12278. Accepts.prototype.languages = function (languages_) {
  12279. var languages = languages_;
  12280. // support flattened arguments
  12281. if (languages && !Array.isArray(languages)) {
  12282. languages = new Array(arguments.length);
  12283. for (var i = 0; i < languages.length; i++) {
  12284. languages[i] = arguments[i];
  12285. }
  12286. }
  12287. // no languages, return all requested languages
  12288. if (!languages || languages.length === 0) {
  12289. return this.negotiator.languages()
  12290. }
  12291. return this.negotiator.languages(languages)[0] || false
  12292. };
  12293. /**
  12294. * Convert extnames to mime.
  12295. *
  12296. * @param {String} type
  12297. * @return {String}
  12298. * @private
  12299. */
  12300. function extToMime (type) {
  12301. return type.indexOf('/') === -1
  12302. ? mime.lookup(type)
  12303. : type
  12304. }
  12305. /**
  12306. * Check if mime is valid.
  12307. *
  12308. * @param {String} type
  12309. * @return {String}
  12310. * @private
  12311. */
  12312. function validMime (type) {
  12313. return typeof type === 'string'
  12314. }
  12315. var bytes$2 = {exports: {}};
  12316. /*!
  12317. * bytes
  12318. * Copyright(c) 2012-2014 TJ Holowaychuk
  12319. * Copyright(c) 2015 Jed Watson
  12320. * MIT Licensed
  12321. */
  12322. /**
  12323. * Module exports.
  12324. * @public
  12325. */
  12326. bytes$2.exports = bytes$1;
  12327. bytes$2.exports.format = format;
  12328. bytes$2.exports.parse = parse;
  12329. /**
  12330. * Module variables.
  12331. * @private
  12332. */
  12333. var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
  12334. var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
  12335. var map = {
  12336. b: 1,
  12337. kb: 1 << 10,
  12338. mb: 1 << 20,
  12339. gb: 1 << 30,
  12340. tb: ((1 << 30) * 1024)
  12341. };
  12342. var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
  12343. /**
  12344. * Convert the given value in bytes into a string or parse to string to an integer in bytes.
  12345. *
  12346. * @param {string|number} value
  12347. * @param {{
  12348. * case: [string],
  12349. * decimalPlaces: [number]
  12350. * fixedDecimals: [boolean]
  12351. * thousandsSeparator: [string]
  12352. * unitSeparator: [string]
  12353. * }} [options] bytes options.
  12354. *
  12355. * @returns {string|number|null}
  12356. */
  12357. function bytes$1(value, options) {
  12358. if (typeof value === 'string') {
  12359. return parse(value);
  12360. }
  12361. if (typeof value === 'number') {
  12362. return format(value, options);
  12363. }
  12364. return null;
  12365. }
  12366. /**
  12367. * Format the given value in bytes into a string.
  12368. *
  12369. * If the value is negative, it is kept as such. If it is a float,
  12370. * it is rounded.
  12371. *
  12372. * @param {number} value
  12373. * @param {object} [options]
  12374. * @param {number} [options.decimalPlaces=2]
  12375. * @param {number} [options.fixedDecimals=false]
  12376. * @param {string} [options.thousandsSeparator=]
  12377. * @param {string} [options.unit=]
  12378. * @param {string} [options.unitSeparator=]
  12379. *
  12380. * @returns {string|null}
  12381. * @public
  12382. */
  12383. function format(value, options) {
  12384. if (!Number.isFinite(value)) {
  12385. return null;
  12386. }
  12387. var mag = Math.abs(value);
  12388. var thousandsSeparator = (options && options.thousandsSeparator) || '';
  12389. var unitSeparator = (options && options.unitSeparator) || '';
  12390. var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;
  12391. var fixedDecimals = Boolean(options && options.fixedDecimals);
  12392. var unit = (options && options.unit) || '';
  12393. if (!unit || !map[unit.toLowerCase()]) {
  12394. if (mag >= map.tb) {
  12395. unit = 'TB';
  12396. } else if (mag >= map.gb) {
  12397. unit = 'GB';
  12398. } else if (mag >= map.mb) {
  12399. unit = 'MB';
  12400. } else if (mag >= map.kb) {
  12401. unit = 'KB';
  12402. } else {
  12403. unit = 'B';
  12404. }
  12405. }
  12406. var val = value / map[unit.toLowerCase()];
  12407. var str = val.toFixed(decimalPlaces);
  12408. if (!fixedDecimals) {
  12409. str = str.replace(formatDecimalsRegExp, '$1');
  12410. }
  12411. if (thousandsSeparator) {
  12412. str = str.replace(formatThousandsRegExp, thousandsSeparator);
  12413. }
  12414. return str + unitSeparator + unit;
  12415. }
  12416. /**
  12417. * Parse the string value into an integer in bytes.
  12418. *
  12419. * If no unit is given, it is assumed the value is in bytes.
  12420. *
  12421. * @param {number|string} val
  12422. *
  12423. * @returns {number|null}
  12424. * @public
  12425. */
  12426. function parse(val) {
  12427. if (typeof val === 'number' && !isNaN(val)) {
  12428. return val;
  12429. }
  12430. if (typeof val !== 'string') {
  12431. return null;
  12432. }
  12433. // Test if the string passed is valid
  12434. var results = parseRegExp.exec(val);
  12435. var floatValue;
  12436. var unit = 'b';
  12437. if (!results) {
  12438. // Nothing could be extracted from the given string
  12439. floatValue = parseInt(val, 10);
  12440. unit = 'b';
  12441. } else {
  12442. // Retrieve the value and the unit
  12443. floatValue = parseFloat(results[1]);
  12444. unit = results[4].toLowerCase();
  12445. }
  12446. return Math.floor(map[unit] * floatValue);
  12447. }
  12448. /*!
  12449. * compressible
  12450. * Copyright(c) 2013 Jonathan Ong
  12451. * Copyright(c) 2014 Jeremiah Senkpiel
  12452. * Copyright(c) 2015 Douglas Christopher Wilson
  12453. * MIT Licensed
  12454. */
  12455. /**
  12456. * Module dependencies.
  12457. * @private
  12458. */
  12459. var db = mimeDb;
  12460. /**
  12461. * Module variables.
  12462. * @private
  12463. */
  12464. var COMPRESSIBLE_TYPE_REGEXP = /^text\/|\+(?:json|text|xml)$/i;
  12465. var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
  12466. /**
  12467. * Module exports.
  12468. * @public
  12469. */
  12470. var compressible_1 = compressible$1;
  12471. /**
  12472. * Checks if a type is compressible.
  12473. *
  12474. * @param {string} type
  12475. * @return {Boolean} compressible
  12476. * @public
  12477. */
  12478. function compressible$1 (type) {
  12479. if (!type || typeof type !== 'string') {
  12480. return false
  12481. }
  12482. // strip parameters
  12483. var match = EXTRACT_TYPE_REGEXP.exec(type);
  12484. var mime = match && match[1].toLowerCase();
  12485. var data = db[mime];
  12486. // return database information
  12487. if (data && data.compressible !== undefined) {
  12488. return data.compressible
  12489. }
  12490. // fallback to regexp or unknown
  12491. return COMPRESSIBLE_TYPE_REGEXP.test(mime) || undefined
  12492. }
  12493. var src = {exports: {}};
  12494. var browser = {exports: {}};
  12495. var debug$1 = {exports: {}};
  12496. (function (module, exports) {
  12497. /**
  12498. * This is the common logic for both the Node.js and web browser
  12499. * implementations of `debug()`.
  12500. *
  12501. * Expose `debug()` as the module.
  12502. */
  12503. exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
  12504. exports.coerce = coerce;
  12505. exports.disable = disable;
  12506. exports.enable = enable;
  12507. exports.enabled = enabled;
  12508. exports.humanize = build.ms;
  12509. /**
  12510. * The currently active debug mode names, and names to skip.
  12511. */
  12512. exports.names = [];
  12513. exports.skips = [];
  12514. /**
  12515. * Map of special "%n" handling functions, for the debug "format" argument.
  12516. *
  12517. * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
  12518. */
  12519. exports.formatters = {};
  12520. /**
  12521. * Previous log timestamp.
  12522. */
  12523. var prevTime;
  12524. /**
  12525. * Select a color.
  12526. * @param {String} namespace
  12527. * @return {Number}
  12528. * @api private
  12529. */
  12530. function selectColor(namespace) {
  12531. var hash = 0, i;
  12532. for (i in namespace) {
  12533. hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
  12534. hash |= 0; // Convert to 32bit integer
  12535. }
  12536. return exports.colors[Math.abs(hash) % exports.colors.length];
  12537. }
  12538. /**
  12539. * Create a debugger with the given `namespace`.
  12540. *
  12541. * @param {String} namespace
  12542. * @return {Function}
  12543. * @api public
  12544. */
  12545. function createDebug(namespace) {
  12546. function debug() {
  12547. // disabled?
  12548. if (!debug.enabled) return;
  12549. var self = debug;
  12550. // set `diff` timestamp
  12551. var curr = +new Date();
  12552. var ms = curr - (prevTime || curr);
  12553. self.diff = ms;
  12554. self.prev = prevTime;
  12555. self.curr = curr;
  12556. prevTime = curr;
  12557. // turn the `arguments` into a proper Array
  12558. var args = new Array(arguments.length);
  12559. for (var i = 0; i < args.length; i++) {
  12560. args[i] = arguments[i];
  12561. }
  12562. args[0] = exports.coerce(args[0]);
  12563. if ('string' !== typeof args[0]) {
  12564. // anything else let's inspect with %O
  12565. args.unshift('%O');
  12566. }
  12567. // apply any `formatters` transformations
  12568. var index = 0;
  12569. args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
  12570. // if we encounter an escaped % then don't increase the array index
  12571. if (match === '%%') return match;
  12572. index++;
  12573. var formatter = exports.formatters[format];
  12574. if ('function' === typeof formatter) {
  12575. var val = args[index];
  12576. match = formatter.call(self, val);
  12577. // now we need to remove `args[index]` since it's inlined in the `format`
  12578. args.splice(index, 1);
  12579. index--;
  12580. }
  12581. return match;
  12582. });
  12583. // apply env-specific formatting (colors, etc.)
  12584. exports.formatArgs.call(self, args);
  12585. var logFn = debug.log || exports.log || console.log.bind(console);
  12586. logFn.apply(self, args);
  12587. }
  12588. debug.namespace = namespace;
  12589. debug.enabled = exports.enabled(namespace);
  12590. debug.useColors = exports.useColors();
  12591. debug.color = selectColor(namespace);
  12592. // env-specific initialization logic for debug instances
  12593. if ('function' === typeof exports.init) {
  12594. exports.init(debug);
  12595. }
  12596. return debug;
  12597. }
  12598. /**
  12599. * Enables a debug mode by namespaces. This can include modes
  12600. * separated by a colon and wildcards.
  12601. *
  12602. * @param {String} namespaces
  12603. * @api public
  12604. */
  12605. function enable(namespaces) {
  12606. exports.save(namespaces);
  12607. exports.names = [];
  12608. exports.skips = [];
  12609. var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
  12610. var len = split.length;
  12611. for (var i = 0; i < len; i++) {
  12612. if (!split[i]) continue; // ignore empty strings
  12613. namespaces = split[i].replace(/\*/g, '.*?');
  12614. if (namespaces[0] === '-') {
  12615. exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
  12616. } else {
  12617. exports.names.push(new RegExp('^' + namespaces + '$'));
  12618. }
  12619. }
  12620. }
  12621. /**
  12622. * Disable debug output.
  12623. *
  12624. * @api public
  12625. */
  12626. function disable() {
  12627. exports.enable('');
  12628. }
  12629. /**
  12630. * Returns true if the given mode name is enabled, false otherwise.
  12631. *
  12632. * @param {String} name
  12633. * @return {Boolean}
  12634. * @api public
  12635. */
  12636. function enabled(name) {
  12637. var i, len;
  12638. for (i = 0, len = exports.skips.length; i < len; i++) {
  12639. if (exports.skips[i].test(name)) {
  12640. return false;
  12641. }
  12642. }
  12643. for (i = 0, len = exports.names.length; i < len; i++) {
  12644. if (exports.names[i].test(name)) {
  12645. return true;
  12646. }
  12647. }
  12648. return false;
  12649. }
  12650. /**
  12651. * Coerce `val`.
  12652. *
  12653. * @param {Mixed} val
  12654. * @return {Mixed}
  12655. * @api private
  12656. */
  12657. function coerce(val) {
  12658. if (val instanceof Error) return val.stack || val.message;
  12659. return val;
  12660. }
  12661. }(debug$1, debug$1.exports));
  12662. /**
  12663. * This is the web browser implementation of `debug()`.
  12664. *
  12665. * Expose `debug()` as the module.
  12666. */
  12667. (function (module, exports) {
  12668. exports = module.exports = debug$1.exports;
  12669. exports.log = log;
  12670. exports.formatArgs = formatArgs;
  12671. exports.save = save;
  12672. exports.load = load;
  12673. exports.useColors = useColors;
  12674. exports.storage = 'undefined' != typeof chrome
  12675. && 'undefined' != typeof chrome.storage
  12676. ? chrome.storage.local
  12677. : localstorage();
  12678. /**
  12679. * Colors.
  12680. */
  12681. exports.colors = [
  12682. 'lightseagreen',
  12683. 'forestgreen',
  12684. 'goldenrod',
  12685. 'dodgerblue',
  12686. 'darkorchid',
  12687. 'crimson'
  12688. ];
  12689. /**
  12690. * Currently only WebKit-based Web Inspectors, Firefox >= v31,
  12691. * and the Firebug extension (any Firefox version) are known
  12692. * to support "%c" CSS customizations.
  12693. *
  12694. * TODO: add a `localStorage` variable to explicitly enable/disable colors
  12695. */
  12696. function useColors() {
  12697. // NB: In an Electron preload script, document will be defined but not fully
  12698. // initialized. Since we know we're in Chrome, we'll just detect this case
  12699. // explicitly
  12700. if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
  12701. return true;
  12702. }
  12703. // is webkit? http://stackoverflow.com/a/16459606/376773
  12704. // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
  12705. return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
  12706. // is firebug? http://stackoverflow.com/a/398120/376773
  12707. (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
  12708. // is firefox >= v31?
  12709. // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
  12710. (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
  12711. // double check webkit in userAgent just in case we are in a worker
  12712. (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
  12713. }
  12714. /**
  12715. * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
  12716. */
  12717. exports.formatters.j = function(v) {
  12718. try {
  12719. return JSON.stringify(v);
  12720. } catch (err) {
  12721. return '[UnexpectedJSONParseError]: ' + err.message;
  12722. }
  12723. };
  12724. /**
  12725. * Colorize log arguments if enabled.
  12726. *
  12727. * @api public
  12728. */
  12729. function formatArgs(args) {
  12730. var useColors = this.useColors;
  12731. args[0] = (useColors ? '%c' : '')
  12732. + this.namespace
  12733. + (useColors ? ' %c' : ' ')
  12734. + args[0]
  12735. + (useColors ? '%c ' : ' ')
  12736. + '+' + exports.humanize(this.diff);
  12737. if (!useColors) return;
  12738. var c = 'color: ' + this.color;
  12739. args.splice(1, 0, c, 'color: inherit');
  12740. // the final "%c" is somewhat tricky, because there could be other
  12741. // arguments passed either before or after the %c, so we need to
  12742. // figure out the correct index to insert the CSS into
  12743. var index = 0;
  12744. var lastC = 0;
  12745. args[0].replace(/%[a-zA-Z%]/g, function(match) {
  12746. if ('%%' === match) return;
  12747. index++;
  12748. if ('%c' === match) {
  12749. // we only are interested in the *last* %c
  12750. // (the user may have provided their own)
  12751. lastC = index;
  12752. }
  12753. });
  12754. args.splice(lastC, 0, c);
  12755. }
  12756. /**
  12757. * Invokes `console.log()` when available.
  12758. * No-op when `console.log` is not a "function".
  12759. *
  12760. * @api public
  12761. */
  12762. function log() {
  12763. // this hackery is required for IE8/9, where
  12764. // the `console.log` function doesn't have 'apply'
  12765. return 'object' === typeof console
  12766. && console.log
  12767. && Function.prototype.apply.call(console.log, console, arguments);
  12768. }
  12769. /**
  12770. * Save `namespaces`.
  12771. *
  12772. * @param {String} namespaces
  12773. * @api private
  12774. */
  12775. function save(namespaces) {
  12776. try {
  12777. if (null == namespaces) {
  12778. exports.storage.removeItem('debug');
  12779. } else {
  12780. exports.storage.debug = namespaces;
  12781. }
  12782. } catch(e) {}
  12783. }
  12784. /**
  12785. * Load `namespaces`.
  12786. *
  12787. * @return {String} returns the previously persisted debug modes
  12788. * @api private
  12789. */
  12790. function load() {
  12791. var r;
  12792. try {
  12793. r = exports.storage.debug;
  12794. } catch(e) {}
  12795. // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
  12796. if (!r && typeof process !== 'undefined' && 'env' in process) {
  12797. r = process.env.DEBUG;
  12798. }
  12799. return r;
  12800. }
  12801. /**
  12802. * Enable namespaces listed in `localStorage.debug` initially.
  12803. */
  12804. exports.enable(load());
  12805. /**
  12806. * Localstorage attempts to return the localstorage.
  12807. *
  12808. * This is necessary because safari throws
  12809. * when a user disables cookies/localstorage
  12810. * and you attempt to access it.
  12811. *
  12812. * @return {LocalStorage}
  12813. * @api private
  12814. */
  12815. function localstorage() {
  12816. try {
  12817. return window.localStorage;
  12818. } catch (e) {}
  12819. }
  12820. }(browser, browser.exports));
  12821. var node = {exports: {}};
  12822. /**
  12823. * Module dependencies.
  12824. */
  12825. (function (module, exports) {
  12826. var tty = require$$0__default;
  12827. var util = require$$0__default$1;
  12828. /**
  12829. * This is the Node.js implementation of `debug()`.
  12830. *
  12831. * Expose `debug()` as the module.
  12832. */
  12833. exports = module.exports = debug$1.exports;
  12834. exports.init = init;
  12835. exports.log = log;
  12836. exports.formatArgs = formatArgs;
  12837. exports.save = save;
  12838. exports.load = load;
  12839. exports.useColors = useColors;
  12840. /**
  12841. * Colors.
  12842. */
  12843. exports.colors = [6, 2, 3, 4, 5, 1];
  12844. /**
  12845. * Build up the default `inspectOpts` object from the environment variables.
  12846. *
  12847. * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
  12848. */
  12849. exports.inspectOpts = Object.keys(process.env).filter(function (key) {
  12850. return /^debug_/i.test(key);
  12851. }).reduce(function (obj, key) {
  12852. // camel-case
  12853. var prop = key
  12854. .substring(6)
  12855. .toLowerCase()
  12856. .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
  12857. // coerce string value into JS value
  12858. var val = process.env[key];
  12859. if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
  12860. else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
  12861. else if (val === 'null') val = null;
  12862. else val = Number(val);
  12863. obj[prop] = val;
  12864. return obj;
  12865. }, {});
  12866. /**
  12867. * The file descriptor to write the `debug()` calls to.
  12868. * Set the `DEBUG_FD` env variable to override with another value. i.e.:
  12869. *
  12870. * $ DEBUG_FD=3 node script.js 3>debug.log
  12871. */
  12872. var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
  12873. if (1 !== fd && 2 !== fd) {
  12874. 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)')();
  12875. }
  12876. var stream = 1 === fd ? process.stdout :
  12877. 2 === fd ? process.stderr :
  12878. createWritableStdioStream(fd);
  12879. /**
  12880. * Is stdout a TTY? Colored output is enabled when `true`.
  12881. */
  12882. function useColors() {
  12883. return 'colors' in exports.inspectOpts
  12884. ? Boolean(exports.inspectOpts.colors)
  12885. : tty.isatty(fd);
  12886. }
  12887. /**
  12888. * Map %o to `util.inspect()`, all on a single line.
  12889. */
  12890. exports.formatters.o = function(v) {
  12891. this.inspectOpts.colors = this.useColors;
  12892. return util.inspect(v, this.inspectOpts)
  12893. .split('\n').map(function(str) {
  12894. return str.trim()
  12895. }).join(' ');
  12896. };
  12897. /**
  12898. * Map %o to `util.inspect()`, allowing multiple lines if needed.
  12899. */
  12900. exports.formatters.O = function(v) {
  12901. this.inspectOpts.colors = this.useColors;
  12902. return util.inspect(v, this.inspectOpts);
  12903. };
  12904. /**
  12905. * Adds ANSI color escape codes if enabled.
  12906. *
  12907. * @api public
  12908. */
  12909. function formatArgs(args) {
  12910. var name = this.namespace;
  12911. var useColors = this.useColors;
  12912. if (useColors) {
  12913. var c = this.color;
  12914. var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
  12915. args[0] = prefix + args[0].split('\n').join('\n' + prefix);
  12916. args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
  12917. } else {
  12918. args[0] = new Date().toUTCString()
  12919. + ' ' + name + ' ' + args[0];
  12920. }
  12921. }
  12922. /**
  12923. * Invokes `util.format()` with the specified arguments and writes to `stream`.
  12924. */
  12925. function log() {
  12926. return stream.write(util.format.apply(util, arguments) + '\n');
  12927. }
  12928. /**
  12929. * Save `namespaces`.
  12930. *
  12931. * @param {String} namespaces
  12932. * @api private
  12933. */
  12934. function save(namespaces) {
  12935. if (null == namespaces) {
  12936. // If you set a process.env field to null or undefined, it gets cast to the
  12937. // string 'null' or 'undefined'. Just delete instead.
  12938. delete process.env.DEBUG;
  12939. } else {
  12940. process.env.DEBUG = namespaces;
  12941. }
  12942. }
  12943. /**
  12944. * Load `namespaces`.
  12945. *
  12946. * @return {String} returns the previously persisted debug modes
  12947. * @api private
  12948. */
  12949. function load() {
  12950. return process.env.DEBUG;
  12951. }
  12952. /**
  12953. * Copied from `node/src/node.js`.
  12954. *
  12955. * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
  12956. * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
  12957. */
  12958. function createWritableStdioStream (fd) {
  12959. var stream;
  12960. var tty_wrap = process.binding('tty_wrap');
  12961. // Note stream._type is used for test-module-load-list.js
  12962. switch (tty_wrap.guessHandleType(fd)) {
  12963. case 'TTY':
  12964. stream = new tty.WriteStream(fd);
  12965. stream._type = 'tty';
  12966. // Hack to have stream not keep the event loop alive.
  12967. // See https://github.com/joyent/node/issues/1726
  12968. if (stream._handle && stream._handle.unref) {
  12969. stream._handle.unref();
  12970. }
  12971. break;
  12972. case 'FILE':
  12973. var fs = fs__default;
  12974. stream = new fs.SyncWriteStream(fd, { autoClose: false });
  12975. stream._type = 'fs';
  12976. break;
  12977. case 'PIPE':
  12978. case 'TCP':
  12979. var net = require$$4__default;
  12980. stream = new net.Socket({
  12981. fd: fd,
  12982. readable: false,
  12983. writable: true
  12984. });
  12985. // FIXME Should probably have an option in net.Socket to create a
  12986. // stream from an existing fd which is writable only. But for now
  12987. // we'll just add this hack and set the `readable` member to false.
  12988. // Test: ./node test/fixtures/echo.js < /etc/passwd
  12989. stream.readable = false;
  12990. stream.read = null;
  12991. stream._type = 'pipe';
  12992. // FIXME Hack to have stream not keep the event loop alive.
  12993. // See https://github.com/joyent/node/issues/1726
  12994. if (stream._handle && stream._handle.unref) {
  12995. stream._handle.unref();
  12996. }
  12997. break;
  12998. default:
  12999. // Probably an error on in uv_guess_handle()
  13000. throw new Error('Implement me. Unknown stream file type!');
  13001. }
  13002. // For supporting legacy API we put the FD here.
  13003. stream.fd = fd;
  13004. stream._isStdio = true;
  13005. return stream;
  13006. }
  13007. /**
  13008. * Init logic for `debug` instances.
  13009. *
  13010. * Create a new `inspectOpts` object in case `useColors` is set
  13011. * differently for a particular `debug` instance.
  13012. */
  13013. function init (debug) {
  13014. debug.inspectOpts = {};
  13015. var keys = Object.keys(exports.inspectOpts);
  13016. for (var i = 0; i < keys.length; i++) {
  13017. debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
  13018. }
  13019. }
  13020. /**
  13021. * Enable namespaces listed in `process.env.DEBUG` initially.
  13022. */
  13023. exports.enable(load());
  13024. }(node, node.exports));
  13025. /**
  13026. * Detect Electron renderer process, which is node, but we should
  13027. * treat as a browser.
  13028. */
  13029. if (typeof process !== 'undefined' && process.type === 'renderer') {
  13030. src.exports = browser.exports;
  13031. } else {
  13032. src.exports = node.exports;
  13033. }
  13034. /*!
  13035. * on-headers
  13036. * Copyright(c) 2014 Douglas Christopher Wilson
  13037. * MIT Licensed
  13038. */
  13039. /**
  13040. * Module exports.
  13041. * @public
  13042. */
  13043. var onHeaders_1 = onHeaders$1;
  13044. /**
  13045. * Create a replacement writeHead method.
  13046. *
  13047. * @param {function} prevWriteHead
  13048. * @param {function} listener
  13049. * @private
  13050. */
  13051. function createWriteHead (prevWriteHead, listener) {
  13052. var fired = false;
  13053. // return function with core name and argument list
  13054. return function writeHead (statusCode) {
  13055. // set headers from arguments
  13056. var args = setWriteHeadHeaders.apply(this, arguments);
  13057. // fire listener
  13058. if (!fired) {
  13059. fired = true;
  13060. listener.call(this);
  13061. // pass-along an updated status code
  13062. if (typeof args[0] === 'number' && this.statusCode !== args[0]) {
  13063. args[0] = this.statusCode;
  13064. args.length = 1;
  13065. }
  13066. }
  13067. return prevWriteHead.apply(this, args)
  13068. }
  13069. }
  13070. /**
  13071. * Execute a listener when a response is about to write headers.
  13072. *
  13073. * @param {object} res
  13074. * @return {function} listener
  13075. * @public
  13076. */
  13077. function onHeaders$1 (res, listener) {
  13078. if (!res) {
  13079. throw new TypeError('argument res is required')
  13080. }
  13081. if (typeof listener !== 'function') {
  13082. throw new TypeError('argument listener must be a function')
  13083. }
  13084. res.writeHead = createWriteHead(res.writeHead, listener);
  13085. }
  13086. /**
  13087. * Set headers contained in array on the response object.
  13088. *
  13089. * @param {object} res
  13090. * @param {array} headers
  13091. * @private
  13092. */
  13093. function setHeadersFromArray (res, headers) {
  13094. for (var i = 0; i < headers.length; i++) {
  13095. res.setHeader(headers[i][0], headers[i][1]);
  13096. }
  13097. }
  13098. /**
  13099. * Set headers contained in object on the response object.
  13100. *
  13101. * @param {object} res
  13102. * @param {object} headers
  13103. * @private
  13104. */
  13105. function setHeadersFromObject (res, headers) {
  13106. var keys = Object.keys(headers);
  13107. for (var i = 0; i < keys.length; i++) {
  13108. var k = keys[i];
  13109. if (k) res.setHeader(k, headers[k]);
  13110. }
  13111. }
  13112. /**
  13113. * Set headers and other properties on the response object.
  13114. *
  13115. * @param {number} statusCode
  13116. * @private
  13117. */
  13118. function setWriteHeadHeaders (statusCode) {
  13119. var length = arguments.length;
  13120. var headerIndex = length > 1 && typeof arguments[1] === 'string'
  13121. ? 2
  13122. : 1;
  13123. var headers = length >= headerIndex + 1
  13124. ? arguments[headerIndex]
  13125. : undefined;
  13126. this.statusCode = statusCode;
  13127. if (Array.isArray(headers)) {
  13128. // handle array case
  13129. setHeadersFromArray(this, headers);
  13130. } else if (headers) {
  13131. // handle object case
  13132. setHeadersFromObject(this, headers);
  13133. }
  13134. // copy leading arguments
  13135. var args = new Array(Math.min(length, headerIndex));
  13136. for (var i = 0; i < args.length; i++) {
  13137. args[i] = arguments[i];
  13138. }
  13139. return args
  13140. }
  13141. /*!
  13142. * compression
  13143. * Copyright(c) 2010 Sencha Inc.
  13144. * Copyright(c) 2011 TJ Holowaychuk
  13145. * Copyright(c) 2014 Jonathan Ong
  13146. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  13147. * MIT Licensed
  13148. */
  13149. /**
  13150. * Module dependencies.
  13151. * @private
  13152. */
  13153. var accepts = accepts$1;
  13154. var Buffer = build.safeBuffer.exports.Buffer;
  13155. var bytes = bytes$2.exports;
  13156. var compressible = compressible_1;
  13157. var debug = src.exports('compression');
  13158. var onHeaders = onHeaders_1;
  13159. var vary = build.vary.exports;
  13160. var zlib = require$$0__default$2;
  13161. /**
  13162. * Module exports.
  13163. */
  13164. compression$2.exports = compression;
  13165. compression$2.exports.filter = shouldCompress;
  13166. /**
  13167. * Module variables.
  13168. * @private
  13169. */
  13170. var cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/;
  13171. /**
  13172. * Compress response data with gzip / deflate.
  13173. *
  13174. * @param {Object} [options]
  13175. * @return {Function} middleware
  13176. * @public
  13177. */
  13178. function compression (options) {
  13179. var opts = options || {};
  13180. // options
  13181. var filter = opts.filter || shouldCompress;
  13182. var threshold = bytes.parse(opts.threshold);
  13183. if (threshold == null) {
  13184. threshold = 1024;
  13185. }
  13186. return function compression (req, res, next) {
  13187. var ended = false;
  13188. var length;
  13189. var listeners = [];
  13190. var stream;
  13191. var _end = res.end;
  13192. var _on = res.on;
  13193. var _write = res.write;
  13194. // flush
  13195. res.flush = function flush () {
  13196. if (stream) {
  13197. stream.flush();
  13198. }
  13199. };
  13200. // proxy
  13201. res.write = function write (chunk, encoding) {
  13202. if (ended) {
  13203. return false
  13204. }
  13205. if (!this._header) {
  13206. this._implicitHeader();
  13207. }
  13208. return stream
  13209. ? stream.write(toBuffer(chunk, encoding))
  13210. : _write.call(this, chunk, encoding)
  13211. };
  13212. res.end = function end (chunk, encoding) {
  13213. if (ended) {
  13214. return false
  13215. }
  13216. if (!this._header) {
  13217. // estimate the length
  13218. if (!this.getHeader('Content-Length')) {
  13219. length = chunkLength(chunk, encoding);
  13220. }
  13221. this._implicitHeader();
  13222. }
  13223. if (!stream) {
  13224. return _end.call(this, chunk, encoding)
  13225. }
  13226. // mark ended
  13227. ended = true;
  13228. // write Buffer for Node.js 0.8
  13229. return chunk
  13230. ? stream.end(toBuffer(chunk, encoding))
  13231. : stream.end()
  13232. };
  13233. res.on = function on (type, listener) {
  13234. if (!listeners || type !== 'drain') {
  13235. return _on.call(this, type, listener)
  13236. }
  13237. if (stream) {
  13238. return stream.on(type, listener)
  13239. }
  13240. // buffer listeners for future stream
  13241. listeners.push([type, listener]);
  13242. return this
  13243. };
  13244. function nocompress (msg) {
  13245. debug('no compression: %s', msg);
  13246. addListeners(res, _on, listeners);
  13247. listeners = null;
  13248. }
  13249. onHeaders(res, function onResponseHeaders () {
  13250. // determine if request is filtered
  13251. if (!filter(req, res)) {
  13252. nocompress('filtered');
  13253. return
  13254. }
  13255. // determine if the entity should be transformed
  13256. if (!shouldTransform(req, res)) {
  13257. nocompress('no transform');
  13258. return
  13259. }
  13260. // vary
  13261. vary(res, 'Accept-Encoding');
  13262. // content-length below threshold
  13263. if (Number(res.getHeader('Content-Length')) < threshold || length < threshold) {
  13264. nocompress('size below threshold');
  13265. return
  13266. }
  13267. var encoding = res.getHeader('Content-Encoding') || 'identity';
  13268. // already encoded
  13269. if (encoding !== 'identity') {
  13270. nocompress('already encoded');
  13271. return
  13272. }
  13273. // head
  13274. if (req.method === 'HEAD') {
  13275. nocompress('HEAD request');
  13276. return
  13277. }
  13278. // compression method
  13279. var accept = accepts(req);
  13280. var method = accept.encoding(['gzip', 'deflate', 'identity']);
  13281. // we really don't prefer deflate
  13282. if (method === 'deflate' && accept.encoding(['gzip'])) {
  13283. method = accept.encoding(['gzip', 'identity']);
  13284. }
  13285. // negotiation failed
  13286. if (!method || method === 'identity') {
  13287. nocompress('not acceptable');
  13288. return
  13289. }
  13290. // compression stream
  13291. debug('%s compression', method);
  13292. stream = method === 'gzip'
  13293. ? zlib.createGzip(opts)
  13294. : zlib.createDeflate(opts);
  13295. // add buffered listeners to stream
  13296. addListeners(stream, stream.on, listeners);
  13297. // header fields
  13298. res.setHeader('Content-Encoding', method);
  13299. res.removeHeader('Content-Length');
  13300. // compression
  13301. stream.on('data', function onStreamData (chunk) {
  13302. if (_write.call(res, chunk) === false) {
  13303. stream.pause();
  13304. }
  13305. });
  13306. stream.on('end', function onStreamEnd () {
  13307. _end.call(res);
  13308. });
  13309. _on.call(res, 'drain', function onResponseDrain () {
  13310. stream.resume();
  13311. });
  13312. });
  13313. next();
  13314. }
  13315. }
  13316. /**
  13317. * Add bufferred listeners to stream
  13318. * @private
  13319. */
  13320. function addListeners (stream, on, listeners) {
  13321. for (var i = 0; i < listeners.length; i++) {
  13322. on.apply(stream, listeners[i]);
  13323. }
  13324. }
  13325. /**
  13326. * Get the length of a given chunk
  13327. */
  13328. function chunkLength (chunk, encoding) {
  13329. if (!chunk) {
  13330. return 0
  13331. }
  13332. return !Buffer.isBuffer(chunk)
  13333. ? Buffer.byteLength(chunk, encoding)
  13334. : chunk.length
  13335. }
  13336. /**
  13337. * Default filter function.
  13338. * @private
  13339. */
  13340. function shouldCompress (req, res) {
  13341. var type = res.getHeader('Content-Type');
  13342. if (type === undefined || !compressible(type)) {
  13343. debug('%s not compressible', type);
  13344. return false
  13345. }
  13346. return true
  13347. }
  13348. /**
  13349. * Determine if the entity should be transformed.
  13350. * @private
  13351. */
  13352. function shouldTransform (req, res) {
  13353. var cacheControl = res.getHeader('Cache-Control');
  13354. // Don't compress for Cache-Control: no-transform
  13355. // https://tools.ietf.org/html/rfc7234#section-5.2.2.4
  13356. return !cacheControl ||
  13357. !cacheControlNoTransformRegExp.test(cacheControl)
  13358. }
  13359. /**
  13360. * Coerce arguments to Buffer
  13361. * @private
  13362. */
  13363. function toBuffer (chunk, encoding) {
  13364. return !Buffer.isBuffer(chunk)
  13365. ? Buffer.from(chunk, encoding)
  13366. : chunk
  13367. }
  13368. var compression$1 = compression$2.exports;
  13369. async function preview(config, serverOptions) {
  13370. var _a, _b;
  13371. const app = build.connect();
  13372. const httpServer = await build.resolveHttpServer(config.server, app, await build.resolveHttpsConfig(config));
  13373. // cors
  13374. const { cors } = config.server;
  13375. if (cors !== false) {
  13376. app.use(build.corsMiddleware(typeof cors === 'boolean' ? {} : cors));
  13377. }
  13378. // proxy
  13379. if (config.server.proxy) {
  13380. app.use(build.proxyMiddleware(httpServer, config));
  13381. }
  13382. app.use(compression$1());
  13383. const distDir = path__default.resolve(config.root, config.build.outDir);
  13384. app.use(config.base, build.sirv(distDir, {
  13385. etag: true,
  13386. dev: true,
  13387. single: true
  13388. }));
  13389. const options = config.server;
  13390. const hostname = build.resolveHostname((_a = serverOptions.host) !== null && _a !== void 0 ? _a : options.host);
  13391. const port = (_b = serverOptions.port) !== null && _b !== void 0 ? _b : 5000;
  13392. const protocol = options.https ? 'https' : 'http';
  13393. const logger = config.logger;
  13394. const base = config.base;
  13395. const serverPort = await build.httpServerStart(httpServer, {
  13396. port,
  13397. strictPort: options.strictPort,
  13398. host: hostname.host,
  13399. logger
  13400. });
  13401. logger.info(build.source.cyan(`\n vite v${require('vite/package.json').version}`) +
  13402. build.source.green(` build preview server running at:\n`));
  13403. build.printServerUrls(hostname, protocol, serverPort, base, logger.info);
  13404. if (options.open) {
  13405. const path = typeof options.open === 'string' ? options.open : base;
  13406. build.openBrowser(`${protocol}://${hostname.name}:${serverPort}${path}`, true, logger);
  13407. }
  13408. }
  13409. const cli = cac('vite');
  13410. /**
  13411. * removing global flags before passing as command specific sub-configs
  13412. */
  13413. function cleanOptions(options) {
  13414. const ret = { ...options };
  13415. delete ret['--'];
  13416. delete ret.c;
  13417. delete ret.config;
  13418. delete ret.r;
  13419. delete ret.root;
  13420. delete ret.base;
  13421. delete ret.l;
  13422. delete ret.logLevel;
  13423. delete ret.clearScreen;
  13424. delete ret.d;
  13425. delete ret.debug;
  13426. delete ret.f;
  13427. delete ret.filter;
  13428. delete ret.m;
  13429. delete ret.mode;
  13430. return ret;
  13431. }
  13432. cli
  13433. .option('-c, --config <file>', `[string] use specified config file`)
  13434. .option('-r, --root <path>', `[string] use specified root directory`)
  13435. .option('--base <path>', `[string] public base path (default: /)`)
  13436. .option('-l, --logLevel <level>', `[string] info | warn | error | silent`)
  13437. .option('--clearScreen', `[boolean] allow/disable clear screen when logging`)
  13438. .option('-d, --debug [feat]', `[string | boolean] show debug logs`)
  13439. .option('-f, --filter <filter>', `[string] filter debug logs`)
  13440. .option('-m, --mode <mode>', `[string] set env mode`);
  13441. // dev
  13442. cli
  13443. .command('[root]') // default command
  13444. .alias('serve')
  13445. .option('--host [host]', `[string] specify hostname`)
  13446. .option('--port <port>', `[number] specify port`)
  13447. .option('--https', `[boolean] use TLS + HTTP/2`)
  13448. .option('--open [path]', `[boolean | string] open browser on startup`)
  13449. .option('--cors', `[boolean] enable CORS`)
  13450. .option('--strictPort', `[boolean] exit if specified port is already in use`)
  13451. .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
  13452. .action(async (root, options) => {
  13453. // output structure is preserved even after bundling so require()
  13454. // is ok here
  13455. const { createServer } = await Promise.resolve().then(function () { return require('./chunks/dep-1be34a63.js'); }).then(function (n) { return n.index$1; });
  13456. try {
  13457. const server = await createServer({
  13458. root,
  13459. base: options.base,
  13460. mode: options.mode,
  13461. configFile: options.config,
  13462. logLevel: options.logLevel,
  13463. clearScreen: options.clearScreen,
  13464. server: cleanOptions(options)
  13465. });
  13466. await server.listen();
  13467. }
  13468. catch (e) {
  13469. build.createLogger(options.logLevel).error(build.source.red(`error when starting dev server:\n${e.stack}`), { error: e });
  13470. process.exit(1);
  13471. }
  13472. });
  13473. // build
  13474. cli
  13475. .command('build [root]')
  13476. .option('--target <target>', `[string] transpile target (default: 'modules')`)
  13477. .option('--outDir <dir>', `[string] output directory (default: dist)`)
  13478. .option('--assetsDir <dir>', `[string] directory under outDir to place assets in (default: _assets)`)
  13479. .option('--assetsInlineLimit <number>', `[number] static asset base64 inline threshold in bytes (default: 4096)`)
  13480. .option('--ssr [entry]', `[string] build specified entry for server-side rendering`)
  13481. .option('--sourcemap', `[boolean] output source maps for build (default: false)`)
  13482. .option('--minify [minifier]', `[boolean | "terser" | "esbuild"] enable/disable minification, ` +
  13483. `or specify minifier to use (default: terser)`)
  13484. .option('--manifest', `[boolean] emit build manifest json`)
  13485. .option('--ssrManifest', `[boolean] emit ssr manifest json`)
  13486. .option('--emptyOutDir', `[boolean] force empty outDir when it's outside of root`)
  13487. .option('-w, --watch', `[boolean] rebuilds when modules have changed on disk`)
  13488. .action(async (root, options) => {
  13489. const { build: build$1 } = await Promise.resolve().then(function () { return require('./chunks/dep-1be34a63.js'); }).then(function (n) { return n.build$1; });
  13490. const buildOptions = cleanOptions(options);
  13491. try {
  13492. await build$1({
  13493. root,
  13494. base: options.base,
  13495. mode: options.mode,
  13496. configFile: options.config,
  13497. logLevel: options.logLevel,
  13498. clearScreen: options.clearScreen,
  13499. build: buildOptions
  13500. });
  13501. }
  13502. catch (e) {
  13503. build.createLogger(options.logLevel).error(build.source.red(`error during build:\n${e.stack}`), { error: e });
  13504. process.exit(1);
  13505. }
  13506. });
  13507. // optimize
  13508. cli
  13509. .command('optimize [root]')
  13510. .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
  13511. .action(async (root, options) => {
  13512. const { optimizeDeps } = await Promise.resolve().then(function () { return require('./chunks/dep-1be34a63.js'); }).then(function (n) { return n.index; });
  13513. try {
  13514. const config = await build.resolveConfig({
  13515. root,
  13516. base: options.base,
  13517. configFile: options.config,
  13518. logLevel: options.logLevel
  13519. }, 'build', 'development');
  13520. await optimizeDeps(config, options.force, true);
  13521. }
  13522. catch (e) {
  13523. build.createLogger(options.logLevel).error(build.source.red(`error when optimizing deps:\n${e.stack}`), { error: e });
  13524. process.exit(1);
  13525. }
  13526. });
  13527. cli
  13528. .command('preview [root]')
  13529. .option('--host [host]', `[string] specify hostname`)
  13530. .option('--port <port>', `[number] specify port`)
  13531. .option('--https', `[boolean] use TLS + HTTP/2`)
  13532. .option('--open [path]', `[boolean | string] open browser on startup`)
  13533. .option('--strictPort', `[boolean] exit if specified port is already in use`)
  13534. .action(async (root, options) => {
  13535. try {
  13536. const config = await build.resolveConfig({
  13537. root,
  13538. base: options.base,
  13539. configFile: options.config,
  13540. logLevel: options.logLevel,
  13541. server: {
  13542. open: options.open,
  13543. strictPort: options.strictPort,
  13544. https: options.https
  13545. }
  13546. }, 'serve', 'production');
  13547. await preview(config, cleanOptions(options));
  13548. }
  13549. catch (e) {
  13550. build.createLogger(options.logLevel).error(build.source.red(`error when starting preview server:\n${e.stack}`), { error: e });
  13551. process.exit(1);
  13552. }
  13553. });
  13554. cli.help();
  13555. cli.version(require('../../package.json').version);
  13556. cli.parse();
  13557. //# sourceMappingURL=cli.js.map