cli.js 241 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121
  1. 'use strict';
  2. var require$$0$1 = require('events');
  3. var build = require('./chunks/dep-1bdbec90.js');
  4. var os = require('os');
  5. var path = require('path');
  6. var tty = require('tty');
  7. var util = require('util');
  8. var fs = require('fs');
  9. var require$$2 = require('net');
  10. var zlib_1 = require('zlib');
  11. require('url');
  12. require('http');
  13. require('stream');
  14. require('resolve');
  15. require('module');
  16. require('readline');
  17. require('crypto');
  18. require('worker_threads');
  19. require('assert');
  20. require('https');
  21. require('tls');
  22. require('buffer');
  23. require('child_process');
  24. require('querystring');
  25. function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
  26. var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
  27. var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
  28. var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);
  29. var util__default = /*#__PURE__*/_interopDefaultLegacy(util);
  30. var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
  31. var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
  32. var zlib_1__default = /*#__PURE__*/_interopDefaultLegacy(zlib_1);
  33. function toArr(any) {
  34. return any == null ? [] : Array.isArray(any) ? any : [any];
  35. }
  36. function toVal(out, key, val, opts) {
  37. var x, old=out[key], nxt=(
  38. !!~opts.string.indexOf(key) ? (val == null || val === true ? '' : String(val))
  39. : typeof val === 'boolean' ? val
  40. : !!~opts.boolean.indexOf(key) ? (val === 'false' ? false : val === 'true' || (out._.push((x = +val,x * 0 === 0) ? x : val),!!val))
  41. : (x = +val,x * 0 === 0) ? x : val
  42. );
  43. out[key] = old == null ? nxt : (Array.isArray(old) ? old.concat(nxt) : [old, nxt]);
  44. }
  45. function mri2 (args, opts) {
  46. args = args || [];
  47. opts = opts || {};
  48. var k, arr, arg, name, val, out={ _:[] };
  49. var i=0, j=0, idx=0, len=args.length;
  50. const alibi = opts.alias !== void 0;
  51. const strict = opts.unknown !== void 0;
  52. const defaults = opts.default !== void 0;
  53. opts.alias = opts.alias || {};
  54. opts.string = toArr(opts.string);
  55. opts.boolean = toArr(opts.boolean);
  56. if (alibi) {
  57. for (k in opts.alias) {
  58. arr = opts.alias[k] = toArr(opts.alias[k]);
  59. for (i=0; i < arr.length; i++) {
  60. (opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);
  61. }
  62. }
  63. }
  64. for (i=opts.boolean.length; i-- > 0;) {
  65. arr = opts.alias[opts.boolean[i]] || [];
  66. for (j=arr.length; j-- > 0;) opts.boolean.push(arr[j]);
  67. }
  68. for (i=opts.string.length; i-- > 0;) {
  69. arr = opts.alias[opts.string[i]] || [];
  70. for (j=arr.length; j-- > 0;) opts.string.push(arr[j]);
  71. }
  72. if (defaults) {
  73. for (k in opts.default) {
  74. name = typeof opts.default[k];
  75. arr = opts.alias[k] = opts.alias[k] || [];
  76. if (opts[name] !== void 0) {
  77. opts[name].push(k);
  78. for (i=0; i < arr.length; i++) {
  79. opts[name].push(arr[i]);
  80. }
  81. }
  82. }
  83. }
  84. const keys = strict ? Object.keys(opts.alias) : [];
  85. for (i=0; i < len; i++) {
  86. arg = args[i];
  87. if (arg === '--') {
  88. out._ = out._.concat(args.slice(++i));
  89. break;
  90. }
  91. for (j=0; j < arg.length; j++) {
  92. if (arg.charCodeAt(j) !== 45) break; // "-"
  93. }
  94. if (j === 0) {
  95. out._.push(arg);
  96. } else if (arg.substring(j, j + 3) === 'no-') {
  97. name = arg.substring(j + 3);
  98. if (strict && !~keys.indexOf(name)) {
  99. return opts.unknown(arg);
  100. }
  101. out[name] = false;
  102. } else {
  103. for (idx=j+1; idx < arg.length; idx++) {
  104. if (arg.charCodeAt(idx) === 61) break; // "="
  105. }
  106. name = arg.substring(j, idx);
  107. val = arg.substring(++idx) || (i+1 === len || (''+args[i+1]).charCodeAt(0) === 45 || args[++i]);
  108. arr = (j === 2 ? [name] : name);
  109. for (idx=0; idx < arr.length; idx++) {
  110. name = arr[idx];
  111. if (strict && !~keys.indexOf(name)) return opts.unknown('-'.repeat(j) + name);
  112. toVal(out, name, (idx + 1 < arr.length) || val, opts);
  113. }
  114. }
  115. }
  116. if (defaults) {
  117. for (k in opts.default) {
  118. if (out[k] === void 0) {
  119. out[k] = opts.default[k];
  120. }
  121. }
  122. }
  123. if (alibi) {
  124. for (k in out) {
  125. arr = opts.alias[k] || [];
  126. while (arr.length > 0) {
  127. out[arr.shift()] = out[k];
  128. }
  129. }
  130. }
  131. return out;
  132. }
  133. const removeBrackets = (v) => v.replace(/[<[].+/, "").trim();
  134. const findAllBrackets = (v) => {
  135. const ANGLED_BRACKET_RE_GLOBAL = /<([^>]+)>/g;
  136. const SQUARE_BRACKET_RE_GLOBAL = /\[([^\]]+)\]/g;
  137. const res = [];
  138. const parse = (match) => {
  139. let variadic = false;
  140. let value = match[1];
  141. if (value.startsWith("...")) {
  142. value = value.slice(3);
  143. variadic = true;
  144. }
  145. return {
  146. required: match[0].startsWith("<"),
  147. value,
  148. variadic
  149. };
  150. };
  151. let angledMatch;
  152. while (angledMatch = ANGLED_BRACKET_RE_GLOBAL.exec(v)) {
  153. res.push(parse(angledMatch));
  154. }
  155. let squareMatch;
  156. while (squareMatch = SQUARE_BRACKET_RE_GLOBAL.exec(v)) {
  157. res.push(parse(squareMatch));
  158. }
  159. return res;
  160. };
  161. const getMriOptions = (options) => {
  162. const result = {alias: {}, boolean: []};
  163. for (const [index, option] of options.entries()) {
  164. if (option.names.length > 1) {
  165. result.alias[option.names[0]] = option.names.slice(1);
  166. }
  167. if (option.isBoolean) {
  168. if (option.negated) {
  169. const hasStringTypeOption = options.some((o, i) => {
  170. return i !== index && o.names.some((name) => option.names.includes(name)) && typeof o.required === "boolean";
  171. });
  172. if (!hasStringTypeOption) {
  173. result.boolean.push(option.names[0]);
  174. }
  175. } else {
  176. result.boolean.push(option.names[0]);
  177. }
  178. }
  179. }
  180. return result;
  181. };
  182. const findLongest = (arr) => {
  183. return arr.sort((a, b) => {
  184. return a.length > b.length ? -1 : 1;
  185. })[0];
  186. };
  187. const padRight = (str, length) => {
  188. return str.length >= length ? str : `${str}${" ".repeat(length - str.length)}`;
  189. };
  190. const camelcase = (input) => {
  191. return input.replace(/([a-z])-([a-z])/g, (_, p1, p2) => {
  192. return p1 + p2.toUpperCase();
  193. });
  194. };
  195. const setDotProp = (obj, keys, val) => {
  196. let i = 0;
  197. let length = keys.length;
  198. let t = obj;
  199. let x;
  200. for (; i < length; ++i) {
  201. x = t[keys[i]];
  202. t = t[keys[i]] = i === length - 1 ? val : x != null ? x : !!~keys[i + 1].indexOf(".") || !(+keys[i + 1] > -1) ? {} : [];
  203. }
  204. };
  205. const setByType = (obj, transforms) => {
  206. for (const key of Object.keys(transforms)) {
  207. const transform = transforms[key];
  208. if (transform.shouldTransform) {
  209. obj[key] = Array.prototype.concat.call([], obj[key]);
  210. if (typeof transform.transformFunction === "function") {
  211. obj[key] = obj[key].map(transform.transformFunction);
  212. }
  213. }
  214. }
  215. };
  216. const getFileName = (input) => {
  217. const m = /([^\\\/]+)$/.exec(input);
  218. return m ? m[1] : "";
  219. };
  220. const camelcaseOptionName = (name) => {
  221. return name.split(".").map((v, i) => {
  222. return i === 0 ? camelcase(v) : v;
  223. }).join(".");
  224. };
  225. class CACError extends Error {
  226. constructor(message) {
  227. super(message);
  228. this.name = this.constructor.name;
  229. if (typeof Error.captureStackTrace === "function") {
  230. Error.captureStackTrace(this, this.constructor);
  231. } else {
  232. this.stack = new Error(message).stack;
  233. }
  234. }
  235. }
  236. class Option {
  237. constructor(rawName, description, config) {
  238. this.rawName = rawName;
  239. this.description = description;
  240. this.config = Object.assign({}, config);
  241. rawName = rawName.replace(/\.\*/g, "");
  242. this.negated = false;
  243. this.names = removeBrackets(rawName).split(",").map((v) => {
  244. let name = v.trim().replace(/^-{1,2}/, "");
  245. if (name.startsWith("no-")) {
  246. this.negated = true;
  247. name = name.replace(/^no-/, "");
  248. }
  249. return camelcaseOptionName(name);
  250. }).sort((a, b) => a.length > b.length ? 1 : -1);
  251. this.name = this.names[this.names.length - 1];
  252. if (this.negated && this.config.default == null) {
  253. this.config.default = true;
  254. }
  255. if (rawName.includes("<")) {
  256. this.required = true;
  257. } else if (rawName.includes("[")) {
  258. this.required = false;
  259. } else {
  260. this.isBoolean = true;
  261. }
  262. }
  263. }
  264. const processArgs = process.argv;
  265. const platformInfo = `${process.platform}-${process.arch} node-${process.version}`;
  266. class Command {
  267. constructor(rawName, description, config = {}, cli) {
  268. this.rawName = rawName;
  269. this.description = description;
  270. this.config = config;
  271. this.cli = cli;
  272. this.options = [];
  273. this.aliasNames = [];
  274. this.name = removeBrackets(rawName);
  275. this.args = findAllBrackets(rawName);
  276. this.examples = [];
  277. }
  278. usage(text) {
  279. this.usageText = text;
  280. return this;
  281. }
  282. allowUnknownOptions() {
  283. this.config.allowUnknownOptions = true;
  284. return this;
  285. }
  286. ignoreOptionDefaultValue() {
  287. this.config.ignoreOptionDefaultValue = true;
  288. return this;
  289. }
  290. version(version, customFlags = "-v, --version") {
  291. this.versionNumber = version;
  292. this.option(customFlags, "Display version number");
  293. return this;
  294. }
  295. example(example) {
  296. this.examples.push(example);
  297. return this;
  298. }
  299. option(rawName, description, config) {
  300. const option = new Option(rawName, description, config);
  301. this.options.push(option);
  302. return this;
  303. }
  304. alias(name) {
  305. this.aliasNames.push(name);
  306. return this;
  307. }
  308. action(callback) {
  309. this.commandAction = callback;
  310. return this;
  311. }
  312. isMatched(name) {
  313. return this.name === name || this.aliasNames.includes(name);
  314. }
  315. get isDefaultCommand() {
  316. return this.name === "" || this.aliasNames.includes("!");
  317. }
  318. get isGlobalCommand() {
  319. return this instanceof GlobalCommand;
  320. }
  321. hasOption(name) {
  322. name = name.split(".")[0];
  323. return this.options.find((option) => {
  324. return option.names.includes(name);
  325. });
  326. }
  327. outputHelp() {
  328. const {name, commands} = this.cli;
  329. const {
  330. versionNumber,
  331. options: globalOptions,
  332. helpCallback
  333. } = this.cli.globalCommand;
  334. let sections = [
  335. {
  336. body: `${name}${versionNumber ? `/${versionNumber}` : ""}`
  337. }
  338. ];
  339. sections.push({
  340. title: "Usage",
  341. body: ` $ ${name} ${this.usageText || this.rawName}`
  342. });
  343. const showCommands = (this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0;
  344. if (showCommands) {
  345. const longestCommandName = findLongest(commands.map((command) => command.rawName));
  346. sections.push({
  347. title: "Commands",
  348. body: commands.map((command) => {
  349. return ` ${padRight(command.rawName, longestCommandName.length)} ${command.description}`;
  350. }).join("\n")
  351. });
  352. sections.push({
  353. title: `For more info, run any command with the \`--help\` flag`,
  354. body: commands.map((command) => ` $ ${name}${command.name === "" ? "" : ` ${command.name}`} --help`).join("\n")
  355. });
  356. }
  357. const options = this.isGlobalCommand ? globalOptions : [...this.options, ...globalOptions || []];
  358. if (options.length > 0) {
  359. const longestOptionName = findLongest(options.map((option) => option.rawName));
  360. sections.push({
  361. title: "Options",
  362. body: options.map((option) => {
  363. return ` ${padRight(option.rawName, longestOptionName.length)} ${option.description} ${option.config.default === void 0 ? "" : `(default: ${option.config.default})`}`;
  364. }).join("\n")
  365. });
  366. }
  367. if (this.examples.length > 0) {
  368. sections.push({
  369. title: "Examples",
  370. body: this.examples.map((example) => {
  371. if (typeof example === "function") {
  372. return example(name);
  373. }
  374. return example;
  375. }).join("\n")
  376. });
  377. }
  378. if (helpCallback) {
  379. sections = helpCallback(sections) || sections;
  380. }
  381. console.log(sections.map((section) => {
  382. return section.title ? `${section.title}:
  383. ${section.body}` : section.body;
  384. }).join("\n\n"));
  385. }
  386. outputVersion() {
  387. const {name} = this.cli;
  388. const {versionNumber} = this.cli.globalCommand;
  389. if (versionNumber) {
  390. console.log(`${name}/${versionNumber} ${platformInfo}`);
  391. }
  392. }
  393. checkRequiredArgs() {
  394. const minimalArgsCount = this.args.filter((arg) => arg.required).length;
  395. if (this.cli.args.length < minimalArgsCount) {
  396. throw new CACError(`missing required args for command \`${this.rawName}\``);
  397. }
  398. }
  399. checkUnknownOptions() {
  400. const {options, globalCommand} = this.cli;
  401. if (!this.config.allowUnknownOptions) {
  402. for (const name of Object.keys(options)) {
  403. if (name !== "--" && !this.hasOption(name) && !globalCommand.hasOption(name)) {
  404. throw new CACError(`Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``);
  405. }
  406. }
  407. }
  408. }
  409. checkOptionValue() {
  410. const {options: parsedOptions, globalCommand} = this.cli;
  411. const options = [...globalCommand.options, ...this.options];
  412. for (const option of options) {
  413. const value = parsedOptions[option.name.split(".")[0]];
  414. if (option.required) {
  415. const hasNegated = options.some((o) => o.negated && o.names.includes(option.name));
  416. if (value === true || value === false && !hasNegated) {
  417. throw new CACError(`option \`${option.rawName}\` value is missing`);
  418. }
  419. }
  420. }
  421. }
  422. }
  423. class GlobalCommand extends Command {
  424. constructor(cli) {
  425. super("@@global@@", "", {}, cli);
  426. }
  427. }
  428. var __assign = Object.assign;
  429. class CAC extends require$$0$1.EventEmitter {
  430. constructor(name = "") {
  431. super();
  432. this.name = name;
  433. this.commands = [];
  434. this.rawArgs = [];
  435. this.args = [];
  436. this.options = {};
  437. this.globalCommand = new GlobalCommand(this);
  438. this.globalCommand.usage("<command> [options]");
  439. }
  440. usage(text) {
  441. this.globalCommand.usage(text);
  442. return this;
  443. }
  444. command(rawName, description, config) {
  445. const command = new Command(rawName, description || "", config, this);
  446. command.globalCommand = this.globalCommand;
  447. this.commands.push(command);
  448. return command;
  449. }
  450. option(rawName, description, config) {
  451. this.globalCommand.option(rawName, description, config);
  452. return this;
  453. }
  454. help(callback) {
  455. this.globalCommand.option("-h, --help", "Display this message");
  456. this.globalCommand.helpCallback = callback;
  457. this.showHelpOnExit = true;
  458. return this;
  459. }
  460. version(version, customFlags = "-v, --version") {
  461. this.globalCommand.version(version, customFlags);
  462. this.showVersionOnExit = true;
  463. return this;
  464. }
  465. example(example) {
  466. this.globalCommand.example(example);
  467. return this;
  468. }
  469. outputHelp() {
  470. if (this.matchedCommand) {
  471. this.matchedCommand.outputHelp();
  472. } else {
  473. this.globalCommand.outputHelp();
  474. }
  475. }
  476. outputVersion() {
  477. this.globalCommand.outputVersion();
  478. }
  479. setParsedInfo({args, options}, matchedCommand, matchedCommandName) {
  480. this.args = args;
  481. this.options = options;
  482. if (matchedCommand) {
  483. this.matchedCommand = matchedCommand;
  484. }
  485. if (matchedCommandName) {
  486. this.matchedCommandName = matchedCommandName;
  487. }
  488. return this;
  489. }
  490. unsetMatchedCommand() {
  491. this.matchedCommand = void 0;
  492. this.matchedCommandName = void 0;
  493. }
  494. parse(argv = processArgs, {
  495. run = true
  496. } = {}) {
  497. this.rawArgs = argv;
  498. if (!this.name) {
  499. this.name = argv[1] ? getFileName(argv[1]) : "cli";
  500. }
  501. let shouldParse = true;
  502. for (const command of this.commands) {
  503. const parsed = this.mri(argv.slice(2), command);
  504. const commandName = parsed.args[0];
  505. if (command.isMatched(commandName)) {
  506. shouldParse = false;
  507. const parsedInfo = __assign(__assign({}, parsed), {
  508. args: parsed.args.slice(1)
  509. });
  510. this.setParsedInfo(parsedInfo, command, commandName);
  511. this.emit(`command:${commandName}`, command);
  512. }
  513. }
  514. if (shouldParse) {
  515. for (const command of this.commands) {
  516. if (command.name === "") {
  517. shouldParse = false;
  518. const parsed = this.mri(argv.slice(2), command);
  519. this.setParsedInfo(parsed, command);
  520. this.emit(`command:!`, command);
  521. }
  522. }
  523. }
  524. if (shouldParse) {
  525. const parsed = this.mri(argv.slice(2));
  526. this.setParsedInfo(parsed);
  527. }
  528. if (this.options.help && this.showHelpOnExit) {
  529. this.outputHelp();
  530. run = false;
  531. this.unsetMatchedCommand();
  532. }
  533. if (this.options.version && this.showVersionOnExit) {
  534. this.outputVersion();
  535. run = false;
  536. this.unsetMatchedCommand();
  537. }
  538. const parsedArgv = {args: this.args, options: this.options};
  539. if (run) {
  540. this.runMatchedCommand();
  541. }
  542. if (!this.matchedCommand && this.args[0]) {
  543. this.emit("command:*");
  544. }
  545. return parsedArgv;
  546. }
  547. mri(argv, command) {
  548. const cliOptions = [
  549. ...this.globalCommand.options,
  550. ...command ? command.options : []
  551. ];
  552. const mriOptions = getMriOptions(cliOptions);
  553. let argsAfterDoubleDashes = [];
  554. const doubleDashesIndex = argv.indexOf("--");
  555. if (doubleDashesIndex > -1) {
  556. argsAfterDoubleDashes = argv.slice(doubleDashesIndex + 1);
  557. argv = argv.slice(0, doubleDashesIndex);
  558. }
  559. let parsed = mri2(argv, mriOptions);
  560. parsed = Object.keys(parsed).reduce((res, name) => {
  561. return __assign(__assign({}, res), {
  562. [camelcaseOptionName(name)]: parsed[name]
  563. });
  564. }, {_: []});
  565. const args = parsed._;
  566. const options = {
  567. "--": argsAfterDoubleDashes
  568. };
  569. const ignoreDefault = command && command.config.ignoreOptionDefaultValue ? command.config.ignoreOptionDefaultValue : this.globalCommand.config.ignoreOptionDefaultValue;
  570. let transforms = Object.create(null);
  571. for (const cliOption of cliOptions) {
  572. if (!ignoreDefault && cliOption.config.default !== void 0) {
  573. for (const name of cliOption.names) {
  574. options[name] = cliOption.config.default;
  575. }
  576. }
  577. if (Array.isArray(cliOption.config.type)) {
  578. if (transforms[cliOption.name] === void 0) {
  579. transforms[cliOption.name] = Object.create(null);
  580. transforms[cliOption.name]["shouldTransform"] = true;
  581. transforms[cliOption.name]["transformFunction"] = cliOption.config.type[0];
  582. }
  583. }
  584. }
  585. for (const key of Object.keys(parsed)) {
  586. if (key !== "_") {
  587. const keys = key.split(".");
  588. setDotProp(options, keys, parsed[key]);
  589. setByType(options, transforms);
  590. }
  591. }
  592. return {
  593. args,
  594. options
  595. };
  596. }
  597. runMatchedCommand() {
  598. const {args, options, matchedCommand: command} = this;
  599. if (!command || !command.commandAction)
  600. return;
  601. command.checkUnknownOptions();
  602. command.checkOptionValue();
  603. command.checkRequiredArgs();
  604. const actionArgs = [];
  605. command.args.forEach((arg, index) => {
  606. if (arg.variadic) {
  607. actionArgs.push(args.slice(index));
  608. } else {
  609. actionArgs.push(args[index]);
  610. }
  611. });
  612. actionArgs.push(options);
  613. return command.commandAction.apply(this, actionArgs);
  614. }
  615. }
  616. const cac = (name = "") => new CAC(name);
  617. /**
  618. * negotiator
  619. * Copyright(c) 2012 Isaac Z. Schlueter
  620. * Copyright(c) 2014 Federico Romero
  621. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  622. * MIT Licensed
  623. */
  624. /**
  625. * Module exports.
  626. * @public
  627. */
  628. var charset = preferredCharsets;
  629. var preferredCharsets_1 = preferredCharsets;
  630. /**
  631. * Module variables.
  632. * @private
  633. */
  634. var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
  635. /**
  636. * Parse the Accept-Charset header.
  637. * @private
  638. */
  639. function parseAcceptCharset(accept) {
  640. var accepts = accept.split(',');
  641. for (var i = 0, j = 0; i < accepts.length; i++) {
  642. var charset = parseCharset(accepts[i].trim(), i);
  643. if (charset) {
  644. accepts[j++] = charset;
  645. }
  646. }
  647. // trim accepts
  648. accepts.length = j;
  649. return accepts;
  650. }
  651. /**
  652. * Parse a charset from the Accept-Charset header.
  653. * @private
  654. */
  655. function parseCharset(str, i) {
  656. var match = simpleCharsetRegExp.exec(str);
  657. if (!match) return null;
  658. var charset = match[1];
  659. var q = 1;
  660. if (match[2]) {
  661. var params = match[2].split(';');
  662. for (var j = 0; j < params.length; j++) {
  663. var p = params[j].trim().split('=');
  664. if (p[0] === 'q') {
  665. q = parseFloat(p[1]);
  666. break;
  667. }
  668. }
  669. }
  670. return {
  671. charset: charset,
  672. q: q,
  673. i: i
  674. };
  675. }
  676. /**
  677. * Get the priority of a charset.
  678. * @private
  679. */
  680. function getCharsetPriority(charset, accepted, index) {
  681. var priority = {o: -1, q: 0, s: 0};
  682. for (var i = 0; i < accepted.length; i++) {
  683. var spec = specify(charset, accepted[i], index);
  684. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  685. priority = spec;
  686. }
  687. }
  688. return priority;
  689. }
  690. /**
  691. * Get the specificity of the charset.
  692. * @private
  693. */
  694. function specify(charset, spec, index) {
  695. var s = 0;
  696. if(spec.charset.toLowerCase() === charset.toLowerCase()){
  697. s |= 1;
  698. } else if (spec.charset !== '*' ) {
  699. return null
  700. }
  701. return {
  702. i: index,
  703. o: spec.i,
  704. q: spec.q,
  705. s: s
  706. }
  707. }
  708. /**
  709. * Get the preferred charsets from an Accept-Charset header.
  710. * @public
  711. */
  712. function preferredCharsets(accept, provided) {
  713. // RFC 2616 sec 14.2: no header = *
  714. var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || '');
  715. if (!provided) {
  716. // sorted list of all charsets
  717. return accepts
  718. .filter(isQuality)
  719. .sort(compareSpecs)
  720. .map(getFullCharset);
  721. }
  722. var priorities = provided.map(function getPriority(type, index) {
  723. return getCharsetPriority(type, accepts, index);
  724. });
  725. // sorted list of accepted charsets
  726. return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
  727. return provided[priorities.indexOf(priority)];
  728. });
  729. }
  730. /**
  731. * Compare two specs.
  732. * @private
  733. */
  734. function compareSpecs(a, b) {
  735. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  736. }
  737. /**
  738. * Get full charset string.
  739. * @private
  740. */
  741. function getFullCharset(spec) {
  742. return spec.charset;
  743. }
  744. /**
  745. * Check if a spec has any quality.
  746. * @private
  747. */
  748. function isQuality(spec) {
  749. return spec.q > 0;
  750. }
  751. charset.preferredCharsets = preferredCharsets_1;
  752. /**
  753. * negotiator
  754. * Copyright(c) 2012 Isaac Z. Schlueter
  755. * Copyright(c) 2014 Federico Romero
  756. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  757. * MIT Licensed
  758. */
  759. /**
  760. * Module exports.
  761. * @public
  762. */
  763. var encoding = preferredEncodings;
  764. var preferredEncodings_1 = preferredEncodings;
  765. /**
  766. * Module variables.
  767. * @private
  768. */
  769. var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
  770. /**
  771. * Parse the Accept-Encoding header.
  772. * @private
  773. */
  774. function parseAcceptEncoding(accept) {
  775. var accepts = accept.split(',');
  776. var hasIdentity = false;
  777. var minQuality = 1;
  778. for (var i = 0, j = 0; i < accepts.length; i++) {
  779. var encoding = parseEncoding(accepts[i].trim(), i);
  780. if (encoding) {
  781. accepts[j++] = encoding;
  782. hasIdentity = hasIdentity || specify$1('identity', encoding);
  783. minQuality = Math.min(minQuality, encoding.q || 1);
  784. }
  785. }
  786. if (!hasIdentity) {
  787. /*
  788. * If identity doesn't explicitly appear in the accept-encoding header,
  789. * it's added to the list of acceptable encoding with the lowest q
  790. */
  791. accepts[j++] = {
  792. encoding: 'identity',
  793. q: minQuality,
  794. i: i
  795. };
  796. }
  797. // trim accepts
  798. accepts.length = j;
  799. return accepts;
  800. }
  801. /**
  802. * Parse an encoding from the Accept-Encoding header.
  803. * @private
  804. */
  805. function parseEncoding(str, i) {
  806. var match = simpleEncodingRegExp.exec(str);
  807. if (!match) return null;
  808. var encoding = match[1];
  809. var q = 1;
  810. if (match[2]) {
  811. var params = match[2].split(';');
  812. for (var j = 0; j < params.length; j++) {
  813. var p = params[j].trim().split('=');
  814. if (p[0] === 'q') {
  815. q = parseFloat(p[1]);
  816. break;
  817. }
  818. }
  819. }
  820. return {
  821. encoding: encoding,
  822. q: q,
  823. i: i
  824. };
  825. }
  826. /**
  827. * Get the priority of an encoding.
  828. * @private
  829. */
  830. function getEncodingPriority(encoding, accepted, index) {
  831. var priority = {o: -1, q: 0, s: 0};
  832. for (var i = 0; i < accepted.length; i++) {
  833. var spec = specify$1(encoding, accepted[i], index);
  834. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  835. priority = spec;
  836. }
  837. }
  838. return priority;
  839. }
  840. /**
  841. * Get the specificity of the encoding.
  842. * @private
  843. */
  844. function specify$1(encoding, spec, index) {
  845. var s = 0;
  846. if(spec.encoding.toLowerCase() === encoding.toLowerCase()){
  847. s |= 1;
  848. } else if (spec.encoding !== '*' ) {
  849. return null
  850. }
  851. return {
  852. i: index,
  853. o: spec.i,
  854. q: spec.q,
  855. s: s
  856. }
  857. }
  858. /**
  859. * Get the preferred encodings from an Accept-Encoding header.
  860. * @public
  861. */
  862. function preferredEncodings(accept, provided) {
  863. var accepts = parseAcceptEncoding(accept || '');
  864. if (!provided) {
  865. // sorted list of all encodings
  866. return accepts
  867. .filter(isQuality$1)
  868. .sort(compareSpecs$1)
  869. .map(getFullEncoding);
  870. }
  871. var priorities = provided.map(function getPriority(type, index) {
  872. return getEncodingPriority(type, accepts, index);
  873. });
  874. // sorted list of accepted encodings
  875. return priorities.filter(isQuality$1).sort(compareSpecs$1).map(function getEncoding(priority) {
  876. return provided[priorities.indexOf(priority)];
  877. });
  878. }
  879. /**
  880. * Compare two specs.
  881. * @private
  882. */
  883. function compareSpecs$1(a, b) {
  884. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  885. }
  886. /**
  887. * Get full encoding string.
  888. * @private
  889. */
  890. function getFullEncoding(spec) {
  891. return spec.encoding;
  892. }
  893. /**
  894. * Check if a spec has any quality.
  895. * @private
  896. */
  897. function isQuality$1(spec) {
  898. return spec.q > 0;
  899. }
  900. encoding.preferredEncodings = preferredEncodings_1;
  901. /**
  902. * negotiator
  903. * Copyright(c) 2012 Isaac Z. Schlueter
  904. * Copyright(c) 2014 Federico Romero
  905. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  906. * MIT Licensed
  907. */
  908. /**
  909. * Module exports.
  910. * @public
  911. */
  912. var language = preferredLanguages;
  913. var preferredLanguages_1 = preferredLanguages;
  914. /**
  915. * Module variables.
  916. * @private
  917. */
  918. var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
  919. /**
  920. * Parse the Accept-Language header.
  921. * @private
  922. */
  923. function parseAcceptLanguage(accept) {
  924. var accepts = accept.split(',');
  925. for (var i = 0, j = 0; i < accepts.length; i++) {
  926. var language = parseLanguage(accepts[i].trim(), i);
  927. if (language) {
  928. accepts[j++] = language;
  929. }
  930. }
  931. // trim accepts
  932. accepts.length = j;
  933. return accepts;
  934. }
  935. /**
  936. * Parse a language from the Accept-Language header.
  937. * @private
  938. */
  939. function parseLanguage(str, i) {
  940. var match = simpleLanguageRegExp.exec(str);
  941. if (!match) return null;
  942. var prefix = match[1],
  943. suffix = match[2],
  944. full = prefix;
  945. if (suffix) full += "-" + suffix;
  946. var q = 1;
  947. if (match[3]) {
  948. var params = match[3].split(';');
  949. for (var j = 0; j < params.length; j++) {
  950. var p = params[j].split('=');
  951. if (p[0] === 'q') q = parseFloat(p[1]);
  952. }
  953. }
  954. return {
  955. prefix: prefix,
  956. suffix: suffix,
  957. q: q,
  958. i: i,
  959. full: full
  960. };
  961. }
  962. /**
  963. * Get the priority of a language.
  964. * @private
  965. */
  966. function getLanguagePriority(language, accepted, index) {
  967. var priority = {o: -1, q: 0, s: 0};
  968. for (var i = 0; i < accepted.length; i++) {
  969. var spec = specify$2(language, accepted[i], index);
  970. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  971. priority = spec;
  972. }
  973. }
  974. return priority;
  975. }
  976. /**
  977. * Get the specificity of the language.
  978. * @private
  979. */
  980. function specify$2(language, spec, index) {
  981. var p = parseLanguage(language);
  982. if (!p) return null;
  983. var s = 0;
  984. if(spec.full.toLowerCase() === p.full.toLowerCase()){
  985. s |= 4;
  986. } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
  987. s |= 2;
  988. } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
  989. s |= 1;
  990. } else if (spec.full !== '*' ) {
  991. return null
  992. }
  993. return {
  994. i: index,
  995. o: spec.i,
  996. q: spec.q,
  997. s: s
  998. }
  999. }
  1000. /**
  1001. * Get the preferred languages from an Accept-Language header.
  1002. * @public
  1003. */
  1004. function preferredLanguages(accept, provided) {
  1005. // RFC 2616 sec 14.4: no header = *
  1006. var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || '');
  1007. if (!provided) {
  1008. // sorted list of all languages
  1009. return accepts
  1010. .filter(isQuality$2)
  1011. .sort(compareSpecs$2)
  1012. .map(getFullLanguage);
  1013. }
  1014. var priorities = provided.map(function getPriority(type, index) {
  1015. return getLanguagePriority(type, accepts, index);
  1016. });
  1017. // sorted list of accepted languages
  1018. return priorities.filter(isQuality$2).sort(compareSpecs$2).map(function getLanguage(priority) {
  1019. return provided[priorities.indexOf(priority)];
  1020. });
  1021. }
  1022. /**
  1023. * Compare two specs.
  1024. * @private
  1025. */
  1026. function compareSpecs$2(a, b) {
  1027. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  1028. }
  1029. /**
  1030. * Get full language string.
  1031. * @private
  1032. */
  1033. function getFullLanguage(spec) {
  1034. return spec.full;
  1035. }
  1036. /**
  1037. * Check if a spec has any quality.
  1038. * @private
  1039. */
  1040. function isQuality$2(spec) {
  1041. return spec.q > 0;
  1042. }
  1043. language.preferredLanguages = preferredLanguages_1;
  1044. /**
  1045. * negotiator
  1046. * Copyright(c) 2012 Isaac Z. Schlueter
  1047. * Copyright(c) 2014 Federico Romero
  1048. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  1049. * MIT Licensed
  1050. */
  1051. /**
  1052. * Module exports.
  1053. * @public
  1054. */
  1055. var mediaType = preferredMediaTypes;
  1056. var preferredMediaTypes_1 = preferredMediaTypes;
  1057. /**
  1058. * Module variables.
  1059. * @private
  1060. */
  1061. var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
  1062. /**
  1063. * Parse the Accept header.
  1064. * @private
  1065. */
  1066. function parseAccept(accept) {
  1067. var accepts = splitMediaTypes(accept);
  1068. for (var i = 0, j = 0; i < accepts.length; i++) {
  1069. var mediaType = parseMediaType(accepts[i].trim(), i);
  1070. if (mediaType) {
  1071. accepts[j++] = mediaType;
  1072. }
  1073. }
  1074. // trim accepts
  1075. accepts.length = j;
  1076. return accepts;
  1077. }
  1078. /**
  1079. * Parse a media type from the Accept header.
  1080. * @private
  1081. */
  1082. function parseMediaType(str, i) {
  1083. var match = simpleMediaTypeRegExp.exec(str);
  1084. if (!match) return null;
  1085. var params = Object.create(null);
  1086. var q = 1;
  1087. var subtype = match[2];
  1088. var type = match[1];
  1089. if (match[3]) {
  1090. var kvps = splitParameters(match[3]).map(splitKeyValuePair);
  1091. for (var j = 0; j < kvps.length; j++) {
  1092. var pair = kvps[j];
  1093. var key = pair[0].toLowerCase();
  1094. var val = pair[1];
  1095. // get the value, unwrapping quotes
  1096. var value = val && val[0] === '"' && val[val.length - 1] === '"'
  1097. ? val.substr(1, val.length - 2)
  1098. : val;
  1099. if (key === 'q') {
  1100. q = parseFloat(value);
  1101. break;
  1102. }
  1103. // store parameter
  1104. params[key] = value;
  1105. }
  1106. }
  1107. return {
  1108. type: type,
  1109. subtype: subtype,
  1110. params: params,
  1111. q: q,
  1112. i: i
  1113. };
  1114. }
  1115. /**
  1116. * Get the priority of a media type.
  1117. * @private
  1118. */
  1119. function getMediaTypePriority(type, accepted, index) {
  1120. var priority = {o: -1, q: 0, s: 0};
  1121. for (var i = 0; i < accepted.length; i++) {
  1122. var spec = specify$3(type, accepted[i], index);
  1123. if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
  1124. priority = spec;
  1125. }
  1126. }
  1127. return priority;
  1128. }
  1129. /**
  1130. * Get the specificity of the media type.
  1131. * @private
  1132. */
  1133. function specify$3(type, spec, index) {
  1134. var p = parseMediaType(type);
  1135. var s = 0;
  1136. if (!p) {
  1137. return null;
  1138. }
  1139. if(spec.type.toLowerCase() == p.type.toLowerCase()) {
  1140. s |= 4;
  1141. } else if(spec.type != '*') {
  1142. return null;
  1143. }
  1144. if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
  1145. s |= 2;
  1146. } else if(spec.subtype != '*') {
  1147. return null;
  1148. }
  1149. var keys = Object.keys(spec.params);
  1150. if (keys.length > 0) {
  1151. if (keys.every(function (k) {
  1152. return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase();
  1153. })) {
  1154. s |= 1;
  1155. } else {
  1156. return null
  1157. }
  1158. }
  1159. return {
  1160. i: index,
  1161. o: spec.i,
  1162. q: spec.q,
  1163. s: s,
  1164. }
  1165. }
  1166. /**
  1167. * Get the preferred media types from an Accept header.
  1168. * @public
  1169. */
  1170. function preferredMediaTypes(accept, provided) {
  1171. // RFC 2616 sec 14.2: no header = */*
  1172. var accepts = parseAccept(accept === undefined ? '*/*' : accept || '');
  1173. if (!provided) {
  1174. // sorted list of all types
  1175. return accepts
  1176. .filter(isQuality$3)
  1177. .sort(compareSpecs$3)
  1178. .map(getFullType);
  1179. }
  1180. var priorities = provided.map(function getPriority(type, index) {
  1181. return getMediaTypePriority(type, accepts, index);
  1182. });
  1183. // sorted list of accepted types
  1184. return priorities.filter(isQuality$3).sort(compareSpecs$3).map(function getType(priority) {
  1185. return provided[priorities.indexOf(priority)];
  1186. });
  1187. }
  1188. /**
  1189. * Compare two specs.
  1190. * @private
  1191. */
  1192. function compareSpecs$3(a, b) {
  1193. return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
  1194. }
  1195. /**
  1196. * Get full type string.
  1197. * @private
  1198. */
  1199. function getFullType(spec) {
  1200. return spec.type + '/' + spec.subtype;
  1201. }
  1202. /**
  1203. * Check if a spec has any quality.
  1204. * @private
  1205. */
  1206. function isQuality$3(spec) {
  1207. return spec.q > 0;
  1208. }
  1209. /**
  1210. * Count the number of quotes in a string.
  1211. * @private
  1212. */
  1213. function quoteCount(string) {
  1214. var count = 0;
  1215. var index = 0;
  1216. while ((index = string.indexOf('"', index)) !== -1) {
  1217. count++;
  1218. index++;
  1219. }
  1220. return count;
  1221. }
  1222. /**
  1223. * Split a key value pair.
  1224. * @private
  1225. */
  1226. function splitKeyValuePair(str) {
  1227. var index = str.indexOf('=');
  1228. var key;
  1229. var val;
  1230. if (index === -1) {
  1231. key = str;
  1232. } else {
  1233. key = str.substr(0, index);
  1234. val = str.substr(index + 1);
  1235. }
  1236. return [key, val];
  1237. }
  1238. /**
  1239. * Split an Accept header into media types.
  1240. * @private
  1241. */
  1242. function splitMediaTypes(accept) {
  1243. var accepts = accept.split(',');
  1244. for (var i = 1, j = 0; i < accepts.length; i++) {
  1245. if (quoteCount(accepts[j]) % 2 == 0) {
  1246. accepts[++j] = accepts[i];
  1247. } else {
  1248. accepts[j] += ',' + accepts[i];
  1249. }
  1250. }
  1251. // trim accepts
  1252. accepts.length = j + 1;
  1253. return accepts;
  1254. }
  1255. /**
  1256. * Split a string of parameters.
  1257. * @private
  1258. */
  1259. function splitParameters(str) {
  1260. var parameters = str.split(';');
  1261. for (var i = 1, j = 0; i < parameters.length; i++) {
  1262. if (quoteCount(parameters[j]) % 2 == 0) {
  1263. parameters[++j] = parameters[i];
  1264. } else {
  1265. parameters[j] += ';' + parameters[i];
  1266. }
  1267. }
  1268. // trim parameters
  1269. parameters.length = j + 1;
  1270. for (var i = 0; i < parameters.length; i++) {
  1271. parameters[i] = parameters[i].trim();
  1272. }
  1273. return parameters;
  1274. }
  1275. mediaType.preferredMediaTypes = preferredMediaTypes_1;
  1276. /*!
  1277. * negotiator
  1278. * Copyright(c) 2012 Federico Romero
  1279. * Copyright(c) 2012-2014 Isaac Z. Schlueter
  1280. * Copyright(c) 2015 Douglas Christopher Wilson
  1281. * MIT Licensed
  1282. */
  1283. /**
  1284. * Cached loaded submodules.
  1285. * @private
  1286. */
  1287. var modules = Object.create(null);
  1288. /**
  1289. * Module exports.
  1290. * @public
  1291. */
  1292. var negotiator = Negotiator;
  1293. var Negotiator_1 = Negotiator;
  1294. /**
  1295. * Create a Negotiator instance from a request.
  1296. * @param {object} request
  1297. * @public
  1298. */
  1299. function Negotiator(request) {
  1300. if (!(this instanceof Negotiator)) {
  1301. return new Negotiator(request);
  1302. }
  1303. this.request = request;
  1304. }
  1305. Negotiator.prototype.charset = function charset(available) {
  1306. var set = this.charsets(available);
  1307. return set && set[0];
  1308. };
  1309. Negotiator.prototype.charsets = function charsets(available) {
  1310. var preferredCharsets = loadModule('charset').preferredCharsets;
  1311. return preferredCharsets(this.request.headers['accept-charset'], available);
  1312. };
  1313. Negotiator.prototype.encoding = function encoding(available) {
  1314. var set = this.encodings(available);
  1315. return set && set[0];
  1316. };
  1317. Negotiator.prototype.encodings = function encodings(available) {
  1318. var preferredEncodings = loadModule('encoding').preferredEncodings;
  1319. return preferredEncodings(this.request.headers['accept-encoding'], available);
  1320. };
  1321. Negotiator.prototype.language = function language(available) {
  1322. var set = this.languages(available);
  1323. return set && set[0];
  1324. };
  1325. Negotiator.prototype.languages = function languages(available) {
  1326. var preferredLanguages = loadModule('language').preferredLanguages;
  1327. return preferredLanguages(this.request.headers['accept-language'], available);
  1328. };
  1329. Negotiator.prototype.mediaType = function mediaType(available) {
  1330. var set = this.mediaTypes(available);
  1331. return set && set[0];
  1332. };
  1333. Negotiator.prototype.mediaTypes = function mediaTypes(available) {
  1334. var preferredMediaTypes = loadModule('mediaType').preferredMediaTypes;
  1335. return preferredMediaTypes(this.request.headers.accept, available);
  1336. };
  1337. // Backwards compatibility
  1338. Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
  1339. Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
  1340. Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
  1341. Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
  1342. Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
  1343. Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
  1344. Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
  1345. Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
  1346. /**
  1347. * Load the given module.
  1348. * @private
  1349. */
  1350. function loadModule(moduleName) {
  1351. var module = modules[moduleName];
  1352. if (module !== undefined) {
  1353. return module;
  1354. }
  1355. // This uses a switch for static require analysis
  1356. switch (moduleName) {
  1357. case 'charset':
  1358. module = charset;
  1359. break;
  1360. case 'encoding':
  1361. module = encoding;
  1362. break;
  1363. case 'language':
  1364. module = language;
  1365. break;
  1366. case 'mediaType':
  1367. module = mediaType;
  1368. break;
  1369. default:
  1370. throw new Error('Cannot find module \'' + moduleName + '\'');
  1371. }
  1372. // Store to prevent invoking require()
  1373. modules[moduleName] = module;
  1374. return module;
  1375. }
  1376. negotiator.Negotiator = Negotiator_1;
  1377. var require$$0 = {
  1378. "application/1d-interleaved-parityfec": {
  1379. source: "iana"
  1380. },
  1381. "application/3gpdash-qoe-report+xml": {
  1382. source: "iana",
  1383. charset: "UTF-8",
  1384. compressible: true
  1385. },
  1386. "application/3gpp-ims+xml": {
  1387. source: "iana",
  1388. compressible: true
  1389. },
  1390. "application/a2l": {
  1391. source: "iana"
  1392. },
  1393. "application/activemessage": {
  1394. source: "iana"
  1395. },
  1396. "application/activity+json": {
  1397. source: "iana",
  1398. compressible: true
  1399. },
  1400. "application/alto-costmap+json": {
  1401. source: "iana",
  1402. compressible: true
  1403. },
  1404. "application/alto-costmapfilter+json": {
  1405. source: "iana",
  1406. compressible: true
  1407. },
  1408. "application/alto-directory+json": {
  1409. source: "iana",
  1410. compressible: true
  1411. },
  1412. "application/alto-endpointcost+json": {
  1413. source: "iana",
  1414. compressible: true
  1415. },
  1416. "application/alto-endpointcostparams+json": {
  1417. source: "iana",
  1418. compressible: true
  1419. },
  1420. "application/alto-endpointprop+json": {
  1421. source: "iana",
  1422. compressible: true
  1423. },
  1424. "application/alto-endpointpropparams+json": {
  1425. source: "iana",
  1426. compressible: true
  1427. },
  1428. "application/alto-error+json": {
  1429. source: "iana",
  1430. compressible: true
  1431. },
  1432. "application/alto-networkmap+json": {
  1433. source: "iana",
  1434. compressible: true
  1435. },
  1436. "application/alto-networkmapfilter+json": {
  1437. source: "iana",
  1438. compressible: true
  1439. },
  1440. "application/alto-updatestreamcontrol+json": {
  1441. source: "iana",
  1442. compressible: true
  1443. },
  1444. "application/alto-updatestreamparams+json": {
  1445. source: "iana",
  1446. compressible: true
  1447. },
  1448. "application/aml": {
  1449. source: "iana"
  1450. },
  1451. "application/andrew-inset": {
  1452. source: "iana",
  1453. extensions: [
  1454. "ez"
  1455. ]
  1456. },
  1457. "application/applefile": {
  1458. source: "iana"
  1459. },
  1460. "application/applixware": {
  1461. source: "apache",
  1462. extensions: [
  1463. "aw"
  1464. ]
  1465. },
  1466. "application/atf": {
  1467. source: "iana"
  1468. },
  1469. "application/atfx": {
  1470. source: "iana"
  1471. },
  1472. "application/atom+xml": {
  1473. source: "iana",
  1474. compressible: true,
  1475. extensions: [
  1476. "atom"
  1477. ]
  1478. },
  1479. "application/atomcat+xml": {
  1480. source: "iana",
  1481. compressible: true,
  1482. extensions: [
  1483. "atomcat"
  1484. ]
  1485. },
  1486. "application/atomdeleted+xml": {
  1487. source: "iana",
  1488. compressible: true,
  1489. extensions: [
  1490. "atomdeleted"
  1491. ]
  1492. },
  1493. "application/atomicmail": {
  1494. source: "iana"
  1495. },
  1496. "application/atomsvc+xml": {
  1497. source: "iana",
  1498. compressible: true,
  1499. extensions: [
  1500. "atomsvc"
  1501. ]
  1502. },
  1503. "application/atsc-dwd+xml": {
  1504. source: "iana",
  1505. compressible: true,
  1506. extensions: [
  1507. "dwd"
  1508. ]
  1509. },
  1510. "application/atsc-dynamic-event-message": {
  1511. source: "iana"
  1512. },
  1513. "application/atsc-held+xml": {
  1514. source: "iana",
  1515. compressible: true,
  1516. extensions: [
  1517. "held"
  1518. ]
  1519. },
  1520. "application/atsc-rdt+json": {
  1521. source: "iana",
  1522. compressible: true
  1523. },
  1524. "application/atsc-rsat+xml": {
  1525. source: "iana",
  1526. compressible: true,
  1527. extensions: [
  1528. "rsat"
  1529. ]
  1530. },
  1531. "application/atxml": {
  1532. source: "iana"
  1533. },
  1534. "application/auth-policy+xml": {
  1535. source: "iana",
  1536. compressible: true
  1537. },
  1538. "application/bacnet-xdd+zip": {
  1539. source: "iana",
  1540. compressible: false
  1541. },
  1542. "application/batch-smtp": {
  1543. source: "iana"
  1544. },
  1545. "application/bdoc": {
  1546. compressible: false,
  1547. extensions: [
  1548. "bdoc"
  1549. ]
  1550. },
  1551. "application/beep+xml": {
  1552. source: "iana",
  1553. charset: "UTF-8",
  1554. compressible: true
  1555. },
  1556. "application/calendar+json": {
  1557. source: "iana",
  1558. compressible: true
  1559. },
  1560. "application/calendar+xml": {
  1561. source: "iana",
  1562. compressible: true,
  1563. extensions: [
  1564. "xcs"
  1565. ]
  1566. },
  1567. "application/call-completion": {
  1568. source: "iana"
  1569. },
  1570. "application/cals-1840": {
  1571. source: "iana"
  1572. },
  1573. "application/captive+json": {
  1574. source: "iana",
  1575. compressible: true
  1576. },
  1577. "application/cbor": {
  1578. source: "iana"
  1579. },
  1580. "application/cbor-seq": {
  1581. source: "iana"
  1582. },
  1583. "application/cccex": {
  1584. source: "iana"
  1585. },
  1586. "application/ccmp+xml": {
  1587. source: "iana",
  1588. compressible: true
  1589. },
  1590. "application/ccxml+xml": {
  1591. source: "iana",
  1592. compressible: true,
  1593. extensions: [
  1594. "ccxml"
  1595. ]
  1596. },
  1597. "application/cdfx+xml": {
  1598. source: "iana",
  1599. compressible: true,
  1600. extensions: [
  1601. "cdfx"
  1602. ]
  1603. },
  1604. "application/cdmi-capability": {
  1605. source: "iana",
  1606. extensions: [
  1607. "cdmia"
  1608. ]
  1609. },
  1610. "application/cdmi-container": {
  1611. source: "iana",
  1612. extensions: [
  1613. "cdmic"
  1614. ]
  1615. },
  1616. "application/cdmi-domain": {
  1617. source: "iana",
  1618. extensions: [
  1619. "cdmid"
  1620. ]
  1621. },
  1622. "application/cdmi-object": {
  1623. source: "iana",
  1624. extensions: [
  1625. "cdmio"
  1626. ]
  1627. },
  1628. "application/cdmi-queue": {
  1629. source: "iana",
  1630. extensions: [
  1631. "cdmiq"
  1632. ]
  1633. },
  1634. "application/cdni": {
  1635. source: "iana"
  1636. },
  1637. "application/cea": {
  1638. source: "iana"
  1639. },
  1640. "application/cea-2018+xml": {
  1641. source: "iana",
  1642. compressible: true
  1643. },
  1644. "application/cellml+xml": {
  1645. source: "iana",
  1646. compressible: true
  1647. },
  1648. "application/cfw": {
  1649. source: "iana"
  1650. },
  1651. "application/clr": {
  1652. source: "iana"
  1653. },
  1654. "application/clue+xml": {
  1655. source: "iana",
  1656. compressible: true
  1657. },
  1658. "application/clue_info+xml": {
  1659. source: "iana",
  1660. compressible: true
  1661. },
  1662. "application/cms": {
  1663. source: "iana"
  1664. },
  1665. "application/cnrp+xml": {
  1666. source: "iana",
  1667. compressible: true
  1668. },
  1669. "application/coap-group+json": {
  1670. source: "iana",
  1671. compressible: true
  1672. },
  1673. "application/coap-payload": {
  1674. source: "iana"
  1675. },
  1676. "application/commonground": {
  1677. source: "iana"
  1678. },
  1679. "application/conference-info+xml": {
  1680. source: "iana",
  1681. compressible: true
  1682. },
  1683. "application/cose": {
  1684. source: "iana"
  1685. },
  1686. "application/cose-key": {
  1687. source: "iana"
  1688. },
  1689. "application/cose-key-set": {
  1690. source: "iana"
  1691. },
  1692. "application/cpl+xml": {
  1693. source: "iana",
  1694. compressible: true
  1695. },
  1696. "application/csrattrs": {
  1697. source: "iana"
  1698. },
  1699. "application/csta+xml": {
  1700. source: "iana",
  1701. compressible: true
  1702. },
  1703. "application/cstadata+xml": {
  1704. source: "iana",
  1705. compressible: true
  1706. },
  1707. "application/csvm+json": {
  1708. source: "iana",
  1709. compressible: true
  1710. },
  1711. "application/cu-seeme": {
  1712. source: "apache",
  1713. extensions: [
  1714. "cu"
  1715. ]
  1716. },
  1717. "application/cwt": {
  1718. source: "iana"
  1719. },
  1720. "application/cybercash": {
  1721. source: "iana"
  1722. },
  1723. "application/dart": {
  1724. compressible: true
  1725. },
  1726. "application/dash+xml": {
  1727. source: "iana",
  1728. compressible: true,
  1729. extensions: [
  1730. "mpd"
  1731. ]
  1732. },
  1733. "application/dashdelta": {
  1734. source: "iana"
  1735. },
  1736. "application/davmount+xml": {
  1737. source: "iana",
  1738. compressible: true,
  1739. extensions: [
  1740. "davmount"
  1741. ]
  1742. },
  1743. "application/dca-rft": {
  1744. source: "iana"
  1745. },
  1746. "application/dcd": {
  1747. source: "iana"
  1748. },
  1749. "application/dec-dx": {
  1750. source: "iana"
  1751. },
  1752. "application/dialog-info+xml": {
  1753. source: "iana",
  1754. compressible: true
  1755. },
  1756. "application/dicom": {
  1757. source: "iana"
  1758. },
  1759. "application/dicom+json": {
  1760. source: "iana",
  1761. compressible: true
  1762. },
  1763. "application/dicom+xml": {
  1764. source: "iana",
  1765. compressible: true
  1766. },
  1767. "application/dii": {
  1768. source: "iana"
  1769. },
  1770. "application/dit": {
  1771. source: "iana"
  1772. },
  1773. "application/dns": {
  1774. source: "iana"
  1775. },
  1776. "application/dns+json": {
  1777. source: "iana",
  1778. compressible: true
  1779. },
  1780. "application/dns-message": {
  1781. source: "iana"
  1782. },
  1783. "application/docbook+xml": {
  1784. source: "apache",
  1785. compressible: true,
  1786. extensions: [
  1787. "dbk"
  1788. ]
  1789. },
  1790. "application/dots+cbor": {
  1791. source: "iana"
  1792. },
  1793. "application/dskpp+xml": {
  1794. source: "iana",
  1795. compressible: true
  1796. },
  1797. "application/dssc+der": {
  1798. source: "iana",
  1799. extensions: [
  1800. "dssc"
  1801. ]
  1802. },
  1803. "application/dssc+xml": {
  1804. source: "iana",
  1805. compressible: true,
  1806. extensions: [
  1807. "xdssc"
  1808. ]
  1809. },
  1810. "application/dvcs": {
  1811. source: "iana"
  1812. },
  1813. "application/ecmascript": {
  1814. source: "iana",
  1815. compressible: true,
  1816. extensions: [
  1817. "ecma",
  1818. "es"
  1819. ]
  1820. },
  1821. "application/edi-consent": {
  1822. source: "iana"
  1823. },
  1824. "application/edi-x12": {
  1825. source: "iana",
  1826. compressible: false
  1827. },
  1828. "application/edifact": {
  1829. source: "iana",
  1830. compressible: false
  1831. },
  1832. "application/efi": {
  1833. source: "iana"
  1834. },
  1835. "application/elm+json": {
  1836. source: "iana",
  1837. charset: "UTF-8",
  1838. compressible: true
  1839. },
  1840. "application/elm+xml": {
  1841. source: "iana",
  1842. compressible: true
  1843. },
  1844. "application/emergencycalldata.cap+xml": {
  1845. source: "iana",
  1846. charset: "UTF-8",
  1847. compressible: true
  1848. },
  1849. "application/emergencycalldata.comment+xml": {
  1850. source: "iana",
  1851. compressible: true
  1852. },
  1853. "application/emergencycalldata.control+xml": {
  1854. source: "iana",
  1855. compressible: true
  1856. },
  1857. "application/emergencycalldata.deviceinfo+xml": {
  1858. source: "iana",
  1859. compressible: true
  1860. },
  1861. "application/emergencycalldata.ecall.msd": {
  1862. source: "iana"
  1863. },
  1864. "application/emergencycalldata.providerinfo+xml": {
  1865. source: "iana",
  1866. compressible: true
  1867. },
  1868. "application/emergencycalldata.serviceinfo+xml": {
  1869. source: "iana",
  1870. compressible: true
  1871. },
  1872. "application/emergencycalldata.subscriberinfo+xml": {
  1873. source: "iana",
  1874. compressible: true
  1875. },
  1876. "application/emergencycalldata.veds+xml": {
  1877. source: "iana",
  1878. compressible: true
  1879. },
  1880. "application/emma+xml": {
  1881. source: "iana",
  1882. compressible: true,
  1883. extensions: [
  1884. "emma"
  1885. ]
  1886. },
  1887. "application/emotionml+xml": {
  1888. source: "iana",
  1889. compressible: true,
  1890. extensions: [
  1891. "emotionml"
  1892. ]
  1893. },
  1894. "application/encaprtp": {
  1895. source: "iana"
  1896. },
  1897. "application/epp+xml": {
  1898. source: "iana",
  1899. compressible: true
  1900. },
  1901. "application/epub+zip": {
  1902. source: "iana",
  1903. compressible: false,
  1904. extensions: [
  1905. "epub"
  1906. ]
  1907. },
  1908. "application/eshop": {
  1909. source: "iana"
  1910. },
  1911. "application/exi": {
  1912. source: "iana",
  1913. extensions: [
  1914. "exi"
  1915. ]
  1916. },
  1917. "application/expect-ct-report+json": {
  1918. source: "iana",
  1919. compressible: true
  1920. },
  1921. "application/fastinfoset": {
  1922. source: "iana"
  1923. },
  1924. "application/fastsoap": {
  1925. source: "iana"
  1926. },
  1927. "application/fdt+xml": {
  1928. source: "iana",
  1929. compressible: true,
  1930. extensions: [
  1931. "fdt"
  1932. ]
  1933. },
  1934. "application/fhir+json": {
  1935. source: "iana",
  1936. charset: "UTF-8",
  1937. compressible: true
  1938. },
  1939. "application/fhir+xml": {
  1940. source: "iana",
  1941. charset: "UTF-8",
  1942. compressible: true
  1943. },
  1944. "application/fido.trusted-apps+json": {
  1945. compressible: true
  1946. },
  1947. "application/fits": {
  1948. source: "iana"
  1949. },
  1950. "application/flexfec": {
  1951. source: "iana"
  1952. },
  1953. "application/font-sfnt": {
  1954. source: "iana"
  1955. },
  1956. "application/font-tdpfr": {
  1957. source: "iana",
  1958. extensions: [
  1959. "pfr"
  1960. ]
  1961. },
  1962. "application/font-woff": {
  1963. source: "iana",
  1964. compressible: false
  1965. },
  1966. "application/framework-attributes+xml": {
  1967. source: "iana",
  1968. compressible: true
  1969. },
  1970. "application/geo+json": {
  1971. source: "iana",
  1972. compressible: true,
  1973. extensions: [
  1974. "geojson"
  1975. ]
  1976. },
  1977. "application/geo+json-seq": {
  1978. source: "iana"
  1979. },
  1980. "application/geopackage+sqlite3": {
  1981. source: "iana"
  1982. },
  1983. "application/geoxacml+xml": {
  1984. source: "iana",
  1985. compressible: true
  1986. },
  1987. "application/gltf-buffer": {
  1988. source: "iana"
  1989. },
  1990. "application/gml+xml": {
  1991. source: "iana",
  1992. compressible: true,
  1993. extensions: [
  1994. "gml"
  1995. ]
  1996. },
  1997. "application/gpx+xml": {
  1998. source: "apache",
  1999. compressible: true,
  2000. extensions: [
  2001. "gpx"
  2002. ]
  2003. },
  2004. "application/gxf": {
  2005. source: "apache",
  2006. extensions: [
  2007. "gxf"
  2008. ]
  2009. },
  2010. "application/gzip": {
  2011. source: "iana",
  2012. compressible: false,
  2013. extensions: [
  2014. "gz"
  2015. ]
  2016. },
  2017. "application/h224": {
  2018. source: "iana"
  2019. },
  2020. "application/held+xml": {
  2021. source: "iana",
  2022. compressible: true
  2023. },
  2024. "application/hjson": {
  2025. extensions: [
  2026. "hjson"
  2027. ]
  2028. },
  2029. "application/http": {
  2030. source: "iana"
  2031. },
  2032. "application/hyperstudio": {
  2033. source: "iana",
  2034. extensions: [
  2035. "stk"
  2036. ]
  2037. },
  2038. "application/ibe-key-request+xml": {
  2039. source: "iana",
  2040. compressible: true
  2041. },
  2042. "application/ibe-pkg-reply+xml": {
  2043. source: "iana",
  2044. compressible: true
  2045. },
  2046. "application/ibe-pp-data": {
  2047. source: "iana"
  2048. },
  2049. "application/iges": {
  2050. source: "iana"
  2051. },
  2052. "application/im-iscomposing+xml": {
  2053. source: "iana",
  2054. charset: "UTF-8",
  2055. compressible: true
  2056. },
  2057. "application/index": {
  2058. source: "iana"
  2059. },
  2060. "application/index.cmd": {
  2061. source: "iana"
  2062. },
  2063. "application/index.obj": {
  2064. source: "iana"
  2065. },
  2066. "application/index.response": {
  2067. source: "iana"
  2068. },
  2069. "application/index.vnd": {
  2070. source: "iana"
  2071. },
  2072. "application/inkml+xml": {
  2073. source: "iana",
  2074. compressible: true,
  2075. extensions: [
  2076. "ink",
  2077. "inkml"
  2078. ]
  2079. },
  2080. "application/iotp": {
  2081. source: "iana"
  2082. },
  2083. "application/ipfix": {
  2084. source: "iana",
  2085. extensions: [
  2086. "ipfix"
  2087. ]
  2088. },
  2089. "application/ipp": {
  2090. source: "iana"
  2091. },
  2092. "application/isup": {
  2093. source: "iana"
  2094. },
  2095. "application/its+xml": {
  2096. source: "iana",
  2097. compressible: true,
  2098. extensions: [
  2099. "its"
  2100. ]
  2101. },
  2102. "application/java-archive": {
  2103. source: "apache",
  2104. compressible: false,
  2105. extensions: [
  2106. "jar",
  2107. "war",
  2108. "ear"
  2109. ]
  2110. },
  2111. "application/java-serialized-object": {
  2112. source: "apache",
  2113. compressible: false,
  2114. extensions: [
  2115. "ser"
  2116. ]
  2117. },
  2118. "application/java-vm": {
  2119. source: "apache",
  2120. compressible: false,
  2121. extensions: [
  2122. "class"
  2123. ]
  2124. },
  2125. "application/javascript": {
  2126. source: "iana",
  2127. charset: "UTF-8",
  2128. compressible: true,
  2129. extensions: [
  2130. "js",
  2131. "mjs"
  2132. ]
  2133. },
  2134. "application/jf2feed+json": {
  2135. source: "iana",
  2136. compressible: true
  2137. },
  2138. "application/jose": {
  2139. source: "iana"
  2140. },
  2141. "application/jose+json": {
  2142. source: "iana",
  2143. compressible: true
  2144. },
  2145. "application/jrd+json": {
  2146. source: "iana",
  2147. compressible: true
  2148. },
  2149. "application/jscalendar+json": {
  2150. source: "iana",
  2151. compressible: true
  2152. },
  2153. "application/json": {
  2154. source: "iana",
  2155. charset: "UTF-8",
  2156. compressible: true,
  2157. extensions: [
  2158. "json",
  2159. "map"
  2160. ]
  2161. },
  2162. "application/json-patch+json": {
  2163. source: "iana",
  2164. compressible: true
  2165. },
  2166. "application/json-seq": {
  2167. source: "iana"
  2168. },
  2169. "application/json5": {
  2170. extensions: [
  2171. "json5"
  2172. ]
  2173. },
  2174. "application/jsonml+json": {
  2175. source: "apache",
  2176. compressible: true,
  2177. extensions: [
  2178. "jsonml"
  2179. ]
  2180. },
  2181. "application/jwk+json": {
  2182. source: "iana",
  2183. compressible: true
  2184. },
  2185. "application/jwk-set+json": {
  2186. source: "iana",
  2187. compressible: true
  2188. },
  2189. "application/jwt": {
  2190. source: "iana"
  2191. },
  2192. "application/kpml-request+xml": {
  2193. source: "iana",
  2194. compressible: true
  2195. },
  2196. "application/kpml-response+xml": {
  2197. source: "iana",
  2198. compressible: true
  2199. },
  2200. "application/ld+json": {
  2201. source: "iana",
  2202. compressible: true,
  2203. extensions: [
  2204. "jsonld"
  2205. ]
  2206. },
  2207. "application/lgr+xml": {
  2208. source: "iana",
  2209. compressible: true,
  2210. extensions: [
  2211. "lgr"
  2212. ]
  2213. },
  2214. "application/link-format": {
  2215. source: "iana"
  2216. },
  2217. "application/load-control+xml": {
  2218. source: "iana",
  2219. compressible: true
  2220. },
  2221. "application/lost+xml": {
  2222. source: "iana",
  2223. compressible: true,
  2224. extensions: [
  2225. "lostxml"
  2226. ]
  2227. },
  2228. "application/lostsync+xml": {
  2229. source: "iana",
  2230. compressible: true
  2231. },
  2232. "application/lpf+zip": {
  2233. source: "iana",
  2234. compressible: false
  2235. },
  2236. "application/lxf": {
  2237. source: "iana"
  2238. },
  2239. "application/mac-binhex40": {
  2240. source: "iana",
  2241. extensions: [
  2242. "hqx"
  2243. ]
  2244. },
  2245. "application/mac-compactpro": {
  2246. source: "apache",
  2247. extensions: [
  2248. "cpt"
  2249. ]
  2250. },
  2251. "application/macwriteii": {
  2252. source: "iana"
  2253. },
  2254. "application/mads+xml": {
  2255. source: "iana",
  2256. compressible: true,
  2257. extensions: [
  2258. "mads"
  2259. ]
  2260. },
  2261. "application/manifest+json": {
  2262. charset: "UTF-8",
  2263. compressible: true,
  2264. extensions: [
  2265. "webmanifest"
  2266. ]
  2267. },
  2268. "application/marc": {
  2269. source: "iana",
  2270. extensions: [
  2271. "mrc"
  2272. ]
  2273. },
  2274. "application/marcxml+xml": {
  2275. source: "iana",
  2276. compressible: true,
  2277. extensions: [
  2278. "mrcx"
  2279. ]
  2280. },
  2281. "application/mathematica": {
  2282. source: "iana",
  2283. extensions: [
  2284. "ma",
  2285. "nb",
  2286. "mb"
  2287. ]
  2288. },
  2289. "application/mathml+xml": {
  2290. source: "iana",
  2291. compressible: true,
  2292. extensions: [
  2293. "mathml"
  2294. ]
  2295. },
  2296. "application/mathml-content+xml": {
  2297. source: "iana",
  2298. compressible: true
  2299. },
  2300. "application/mathml-presentation+xml": {
  2301. source: "iana",
  2302. compressible: true
  2303. },
  2304. "application/mbms-associated-procedure-description+xml": {
  2305. source: "iana",
  2306. compressible: true
  2307. },
  2308. "application/mbms-deregister+xml": {
  2309. source: "iana",
  2310. compressible: true
  2311. },
  2312. "application/mbms-envelope+xml": {
  2313. source: "iana",
  2314. compressible: true
  2315. },
  2316. "application/mbms-msk+xml": {
  2317. source: "iana",
  2318. compressible: true
  2319. },
  2320. "application/mbms-msk-response+xml": {
  2321. source: "iana",
  2322. compressible: true
  2323. },
  2324. "application/mbms-protection-description+xml": {
  2325. source: "iana",
  2326. compressible: true
  2327. },
  2328. "application/mbms-reception-report+xml": {
  2329. source: "iana",
  2330. compressible: true
  2331. },
  2332. "application/mbms-register+xml": {
  2333. source: "iana",
  2334. compressible: true
  2335. },
  2336. "application/mbms-register-response+xml": {
  2337. source: "iana",
  2338. compressible: true
  2339. },
  2340. "application/mbms-schedule+xml": {
  2341. source: "iana",
  2342. compressible: true
  2343. },
  2344. "application/mbms-user-service-description+xml": {
  2345. source: "iana",
  2346. compressible: true
  2347. },
  2348. "application/mbox": {
  2349. source: "iana",
  2350. extensions: [
  2351. "mbox"
  2352. ]
  2353. },
  2354. "application/media-policy-dataset+xml": {
  2355. source: "iana",
  2356. compressible: true
  2357. },
  2358. "application/media_control+xml": {
  2359. source: "iana",
  2360. compressible: true
  2361. },
  2362. "application/mediaservercontrol+xml": {
  2363. source: "iana",
  2364. compressible: true,
  2365. extensions: [
  2366. "mscml"
  2367. ]
  2368. },
  2369. "application/merge-patch+json": {
  2370. source: "iana",
  2371. compressible: true
  2372. },
  2373. "application/metalink+xml": {
  2374. source: "apache",
  2375. compressible: true,
  2376. extensions: [
  2377. "metalink"
  2378. ]
  2379. },
  2380. "application/metalink4+xml": {
  2381. source: "iana",
  2382. compressible: true,
  2383. extensions: [
  2384. "meta4"
  2385. ]
  2386. },
  2387. "application/mets+xml": {
  2388. source: "iana",
  2389. compressible: true,
  2390. extensions: [
  2391. "mets"
  2392. ]
  2393. },
  2394. "application/mf4": {
  2395. source: "iana"
  2396. },
  2397. "application/mikey": {
  2398. source: "iana"
  2399. },
  2400. "application/mipc": {
  2401. source: "iana"
  2402. },
  2403. "application/mmt-aei+xml": {
  2404. source: "iana",
  2405. compressible: true,
  2406. extensions: [
  2407. "maei"
  2408. ]
  2409. },
  2410. "application/mmt-usd+xml": {
  2411. source: "iana",
  2412. compressible: true,
  2413. extensions: [
  2414. "musd"
  2415. ]
  2416. },
  2417. "application/mods+xml": {
  2418. source: "iana",
  2419. compressible: true,
  2420. extensions: [
  2421. "mods"
  2422. ]
  2423. },
  2424. "application/moss-keys": {
  2425. source: "iana"
  2426. },
  2427. "application/moss-signature": {
  2428. source: "iana"
  2429. },
  2430. "application/mosskey-data": {
  2431. source: "iana"
  2432. },
  2433. "application/mosskey-request": {
  2434. source: "iana"
  2435. },
  2436. "application/mp21": {
  2437. source: "iana",
  2438. extensions: [
  2439. "m21",
  2440. "mp21"
  2441. ]
  2442. },
  2443. "application/mp4": {
  2444. source: "iana",
  2445. extensions: [
  2446. "mp4s",
  2447. "m4p"
  2448. ]
  2449. },
  2450. "application/mpeg4-generic": {
  2451. source: "iana"
  2452. },
  2453. "application/mpeg4-iod": {
  2454. source: "iana"
  2455. },
  2456. "application/mpeg4-iod-xmt": {
  2457. source: "iana"
  2458. },
  2459. "application/mrb-consumer+xml": {
  2460. source: "iana",
  2461. compressible: true,
  2462. extensions: [
  2463. "xdf"
  2464. ]
  2465. },
  2466. "application/mrb-publish+xml": {
  2467. source: "iana",
  2468. compressible: true,
  2469. extensions: [
  2470. "xdf"
  2471. ]
  2472. },
  2473. "application/msc-ivr+xml": {
  2474. source: "iana",
  2475. charset: "UTF-8",
  2476. compressible: true
  2477. },
  2478. "application/msc-mixer+xml": {
  2479. source: "iana",
  2480. charset: "UTF-8",
  2481. compressible: true
  2482. },
  2483. "application/msword": {
  2484. source: "iana",
  2485. compressible: false,
  2486. extensions: [
  2487. "doc",
  2488. "dot"
  2489. ]
  2490. },
  2491. "application/mud+json": {
  2492. source: "iana",
  2493. compressible: true
  2494. },
  2495. "application/multipart-core": {
  2496. source: "iana"
  2497. },
  2498. "application/mxf": {
  2499. source: "iana",
  2500. extensions: [
  2501. "mxf"
  2502. ]
  2503. },
  2504. "application/n-quads": {
  2505. source: "iana",
  2506. extensions: [
  2507. "nq"
  2508. ]
  2509. },
  2510. "application/n-triples": {
  2511. source: "iana",
  2512. extensions: [
  2513. "nt"
  2514. ]
  2515. },
  2516. "application/nasdata": {
  2517. source: "iana"
  2518. },
  2519. "application/news-checkgroups": {
  2520. source: "iana",
  2521. charset: "US-ASCII"
  2522. },
  2523. "application/news-groupinfo": {
  2524. source: "iana",
  2525. charset: "US-ASCII"
  2526. },
  2527. "application/news-transmission": {
  2528. source: "iana"
  2529. },
  2530. "application/nlsml+xml": {
  2531. source: "iana",
  2532. compressible: true
  2533. },
  2534. "application/node": {
  2535. source: "iana",
  2536. extensions: [
  2537. "cjs"
  2538. ]
  2539. },
  2540. "application/nss": {
  2541. source: "iana"
  2542. },
  2543. "application/ocsp-request": {
  2544. source: "iana"
  2545. },
  2546. "application/ocsp-response": {
  2547. source: "iana"
  2548. },
  2549. "application/octet-stream": {
  2550. source: "iana",
  2551. compressible: false,
  2552. extensions: [
  2553. "bin",
  2554. "dms",
  2555. "lrf",
  2556. "mar",
  2557. "so",
  2558. "dist",
  2559. "distz",
  2560. "pkg",
  2561. "bpk",
  2562. "dump",
  2563. "elc",
  2564. "deploy",
  2565. "exe",
  2566. "dll",
  2567. "deb",
  2568. "dmg",
  2569. "iso",
  2570. "img",
  2571. "msi",
  2572. "msp",
  2573. "msm",
  2574. "buffer"
  2575. ]
  2576. },
  2577. "application/oda": {
  2578. source: "iana",
  2579. extensions: [
  2580. "oda"
  2581. ]
  2582. },
  2583. "application/odm+xml": {
  2584. source: "iana",
  2585. compressible: true
  2586. },
  2587. "application/odx": {
  2588. source: "iana"
  2589. },
  2590. "application/oebps-package+xml": {
  2591. source: "iana",
  2592. compressible: true,
  2593. extensions: [
  2594. "opf"
  2595. ]
  2596. },
  2597. "application/ogg": {
  2598. source: "iana",
  2599. compressible: false,
  2600. extensions: [
  2601. "ogx"
  2602. ]
  2603. },
  2604. "application/omdoc+xml": {
  2605. source: "apache",
  2606. compressible: true,
  2607. extensions: [
  2608. "omdoc"
  2609. ]
  2610. },
  2611. "application/onenote": {
  2612. source: "apache",
  2613. extensions: [
  2614. "onetoc",
  2615. "onetoc2",
  2616. "onetmp",
  2617. "onepkg"
  2618. ]
  2619. },
  2620. "application/opc-nodeset+xml": {
  2621. source: "iana",
  2622. compressible: true
  2623. },
  2624. "application/oscore": {
  2625. source: "iana"
  2626. },
  2627. "application/oxps": {
  2628. source: "iana",
  2629. extensions: [
  2630. "oxps"
  2631. ]
  2632. },
  2633. "application/p2p-overlay+xml": {
  2634. source: "iana",
  2635. compressible: true,
  2636. extensions: [
  2637. "relo"
  2638. ]
  2639. },
  2640. "application/parityfec": {
  2641. source: "iana"
  2642. },
  2643. "application/passport": {
  2644. source: "iana"
  2645. },
  2646. "application/patch-ops-error+xml": {
  2647. source: "iana",
  2648. compressible: true,
  2649. extensions: [
  2650. "xer"
  2651. ]
  2652. },
  2653. "application/pdf": {
  2654. source: "iana",
  2655. compressible: false,
  2656. extensions: [
  2657. "pdf"
  2658. ]
  2659. },
  2660. "application/pdx": {
  2661. source: "iana"
  2662. },
  2663. "application/pem-certificate-chain": {
  2664. source: "iana"
  2665. },
  2666. "application/pgp-encrypted": {
  2667. source: "iana",
  2668. compressible: false,
  2669. extensions: [
  2670. "pgp"
  2671. ]
  2672. },
  2673. "application/pgp-keys": {
  2674. source: "iana"
  2675. },
  2676. "application/pgp-signature": {
  2677. source: "iana",
  2678. extensions: [
  2679. "asc",
  2680. "sig"
  2681. ]
  2682. },
  2683. "application/pics-rules": {
  2684. source: "apache",
  2685. extensions: [
  2686. "prf"
  2687. ]
  2688. },
  2689. "application/pidf+xml": {
  2690. source: "iana",
  2691. charset: "UTF-8",
  2692. compressible: true
  2693. },
  2694. "application/pidf-diff+xml": {
  2695. source: "iana",
  2696. charset: "UTF-8",
  2697. compressible: true
  2698. },
  2699. "application/pkcs10": {
  2700. source: "iana",
  2701. extensions: [
  2702. "p10"
  2703. ]
  2704. },
  2705. "application/pkcs12": {
  2706. source: "iana"
  2707. },
  2708. "application/pkcs7-mime": {
  2709. source: "iana",
  2710. extensions: [
  2711. "p7m",
  2712. "p7c"
  2713. ]
  2714. },
  2715. "application/pkcs7-signature": {
  2716. source: "iana",
  2717. extensions: [
  2718. "p7s"
  2719. ]
  2720. },
  2721. "application/pkcs8": {
  2722. source: "iana",
  2723. extensions: [
  2724. "p8"
  2725. ]
  2726. },
  2727. "application/pkcs8-encrypted": {
  2728. source: "iana"
  2729. },
  2730. "application/pkix-attr-cert": {
  2731. source: "iana",
  2732. extensions: [
  2733. "ac"
  2734. ]
  2735. },
  2736. "application/pkix-cert": {
  2737. source: "iana",
  2738. extensions: [
  2739. "cer"
  2740. ]
  2741. },
  2742. "application/pkix-crl": {
  2743. source: "iana",
  2744. extensions: [
  2745. "crl"
  2746. ]
  2747. },
  2748. "application/pkix-pkipath": {
  2749. source: "iana",
  2750. extensions: [
  2751. "pkipath"
  2752. ]
  2753. },
  2754. "application/pkixcmp": {
  2755. source: "iana",
  2756. extensions: [
  2757. "pki"
  2758. ]
  2759. },
  2760. "application/pls+xml": {
  2761. source: "iana",
  2762. compressible: true,
  2763. extensions: [
  2764. "pls"
  2765. ]
  2766. },
  2767. "application/poc-settings+xml": {
  2768. source: "iana",
  2769. charset: "UTF-8",
  2770. compressible: true
  2771. },
  2772. "application/postscript": {
  2773. source: "iana",
  2774. compressible: true,
  2775. extensions: [
  2776. "ai",
  2777. "eps",
  2778. "ps"
  2779. ]
  2780. },
  2781. "application/ppsp-tracker+json": {
  2782. source: "iana",
  2783. compressible: true
  2784. },
  2785. "application/problem+json": {
  2786. source: "iana",
  2787. compressible: true
  2788. },
  2789. "application/problem+xml": {
  2790. source: "iana",
  2791. compressible: true
  2792. },
  2793. "application/provenance+xml": {
  2794. source: "iana",
  2795. compressible: true,
  2796. extensions: [
  2797. "provx"
  2798. ]
  2799. },
  2800. "application/prs.alvestrand.titrax-sheet": {
  2801. source: "iana"
  2802. },
  2803. "application/prs.cww": {
  2804. source: "iana",
  2805. extensions: [
  2806. "cww"
  2807. ]
  2808. },
  2809. "application/prs.cyn": {
  2810. source: "iana",
  2811. charset: "7-BIT"
  2812. },
  2813. "application/prs.hpub+zip": {
  2814. source: "iana",
  2815. compressible: false
  2816. },
  2817. "application/prs.nprend": {
  2818. source: "iana"
  2819. },
  2820. "application/prs.plucker": {
  2821. source: "iana"
  2822. },
  2823. "application/prs.rdf-xml-crypt": {
  2824. source: "iana"
  2825. },
  2826. "application/prs.xsf+xml": {
  2827. source: "iana",
  2828. compressible: true
  2829. },
  2830. "application/pskc+xml": {
  2831. source: "iana",
  2832. compressible: true,
  2833. extensions: [
  2834. "pskcxml"
  2835. ]
  2836. },
  2837. "application/pvd+json": {
  2838. source: "iana",
  2839. compressible: true
  2840. },
  2841. "application/qsig": {
  2842. source: "iana"
  2843. },
  2844. "application/raml+yaml": {
  2845. compressible: true,
  2846. extensions: [
  2847. "raml"
  2848. ]
  2849. },
  2850. "application/raptorfec": {
  2851. source: "iana"
  2852. },
  2853. "application/rdap+json": {
  2854. source: "iana",
  2855. compressible: true
  2856. },
  2857. "application/rdf+xml": {
  2858. source: "iana",
  2859. compressible: true,
  2860. extensions: [
  2861. "rdf",
  2862. "owl"
  2863. ]
  2864. },
  2865. "application/reginfo+xml": {
  2866. source: "iana",
  2867. compressible: true,
  2868. extensions: [
  2869. "rif"
  2870. ]
  2871. },
  2872. "application/relax-ng-compact-syntax": {
  2873. source: "iana",
  2874. extensions: [
  2875. "rnc"
  2876. ]
  2877. },
  2878. "application/remote-printing": {
  2879. source: "iana"
  2880. },
  2881. "application/reputon+json": {
  2882. source: "iana",
  2883. compressible: true
  2884. },
  2885. "application/resource-lists+xml": {
  2886. source: "iana",
  2887. compressible: true,
  2888. extensions: [
  2889. "rl"
  2890. ]
  2891. },
  2892. "application/resource-lists-diff+xml": {
  2893. source: "iana",
  2894. compressible: true,
  2895. extensions: [
  2896. "rld"
  2897. ]
  2898. },
  2899. "application/rfc+xml": {
  2900. source: "iana",
  2901. compressible: true
  2902. },
  2903. "application/riscos": {
  2904. source: "iana"
  2905. },
  2906. "application/rlmi+xml": {
  2907. source: "iana",
  2908. compressible: true
  2909. },
  2910. "application/rls-services+xml": {
  2911. source: "iana",
  2912. compressible: true,
  2913. extensions: [
  2914. "rs"
  2915. ]
  2916. },
  2917. "application/route-apd+xml": {
  2918. source: "iana",
  2919. compressible: true,
  2920. extensions: [
  2921. "rapd"
  2922. ]
  2923. },
  2924. "application/route-s-tsid+xml": {
  2925. source: "iana",
  2926. compressible: true,
  2927. extensions: [
  2928. "sls"
  2929. ]
  2930. },
  2931. "application/route-usd+xml": {
  2932. source: "iana",
  2933. compressible: true,
  2934. extensions: [
  2935. "rusd"
  2936. ]
  2937. },
  2938. "application/rpki-ghostbusters": {
  2939. source: "iana",
  2940. extensions: [
  2941. "gbr"
  2942. ]
  2943. },
  2944. "application/rpki-manifest": {
  2945. source: "iana",
  2946. extensions: [
  2947. "mft"
  2948. ]
  2949. },
  2950. "application/rpki-publication": {
  2951. source: "iana"
  2952. },
  2953. "application/rpki-roa": {
  2954. source: "iana",
  2955. extensions: [
  2956. "roa"
  2957. ]
  2958. },
  2959. "application/rpki-updown": {
  2960. source: "iana"
  2961. },
  2962. "application/rsd+xml": {
  2963. source: "apache",
  2964. compressible: true,
  2965. extensions: [
  2966. "rsd"
  2967. ]
  2968. },
  2969. "application/rss+xml": {
  2970. source: "apache",
  2971. compressible: true,
  2972. extensions: [
  2973. "rss"
  2974. ]
  2975. },
  2976. "application/rtf": {
  2977. source: "iana",
  2978. compressible: true,
  2979. extensions: [
  2980. "rtf"
  2981. ]
  2982. },
  2983. "application/rtploopback": {
  2984. source: "iana"
  2985. },
  2986. "application/rtx": {
  2987. source: "iana"
  2988. },
  2989. "application/samlassertion+xml": {
  2990. source: "iana",
  2991. compressible: true
  2992. },
  2993. "application/samlmetadata+xml": {
  2994. source: "iana",
  2995. compressible: true
  2996. },
  2997. "application/sarif+json": {
  2998. source: "iana",
  2999. compressible: true
  3000. },
  3001. "application/sbe": {
  3002. source: "iana"
  3003. },
  3004. "application/sbml+xml": {
  3005. source: "iana",
  3006. compressible: true,
  3007. extensions: [
  3008. "sbml"
  3009. ]
  3010. },
  3011. "application/scaip+xml": {
  3012. source: "iana",
  3013. compressible: true
  3014. },
  3015. "application/scim+json": {
  3016. source: "iana",
  3017. compressible: true
  3018. },
  3019. "application/scvp-cv-request": {
  3020. source: "iana",
  3021. extensions: [
  3022. "scq"
  3023. ]
  3024. },
  3025. "application/scvp-cv-response": {
  3026. source: "iana",
  3027. extensions: [
  3028. "scs"
  3029. ]
  3030. },
  3031. "application/scvp-vp-request": {
  3032. source: "iana",
  3033. extensions: [
  3034. "spq"
  3035. ]
  3036. },
  3037. "application/scvp-vp-response": {
  3038. source: "iana",
  3039. extensions: [
  3040. "spp"
  3041. ]
  3042. },
  3043. "application/sdp": {
  3044. source: "iana",
  3045. extensions: [
  3046. "sdp"
  3047. ]
  3048. },
  3049. "application/secevent+jwt": {
  3050. source: "iana"
  3051. },
  3052. "application/senml+cbor": {
  3053. source: "iana"
  3054. },
  3055. "application/senml+json": {
  3056. source: "iana",
  3057. compressible: true
  3058. },
  3059. "application/senml+xml": {
  3060. source: "iana",
  3061. compressible: true,
  3062. extensions: [
  3063. "senmlx"
  3064. ]
  3065. },
  3066. "application/senml-etch+cbor": {
  3067. source: "iana"
  3068. },
  3069. "application/senml-etch+json": {
  3070. source: "iana",
  3071. compressible: true
  3072. },
  3073. "application/senml-exi": {
  3074. source: "iana"
  3075. },
  3076. "application/sensml+cbor": {
  3077. source: "iana"
  3078. },
  3079. "application/sensml+json": {
  3080. source: "iana",
  3081. compressible: true
  3082. },
  3083. "application/sensml+xml": {
  3084. source: "iana",
  3085. compressible: true,
  3086. extensions: [
  3087. "sensmlx"
  3088. ]
  3089. },
  3090. "application/sensml-exi": {
  3091. source: "iana"
  3092. },
  3093. "application/sep+xml": {
  3094. source: "iana",
  3095. compressible: true
  3096. },
  3097. "application/sep-exi": {
  3098. source: "iana"
  3099. },
  3100. "application/session-info": {
  3101. source: "iana"
  3102. },
  3103. "application/set-payment": {
  3104. source: "iana"
  3105. },
  3106. "application/set-payment-initiation": {
  3107. source: "iana",
  3108. extensions: [
  3109. "setpay"
  3110. ]
  3111. },
  3112. "application/set-registration": {
  3113. source: "iana"
  3114. },
  3115. "application/set-registration-initiation": {
  3116. source: "iana",
  3117. extensions: [
  3118. "setreg"
  3119. ]
  3120. },
  3121. "application/sgml": {
  3122. source: "iana"
  3123. },
  3124. "application/sgml-open-catalog": {
  3125. source: "iana"
  3126. },
  3127. "application/shf+xml": {
  3128. source: "iana",
  3129. compressible: true,
  3130. extensions: [
  3131. "shf"
  3132. ]
  3133. },
  3134. "application/sieve": {
  3135. source: "iana",
  3136. extensions: [
  3137. "siv",
  3138. "sieve"
  3139. ]
  3140. },
  3141. "application/simple-filter+xml": {
  3142. source: "iana",
  3143. compressible: true
  3144. },
  3145. "application/simple-message-summary": {
  3146. source: "iana"
  3147. },
  3148. "application/simplesymbolcontainer": {
  3149. source: "iana"
  3150. },
  3151. "application/sipc": {
  3152. source: "iana"
  3153. },
  3154. "application/slate": {
  3155. source: "iana"
  3156. },
  3157. "application/smil": {
  3158. source: "iana"
  3159. },
  3160. "application/smil+xml": {
  3161. source: "iana",
  3162. compressible: true,
  3163. extensions: [
  3164. "smi",
  3165. "smil"
  3166. ]
  3167. },
  3168. "application/smpte336m": {
  3169. source: "iana"
  3170. },
  3171. "application/soap+fastinfoset": {
  3172. source: "iana"
  3173. },
  3174. "application/soap+xml": {
  3175. source: "iana",
  3176. compressible: true
  3177. },
  3178. "application/sparql-query": {
  3179. source: "iana",
  3180. extensions: [
  3181. "rq"
  3182. ]
  3183. },
  3184. "application/sparql-results+xml": {
  3185. source: "iana",
  3186. compressible: true,
  3187. extensions: [
  3188. "srx"
  3189. ]
  3190. },
  3191. "application/spirits-event+xml": {
  3192. source: "iana",
  3193. compressible: true
  3194. },
  3195. "application/sql": {
  3196. source: "iana"
  3197. },
  3198. "application/srgs": {
  3199. source: "iana",
  3200. extensions: [
  3201. "gram"
  3202. ]
  3203. },
  3204. "application/srgs+xml": {
  3205. source: "iana",
  3206. compressible: true,
  3207. extensions: [
  3208. "grxml"
  3209. ]
  3210. },
  3211. "application/sru+xml": {
  3212. source: "iana",
  3213. compressible: true,
  3214. extensions: [
  3215. "sru"
  3216. ]
  3217. },
  3218. "application/ssdl+xml": {
  3219. source: "apache",
  3220. compressible: true,
  3221. extensions: [
  3222. "ssdl"
  3223. ]
  3224. },
  3225. "application/ssml+xml": {
  3226. source: "iana",
  3227. compressible: true,
  3228. extensions: [
  3229. "ssml"
  3230. ]
  3231. },
  3232. "application/stix+json": {
  3233. source: "iana",
  3234. compressible: true
  3235. },
  3236. "application/swid+xml": {
  3237. source: "iana",
  3238. compressible: true,
  3239. extensions: [
  3240. "swidtag"
  3241. ]
  3242. },
  3243. "application/tamp-apex-update": {
  3244. source: "iana"
  3245. },
  3246. "application/tamp-apex-update-confirm": {
  3247. source: "iana"
  3248. },
  3249. "application/tamp-community-update": {
  3250. source: "iana"
  3251. },
  3252. "application/tamp-community-update-confirm": {
  3253. source: "iana"
  3254. },
  3255. "application/tamp-error": {
  3256. source: "iana"
  3257. },
  3258. "application/tamp-sequence-adjust": {
  3259. source: "iana"
  3260. },
  3261. "application/tamp-sequence-adjust-confirm": {
  3262. source: "iana"
  3263. },
  3264. "application/tamp-status-query": {
  3265. source: "iana"
  3266. },
  3267. "application/tamp-status-response": {
  3268. source: "iana"
  3269. },
  3270. "application/tamp-update": {
  3271. source: "iana"
  3272. },
  3273. "application/tamp-update-confirm": {
  3274. source: "iana"
  3275. },
  3276. "application/tar": {
  3277. compressible: true
  3278. },
  3279. "application/taxii+json": {
  3280. source: "iana",
  3281. compressible: true
  3282. },
  3283. "application/td+json": {
  3284. source: "iana",
  3285. compressible: true
  3286. },
  3287. "application/tei+xml": {
  3288. source: "iana",
  3289. compressible: true,
  3290. extensions: [
  3291. "tei",
  3292. "teicorpus"
  3293. ]
  3294. },
  3295. "application/tetra_isi": {
  3296. source: "iana"
  3297. },
  3298. "application/thraud+xml": {
  3299. source: "iana",
  3300. compressible: true,
  3301. extensions: [
  3302. "tfi"
  3303. ]
  3304. },
  3305. "application/timestamp-query": {
  3306. source: "iana"
  3307. },
  3308. "application/timestamp-reply": {
  3309. source: "iana"
  3310. },
  3311. "application/timestamped-data": {
  3312. source: "iana",
  3313. extensions: [
  3314. "tsd"
  3315. ]
  3316. },
  3317. "application/tlsrpt+gzip": {
  3318. source: "iana"
  3319. },
  3320. "application/tlsrpt+json": {
  3321. source: "iana",
  3322. compressible: true
  3323. },
  3324. "application/tnauthlist": {
  3325. source: "iana"
  3326. },
  3327. "application/toml": {
  3328. compressible: true,
  3329. extensions: [
  3330. "toml"
  3331. ]
  3332. },
  3333. "application/trickle-ice-sdpfrag": {
  3334. source: "iana"
  3335. },
  3336. "application/trig": {
  3337. source: "iana"
  3338. },
  3339. "application/ttml+xml": {
  3340. source: "iana",
  3341. compressible: true,
  3342. extensions: [
  3343. "ttml"
  3344. ]
  3345. },
  3346. "application/tve-trigger": {
  3347. source: "iana"
  3348. },
  3349. "application/tzif": {
  3350. source: "iana"
  3351. },
  3352. "application/tzif-leap": {
  3353. source: "iana"
  3354. },
  3355. "application/ubjson": {
  3356. compressible: false,
  3357. extensions: [
  3358. "ubj"
  3359. ]
  3360. },
  3361. "application/ulpfec": {
  3362. source: "iana"
  3363. },
  3364. "application/urc-grpsheet+xml": {
  3365. source: "iana",
  3366. compressible: true
  3367. },
  3368. "application/urc-ressheet+xml": {
  3369. source: "iana",
  3370. compressible: true,
  3371. extensions: [
  3372. "rsheet"
  3373. ]
  3374. },
  3375. "application/urc-targetdesc+xml": {
  3376. source: "iana",
  3377. compressible: true,
  3378. extensions: [
  3379. "td"
  3380. ]
  3381. },
  3382. "application/urc-uisocketdesc+xml": {
  3383. source: "iana",
  3384. compressible: true
  3385. },
  3386. "application/vcard+json": {
  3387. source: "iana",
  3388. compressible: true
  3389. },
  3390. "application/vcard+xml": {
  3391. source: "iana",
  3392. compressible: true
  3393. },
  3394. "application/vemmi": {
  3395. source: "iana"
  3396. },
  3397. "application/vividence.scriptfile": {
  3398. source: "apache"
  3399. },
  3400. "application/vnd.1000minds.decision-model+xml": {
  3401. source: "iana",
  3402. compressible: true,
  3403. extensions: [
  3404. "1km"
  3405. ]
  3406. },
  3407. "application/vnd.3gpp-prose+xml": {
  3408. source: "iana",
  3409. compressible: true
  3410. },
  3411. "application/vnd.3gpp-prose-pc3ch+xml": {
  3412. source: "iana",
  3413. compressible: true
  3414. },
  3415. "application/vnd.3gpp-v2x-local-service-information": {
  3416. source: "iana"
  3417. },
  3418. "application/vnd.3gpp.access-transfer-events+xml": {
  3419. source: "iana",
  3420. compressible: true
  3421. },
  3422. "application/vnd.3gpp.bsf+xml": {
  3423. source: "iana",
  3424. compressible: true
  3425. },
  3426. "application/vnd.3gpp.gmop+xml": {
  3427. source: "iana",
  3428. compressible: true
  3429. },
  3430. "application/vnd.3gpp.interworking-data": {
  3431. source: "iana"
  3432. },
  3433. "application/vnd.3gpp.mc-signalling-ear": {
  3434. source: "iana"
  3435. },
  3436. "application/vnd.3gpp.mcdata-affiliation-command+xml": {
  3437. source: "iana",
  3438. compressible: true
  3439. },
  3440. "application/vnd.3gpp.mcdata-info+xml": {
  3441. source: "iana",
  3442. compressible: true
  3443. },
  3444. "application/vnd.3gpp.mcdata-payload": {
  3445. source: "iana"
  3446. },
  3447. "application/vnd.3gpp.mcdata-service-config+xml": {
  3448. source: "iana",
  3449. compressible: true
  3450. },
  3451. "application/vnd.3gpp.mcdata-signalling": {
  3452. source: "iana"
  3453. },
  3454. "application/vnd.3gpp.mcdata-ue-config+xml": {
  3455. source: "iana",
  3456. compressible: true
  3457. },
  3458. "application/vnd.3gpp.mcdata-user-profile+xml": {
  3459. source: "iana",
  3460. compressible: true
  3461. },
  3462. "application/vnd.3gpp.mcptt-affiliation-command+xml": {
  3463. source: "iana",
  3464. compressible: true
  3465. },
  3466. "application/vnd.3gpp.mcptt-floor-request+xml": {
  3467. source: "iana",
  3468. compressible: true
  3469. },
  3470. "application/vnd.3gpp.mcptt-info+xml": {
  3471. source: "iana",
  3472. compressible: true
  3473. },
  3474. "application/vnd.3gpp.mcptt-location-info+xml": {
  3475. source: "iana",
  3476. compressible: true
  3477. },
  3478. "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
  3479. source: "iana",
  3480. compressible: true
  3481. },
  3482. "application/vnd.3gpp.mcptt-service-config+xml": {
  3483. source: "iana",
  3484. compressible: true
  3485. },
  3486. "application/vnd.3gpp.mcptt-signed+xml": {
  3487. source: "iana",
  3488. compressible: true
  3489. },
  3490. "application/vnd.3gpp.mcptt-ue-config+xml": {
  3491. source: "iana",
  3492. compressible: true
  3493. },
  3494. "application/vnd.3gpp.mcptt-ue-init-config+xml": {
  3495. source: "iana",
  3496. compressible: true
  3497. },
  3498. "application/vnd.3gpp.mcptt-user-profile+xml": {
  3499. source: "iana",
  3500. compressible: true
  3501. },
  3502. "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
  3503. source: "iana",
  3504. compressible: true
  3505. },
  3506. "application/vnd.3gpp.mcvideo-affiliation-info+xml": {
  3507. source: "iana",
  3508. compressible: true
  3509. },
  3510. "application/vnd.3gpp.mcvideo-info+xml": {
  3511. source: "iana",
  3512. compressible: true
  3513. },
  3514. "application/vnd.3gpp.mcvideo-location-info+xml": {
  3515. source: "iana",
  3516. compressible: true
  3517. },
  3518. "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
  3519. source: "iana",
  3520. compressible: true
  3521. },
  3522. "application/vnd.3gpp.mcvideo-service-config+xml": {
  3523. source: "iana",
  3524. compressible: true
  3525. },
  3526. "application/vnd.3gpp.mcvideo-transmission-request+xml": {
  3527. source: "iana",
  3528. compressible: true
  3529. },
  3530. "application/vnd.3gpp.mcvideo-ue-config+xml": {
  3531. source: "iana",
  3532. compressible: true
  3533. },
  3534. "application/vnd.3gpp.mcvideo-user-profile+xml": {
  3535. source: "iana",
  3536. compressible: true
  3537. },
  3538. "application/vnd.3gpp.mid-call+xml": {
  3539. source: "iana",
  3540. compressible: true
  3541. },
  3542. "application/vnd.3gpp.pic-bw-large": {
  3543. source: "iana",
  3544. extensions: [
  3545. "plb"
  3546. ]
  3547. },
  3548. "application/vnd.3gpp.pic-bw-small": {
  3549. source: "iana",
  3550. extensions: [
  3551. "psb"
  3552. ]
  3553. },
  3554. "application/vnd.3gpp.pic-bw-var": {
  3555. source: "iana",
  3556. extensions: [
  3557. "pvb"
  3558. ]
  3559. },
  3560. "application/vnd.3gpp.sms": {
  3561. source: "iana"
  3562. },
  3563. "application/vnd.3gpp.sms+xml": {
  3564. source: "iana",
  3565. compressible: true
  3566. },
  3567. "application/vnd.3gpp.srvcc-ext+xml": {
  3568. source: "iana",
  3569. compressible: true
  3570. },
  3571. "application/vnd.3gpp.srvcc-info+xml": {
  3572. source: "iana",
  3573. compressible: true
  3574. },
  3575. "application/vnd.3gpp.state-and-event-info+xml": {
  3576. source: "iana",
  3577. compressible: true
  3578. },
  3579. "application/vnd.3gpp.ussd+xml": {
  3580. source: "iana",
  3581. compressible: true
  3582. },
  3583. "application/vnd.3gpp2.bcmcsinfo+xml": {
  3584. source: "iana",
  3585. compressible: true
  3586. },
  3587. "application/vnd.3gpp2.sms": {
  3588. source: "iana"
  3589. },
  3590. "application/vnd.3gpp2.tcap": {
  3591. source: "iana",
  3592. extensions: [
  3593. "tcap"
  3594. ]
  3595. },
  3596. "application/vnd.3lightssoftware.imagescal": {
  3597. source: "iana"
  3598. },
  3599. "application/vnd.3m.post-it-notes": {
  3600. source: "iana",
  3601. extensions: [
  3602. "pwn"
  3603. ]
  3604. },
  3605. "application/vnd.accpac.simply.aso": {
  3606. source: "iana",
  3607. extensions: [
  3608. "aso"
  3609. ]
  3610. },
  3611. "application/vnd.accpac.simply.imp": {
  3612. source: "iana",
  3613. extensions: [
  3614. "imp"
  3615. ]
  3616. },
  3617. "application/vnd.acucobol": {
  3618. source: "iana",
  3619. extensions: [
  3620. "acu"
  3621. ]
  3622. },
  3623. "application/vnd.acucorp": {
  3624. source: "iana",
  3625. extensions: [
  3626. "atc",
  3627. "acutc"
  3628. ]
  3629. },
  3630. "application/vnd.adobe.air-application-installer-package+zip": {
  3631. source: "apache",
  3632. compressible: false,
  3633. extensions: [
  3634. "air"
  3635. ]
  3636. },
  3637. "application/vnd.adobe.flash.movie": {
  3638. source: "iana"
  3639. },
  3640. "application/vnd.adobe.formscentral.fcdt": {
  3641. source: "iana",
  3642. extensions: [
  3643. "fcdt"
  3644. ]
  3645. },
  3646. "application/vnd.adobe.fxp": {
  3647. source: "iana",
  3648. extensions: [
  3649. "fxp",
  3650. "fxpl"
  3651. ]
  3652. },
  3653. "application/vnd.adobe.partial-upload": {
  3654. source: "iana"
  3655. },
  3656. "application/vnd.adobe.xdp+xml": {
  3657. source: "iana",
  3658. compressible: true,
  3659. extensions: [
  3660. "xdp"
  3661. ]
  3662. },
  3663. "application/vnd.adobe.xfdf": {
  3664. source: "iana",
  3665. extensions: [
  3666. "xfdf"
  3667. ]
  3668. },
  3669. "application/vnd.aether.imp": {
  3670. source: "iana"
  3671. },
  3672. "application/vnd.afpc.afplinedata": {
  3673. source: "iana"
  3674. },
  3675. "application/vnd.afpc.afplinedata-pagedef": {
  3676. source: "iana"
  3677. },
  3678. "application/vnd.afpc.cmoca-cmresource": {
  3679. source: "iana"
  3680. },
  3681. "application/vnd.afpc.foca-charset": {
  3682. source: "iana"
  3683. },
  3684. "application/vnd.afpc.foca-codedfont": {
  3685. source: "iana"
  3686. },
  3687. "application/vnd.afpc.foca-codepage": {
  3688. source: "iana"
  3689. },
  3690. "application/vnd.afpc.modca": {
  3691. source: "iana"
  3692. },
  3693. "application/vnd.afpc.modca-cmtable": {
  3694. source: "iana"
  3695. },
  3696. "application/vnd.afpc.modca-formdef": {
  3697. source: "iana"
  3698. },
  3699. "application/vnd.afpc.modca-mediummap": {
  3700. source: "iana"
  3701. },
  3702. "application/vnd.afpc.modca-objectcontainer": {
  3703. source: "iana"
  3704. },
  3705. "application/vnd.afpc.modca-overlay": {
  3706. source: "iana"
  3707. },
  3708. "application/vnd.afpc.modca-pagesegment": {
  3709. source: "iana"
  3710. },
  3711. "application/vnd.ah-barcode": {
  3712. source: "iana"
  3713. },
  3714. "application/vnd.ahead.space": {
  3715. source: "iana",
  3716. extensions: [
  3717. "ahead"
  3718. ]
  3719. },
  3720. "application/vnd.airzip.filesecure.azf": {
  3721. source: "iana",
  3722. extensions: [
  3723. "azf"
  3724. ]
  3725. },
  3726. "application/vnd.airzip.filesecure.azs": {
  3727. source: "iana",
  3728. extensions: [
  3729. "azs"
  3730. ]
  3731. },
  3732. "application/vnd.amadeus+json": {
  3733. source: "iana",
  3734. compressible: true
  3735. },
  3736. "application/vnd.amazon.ebook": {
  3737. source: "apache",
  3738. extensions: [
  3739. "azw"
  3740. ]
  3741. },
  3742. "application/vnd.amazon.mobi8-ebook": {
  3743. source: "iana"
  3744. },
  3745. "application/vnd.americandynamics.acc": {
  3746. source: "iana",
  3747. extensions: [
  3748. "acc"
  3749. ]
  3750. },
  3751. "application/vnd.amiga.ami": {
  3752. source: "iana",
  3753. extensions: [
  3754. "ami"
  3755. ]
  3756. },
  3757. "application/vnd.amundsen.maze+xml": {
  3758. source: "iana",
  3759. compressible: true
  3760. },
  3761. "application/vnd.android.ota": {
  3762. source: "iana"
  3763. },
  3764. "application/vnd.android.package-archive": {
  3765. source: "apache",
  3766. compressible: false,
  3767. extensions: [
  3768. "apk"
  3769. ]
  3770. },
  3771. "application/vnd.anki": {
  3772. source: "iana"
  3773. },
  3774. "application/vnd.anser-web-certificate-issue-initiation": {
  3775. source: "iana",
  3776. extensions: [
  3777. "cii"
  3778. ]
  3779. },
  3780. "application/vnd.anser-web-funds-transfer-initiation": {
  3781. source: "apache",
  3782. extensions: [
  3783. "fti"
  3784. ]
  3785. },
  3786. "application/vnd.antix.game-component": {
  3787. source: "iana",
  3788. extensions: [
  3789. "atx"
  3790. ]
  3791. },
  3792. "application/vnd.apache.thrift.binary": {
  3793. source: "iana"
  3794. },
  3795. "application/vnd.apache.thrift.compact": {
  3796. source: "iana"
  3797. },
  3798. "application/vnd.apache.thrift.json": {
  3799. source: "iana"
  3800. },
  3801. "application/vnd.api+json": {
  3802. source: "iana",
  3803. compressible: true
  3804. },
  3805. "application/vnd.aplextor.warrp+json": {
  3806. source: "iana",
  3807. compressible: true
  3808. },
  3809. "application/vnd.apothekende.reservation+json": {
  3810. source: "iana",
  3811. compressible: true
  3812. },
  3813. "application/vnd.apple.installer+xml": {
  3814. source: "iana",
  3815. compressible: true,
  3816. extensions: [
  3817. "mpkg"
  3818. ]
  3819. },
  3820. "application/vnd.apple.keynote": {
  3821. source: "iana",
  3822. extensions: [
  3823. "key"
  3824. ]
  3825. },
  3826. "application/vnd.apple.mpegurl": {
  3827. source: "iana",
  3828. extensions: [
  3829. "m3u8"
  3830. ]
  3831. },
  3832. "application/vnd.apple.numbers": {
  3833. source: "iana",
  3834. extensions: [
  3835. "numbers"
  3836. ]
  3837. },
  3838. "application/vnd.apple.pages": {
  3839. source: "iana",
  3840. extensions: [
  3841. "pages"
  3842. ]
  3843. },
  3844. "application/vnd.apple.pkpass": {
  3845. compressible: false,
  3846. extensions: [
  3847. "pkpass"
  3848. ]
  3849. },
  3850. "application/vnd.arastra.swi": {
  3851. source: "iana"
  3852. },
  3853. "application/vnd.aristanetworks.swi": {
  3854. source: "iana",
  3855. extensions: [
  3856. "swi"
  3857. ]
  3858. },
  3859. "application/vnd.artisan+json": {
  3860. source: "iana",
  3861. compressible: true
  3862. },
  3863. "application/vnd.artsquare": {
  3864. source: "iana"
  3865. },
  3866. "application/vnd.astraea-software.iota": {
  3867. source: "iana",
  3868. extensions: [
  3869. "iota"
  3870. ]
  3871. },
  3872. "application/vnd.audiograph": {
  3873. source: "iana",
  3874. extensions: [
  3875. "aep"
  3876. ]
  3877. },
  3878. "application/vnd.autopackage": {
  3879. source: "iana"
  3880. },
  3881. "application/vnd.avalon+json": {
  3882. source: "iana",
  3883. compressible: true
  3884. },
  3885. "application/vnd.avistar+xml": {
  3886. source: "iana",
  3887. compressible: true
  3888. },
  3889. "application/vnd.balsamiq.bmml+xml": {
  3890. source: "iana",
  3891. compressible: true,
  3892. extensions: [
  3893. "bmml"
  3894. ]
  3895. },
  3896. "application/vnd.balsamiq.bmpr": {
  3897. source: "iana"
  3898. },
  3899. "application/vnd.banana-accounting": {
  3900. source: "iana"
  3901. },
  3902. "application/vnd.bbf.usp.error": {
  3903. source: "iana"
  3904. },
  3905. "application/vnd.bbf.usp.msg": {
  3906. source: "iana"
  3907. },
  3908. "application/vnd.bbf.usp.msg+json": {
  3909. source: "iana",
  3910. compressible: true
  3911. },
  3912. "application/vnd.bekitzur-stech+json": {
  3913. source: "iana",
  3914. compressible: true
  3915. },
  3916. "application/vnd.bint.med-content": {
  3917. source: "iana"
  3918. },
  3919. "application/vnd.biopax.rdf+xml": {
  3920. source: "iana",
  3921. compressible: true
  3922. },
  3923. "application/vnd.blink-idb-value-wrapper": {
  3924. source: "iana"
  3925. },
  3926. "application/vnd.blueice.multipass": {
  3927. source: "iana",
  3928. extensions: [
  3929. "mpm"
  3930. ]
  3931. },
  3932. "application/vnd.bluetooth.ep.oob": {
  3933. source: "iana"
  3934. },
  3935. "application/vnd.bluetooth.le.oob": {
  3936. source: "iana"
  3937. },
  3938. "application/vnd.bmi": {
  3939. source: "iana",
  3940. extensions: [
  3941. "bmi"
  3942. ]
  3943. },
  3944. "application/vnd.bpf": {
  3945. source: "iana"
  3946. },
  3947. "application/vnd.bpf3": {
  3948. source: "iana"
  3949. },
  3950. "application/vnd.businessobjects": {
  3951. source: "iana",
  3952. extensions: [
  3953. "rep"
  3954. ]
  3955. },
  3956. "application/vnd.byu.uapi+json": {
  3957. source: "iana",
  3958. compressible: true
  3959. },
  3960. "application/vnd.cab-jscript": {
  3961. source: "iana"
  3962. },
  3963. "application/vnd.canon-cpdl": {
  3964. source: "iana"
  3965. },
  3966. "application/vnd.canon-lips": {
  3967. source: "iana"
  3968. },
  3969. "application/vnd.capasystems-pg+json": {
  3970. source: "iana",
  3971. compressible: true
  3972. },
  3973. "application/vnd.cendio.thinlinc.clientconf": {
  3974. source: "iana"
  3975. },
  3976. "application/vnd.century-systems.tcp_stream": {
  3977. source: "iana"
  3978. },
  3979. "application/vnd.chemdraw+xml": {
  3980. source: "iana",
  3981. compressible: true,
  3982. extensions: [
  3983. "cdxml"
  3984. ]
  3985. },
  3986. "application/vnd.chess-pgn": {
  3987. source: "iana"
  3988. },
  3989. "application/vnd.chipnuts.karaoke-mmd": {
  3990. source: "iana",
  3991. extensions: [
  3992. "mmd"
  3993. ]
  3994. },
  3995. "application/vnd.ciedi": {
  3996. source: "iana"
  3997. },
  3998. "application/vnd.cinderella": {
  3999. source: "iana",
  4000. extensions: [
  4001. "cdy"
  4002. ]
  4003. },
  4004. "application/vnd.cirpack.isdn-ext": {
  4005. source: "iana"
  4006. },
  4007. "application/vnd.citationstyles.style+xml": {
  4008. source: "iana",
  4009. compressible: true,
  4010. extensions: [
  4011. "csl"
  4012. ]
  4013. },
  4014. "application/vnd.claymore": {
  4015. source: "iana",
  4016. extensions: [
  4017. "cla"
  4018. ]
  4019. },
  4020. "application/vnd.cloanto.rp9": {
  4021. source: "iana",
  4022. extensions: [
  4023. "rp9"
  4024. ]
  4025. },
  4026. "application/vnd.clonk.c4group": {
  4027. source: "iana",
  4028. extensions: [
  4029. "c4g",
  4030. "c4d",
  4031. "c4f",
  4032. "c4p",
  4033. "c4u"
  4034. ]
  4035. },
  4036. "application/vnd.cluetrust.cartomobile-config": {
  4037. source: "iana",
  4038. extensions: [
  4039. "c11amc"
  4040. ]
  4041. },
  4042. "application/vnd.cluetrust.cartomobile-config-pkg": {
  4043. source: "iana",
  4044. extensions: [
  4045. "c11amz"
  4046. ]
  4047. },
  4048. "application/vnd.coffeescript": {
  4049. source: "iana"
  4050. },
  4051. "application/vnd.collabio.xodocuments.document": {
  4052. source: "iana"
  4053. },
  4054. "application/vnd.collabio.xodocuments.document-template": {
  4055. source: "iana"
  4056. },
  4057. "application/vnd.collabio.xodocuments.presentation": {
  4058. source: "iana"
  4059. },
  4060. "application/vnd.collabio.xodocuments.presentation-template": {
  4061. source: "iana"
  4062. },
  4063. "application/vnd.collabio.xodocuments.spreadsheet": {
  4064. source: "iana"
  4065. },
  4066. "application/vnd.collabio.xodocuments.spreadsheet-template": {
  4067. source: "iana"
  4068. },
  4069. "application/vnd.collection+json": {
  4070. source: "iana",
  4071. compressible: true
  4072. },
  4073. "application/vnd.collection.doc+json": {
  4074. source: "iana",
  4075. compressible: true
  4076. },
  4077. "application/vnd.collection.next+json": {
  4078. source: "iana",
  4079. compressible: true
  4080. },
  4081. "application/vnd.comicbook+zip": {
  4082. source: "iana",
  4083. compressible: false
  4084. },
  4085. "application/vnd.comicbook-rar": {
  4086. source: "iana"
  4087. },
  4088. "application/vnd.commerce-battelle": {
  4089. source: "iana"
  4090. },
  4091. "application/vnd.commonspace": {
  4092. source: "iana",
  4093. extensions: [
  4094. "csp"
  4095. ]
  4096. },
  4097. "application/vnd.contact.cmsg": {
  4098. source: "iana",
  4099. extensions: [
  4100. "cdbcmsg"
  4101. ]
  4102. },
  4103. "application/vnd.coreos.ignition+json": {
  4104. source: "iana",
  4105. compressible: true
  4106. },
  4107. "application/vnd.cosmocaller": {
  4108. source: "iana",
  4109. extensions: [
  4110. "cmc"
  4111. ]
  4112. },
  4113. "application/vnd.crick.clicker": {
  4114. source: "iana",
  4115. extensions: [
  4116. "clkx"
  4117. ]
  4118. },
  4119. "application/vnd.crick.clicker.keyboard": {
  4120. source: "iana",
  4121. extensions: [
  4122. "clkk"
  4123. ]
  4124. },
  4125. "application/vnd.crick.clicker.palette": {
  4126. source: "iana",
  4127. extensions: [
  4128. "clkp"
  4129. ]
  4130. },
  4131. "application/vnd.crick.clicker.template": {
  4132. source: "iana",
  4133. extensions: [
  4134. "clkt"
  4135. ]
  4136. },
  4137. "application/vnd.crick.clicker.wordbank": {
  4138. source: "iana",
  4139. extensions: [
  4140. "clkw"
  4141. ]
  4142. },
  4143. "application/vnd.criticaltools.wbs+xml": {
  4144. source: "iana",
  4145. compressible: true,
  4146. extensions: [
  4147. "wbs"
  4148. ]
  4149. },
  4150. "application/vnd.cryptii.pipe+json": {
  4151. source: "iana",
  4152. compressible: true
  4153. },
  4154. "application/vnd.crypto-shade-file": {
  4155. source: "iana"
  4156. },
  4157. "application/vnd.ctc-posml": {
  4158. source: "iana",
  4159. extensions: [
  4160. "pml"
  4161. ]
  4162. },
  4163. "application/vnd.ctct.ws+xml": {
  4164. source: "iana",
  4165. compressible: true
  4166. },
  4167. "application/vnd.cups-pdf": {
  4168. source: "iana"
  4169. },
  4170. "application/vnd.cups-postscript": {
  4171. source: "iana"
  4172. },
  4173. "application/vnd.cups-ppd": {
  4174. source: "iana",
  4175. extensions: [
  4176. "ppd"
  4177. ]
  4178. },
  4179. "application/vnd.cups-raster": {
  4180. source: "iana"
  4181. },
  4182. "application/vnd.cups-raw": {
  4183. source: "iana"
  4184. },
  4185. "application/vnd.curl": {
  4186. source: "iana"
  4187. },
  4188. "application/vnd.curl.car": {
  4189. source: "apache",
  4190. extensions: [
  4191. "car"
  4192. ]
  4193. },
  4194. "application/vnd.curl.pcurl": {
  4195. source: "apache",
  4196. extensions: [
  4197. "pcurl"
  4198. ]
  4199. },
  4200. "application/vnd.cyan.dean.root+xml": {
  4201. source: "iana",
  4202. compressible: true
  4203. },
  4204. "application/vnd.cybank": {
  4205. source: "iana"
  4206. },
  4207. "application/vnd.cyclonedx+json": {
  4208. source: "iana",
  4209. compressible: true
  4210. },
  4211. "application/vnd.cyclonedx+xml": {
  4212. source: "iana",
  4213. compressible: true
  4214. },
  4215. "application/vnd.d2l.coursepackage1p0+zip": {
  4216. source: "iana",
  4217. compressible: false
  4218. },
  4219. "application/vnd.d3m-dataset": {
  4220. source: "iana"
  4221. },
  4222. "application/vnd.d3m-problem": {
  4223. source: "iana"
  4224. },
  4225. "application/vnd.dart": {
  4226. source: "iana",
  4227. compressible: true,
  4228. extensions: [
  4229. "dart"
  4230. ]
  4231. },
  4232. "application/vnd.data-vision.rdz": {
  4233. source: "iana",
  4234. extensions: [
  4235. "rdz"
  4236. ]
  4237. },
  4238. "application/vnd.datapackage+json": {
  4239. source: "iana",
  4240. compressible: true
  4241. },
  4242. "application/vnd.dataresource+json": {
  4243. source: "iana",
  4244. compressible: true
  4245. },
  4246. "application/vnd.dbf": {
  4247. source: "iana",
  4248. extensions: [
  4249. "dbf"
  4250. ]
  4251. },
  4252. "application/vnd.debian.binary-package": {
  4253. source: "iana"
  4254. },
  4255. "application/vnd.dece.data": {
  4256. source: "iana",
  4257. extensions: [
  4258. "uvf",
  4259. "uvvf",
  4260. "uvd",
  4261. "uvvd"
  4262. ]
  4263. },
  4264. "application/vnd.dece.ttml+xml": {
  4265. source: "iana",
  4266. compressible: true,
  4267. extensions: [
  4268. "uvt",
  4269. "uvvt"
  4270. ]
  4271. },
  4272. "application/vnd.dece.unspecified": {
  4273. source: "iana",
  4274. extensions: [
  4275. "uvx",
  4276. "uvvx"
  4277. ]
  4278. },
  4279. "application/vnd.dece.zip": {
  4280. source: "iana",
  4281. extensions: [
  4282. "uvz",
  4283. "uvvz"
  4284. ]
  4285. },
  4286. "application/vnd.denovo.fcselayout-link": {
  4287. source: "iana",
  4288. extensions: [
  4289. "fe_launch"
  4290. ]
  4291. },
  4292. "application/vnd.desmume.movie": {
  4293. source: "iana"
  4294. },
  4295. "application/vnd.dir-bi.plate-dl-nosuffix": {
  4296. source: "iana"
  4297. },
  4298. "application/vnd.dm.delegation+xml": {
  4299. source: "iana",
  4300. compressible: true
  4301. },
  4302. "application/vnd.dna": {
  4303. source: "iana",
  4304. extensions: [
  4305. "dna"
  4306. ]
  4307. },
  4308. "application/vnd.document+json": {
  4309. source: "iana",
  4310. compressible: true
  4311. },
  4312. "application/vnd.dolby.mlp": {
  4313. source: "apache",
  4314. extensions: [
  4315. "mlp"
  4316. ]
  4317. },
  4318. "application/vnd.dolby.mobile.1": {
  4319. source: "iana"
  4320. },
  4321. "application/vnd.dolby.mobile.2": {
  4322. source: "iana"
  4323. },
  4324. "application/vnd.doremir.scorecloud-binary-document": {
  4325. source: "iana"
  4326. },
  4327. "application/vnd.dpgraph": {
  4328. source: "iana",
  4329. extensions: [
  4330. "dpg"
  4331. ]
  4332. },
  4333. "application/vnd.dreamfactory": {
  4334. source: "iana",
  4335. extensions: [
  4336. "dfac"
  4337. ]
  4338. },
  4339. "application/vnd.drive+json": {
  4340. source: "iana",
  4341. compressible: true
  4342. },
  4343. "application/vnd.ds-keypoint": {
  4344. source: "apache",
  4345. extensions: [
  4346. "kpxx"
  4347. ]
  4348. },
  4349. "application/vnd.dtg.local": {
  4350. source: "iana"
  4351. },
  4352. "application/vnd.dtg.local.flash": {
  4353. source: "iana"
  4354. },
  4355. "application/vnd.dtg.local.html": {
  4356. source: "iana"
  4357. },
  4358. "application/vnd.dvb.ait": {
  4359. source: "iana",
  4360. extensions: [
  4361. "ait"
  4362. ]
  4363. },
  4364. "application/vnd.dvb.dvbisl+xml": {
  4365. source: "iana",
  4366. compressible: true
  4367. },
  4368. "application/vnd.dvb.dvbj": {
  4369. source: "iana"
  4370. },
  4371. "application/vnd.dvb.esgcontainer": {
  4372. source: "iana"
  4373. },
  4374. "application/vnd.dvb.ipdcdftnotifaccess": {
  4375. source: "iana"
  4376. },
  4377. "application/vnd.dvb.ipdcesgaccess": {
  4378. source: "iana"
  4379. },
  4380. "application/vnd.dvb.ipdcesgaccess2": {
  4381. source: "iana"
  4382. },
  4383. "application/vnd.dvb.ipdcesgpdd": {
  4384. source: "iana"
  4385. },
  4386. "application/vnd.dvb.ipdcroaming": {
  4387. source: "iana"
  4388. },
  4389. "application/vnd.dvb.iptv.alfec-base": {
  4390. source: "iana"
  4391. },
  4392. "application/vnd.dvb.iptv.alfec-enhancement": {
  4393. source: "iana"
  4394. },
  4395. "application/vnd.dvb.notif-aggregate-root+xml": {
  4396. source: "iana",
  4397. compressible: true
  4398. },
  4399. "application/vnd.dvb.notif-container+xml": {
  4400. source: "iana",
  4401. compressible: true
  4402. },
  4403. "application/vnd.dvb.notif-generic+xml": {
  4404. source: "iana",
  4405. compressible: true
  4406. },
  4407. "application/vnd.dvb.notif-ia-msglist+xml": {
  4408. source: "iana",
  4409. compressible: true
  4410. },
  4411. "application/vnd.dvb.notif-ia-registration-request+xml": {
  4412. source: "iana",
  4413. compressible: true
  4414. },
  4415. "application/vnd.dvb.notif-ia-registration-response+xml": {
  4416. source: "iana",
  4417. compressible: true
  4418. },
  4419. "application/vnd.dvb.notif-init+xml": {
  4420. source: "iana",
  4421. compressible: true
  4422. },
  4423. "application/vnd.dvb.pfr": {
  4424. source: "iana"
  4425. },
  4426. "application/vnd.dvb.service": {
  4427. source: "iana",
  4428. extensions: [
  4429. "svc"
  4430. ]
  4431. },
  4432. "application/vnd.dxr": {
  4433. source: "iana"
  4434. },
  4435. "application/vnd.dynageo": {
  4436. source: "iana",
  4437. extensions: [
  4438. "geo"
  4439. ]
  4440. },
  4441. "application/vnd.dzr": {
  4442. source: "iana"
  4443. },
  4444. "application/vnd.easykaraoke.cdgdownload": {
  4445. source: "iana"
  4446. },
  4447. "application/vnd.ecdis-update": {
  4448. source: "iana"
  4449. },
  4450. "application/vnd.ecip.rlp": {
  4451. source: "iana"
  4452. },
  4453. "application/vnd.ecowin.chart": {
  4454. source: "iana",
  4455. extensions: [
  4456. "mag"
  4457. ]
  4458. },
  4459. "application/vnd.ecowin.filerequest": {
  4460. source: "iana"
  4461. },
  4462. "application/vnd.ecowin.fileupdate": {
  4463. source: "iana"
  4464. },
  4465. "application/vnd.ecowin.series": {
  4466. source: "iana"
  4467. },
  4468. "application/vnd.ecowin.seriesrequest": {
  4469. source: "iana"
  4470. },
  4471. "application/vnd.ecowin.seriesupdate": {
  4472. source: "iana"
  4473. },
  4474. "application/vnd.efi.img": {
  4475. source: "iana"
  4476. },
  4477. "application/vnd.efi.iso": {
  4478. source: "iana"
  4479. },
  4480. "application/vnd.emclient.accessrequest+xml": {
  4481. source: "iana",
  4482. compressible: true
  4483. },
  4484. "application/vnd.enliven": {
  4485. source: "iana",
  4486. extensions: [
  4487. "nml"
  4488. ]
  4489. },
  4490. "application/vnd.enphase.envoy": {
  4491. source: "iana"
  4492. },
  4493. "application/vnd.eprints.data+xml": {
  4494. source: "iana",
  4495. compressible: true
  4496. },
  4497. "application/vnd.epson.esf": {
  4498. source: "iana",
  4499. extensions: [
  4500. "esf"
  4501. ]
  4502. },
  4503. "application/vnd.epson.msf": {
  4504. source: "iana",
  4505. extensions: [
  4506. "msf"
  4507. ]
  4508. },
  4509. "application/vnd.epson.quickanime": {
  4510. source: "iana",
  4511. extensions: [
  4512. "qam"
  4513. ]
  4514. },
  4515. "application/vnd.epson.salt": {
  4516. source: "iana",
  4517. extensions: [
  4518. "slt"
  4519. ]
  4520. },
  4521. "application/vnd.epson.ssf": {
  4522. source: "iana",
  4523. extensions: [
  4524. "ssf"
  4525. ]
  4526. },
  4527. "application/vnd.ericsson.quickcall": {
  4528. source: "iana"
  4529. },
  4530. "application/vnd.espass-espass+zip": {
  4531. source: "iana",
  4532. compressible: false
  4533. },
  4534. "application/vnd.eszigno3+xml": {
  4535. source: "iana",
  4536. compressible: true,
  4537. extensions: [
  4538. "es3",
  4539. "et3"
  4540. ]
  4541. },
  4542. "application/vnd.etsi.aoc+xml": {
  4543. source: "iana",
  4544. compressible: true
  4545. },
  4546. "application/vnd.etsi.asic-e+zip": {
  4547. source: "iana",
  4548. compressible: false
  4549. },
  4550. "application/vnd.etsi.asic-s+zip": {
  4551. source: "iana",
  4552. compressible: false
  4553. },
  4554. "application/vnd.etsi.cug+xml": {
  4555. source: "iana",
  4556. compressible: true
  4557. },
  4558. "application/vnd.etsi.iptvcommand+xml": {
  4559. source: "iana",
  4560. compressible: true
  4561. },
  4562. "application/vnd.etsi.iptvdiscovery+xml": {
  4563. source: "iana",
  4564. compressible: true
  4565. },
  4566. "application/vnd.etsi.iptvprofile+xml": {
  4567. source: "iana",
  4568. compressible: true
  4569. },
  4570. "application/vnd.etsi.iptvsad-bc+xml": {
  4571. source: "iana",
  4572. compressible: true
  4573. },
  4574. "application/vnd.etsi.iptvsad-cod+xml": {
  4575. source: "iana",
  4576. compressible: true
  4577. },
  4578. "application/vnd.etsi.iptvsad-npvr+xml": {
  4579. source: "iana",
  4580. compressible: true
  4581. },
  4582. "application/vnd.etsi.iptvservice+xml": {
  4583. source: "iana",
  4584. compressible: true
  4585. },
  4586. "application/vnd.etsi.iptvsync+xml": {
  4587. source: "iana",
  4588. compressible: true
  4589. },
  4590. "application/vnd.etsi.iptvueprofile+xml": {
  4591. source: "iana",
  4592. compressible: true
  4593. },
  4594. "application/vnd.etsi.mcid+xml": {
  4595. source: "iana",
  4596. compressible: true
  4597. },
  4598. "application/vnd.etsi.mheg5": {
  4599. source: "iana"
  4600. },
  4601. "application/vnd.etsi.overload-control-policy-dataset+xml": {
  4602. source: "iana",
  4603. compressible: true
  4604. },
  4605. "application/vnd.etsi.pstn+xml": {
  4606. source: "iana",
  4607. compressible: true
  4608. },
  4609. "application/vnd.etsi.sci+xml": {
  4610. source: "iana",
  4611. compressible: true
  4612. },
  4613. "application/vnd.etsi.simservs+xml": {
  4614. source: "iana",
  4615. compressible: true
  4616. },
  4617. "application/vnd.etsi.timestamp-token": {
  4618. source: "iana"
  4619. },
  4620. "application/vnd.etsi.tsl+xml": {
  4621. source: "iana",
  4622. compressible: true
  4623. },
  4624. "application/vnd.etsi.tsl.der": {
  4625. source: "iana"
  4626. },
  4627. "application/vnd.eudora.data": {
  4628. source: "iana"
  4629. },
  4630. "application/vnd.evolv.ecig.profile": {
  4631. source: "iana"
  4632. },
  4633. "application/vnd.evolv.ecig.settings": {
  4634. source: "iana"
  4635. },
  4636. "application/vnd.evolv.ecig.theme": {
  4637. source: "iana"
  4638. },
  4639. "application/vnd.exstream-empower+zip": {
  4640. source: "iana",
  4641. compressible: false
  4642. },
  4643. "application/vnd.exstream-package": {
  4644. source: "iana"
  4645. },
  4646. "application/vnd.ezpix-album": {
  4647. source: "iana",
  4648. extensions: [
  4649. "ez2"
  4650. ]
  4651. },
  4652. "application/vnd.ezpix-package": {
  4653. source: "iana",
  4654. extensions: [
  4655. "ez3"
  4656. ]
  4657. },
  4658. "application/vnd.f-secure.mobile": {
  4659. source: "iana"
  4660. },
  4661. "application/vnd.fastcopy-disk-image": {
  4662. source: "iana"
  4663. },
  4664. "application/vnd.fdf": {
  4665. source: "iana",
  4666. extensions: [
  4667. "fdf"
  4668. ]
  4669. },
  4670. "application/vnd.fdsn.mseed": {
  4671. source: "iana",
  4672. extensions: [
  4673. "mseed"
  4674. ]
  4675. },
  4676. "application/vnd.fdsn.seed": {
  4677. source: "iana",
  4678. extensions: [
  4679. "seed",
  4680. "dataless"
  4681. ]
  4682. },
  4683. "application/vnd.ffsns": {
  4684. source: "iana"
  4685. },
  4686. "application/vnd.ficlab.flb+zip": {
  4687. source: "iana",
  4688. compressible: false
  4689. },
  4690. "application/vnd.filmit.zfc": {
  4691. source: "iana"
  4692. },
  4693. "application/vnd.fints": {
  4694. source: "iana"
  4695. },
  4696. "application/vnd.firemonkeys.cloudcell": {
  4697. source: "iana"
  4698. },
  4699. "application/vnd.flographit": {
  4700. source: "iana",
  4701. extensions: [
  4702. "gph"
  4703. ]
  4704. },
  4705. "application/vnd.fluxtime.clip": {
  4706. source: "iana",
  4707. extensions: [
  4708. "ftc"
  4709. ]
  4710. },
  4711. "application/vnd.font-fontforge-sfd": {
  4712. source: "iana"
  4713. },
  4714. "application/vnd.framemaker": {
  4715. source: "iana",
  4716. extensions: [
  4717. "fm",
  4718. "frame",
  4719. "maker",
  4720. "book"
  4721. ]
  4722. },
  4723. "application/vnd.frogans.fnc": {
  4724. source: "iana",
  4725. extensions: [
  4726. "fnc"
  4727. ]
  4728. },
  4729. "application/vnd.frogans.ltf": {
  4730. source: "iana",
  4731. extensions: [
  4732. "ltf"
  4733. ]
  4734. },
  4735. "application/vnd.fsc.weblaunch": {
  4736. source: "iana",
  4737. extensions: [
  4738. "fsc"
  4739. ]
  4740. },
  4741. "application/vnd.fujitsu.oasys": {
  4742. source: "iana",
  4743. extensions: [
  4744. "oas"
  4745. ]
  4746. },
  4747. "application/vnd.fujitsu.oasys2": {
  4748. source: "iana",
  4749. extensions: [
  4750. "oa2"
  4751. ]
  4752. },
  4753. "application/vnd.fujitsu.oasys3": {
  4754. source: "iana",
  4755. extensions: [
  4756. "oa3"
  4757. ]
  4758. },
  4759. "application/vnd.fujitsu.oasysgp": {
  4760. source: "iana",
  4761. extensions: [
  4762. "fg5"
  4763. ]
  4764. },
  4765. "application/vnd.fujitsu.oasysprs": {
  4766. source: "iana",
  4767. extensions: [
  4768. "bh2"
  4769. ]
  4770. },
  4771. "application/vnd.fujixerox.art-ex": {
  4772. source: "iana"
  4773. },
  4774. "application/vnd.fujixerox.art4": {
  4775. source: "iana"
  4776. },
  4777. "application/vnd.fujixerox.ddd": {
  4778. source: "iana",
  4779. extensions: [
  4780. "ddd"
  4781. ]
  4782. },
  4783. "application/vnd.fujixerox.docuworks": {
  4784. source: "iana",
  4785. extensions: [
  4786. "xdw"
  4787. ]
  4788. },
  4789. "application/vnd.fujixerox.docuworks.binder": {
  4790. source: "iana",
  4791. extensions: [
  4792. "xbd"
  4793. ]
  4794. },
  4795. "application/vnd.fujixerox.docuworks.container": {
  4796. source: "iana"
  4797. },
  4798. "application/vnd.fujixerox.hbpl": {
  4799. source: "iana"
  4800. },
  4801. "application/vnd.fut-misnet": {
  4802. source: "iana"
  4803. },
  4804. "application/vnd.futoin+cbor": {
  4805. source: "iana"
  4806. },
  4807. "application/vnd.futoin+json": {
  4808. source: "iana",
  4809. compressible: true
  4810. },
  4811. "application/vnd.fuzzysheet": {
  4812. source: "iana",
  4813. extensions: [
  4814. "fzs"
  4815. ]
  4816. },
  4817. "application/vnd.genomatix.tuxedo": {
  4818. source: "iana",
  4819. extensions: [
  4820. "txd"
  4821. ]
  4822. },
  4823. "application/vnd.gentics.grd+json": {
  4824. source: "iana",
  4825. compressible: true
  4826. },
  4827. "application/vnd.geo+json": {
  4828. source: "iana",
  4829. compressible: true
  4830. },
  4831. "application/vnd.geocube+xml": {
  4832. source: "iana",
  4833. compressible: true
  4834. },
  4835. "application/vnd.geogebra.file": {
  4836. source: "iana",
  4837. extensions: [
  4838. "ggb"
  4839. ]
  4840. },
  4841. "application/vnd.geogebra.slides": {
  4842. source: "iana"
  4843. },
  4844. "application/vnd.geogebra.tool": {
  4845. source: "iana",
  4846. extensions: [
  4847. "ggt"
  4848. ]
  4849. },
  4850. "application/vnd.geometry-explorer": {
  4851. source: "iana",
  4852. extensions: [
  4853. "gex",
  4854. "gre"
  4855. ]
  4856. },
  4857. "application/vnd.geonext": {
  4858. source: "iana",
  4859. extensions: [
  4860. "gxt"
  4861. ]
  4862. },
  4863. "application/vnd.geoplan": {
  4864. source: "iana",
  4865. extensions: [
  4866. "g2w"
  4867. ]
  4868. },
  4869. "application/vnd.geospace": {
  4870. source: "iana",
  4871. extensions: [
  4872. "g3w"
  4873. ]
  4874. },
  4875. "application/vnd.gerber": {
  4876. source: "iana"
  4877. },
  4878. "application/vnd.globalplatform.card-content-mgt": {
  4879. source: "iana"
  4880. },
  4881. "application/vnd.globalplatform.card-content-mgt-response": {
  4882. source: "iana"
  4883. },
  4884. "application/vnd.gmx": {
  4885. source: "iana",
  4886. extensions: [
  4887. "gmx"
  4888. ]
  4889. },
  4890. "application/vnd.google-apps.document": {
  4891. compressible: false,
  4892. extensions: [
  4893. "gdoc"
  4894. ]
  4895. },
  4896. "application/vnd.google-apps.presentation": {
  4897. compressible: false,
  4898. extensions: [
  4899. "gslides"
  4900. ]
  4901. },
  4902. "application/vnd.google-apps.spreadsheet": {
  4903. compressible: false,
  4904. extensions: [
  4905. "gsheet"
  4906. ]
  4907. },
  4908. "application/vnd.google-earth.kml+xml": {
  4909. source: "iana",
  4910. compressible: true,
  4911. extensions: [
  4912. "kml"
  4913. ]
  4914. },
  4915. "application/vnd.google-earth.kmz": {
  4916. source: "iana",
  4917. compressible: false,
  4918. extensions: [
  4919. "kmz"
  4920. ]
  4921. },
  4922. "application/vnd.gov.sk.e-form+xml": {
  4923. source: "iana",
  4924. compressible: true
  4925. },
  4926. "application/vnd.gov.sk.e-form+zip": {
  4927. source: "iana",
  4928. compressible: false
  4929. },
  4930. "application/vnd.gov.sk.xmldatacontainer+xml": {
  4931. source: "iana",
  4932. compressible: true
  4933. },
  4934. "application/vnd.grafeq": {
  4935. source: "iana",
  4936. extensions: [
  4937. "gqf",
  4938. "gqs"
  4939. ]
  4940. },
  4941. "application/vnd.gridmp": {
  4942. source: "iana"
  4943. },
  4944. "application/vnd.groove-account": {
  4945. source: "iana",
  4946. extensions: [
  4947. "gac"
  4948. ]
  4949. },
  4950. "application/vnd.groove-help": {
  4951. source: "iana",
  4952. extensions: [
  4953. "ghf"
  4954. ]
  4955. },
  4956. "application/vnd.groove-identity-message": {
  4957. source: "iana",
  4958. extensions: [
  4959. "gim"
  4960. ]
  4961. },
  4962. "application/vnd.groove-injector": {
  4963. source: "iana",
  4964. extensions: [
  4965. "grv"
  4966. ]
  4967. },
  4968. "application/vnd.groove-tool-message": {
  4969. source: "iana",
  4970. extensions: [
  4971. "gtm"
  4972. ]
  4973. },
  4974. "application/vnd.groove-tool-template": {
  4975. source: "iana",
  4976. extensions: [
  4977. "tpl"
  4978. ]
  4979. },
  4980. "application/vnd.groove-vcard": {
  4981. source: "iana",
  4982. extensions: [
  4983. "vcg"
  4984. ]
  4985. },
  4986. "application/vnd.hal+json": {
  4987. source: "iana",
  4988. compressible: true
  4989. },
  4990. "application/vnd.hal+xml": {
  4991. source: "iana",
  4992. compressible: true,
  4993. extensions: [
  4994. "hal"
  4995. ]
  4996. },
  4997. "application/vnd.handheld-entertainment+xml": {
  4998. source: "iana",
  4999. compressible: true,
  5000. extensions: [
  5001. "zmm"
  5002. ]
  5003. },
  5004. "application/vnd.hbci": {
  5005. source: "iana",
  5006. extensions: [
  5007. "hbci"
  5008. ]
  5009. },
  5010. "application/vnd.hc+json": {
  5011. source: "iana",
  5012. compressible: true
  5013. },
  5014. "application/vnd.hcl-bireports": {
  5015. source: "iana"
  5016. },
  5017. "application/vnd.hdt": {
  5018. source: "iana"
  5019. },
  5020. "application/vnd.heroku+json": {
  5021. source: "iana",
  5022. compressible: true
  5023. },
  5024. "application/vnd.hhe.lesson-player": {
  5025. source: "iana",
  5026. extensions: [
  5027. "les"
  5028. ]
  5029. },
  5030. "application/vnd.hp-hpgl": {
  5031. source: "iana",
  5032. extensions: [
  5033. "hpgl"
  5034. ]
  5035. },
  5036. "application/vnd.hp-hpid": {
  5037. source: "iana",
  5038. extensions: [
  5039. "hpid"
  5040. ]
  5041. },
  5042. "application/vnd.hp-hps": {
  5043. source: "iana",
  5044. extensions: [
  5045. "hps"
  5046. ]
  5047. },
  5048. "application/vnd.hp-jlyt": {
  5049. source: "iana",
  5050. extensions: [
  5051. "jlt"
  5052. ]
  5053. },
  5054. "application/vnd.hp-pcl": {
  5055. source: "iana",
  5056. extensions: [
  5057. "pcl"
  5058. ]
  5059. },
  5060. "application/vnd.hp-pclxl": {
  5061. source: "iana",
  5062. extensions: [
  5063. "pclxl"
  5064. ]
  5065. },
  5066. "application/vnd.httphone": {
  5067. source: "iana"
  5068. },
  5069. "application/vnd.hydrostatix.sof-data": {
  5070. source: "iana",
  5071. extensions: [
  5072. "sfd-hdstx"
  5073. ]
  5074. },
  5075. "application/vnd.hyper+json": {
  5076. source: "iana",
  5077. compressible: true
  5078. },
  5079. "application/vnd.hyper-item+json": {
  5080. source: "iana",
  5081. compressible: true
  5082. },
  5083. "application/vnd.hyperdrive+json": {
  5084. source: "iana",
  5085. compressible: true
  5086. },
  5087. "application/vnd.hzn-3d-crossword": {
  5088. source: "iana"
  5089. },
  5090. "application/vnd.ibm.afplinedata": {
  5091. source: "iana"
  5092. },
  5093. "application/vnd.ibm.electronic-media": {
  5094. source: "iana"
  5095. },
  5096. "application/vnd.ibm.minipay": {
  5097. source: "iana",
  5098. extensions: [
  5099. "mpy"
  5100. ]
  5101. },
  5102. "application/vnd.ibm.modcap": {
  5103. source: "iana",
  5104. extensions: [
  5105. "afp",
  5106. "listafp",
  5107. "list3820"
  5108. ]
  5109. },
  5110. "application/vnd.ibm.rights-management": {
  5111. source: "iana",
  5112. extensions: [
  5113. "irm"
  5114. ]
  5115. },
  5116. "application/vnd.ibm.secure-container": {
  5117. source: "iana",
  5118. extensions: [
  5119. "sc"
  5120. ]
  5121. },
  5122. "application/vnd.iccprofile": {
  5123. source: "iana",
  5124. extensions: [
  5125. "icc",
  5126. "icm"
  5127. ]
  5128. },
  5129. "application/vnd.ieee.1905": {
  5130. source: "iana"
  5131. },
  5132. "application/vnd.igloader": {
  5133. source: "iana",
  5134. extensions: [
  5135. "igl"
  5136. ]
  5137. },
  5138. "application/vnd.imagemeter.folder+zip": {
  5139. source: "iana",
  5140. compressible: false
  5141. },
  5142. "application/vnd.imagemeter.image+zip": {
  5143. source: "iana",
  5144. compressible: false
  5145. },
  5146. "application/vnd.immervision-ivp": {
  5147. source: "iana",
  5148. extensions: [
  5149. "ivp"
  5150. ]
  5151. },
  5152. "application/vnd.immervision-ivu": {
  5153. source: "iana",
  5154. extensions: [
  5155. "ivu"
  5156. ]
  5157. },
  5158. "application/vnd.ims.imsccv1p1": {
  5159. source: "iana"
  5160. },
  5161. "application/vnd.ims.imsccv1p2": {
  5162. source: "iana"
  5163. },
  5164. "application/vnd.ims.imsccv1p3": {
  5165. source: "iana"
  5166. },
  5167. "application/vnd.ims.lis.v2.result+json": {
  5168. source: "iana",
  5169. compressible: true
  5170. },
  5171. "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
  5172. source: "iana",
  5173. compressible: true
  5174. },
  5175. "application/vnd.ims.lti.v2.toolproxy+json": {
  5176. source: "iana",
  5177. compressible: true
  5178. },
  5179. "application/vnd.ims.lti.v2.toolproxy.id+json": {
  5180. source: "iana",
  5181. compressible: true
  5182. },
  5183. "application/vnd.ims.lti.v2.toolsettings+json": {
  5184. source: "iana",
  5185. compressible: true
  5186. },
  5187. "application/vnd.ims.lti.v2.toolsettings.simple+json": {
  5188. source: "iana",
  5189. compressible: true
  5190. },
  5191. "application/vnd.informedcontrol.rms+xml": {
  5192. source: "iana",
  5193. compressible: true
  5194. },
  5195. "application/vnd.informix-visionary": {
  5196. source: "iana"
  5197. },
  5198. "application/vnd.infotech.project": {
  5199. source: "iana"
  5200. },
  5201. "application/vnd.infotech.project+xml": {
  5202. source: "iana",
  5203. compressible: true
  5204. },
  5205. "application/vnd.innopath.wamp.notification": {
  5206. source: "iana"
  5207. },
  5208. "application/vnd.insors.igm": {
  5209. source: "iana",
  5210. extensions: [
  5211. "igm"
  5212. ]
  5213. },
  5214. "application/vnd.intercon.formnet": {
  5215. source: "iana",
  5216. extensions: [
  5217. "xpw",
  5218. "xpx"
  5219. ]
  5220. },
  5221. "application/vnd.intergeo": {
  5222. source: "iana",
  5223. extensions: [
  5224. "i2g"
  5225. ]
  5226. },
  5227. "application/vnd.intertrust.digibox": {
  5228. source: "iana"
  5229. },
  5230. "application/vnd.intertrust.nncp": {
  5231. source: "iana"
  5232. },
  5233. "application/vnd.intu.qbo": {
  5234. source: "iana",
  5235. extensions: [
  5236. "qbo"
  5237. ]
  5238. },
  5239. "application/vnd.intu.qfx": {
  5240. source: "iana",
  5241. extensions: [
  5242. "qfx"
  5243. ]
  5244. },
  5245. "application/vnd.iptc.g2.catalogitem+xml": {
  5246. source: "iana",
  5247. compressible: true
  5248. },
  5249. "application/vnd.iptc.g2.conceptitem+xml": {
  5250. source: "iana",
  5251. compressible: true
  5252. },
  5253. "application/vnd.iptc.g2.knowledgeitem+xml": {
  5254. source: "iana",
  5255. compressible: true
  5256. },
  5257. "application/vnd.iptc.g2.newsitem+xml": {
  5258. source: "iana",
  5259. compressible: true
  5260. },
  5261. "application/vnd.iptc.g2.newsmessage+xml": {
  5262. source: "iana",
  5263. compressible: true
  5264. },
  5265. "application/vnd.iptc.g2.packageitem+xml": {
  5266. source: "iana",
  5267. compressible: true
  5268. },
  5269. "application/vnd.iptc.g2.planningitem+xml": {
  5270. source: "iana",
  5271. compressible: true
  5272. },
  5273. "application/vnd.ipunplugged.rcprofile": {
  5274. source: "iana",
  5275. extensions: [
  5276. "rcprofile"
  5277. ]
  5278. },
  5279. "application/vnd.irepository.package+xml": {
  5280. source: "iana",
  5281. compressible: true,
  5282. extensions: [
  5283. "irp"
  5284. ]
  5285. },
  5286. "application/vnd.is-xpr": {
  5287. source: "iana",
  5288. extensions: [
  5289. "xpr"
  5290. ]
  5291. },
  5292. "application/vnd.isac.fcs": {
  5293. source: "iana",
  5294. extensions: [
  5295. "fcs"
  5296. ]
  5297. },
  5298. "application/vnd.iso11783-10+zip": {
  5299. source: "iana",
  5300. compressible: false
  5301. },
  5302. "application/vnd.jam": {
  5303. source: "iana",
  5304. extensions: [
  5305. "jam"
  5306. ]
  5307. },
  5308. "application/vnd.japannet-directory-service": {
  5309. source: "iana"
  5310. },
  5311. "application/vnd.japannet-jpnstore-wakeup": {
  5312. source: "iana"
  5313. },
  5314. "application/vnd.japannet-payment-wakeup": {
  5315. source: "iana"
  5316. },
  5317. "application/vnd.japannet-registration": {
  5318. source: "iana"
  5319. },
  5320. "application/vnd.japannet-registration-wakeup": {
  5321. source: "iana"
  5322. },
  5323. "application/vnd.japannet-setstore-wakeup": {
  5324. source: "iana"
  5325. },
  5326. "application/vnd.japannet-verification": {
  5327. source: "iana"
  5328. },
  5329. "application/vnd.japannet-verification-wakeup": {
  5330. source: "iana"
  5331. },
  5332. "application/vnd.jcp.javame.midlet-rms": {
  5333. source: "iana",
  5334. extensions: [
  5335. "rms"
  5336. ]
  5337. },
  5338. "application/vnd.jisp": {
  5339. source: "iana",
  5340. extensions: [
  5341. "jisp"
  5342. ]
  5343. },
  5344. "application/vnd.joost.joda-archive": {
  5345. source: "iana",
  5346. extensions: [
  5347. "joda"
  5348. ]
  5349. },
  5350. "application/vnd.jsk.isdn-ngn": {
  5351. source: "iana"
  5352. },
  5353. "application/vnd.kahootz": {
  5354. source: "iana",
  5355. extensions: [
  5356. "ktz",
  5357. "ktr"
  5358. ]
  5359. },
  5360. "application/vnd.kde.karbon": {
  5361. source: "iana",
  5362. extensions: [
  5363. "karbon"
  5364. ]
  5365. },
  5366. "application/vnd.kde.kchart": {
  5367. source: "iana",
  5368. extensions: [
  5369. "chrt"
  5370. ]
  5371. },
  5372. "application/vnd.kde.kformula": {
  5373. source: "iana",
  5374. extensions: [
  5375. "kfo"
  5376. ]
  5377. },
  5378. "application/vnd.kde.kivio": {
  5379. source: "iana",
  5380. extensions: [
  5381. "flw"
  5382. ]
  5383. },
  5384. "application/vnd.kde.kontour": {
  5385. source: "iana",
  5386. extensions: [
  5387. "kon"
  5388. ]
  5389. },
  5390. "application/vnd.kde.kpresenter": {
  5391. source: "iana",
  5392. extensions: [
  5393. "kpr",
  5394. "kpt"
  5395. ]
  5396. },
  5397. "application/vnd.kde.kspread": {
  5398. source: "iana",
  5399. extensions: [
  5400. "ksp"
  5401. ]
  5402. },
  5403. "application/vnd.kde.kword": {
  5404. source: "iana",
  5405. extensions: [
  5406. "kwd",
  5407. "kwt"
  5408. ]
  5409. },
  5410. "application/vnd.kenameaapp": {
  5411. source: "iana",
  5412. extensions: [
  5413. "htke"
  5414. ]
  5415. },
  5416. "application/vnd.kidspiration": {
  5417. source: "iana",
  5418. extensions: [
  5419. "kia"
  5420. ]
  5421. },
  5422. "application/vnd.kinar": {
  5423. source: "iana",
  5424. extensions: [
  5425. "kne",
  5426. "knp"
  5427. ]
  5428. },
  5429. "application/vnd.koan": {
  5430. source: "iana",
  5431. extensions: [
  5432. "skp",
  5433. "skd",
  5434. "skt",
  5435. "skm"
  5436. ]
  5437. },
  5438. "application/vnd.kodak-descriptor": {
  5439. source: "iana",
  5440. extensions: [
  5441. "sse"
  5442. ]
  5443. },
  5444. "application/vnd.las": {
  5445. source: "iana"
  5446. },
  5447. "application/vnd.las.las+json": {
  5448. source: "iana",
  5449. compressible: true
  5450. },
  5451. "application/vnd.las.las+xml": {
  5452. source: "iana",
  5453. compressible: true,
  5454. extensions: [
  5455. "lasxml"
  5456. ]
  5457. },
  5458. "application/vnd.laszip": {
  5459. source: "iana"
  5460. },
  5461. "application/vnd.leap+json": {
  5462. source: "iana",
  5463. compressible: true
  5464. },
  5465. "application/vnd.liberty-request+xml": {
  5466. source: "iana",
  5467. compressible: true
  5468. },
  5469. "application/vnd.llamagraphics.life-balance.desktop": {
  5470. source: "iana",
  5471. extensions: [
  5472. "lbd"
  5473. ]
  5474. },
  5475. "application/vnd.llamagraphics.life-balance.exchange+xml": {
  5476. source: "iana",
  5477. compressible: true,
  5478. extensions: [
  5479. "lbe"
  5480. ]
  5481. },
  5482. "application/vnd.logipipe.circuit+zip": {
  5483. source: "iana",
  5484. compressible: false
  5485. },
  5486. "application/vnd.loom": {
  5487. source: "iana"
  5488. },
  5489. "application/vnd.lotus-1-2-3": {
  5490. source: "iana",
  5491. extensions: [
  5492. "123"
  5493. ]
  5494. },
  5495. "application/vnd.lotus-approach": {
  5496. source: "iana",
  5497. extensions: [
  5498. "apr"
  5499. ]
  5500. },
  5501. "application/vnd.lotus-freelance": {
  5502. source: "iana",
  5503. extensions: [
  5504. "pre"
  5505. ]
  5506. },
  5507. "application/vnd.lotus-notes": {
  5508. source: "iana",
  5509. extensions: [
  5510. "nsf"
  5511. ]
  5512. },
  5513. "application/vnd.lotus-organizer": {
  5514. source: "iana",
  5515. extensions: [
  5516. "org"
  5517. ]
  5518. },
  5519. "application/vnd.lotus-screencam": {
  5520. source: "iana",
  5521. extensions: [
  5522. "scm"
  5523. ]
  5524. },
  5525. "application/vnd.lotus-wordpro": {
  5526. source: "iana",
  5527. extensions: [
  5528. "lwp"
  5529. ]
  5530. },
  5531. "application/vnd.macports.portpkg": {
  5532. source: "iana",
  5533. extensions: [
  5534. "portpkg"
  5535. ]
  5536. },
  5537. "application/vnd.mapbox-vector-tile": {
  5538. source: "iana"
  5539. },
  5540. "application/vnd.marlin.drm.actiontoken+xml": {
  5541. source: "iana",
  5542. compressible: true
  5543. },
  5544. "application/vnd.marlin.drm.conftoken+xml": {
  5545. source: "iana",
  5546. compressible: true
  5547. },
  5548. "application/vnd.marlin.drm.license+xml": {
  5549. source: "iana",
  5550. compressible: true
  5551. },
  5552. "application/vnd.marlin.drm.mdcf": {
  5553. source: "iana"
  5554. },
  5555. "application/vnd.mason+json": {
  5556. source: "iana",
  5557. compressible: true
  5558. },
  5559. "application/vnd.maxmind.maxmind-db": {
  5560. source: "iana"
  5561. },
  5562. "application/vnd.mcd": {
  5563. source: "iana",
  5564. extensions: [
  5565. "mcd"
  5566. ]
  5567. },
  5568. "application/vnd.medcalcdata": {
  5569. source: "iana",
  5570. extensions: [
  5571. "mc1"
  5572. ]
  5573. },
  5574. "application/vnd.mediastation.cdkey": {
  5575. source: "iana",
  5576. extensions: [
  5577. "cdkey"
  5578. ]
  5579. },
  5580. "application/vnd.meridian-slingshot": {
  5581. source: "iana"
  5582. },
  5583. "application/vnd.mfer": {
  5584. source: "iana",
  5585. extensions: [
  5586. "mwf"
  5587. ]
  5588. },
  5589. "application/vnd.mfmp": {
  5590. source: "iana",
  5591. extensions: [
  5592. "mfm"
  5593. ]
  5594. },
  5595. "application/vnd.micro+json": {
  5596. source: "iana",
  5597. compressible: true
  5598. },
  5599. "application/vnd.micrografx.flo": {
  5600. source: "iana",
  5601. extensions: [
  5602. "flo"
  5603. ]
  5604. },
  5605. "application/vnd.micrografx.igx": {
  5606. source: "iana",
  5607. extensions: [
  5608. "igx"
  5609. ]
  5610. },
  5611. "application/vnd.microsoft.portable-executable": {
  5612. source: "iana"
  5613. },
  5614. "application/vnd.microsoft.windows.thumbnail-cache": {
  5615. source: "iana"
  5616. },
  5617. "application/vnd.miele+json": {
  5618. source: "iana",
  5619. compressible: true
  5620. },
  5621. "application/vnd.mif": {
  5622. source: "iana",
  5623. extensions: [
  5624. "mif"
  5625. ]
  5626. },
  5627. "application/vnd.minisoft-hp3000-save": {
  5628. source: "iana"
  5629. },
  5630. "application/vnd.mitsubishi.misty-guard.trustweb": {
  5631. source: "iana"
  5632. },
  5633. "application/vnd.mobius.daf": {
  5634. source: "iana",
  5635. extensions: [
  5636. "daf"
  5637. ]
  5638. },
  5639. "application/vnd.mobius.dis": {
  5640. source: "iana",
  5641. extensions: [
  5642. "dis"
  5643. ]
  5644. },
  5645. "application/vnd.mobius.mbk": {
  5646. source: "iana",
  5647. extensions: [
  5648. "mbk"
  5649. ]
  5650. },
  5651. "application/vnd.mobius.mqy": {
  5652. source: "iana",
  5653. extensions: [
  5654. "mqy"
  5655. ]
  5656. },
  5657. "application/vnd.mobius.msl": {
  5658. source: "iana",
  5659. extensions: [
  5660. "msl"
  5661. ]
  5662. },
  5663. "application/vnd.mobius.plc": {
  5664. source: "iana",
  5665. extensions: [
  5666. "plc"
  5667. ]
  5668. },
  5669. "application/vnd.mobius.txf": {
  5670. source: "iana",
  5671. extensions: [
  5672. "txf"
  5673. ]
  5674. },
  5675. "application/vnd.mophun.application": {
  5676. source: "iana",
  5677. extensions: [
  5678. "mpn"
  5679. ]
  5680. },
  5681. "application/vnd.mophun.certificate": {
  5682. source: "iana",
  5683. extensions: [
  5684. "mpc"
  5685. ]
  5686. },
  5687. "application/vnd.motorola.flexsuite": {
  5688. source: "iana"
  5689. },
  5690. "application/vnd.motorola.flexsuite.adsi": {
  5691. source: "iana"
  5692. },
  5693. "application/vnd.motorola.flexsuite.fis": {
  5694. source: "iana"
  5695. },
  5696. "application/vnd.motorola.flexsuite.gotap": {
  5697. source: "iana"
  5698. },
  5699. "application/vnd.motorola.flexsuite.kmr": {
  5700. source: "iana"
  5701. },
  5702. "application/vnd.motorola.flexsuite.ttc": {
  5703. source: "iana"
  5704. },
  5705. "application/vnd.motorola.flexsuite.wem": {
  5706. source: "iana"
  5707. },
  5708. "application/vnd.motorola.iprm": {
  5709. source: "iana"
  5710. },
  5711. "application/vnd.mozilla.xul+xml": {
  5712. source: "iana",
  5713. compressible: true,
  5714. extensions: [
  5715. "xul"
  5716. ]
  5717. },
  5718. "application/vnd.ms-3mfdocument": {
  5719. source: "iana"
  5720. },
  5721. "application/vnd.ms-artgalry": {
  5722. source: "iana",
  5723. extensions: [
  5724. "cil"
  5725. ]
  5726. },
  5727. "application/vnd.ms-asf": {
  5728. source: "iana"
  5729. },
  5730. "application/vnd.ms-cab-compressed": {
  5731. source: "iana",
  5732. extensions: [
  5733. "cab"
  5734. ]
  5735. },
  5736. "application/vnd.ms-color.iccprofile": {
  5737. source: "apache"
  5738. },
  5739. "application/vnd.ms-excel": {
  5740. source: "iana",
  5741. compressible: false,
  5742. extensions: [
  5743. "xls",
  5744. "xlm",
  5745. "xla",
  5746. "xlc",
  5747. "xlt",
  5748. "xlw"
  5749. ]
  5750. },
  5751. "application/vnd.ms-excel.addin.macroenabled.12": {
  5752. source: "iana",
  5753. extensions: [
  5754. "xlam"
  5755. ]
  5756. },
  5757. "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
  5758. source: "iana",
  5759. extensions: [
  5760. "xlsb"
  5761. ]
  5762. },
  5763. "application/vnd.ms-excel.sheet.macroenabled.12": {
  5764. source: "iana",
  5765. extensions: [
  5766. "xlsm"
  5767. ]
  5768. },
  5769. "application/vnd.ms-excel.template.macroenabled.12": {
  5770. source: "iana",
  5771. extensions: [
  5772. "xltm"
  5773. ]
  5774. },
  5775. "application/vnd.ms-fontobject": {
  5776. source: "iana",
  5777. compressible: true,
  5778. extensions: [
  5779. "eot"
  5780. ]
  5781. },
  5782. "application/vnd.ms-htmlhelp": {
  5783. source: "iana",
  5784. extensions: [
  5785. "chm"
  5786. ]
  5787. },
  5788. "application/vnd.ms-ims": {
  5789. source: "iana",
  5790. extensions: [
  5791. "ims"
  5792. ]
  5793. },
  5794. "application/vnd.ms-lrm": {
  5795. source: "iana",
  5796. extensions: [
  5797. "lrm"
  5798. ]
  5799. },
  5800. "application/vnd.ms-office.activex+xml": {
  5801. source: "iana",
  5802. compressible: true
  5803. },
  5804. "application/vnd.ms-officetheme": {
  5805. source: "iana",
  5806. extensions: [
  5807. "thmx"
  5808. ]
  5809. },
  5810. "application/vnd.ms-opentype": {
  5811. source: "apache",
  5812. compressible: true
  5813. },
  5814. "application/vnd.ms-outlook": {
  5815. compressible: false,
  5816. extensions: [
  5817. "msg"
  5818. ]
  5819. },
  5820. "application/vnd.ms-package.obfuscated-opentype": {
  5821. source: "apache"
  5822. },
  5823. "application/vnd.ms-pki.seccat": {
  5824. source: "apache",
  5825. extensions: [
  5826. "cat"
  5827. ]
  5828. },
  5829. "application/vnd.ms-pki.stl": {
  5830. source: "apache",
  5831. extensions: [
  5832. "stl"
  5833. ]
  5834. },
  5835. "application/vnd.ms-playready.initiator+xml": {
  5836. source: "iana",
  5837. compressible: true
  5838. },
  5839. "application/vnd.ms-powerpoint": {
  5840. source: "iana",
  5841. compressible: false,
  5842. extensions: [
  5843. "ppt",
  5844. "pps",
  5845. "pot"
  5846. ]
  5847. },
  5848. "application/vnd.ms-powerpoint.addin.macroenabled.12": {
  5849. source: "iana",
  5850. extensions: [
  5851. "ppam"
  5852. ]
  5853. },
  5854. "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
  5855. source: "iana",
  5856. extensions: [
  5857. "pptm"
  5858. ]
  5859. },
  5860. "application/vnd.ms-powerpoint.slide.macroenabled.12": {
  5861. source: "iana",
  5862. extensions: [
  5863. "sldm"
  5864. ]
  5865. },
  5866. "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
  5867. source: "iana",
  5868. extensions: [
  5869. "ppsm"
  5870. ]
  5871. },
  5872. "application/vnd.ms-powerpoint.template.macroenabled.12": {
  5873. source: "iana",
  5874. extensions: [
  5875. "potm"
  5876. ]
  5877. },
  5878. "application/vnd.ms-printdevicecapabilities+xml": {
  5879. source: "iana",
  5880. compressible: true
  5881. },
  5882. "application/vnd.ms-printing.printticket+xml": {
  5883. source: "apache",
  5884. compressible: true
  5885. },
  5886. "application/vnd.ms-printschematicket+xml": {
  5887. source: "iana",
  5888. compressible: true
  5889. },
  5890. "application/vnd.ms-project": {
  5891. source: "iana",
  5892. extensions: [
  5893. "mpp",
  5894. "mpt"
  5895. ]
  5896. },
  5897. "application/vnd.ms-tnef": {
  5898. source: "iana"
  5899. },
  5900. "application/vnd.ms-windows.devicepairing": {
  5901. source: "iana"
  5902. },
  5903. "application/vnd.ms-windows.nwprinting.oob": {
  5904. source: "iana"
  5905. },
  5906. "application/vnd.ms-windows.printerpairing": {
  5907. source: "iana"
  5908. },
  5909. "application/vnd.ms-windows.wsd.oob": {
  5910. source: "iana"
  5911. },
  5912. "application/vnd.ms-wmdrm.lic-chlg-req": {
  5913. source: "iana"
  5914. },
  5915. "application/vnd.ms-wmdrm.lic-resp": {
  5916. source: "iana"
  5917. },
  5918. "application/vnd.ms-wmdrm.meter-chlg-req": {
  5919. source: "iana"
  5920. },
  5921. "application/vnd.ms-wmdrm.meter-resp": {
  5922. source: "iana"
  5923. },
  5924. "application/vnd.ms-word.document.macroenabled.12": {
  5925. source: "iana",
  5926. extensions: [
  5927. "docm"
  5928. ]
  5929. },
  5930. "application/vnd.ms-word.template.macroenabled.12": {
  5931. source: "iana",
  5932. extensions: [
  5933. "dotm"
  5934. ]
  5935. },
  5936. "application/vnd.ms-works": {
  5937. source: "iana",
  5938. extensions: [
  5939. "wps",
  5940. "wks",
  5941. "wcm",
  5942. "wdb"
  5943. ]
  5944. },
  5945. "application/vnd.ms-wpl": {
  5946. source: "iana",
  5947. extensions: [
  5948. "wpl"
  5949. ]
  5950. },
  5951. "application/vnd.ms-xpsdocument": {
  5952. source: "iana",
  5953. compressible: false,
  5954. extensions: [
  5955. "xps"
  5956. ]
  5957. },
  5958. "application/vnd.msa-disk-image": {
  5959. source: "iana"
  5960. },
  5961. "application/vnd.mseq": {
  5962. source: "iana",
  5963. extensions: [
  5964. "mseq"
  5965. ]
  5966. },
  5967. "application/vnd.msign": {
  5968. source: "iana"
  5969. },
  5970. "application/vnd.multiad.creator": {
  5971. source: "iana"
  5972. },
  5973. "application/vnd.multiad.creator.cif": {
  5974. source: "iana"
  5975. },
  5976. "application/vnd.music-niff": {
  5977. source: "iana"
  5978. },
  5979. "application/vnd.musician": {
  5980. source: "iana",
  5981. extensions: [
  5982. "mus"
  5983. ]
  5984. },
  5985. "application/vnd.muvee.style": {
  5986. source: "iana",
  5987. extensions: [
  5988. "msty"
  5989. ]
  5990. },
  5991. "application/vnd.mynfc": {
  5992. source: "iana",
  5993. extensions: [
  5994. "taglet"
  5995. ]
  5996. },
  5997. "application/vnd.ncd.control": {
  5998. source: "iana"
  5999. },
  6000. "application/vnd.ncd.reference": {
  6001. source: "iana"
  6002. },
  6003. "application/vnd.nearst.inv+json": {
  6004. source: "iana",
  6005. compressible: true
  6006. },
  6007. "application/vnd.nervana": {
  6008. source: "iana"
  6009. },
  6010. "application/vnd.netfpx": {
  6011. source: "iana"
  6012. },
  6013. "application/vnd.neurolanguage.nlu": {
  6014. source: "iana",
  6015. extensions: [
  6016. "nlu"
  6017. ]
  6018. },
  6019. "application/vnd.nimn": {
  6020. source: "iana"
  6021. },
  6022. "application/vnd.nintendo.nitro.rom": {
  6023. source: "iana"
  6024. },
  6025. "application/vnd.nintendo.snes.rom": {
  6026. source: "iana"
  6027. },
  6028. "application/vnd.nitf": {
  6029. source: "iana",
  6030. extensions: [
  6031. "ntf",
  6032. "nitf"
  6033. ]
  6034. },
  6035. "application/vnd.noblenet-directory": {
  6036. source: "iana",
  6037. extensions: [
  6038. "nnd"
  6039. ]
  6040. },
  6041. "application/vnd.noblenet-sealer": {
  6042. source: "iana",
  6043. extensions: [
  6044. "nns"
  6045. ]
  6046. },
  6047. "application/vnd.noblenet-web": {
  6048. source: "iana",
  6049. extensions: [
  6050. "nnw"
  6051. ]
  6052. },
  6053. "application/vnd.nokia.catalogs": {
  6054. source: "iana"
  6055. },
  6056. "application/vnd.nokia.conml+wbxml": {
  6057. source: "iana"
  6058. },
  6059. "application/vnd.nokia.conml+xml": {
  6060. source: "iana",
  6061. compressible: true
  6062. },
  6063. "application/vnd.nokia.iptv.config+xml": {
  6064. source: "iana",
  6065. compressible: true
  6066. },
  6067. "application/vnd.nokia.isds-radio-presets": {
  6068. source: "iana"
  6069. },
  6070. "application/vnd.nokia.landmark+wbxml": {
  6071. source: "iana"
  6072. },
  6073. "application/vnd.nokia.landmark+xml": {
  6074. source: "iana",
  6075. compressible: true
  6076. },
  6077. "application/vnd.nokia.landmarkcollection+xml": {
  6078. source: "iana",
  6079. compressible: true
  6080. },
  6081. "application/vnd.nokia.n-gage.ac+xml": {
  6082. source: "iana",
  6083. compressible: true,
  6084. extensions: [
  6085. "ac"
  6086. ]
  6087. },
  6088. "application/vnd.nokia.n-gage.data": {
  6089. source: "iana",
  6090. extensions: [
  6091. "ngdat"
  6092. ]
  6093. },
  6094. "application/vnd.nokia.n-gage.symbian.install": {
  6095. source: "iana",
  6096. extensions: [
  6097. "n-gage"
  6098. ]
  6099. },
  6100. "application/vnd.nokia.ncd": {
  6101. source: "iana"
  6102. },
  6103. "application/vnd.nokia.pcd+wbxml": {
  6104. source: "iana"
  6105. },
  6106. "application/vnd.nokia.pcd+xml": {
  6107. source: "iana",
  6108. compressible: true
  6109. },
  6110. "application/vnd.nokia.radio-preset": {
  6111. source: "iana",
  6112. extensions: [
  6113. "rpst"
  6114. ]
  6115. },
  6116. "application/vnd.nokia.radio-presets": {
  6117. source: "iana",
  6118. extensions: [
  6119. "rpss"
  6120. ]
  6121. },
  6122. "application/vnd.novadigm.edm": {
  6123. source: "iana",
  6124. extensions: [
  6125. "edm"
  6126. ]
  6127. },
  6128. "application/vnd.novadigm.edx": {
  6129. source: "iana",
  6130. extensions: [
  6131. "edx"
  6132. ]
  6133. },
  6134. "application/vnd.novadigm.ext": {
  6135. source: "iana",
  6136. extensions: [
  6137. "ext"
  6138. ]
  6139. },
  6140. "application/vnd.ntt-local.content-share": {
  6141. source: "iana"
  6142. },
  6143. "application/vnd.ntt-local.file-transfer": {
  6144. source: "iana"
  6145. },
  6146. "application/vnd.ntt-local.ogw_remote-access": {
  6147. source: "iana"
  6148. },
  6149. "application/vnd.ntt-local.sip-ta_remote": {
  6150. source: "iana"
  6151. },
  6152. "application/vnd.ntt-local.sip-ta_tcp_stream": {
  6153. source: "iana"
  6154. },
  6155. "application/vnd.oasis.opendocument.chart": {
  6156. source: "iana",
  6157. extensions: [
  6158. "odc"
  6159. ]
  6160. },
  6161. "application/vnd.oasis.opendocument.chart-template": {
  6162. source: "iana",
  6163. extensions: [
  6164. "otc"
  6165. ]
  6166. },
  6167. "application/vnd.oasis.opendocument.database": {
  6168. source: "iana",
  6169. extensions: [
  6170. "odb"
  6171. ]
  6172. },
  6173. "application/vnd.oasis.opendocument.formula": {
  6174. source: "iana",
  6175. extensions: [
  6176. "odf"
  6177. ]
  6178. },
  6179. "application/vnd.oasis.opendocument.formula-template": {
  6180. source: "iana",
  6181. extensions: [
  6182. "odft"
  6183. ]
  6184. },
  6185. "application/vnd.oasis.opendocument.graphics": {
  6186. source: "iana",
  6187. compressible: false,
  6188. extensions: [
  6189. "odg"
  6190. ]
  6191. },
  6192. "application/vnd.oasis.opendocument.graphics-template": {
  6193. source: "iana",
  6194. extensions: [
  6195. "otg"
  6196. ]
  6197. },
  6198. "application/vnd.oasis.opendocument.image": {
  6199. source: "iana",
  6200. extensions: [
  6201. "odi"
  6202. ]
  6203. },
  6204. "application/vnd.oasis.opendocument.image-template": {
  6205. source: "iana",
  6206. extensions: [
  6207. "oti"
  6208. ]
  6209. },
  6210. "application/vnd.oasis.opendocument.presentation": {
  6211. source: "iana",
  6212. compressible: false,
  6213. extensions: [
  6214. "odp"
  6215. ]
  6216. },
  6217. "application/vnd.oasis.opendocument.presentation-template": {
  6218. source: "iana",
  6219. extensions: [
  6220. "otp"
  6221. ]
  6222. },
  6223. "application/vnd.oasis.opendocument.spreadsheet": {
  6224. source: "iana",
  6225. compressible: false,
  6226. extensions: [
  6227. "ods"
  6228. ]
  6229. },
  6230. "application/vnd.oasis.opendocument.spreadsheet-template": {
  6231. source: "iana",
  6232. extensions: [
  6233. "ots"
  6234. ]
  6235. },
  6236. "application/vnd.oasis.opendocument.text": {
  6237. source: "iana",
  6238. compressible: false,
  6239. extensions: [
  6240. "odt"
  6241. ]
  6242. },
  6243. "application/vnd.oasis.opendocument.text-master": {
  6244. source: "iana",
  6245. extensions: [
  6246. "odm"
  6247. ]
  6248. },
  6249. "application/vnd.oasis.opendocument.text-template": {
  6250. source: "iana",
  6251. extensions: [
  6252. "ott"
  6253. ]
  6254. },
  6255. "application/vnd.oasis.opendocument.text-web": {
  6256. source: "iana",
  6257. extensions: [
  6258. "oth"
  6259. ]
  6260. },
  6261. "application/vnd.obn": {
  6262. source: "iana"
  6263. },
  6264. "application/vnd.ocf+cbor": {
  6265. source: "iana"
  6266. },
  6267. "application/vnd.oci.image.manifest.v1+json": {
  6268. source: "iana",
  6269. compressible: true
  6270. },
  6271. "application/vnd.oftn.l10n+json": {
  6272. source: "iana",
  6273. compressible: true
  6274. },
  6275. "application/vnd.oipf.contentaccessdownload+xml": {
  6276. source: "iana",
  6277. compressible: true
  6278. },
  6279. "application/vnd.oipf.contentaccessstreaming+xml": {
  6280. source: "iana",
  6281. compressible: true
  6282. },
  6283. "application/vnd.oipf.cspg-hexbinary": {
  6284. source: "iana"
  6285. },
  6286. "application/vnd.oipf.dae.svg+xml": {
  6287. source: "iana",
  6288. compressible: true
  6289. },
  6290. "application/vnd.oipf.dae.xhtml+xml": {
  6291. source: "iana",
  6292. compressible: true
  6293. },
  6294. "application/vnd.oipf.mippvcontrolmessage+xml": {
  6295. source: "iana",
  6296. compressible: true
  6297. },
  6298. "application/vnd.oipf.pae.gem": {
  6299. source: "iana"
  6300. },
  6301. "application/vnd.oipf.spdiscovery+xml": {
  6302. source: "iana",
  6303. compressible: true
  6304. },
  6305. "application/vnd.oipf.spdlist+xml": {
  6306. source: "iana",
  6307. compressible: true
  6308. },
  6309. "application/vnd.oipf.ueprofile+xml": {
  6310. source: "iana",
  6311. compressible: true
  6312. },
  6313. "application/vnd.oipf.userprofile+xml": {
  6314. source: "iana",
  6315. compressible: true
  6316. },
  6317. "application/vnd.olpc-sugar": {
  6318. source: "iana",
  6319. extensions: [
  6320. "xo"
  6321. ]
  6322. },
  6323. "application/vnd.oma-scws-config": {
  6324. source: "iana"
  6325. },
  6326. "application/vnd.oma-scws-http-request": {
  6327. source: "iana"
  6328. },
  6329. "application/vnd.oma-scws-http-response": {
  6330. source: "iana"
  6331. },
  6332. "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
  6333. source: "iana",
  6334. compressible: true
  6335. },
  6336. "application/vnd.oma.bcast.drm-trigger+xml": {
  6337. source: "iana",
  6338. compressible: true
  6339. },
  6340. "application/vnd.oma.bcast.imd+xml": {
  6341. source: "iana",
  6342. compressible: true
  6343. },
  6344. "application/vnd.oma.bcast.ltkm": {
  6345. source: "iana"
  6346. },
  6347. "application/vnd.oma.bcast.notification+xml": {
  6348. source: "iana",
  6349. compressible: true
  6350. },
  6351. "application/vnd.oma.bcast.provisioningtrigger": {
  6352. source: "iana"
  6353. },
  6354. "application/vnd.oma.bcast.sgboot": {
  6355. source: "iana"
  6356. },
  6357. "application/vnd.oma.bcast.sgdd+xml": {
  6358. source: "iana",
  6359. compressible: true
  6360. },
  6361. "application/vnd.oma.bcast.sgdu": {
  6362. source: "iana"
  6363. },
  6364. "application/vnd.oma.bcast.simple-symbol-container": {
  6365. source: "iana"
  6366. },
  6367. "application/vnd.oma.bcast.smartcard-trigger+xml": {
  6368. source: "iana",
  6369. compressible: true
  6370. },
  6371. "application/vnd.oma.bcast.sprov+xml": {
  6372. source: "iana",
  6373. compressible: true
  6374. },
  6375. "application/vnd.oma.bcast.stkm": {
  6376. source: "iana"
  6377. },
  6378. "application/vnd.oma.cab-address-book+xml": {
  6379. source: "iana",
  6380. compressible: true
  6381. },
  6382. "application/vnd.oma.cab-feature-handler+xml": {
  6383. source: "iana",
  6384. compressible: true
  6385. },
  6386. "application/vnd.oma.cab-pcc+xml": {
  6387. source: "iana",
  6388. compressible: true
  6389. },
  6390. "application/vnd.oma.cab-subs-invite+xml": {
  6391. source: "iana",
  6392. compressible: true
  6393. },
  6394. "application/vnd.oma.cab-user-prefs+xml": {
  6395. source: "iana",
  6396. compressible: true
  6397. },
  6398. "application/vnd.oma.dcd": {
  6399. source: "iana"
  6400. },
  6401. "application/vnd.oma.dcdc": {
  6402. source: "iana"
  6403. },
  6404. "application/vnd.oma.dd2+xml": {
  6405. source: "iana",
  6406. compressible: true,
  6407. extensions: [
  6408. "dd2"
  6409. ]
  6410. },
  6411. "application/vnd.oma.drm.risd+xml": {
  6412. source: "iana",
  6413. compressible: true
  6414. },
  6415. "application/vnd.oma.group-usage-list+xml": {
  6416. source: "iana",
  6417. compressible: true
  6418. },
  6419. "application/vnd.oma.lwm2m+cbor": {
  6420. source: "iana"
  6421. },
  6422. "application/vnd.oma.lwm2m+json": {
  6423. source: "iana",
  6424. compressible: true
  6425. },
  6426. "application/vnd.oma.lwm2m+tlv": {
  6427. source: "iana"
  6428. },
  6429. "application/vnd.oma.pal+xml": {
  6430. source: "iana",
  6431. compressible: true
  6432. },
  6433. "application/vnd.oma.poc.detailed-progress-report+xml": {
  6434. source: "iana",
  6435. compressible: true
  6436. },
  6437. "application/vnd.oma.poc.final-report+xml": {
  6438. source: "iana",
  6439. compressible: true
  6440. },
  6441. "application/vnd.oma.poc.groups+xml": {
  6442. source: "iana",
  6443. compressible: true
  6444. },
  6445. "application/vnd.oma.poc.invocation-descriptor+xml": {
  6446. source: "iana",
  6447. compressible: true
  6448. },
  6449. "application/vnd.oma.poc.optimized-progress-report+xml": {
  6450. source: "iana",
  6451. compressible: true
  6452. },
  6453. "application/vnd.oma.push": {
  6454. source: "iana"
  6455. },
  6456. "application/vnd.oma.scidm.messages+xml": {
  6457. source: "iana",
  6458. compressible: true
  6459. },
  6460. "application/vnd.oma.xcap-directory+xml": {
  6461. source: "iana",
  6462. compressible: true
  6463. },
  6464. "application/vnd.omads-email+xml": {
  6465. source: "iana",
  6466. charset: "UTF-8",
  6467. compressible: true
  6468. },
  6469. "application/vnd.omads-file+xml": {
  6470. source: "iana",
  6471. charset: "UTF-8",
  6472. compressible: true
  6473. },
  6474. "application/vnd.omads-folder+xml": {
  6475. source: "iana",
  6476. charset: "UTF-8",
  6477. compressible: true
  6478. },
  6479. "application/vnd.omaloc-supl-init": {
  6480. source: "iana"
  6481. },
  6482. "application/vnd.onepager": {
  6483. source: "iana"
  6484. },
  6485. "application/vnd.onepagertamp": {
  6486. source: "iana"
  6487. },
  6488. "application/vnd.onepagertamx": {
  6489. source: "iana"
  6490. },
  6491. "application/vnd.onepagertat": {
  6492. source: "iana"
  6493. },
  6494. "application/vnd.onepagertatp": {
  6495. source: "iana"
  6496. },
  6497. "application/vnd.onepagertatx": {
  6498. source: "iana"
  6499. },
  6500. "application/vnd.openblox.game+xml": {
  6501. source: "iana",
  6502. compressible: true,
  6503. extensions: [
  6504. "obgx"
  6505. ]
  6506. },
  6507. "application/vnd.openblox.game-binary": {
  6508. source: "iana"
  6509. },
  6510. "application/vnd.openeye.oeb": {
  6511. source: "iana"
  6512. },
  6513. "application/vnd.openofficeorg.extension": {
  6514. source: "apache",
  6515. extensions: [
  6516. "oxt"
  6517. ]
  6518. },
  6519. "application/vnd.openstreetmap.data+xml": {
  6520. source: "iana",
  6521. compressible: true,
  6522. extensions: [
  6523. "osm"
  6524. ]
  6525. },
  6526. "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
  6527. source: "iana",
  6528. compressible: true
  6529. },
  6530. "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
  6531. source: "iana",
  6532. compressible: true
  6533. },
  6534. "application/vnd.openxmlformats-officedocument.drawing+xml": {
  6535. source: "iana",
  6536. compressible: true
  6537. },
  6538. "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
  6539. source: "iana",
  6540. compressible: true
  6541. },
  6542. "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
  6543. source: "iana",
  6544. compressible: true
  6545. },
  6546. "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
  6547. source: "iana",
  6548. compressible: true
  6549. },
  6550. "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
  6551. source: "iana",
  6552. compressible: true
  6553. },
  6554. "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
  6555. source: "iana",
  6556. compressible: true
  6557. },
  6558. "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
  6559. source: "iana",
  6560. compressible: true
  6561. },
  6562. "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
  6563. source: "iana",
  6564. compressible: true
  6565. },
  6566. "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
  6567. source: "iana",
  6568. compressible: true
  6569. },
  6570. "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
  6571. source: "iana",
  6572. compressible: true
  6573. },
  6574. "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
  6575. source: "iana",
  6576. compressible: true
  6577. },
  6578. "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
  6579. source: "iana",
  6580. compressible: true
  6581. },
  6582. "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
  6583. source: "iana",
  6584. compressible: true
  6585. },
  6586. "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
  6587. source: "iana",
  6588. compressible: false,
  6589. extensions: [
  6590. "pptx"
  6591. ]
  6592. },
  6593. "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
  6594. source: "iana",
  6595. compressible: true
  6596. },
  6597. "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
  6598. source: "iana",
  6599. compressible: true
  6600. },
  6601. "application/vnd.openxmlformats-officedocument.presentationml.slide": {
  6602. source: "iana",
  6603. extensions: [
  6604. "sldx"
  6605. ]
  6606. },
  6607. "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
  6608. source: "iana",
  6609. compressible: true
  6610. },
  6611. "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
  6612. source: "iana",
  6613. compressible: true
  6614. },
  6615. "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
  6616. source: "iana",
  6617. compressible: true
  6618. },
  6619. "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
  6620. source: "iana",
  6621. extensions: [
  6622. "ppsx"
  6623. ]
  6624. },
  6625. "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
  6626. source: "iana",
  6627. compressible: true
  6628. },
  6629. "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
  6630. source: "iana",
  6631. compressible: true
  6632. },
  6633. "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
  6634. source: "iana",
  6635. compressible: true
  6636. },
  6637. "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
  6638. source: "iana",
  6639. compressible: true
  6640. },
  6641. "application/vnd.openxmlformats-officedocument.presentationml.template": {
  6642. source: "iana",
  6643. extensions: [
  6644. "potx"
  6645. ]
  6646. },
  6647. "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
  6648. source: "iana",
  6649. compressible: true
  6650. },
  6651. "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
  6652. source: "iana",
  6653. compressible: true
  6654. },
  6655. "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
  6656. source: "iana",
  6657. compressible: true
  6658. },
  6659. "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
  6660. source: "iana",
  6661. compressible: true
  6662. },
  6663. "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
  6664. source: "iana",
  6665. compressible: true
  6666. },
  6667. "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
  6668. source: "iana",
  6669. compressible: true
  6670. },
  6671. "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
  6672. source: "iana",
  6673. compressible: true
  6674. },
  6675. "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
  6676. source: "iana",
  6677. compressible: true
  6678. },
  6679. "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
  6680. source: "iana",
  6681. compressible: true
  6682. },
  6683. "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
  6684. source: "iana",
  6685. compressible: true
  6686. },
  6687. "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
  6688. source: "iana",
  6689. compressible: true
  6690. },
  6691. "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
  6692. source: "iana",
  6693. compressible: true
  6694. },
  6695. "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
  6696. source: "iana",
  6697. compressible: true
  6698. },
  6699. "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
  6700. source: "iana",
  6701. compressible: true
  6702. },
  6703. "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
  6704. source: "iana",
  6705. compressible: true
  6706. },
  6707. "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
  6708. source: "iana",
  6709. compressible: false,
  6710. extensions: [
  6711. "xlsx"
  6712. ]
  6713. },
  6714. "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
  6715. source: "iana",
  6716. compressible: true
  6717. },
  6718. "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
  6719. source: "iana",
  6720. compressible: true
  6721. },
  6722. "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
  6723. source: "iana",
  6724. compressible: true
  6725. },
  6726. "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
  6727. source: "iana",
  6728. compressible: true
  6729. },
  6730. "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
  6731. source: "iana",
  6732. compressible: true
  6733. },
  6734. "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
  6735. source: "iana",
  6736. extensions: [
  6737. "xltx"
  6738. ]
  6739. },
  6740. "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
  6741. source: "iana",
  6742. compressible: true
  6743. },
  6744. "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
  6745. source: "iana",
  6746. compressible: true
  6747. },
  6748. "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
  6749. source: "iana",
  6750. compressible: true
  6751. },
  6752. "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
  6753. source: "iana",
  6754. compressible: true
  6755. },
  6756. "application/vnd.openxmlformats-officedocument.theme+xml": {
  6757. source: "iana",
  6758. compressible: true
  6759. },
  6760. "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
  6761. source: "iana",
  6762. compressible: true
  6763. },
  6764. "application/vnd.openxmlformats-officedocument.vmldrawing": {
  6765. source: "iana"
  6766. },
  6767. "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
  6768. source: "iana",
  6769. compressible: true
  6770. },
  6771. "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
  6772. source: "iana",
  6773. compressible: false,
  6774. extensions: [
  6775. "docx"
  6776. ]
  6777. },
  6778. "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
  6779. source: "iana",
  6780. compressible: true
  6781. },
  6782. "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
  6783. source: "iana",
  6784. compressible: true
  6785. },
  6786. "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
  6787. source: "iana",
  6788. compressible: true
  6789. },
  6790. "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
  6791. source: "iana",
  6792. compressible: true
  6793. },
  6794. "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
  6795. source: "iana",
  6796. compressible: true
  6797. },
  6798. "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
  6799. source: "iana",
  6800. compressible: true
  6801. },
  6802. "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
  6803. source: "iana",
  6804. compressible: true
  6805. },
  6806. "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
  6807. source: "iana",
  6808. compressible: true
  6809. },
  6810. "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
  6811. source: "iana",
  6812. compressible: true
  6813. },
  6814. "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
  6815. source: "iana",
  6816. extensions: [
  6817. "dotx"
  6818. ]
  6819. },
  6820. "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
  6821. source: "iana",
  6822. compressible: true
  6823. },
  6824. "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
  6825. source: "iana",
  6826. compressible: true
  6827. },
  6828. "application/vnd.openxmlformats-package.core-properties+xml": {
  6829. source: "iana",
  6830. compressible: true
  6831. },
  6832. "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
  6833. source: "iana",
  6834. compressible: true
  6835. },
  6836. "application/vnd.openxmlformats-package.relationships+xml": {
  6837. source: "iana",
  6838. compressible: true
  6839. },
  6840. "application/vnd.oracle.resource+json": {
  6841. source: "iana",
  6842. compressible: true
  6843. },
  6844. "application/vnd.orange.indata": {
  6845. source: "iana"
  6846. },
  6847. "application/vnd.osa.netdeploy": {
  6848. source: "iana"
  6849. },
  6850. "application/vnd.osgeo.mapguide.package": {
  6851. source: "iana",
  6852. extensions: [
  6853. "mgp"
  6854. ]
  6855. },
  6856. "application/vnd.osgi.bundle": {
  6857. source: "iana"
  6858. },
  6859. "application/vnd.osgi.dp": {
  6860. source: "iana",
  6861. extensions: [
  6862. "dp"
  6863. ]
  6864. },
  6865. "application/vnd.osgi.subsystem": {
  6866. source: "iana",
  6867. extensions: [
  6868. "esa"
  6869. ]
  6870. },
  6871. "application/vnd.otps.ct-kip+xml": {
  6872. source: "iana",
  6873. compressible: true
  6874. },
  6875. "application/vnd.oxli.countgraph": {
  6876. source: "iana"
  6877. },
  6878. "application/vnd.pagerduty+json": {
  6879. source: "iana",
  6880. compressible: true
  6881. },
  6882. "application/vnd.palm": {
  6883. source: "iana",
  6884. extensions: [
  6885. "pdb",
  6886. "pqa",
  6887. "oprc"
  6888. ]
  6889. },
  6890. "application/vnd.panoply": {
  6891. source: "iana"
  6892. },
  6893. "application/vnd.paos.xml": {
  6894. source: "iana"
  6895. },
  6896. "application/vnd.patentdive": {
  6897. source: "iana"
  6898. },
  6899. "application/vnd.patientecommsdoc": {
  6900. source: "iana"
  6901. },
  6902. "application/vnd.pawaafile": {
  6903. source: "iana",
  6904. extensions: [
  6905. "paw"
  6906. ]
  6907. },
  6908. "application/vnd.pcos": {
  6909. source: "iana"
  6910. },
  6911. "application/vnd.pg.format": {
  6912. source: "iana",
  6913. extensions: [
  6914. "str"
  6915. ]
  6916. },
  6917. "application/vnd.pg.osasli": {
  6918. source: "iana",
  6919. extensions: [
  6920. "ei6"
  6921. ]
  6922. },
  6923. "application/vnd.piaccess.application-licence": {
  6924. source: "iana"
  6925. },
  6926. "application/vnd.picsel": {
  6927. source: "iana",
  6928. extensions: [
  6929. "efif"
  6930. ]
  6931. },
  6932. "application/vnd.pmi.widget": {
  6933. source: "iana",
  6934. extensions: [
  6935. "wg"
  6936. ]
  6937. },
  6938. "application/vnd.poc.group-advertisement+xml": {
  6939. source: "iana",
  6940. compressible: true
  6941. },
  6942. "application/vnd.pocketlearn": {
  6943. source: "iana",
  6944. extensions: [
  6945. "plf"
  6946. ]
  6947. },
  6948. "application/vnd.powerbuilder6": {
  6949. source: "iana",
  6950. extensions: [
  6951. "pbd"
  6952. ]
  6953. },
  6954. "application/vnd.powerbuilder6-s": {
  6955. source: "iana"
  6956. },
  6957. "application/vnd.powerbuilder7": {
  6958. source: "iana"
  6959. },
  6960. "application/vnd.powerbuilder7-s": {
  6961. source: "iana"
  6962. },
  6963. "application/vnd.powerbuilder75": {
  6964. source: "iana"
  6965. },
  6966. "application/vnd.powerbuilder75-s": {
  6967. source: "iana"
  6968. },
  6969. "application/vnd.preminet": {
  6970. source: "iana"
  6971. },
  6972. "application/vnd.previewsystems.box": {
  6973. source: "iana",
  6974. extensions: [
  6975. "box"
  6976. ]
  6977. },
  6978. "application/vnd.proteus.magazine": {
  6979. source: "iana",
  6980. extensions: [
  6981. "mgz"
  6982. ]
  6983. },
  6984. "application/vnd.psfs": {
  6985. source: "iana"
  6986. },
  6987. "application/vnd.publishare-delta-tree": {
  6988. source: "iana",
  6989. extensions: [
  6990. "qps"
  6991. ]
  6992. },
  6993. "application/vnd.pvi.ptid1": {
  6994. source: "iana",
  6995. extensions: [
  6996. "ptid"
  6997. ]
  6998. },
  6999. "application/vnd.pwg-multiplexed": {
  7000. source: "iana"
  7001. },
  7002. "application/vnd.pwg-xhtml-print+xml": {
  7003. source: "iana",
  7004. compressible: true
  7005. },
  7006. "application/vnd.qualcomm.brew-app-res": {
  7007. source: "iana"
  7008. },
  7009. "application/vnd.quarantainenet": {
  7010. source: "iana"
  7011. },
  7012. "application/vnd.quark.quarkxpress": {
  7013. source: "iana",
  7014. extensions: [
  7015. "qxd",
  7016. "qxt",
  7017. "qwd",
  7018. "qwt",
  7019. "qxl",
  7020. "qxb"
  7021. ]
  7022. },
  7023. "application/vnd.quobject-quoxdocument": {
  7024. source: "iana"
  7025. },
  7026. "application/vnd.radisys.moml+xml": {
  7027. source: "iana",
  7028. compressible: true
  7029. },
  7030. "application/vnd.radisys.msml+xml": {
  7031. source: "iana",
  7032. compressible: true
  7033. },
  7034. "application/vnd.radisys.msml-audit+xml": {
  7035. source: "iana",
  7036. compressible: true
  7037. },
  7038. "application/vnd.radisys.msml-audit-conf+xml": {
  7039. source: "iana",
  7040. compressible: true
  7041. },
  7042. "application/vnd.radisys.msml-audit-conn+xml": {
  7043. source: "iana",
  7044. compressible: true
  7045. },
  7046. "application/vnd.radisys.msml-audit-dialog+xml": {
  7047. source: "iana",
  7048. compressible: true
  7049. },
  7050. "application/vnd.radisys.msml-audit-stream+xml": {
  7051. source: "iana",
  7052. compressible: true
  7053. },
  7054. "application/vnd.radisys.msml-conf+xml": {
  7055. source: "iana",
  7056. compressible: true
  7057. },
  7058. "application/vnd.radisys.msml-dialog+xml": {
  7059. source: "iana",
  7060. compressible: true
  7061. },
  7062. "application/vnd.radisys.msml-dialog-base+xml": {
  7063. source: "iana",
  7064. compressible: true
  7065. },
  7066. "application/vnd.radisys.msml-dialog-fax-detect+xml": {
  7067. source: "iana",
  7068. compressible: true
  7069. },
  7070. "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
  7071. source: "iana",
  7072. compressible: true
  7073. },
  7074. "application/vnd.radisys.msml-dialog-group+xml": {
  7075. source: "iana",
  7076. compressible: true
  7077. },
  7078. "application/vnd.radisys.msml-dialog-speech+xml": {
  7079. source: "iana",
  7080. compressible: true
  7081. },
  7082. "application/vnd.radisys.msml-dialog-transform+xml": {
  7083. source: "iana",
  7084. compressible: true
  7085. },
  7086. "application/vnd.rainstor.data": {
  7087. source: "iana"
  7088. },
  7089. "application/vnd.rapid": {
  7090. source: "iana"
  7091. },
  7092. "application/vnd.rar": {
  7093. source: "iana",
  7094. extensions: [
  7095. "rar"
  7096. ]
  7097. },
  7098. "application/vnd.realvnc.bed": {
  7099. source: "iana",
  7100. extensions: [
  7101. "bed"
  7102. ]
  7103. },
  7104. "application/vnd.recordare.musicxml": {
  7105. source: "iana",
  7106. extensions: [
  7107. "mxl"
  7108. ]
  7109. },
  7110. "application/vnd.recordare.musicxml+xml": {
  7111. source: "iana",
  7112. compressible: true,
  7113. extensions: [
  7114. "musicxml"
  7115. ]
  7116. },
  7117. "application/vnd.renlearn.rlprint": {
  7118. source: "iana"
  7119. },
  7120. "application/vnd.restful+json": {
  7121. source: "iana",
  7122. compressible: true
  7123. },
  7124. "application/vnd.rig.cryptonote": {
  7125. source: "iana",
  7126. extensions: [
  7127. "cryptonote"
  7128. ]
  7129. },
  7130. "application/vnd.rim.cod": {
  7131. source: "apache",
  7132. extensions: [
  7133. "cod"
  7134. ]
  7135. },
  7136. "application/vnd.rn-realmedia": {
  7137. source: "apache",
  7138. extensions: [
  7139. "rm"
  7140. ]
  7141. },
  7142. "application/vnd.rn-realmedia-vbr": {
  7143. source: "apache",
  7144. extensions: [
  7145. "rmvb"
  7146. ]
  7147. },
  7148. "application/vnd.route66.link66+xml": {
  7149. source: "iana",
  7150. compressible: true,
  7151. extensions: [
  7152. "link66"
  7153. ]
  7154. },
  7155. "application/vnd.rs-274x": {
  7156. source: "iana"
  7157. },
  7158. "application/vnd.ruckus.download": {
  7159. source: "iana"
  7160. },
  7161. "application/vnd.s3sms": {
  7162. source: "iana"
  7163. },
  7164. "application/vnd.sailingtracker.track": {
  7165. source: "iana",
  7166. extensions: [
  7167. "st"
  7168. ]
  7169. },
  7170. "application/vnd.sar": {
  7171. source: "iana"
  7172. },
  7173. "application/vnd.sbm.cid": {
  7174. source: "iana"
  7175. },
  7176. "application/vnd.sbm.mid2": {
  7177. source: "iana"
  7178. },
  7179. "application/vnd.scribus": {
  7180. source: "iana"
  7181. },
  7182. "application/vnd.sealed.3df": {
  7183. source: "iana"
  7184. },
  7185. "application/vnd.sealed.csf": {
  7186. source: "iana"
  7187. },
  7188. "application/vnd.sealed.doc": {
  7189. source: "iana"
  7190. },
  7191. "application/vnd.sealed.eml": {
  7192. source: "iana"
  7193. },
  7194. "application/vnd.sealed.mht": {
  7195. source: "iana"
  7196. },
  7197. "application/vnd.sealed.net": {
  7198. source: "iana"
  7199. },
  7200. "application/vnd.sealed.ppt": {
  7201. source: "iana"
  7202. },
  7203. "application/vnd.sealed.tiff": {
  7204. source: "iana"
  7205. },
  7206. "application/vnd.sealed.xls": {
  7207. source: "iana"
  7208. },
  7209. "application/vnd.sealedmedia.softseal.html": {
  7210. source: "iana"
  7211. },
  7212. "application/vnd.sealedmedia.softseal.pdf": {
  7213. source: "iana"
  7214. },
  7215. "application/vnd.seemail": {
  7216. source: "iana",
  7217. extensions: [
  7218. "see"
  7219. ]
  7220. },
  7221. "application/vnd.seis+json": {
  7222. source: "iana",
  7223. compressible: true
  7224. },
  7225. "application/vnd.sema": {
  7226. source: "iana",
  7227. extensions: [
  7228. "sema"
  7229. ]
  7230. },
  7231. "application/vnd.semd": {
  7232. source: "iana",
  7233. extensions: [
  7234. "semd"
  7235. ]
  7236. },
  7237. "application/vnd.semf": {
  7238. source: "iana",
  7239. extensions: [
  7240. "semf"
  7241. ]
  7242. },
  7243. "application/vnd.shade-save-file": {
  7244. source: "iana"
  7245. },
  7246. "application/vnd.shana.informed.formdata": {
  7247. source: "iana",
  7248. extensions: [
  7249. "ifm"
  7250. ]
  7251. },
  7252. "application/vnd.shana.informed.formtemplate": {
  7253. source: "iana",
  7254. extensions: [
  7255. "itp"
  7256. ]
  7257. },
  7258. "application/vnd.shana.informed.interchange": {
  7259. source: "iana",
  7260. extensions: [
  7261. "iif"
  7262. ]
  7263. },
  7264. "application/vnd.shana.informed.package": {
  7265. source: "iana",
  7266. extensions: [
  7267. "ipk"
  7268. ]
  7269. },
  7270. "application/vnd.shootproof+json": {
  7271. source: "iana",
  7272. compressible: true
  7273. },
  7274. "application/vnd.shopkick+json": {
  7275. source: "iana",
  7276. compressible: true
  7277. },
  7278. "application/vnd.shp": {
  7279. source: "iana"
  7280. },
  7281. "application/vnd.shx": {
  7282. source: "iana"
  7283. },
  7284. "application/vnd.sigrok.session": {
  7285. source: "iana"
  7286. },
  7287. "application/vnd.simtech-mindmapper": {
  7288. source: "iana",
  7289. extensions: [
  7290. "twd",
  7291. "twds"
  7292. ]
  7293. },
  7294. "application/vnd.siren+json": {
  7295. source: "iana",
  7296. compressible: true
  7297. },
  7298. "application/vnd.smaf": {
  7299. source: "iana",
  7300. extensions: [
  7301. "mmf"
  7302. ]
  7303. },
  7304. "application/vnd.smart.notebook": {
  7305. source: "iana"
  7306. },
  7307. "application/vnd.smart.teacher": {
  7308. source: "iana",
  7309. extensions: [
  7310. "teacher"
  7311. ]
  7312. },
  7313. "application/vnd.snesdev-page-table": {
  7314. source: "iana"
  7315. },
  7316. "application/vnd.software602.filler.form+xml": {
  7317. source: "iana",
  7318. compressible: true,
  7319. extensions: [
  7320. "fo"
  7321. ]
  7322. },
  7323. "application/vnd.software602.filler.form-xml-zip": {
  7324. source: "iana"
  7325. },
  7326. "application/vnd.solent.sdkm+xml": {
  7327. source: "iana",
  7328. compressible: true,
  7329. extensions: [
  7330. "sdkm",
  7331. "sdkd"
  7332. ]
  7333. },
  7334. "application/vnd.spotfire.dxp": {
  7335. source: "iana",
  7336. extensions: [
  7337. "dxp"
  7338. ]
  7339. },
  7340. "application/vnd.spotfire.sfs": {
  7341. source: "iana",
  7342. extensions: [
  7343. "sfs"
  7344. ]
  7345. },
  7346. "application/vnd.sqlite3": {
  7347. source: "iana"
  7348. },
  7349. "application/vnd.sss-cod": {
  7350. source: "iana"
  7351. },
  7352. "application/vnd.sss-dtf": {
  7353. source: "iana"
  7354. },
  7355. "application/vnd.sss-ntf": {
  7356. source: "iana"
  7357. },
  7358. "application/vnd.stardivision.calc": {
  7359. source: "apache",
  7360. extensions: [
  7361. "sdc"
  7362. ]
  7363. },
  7364. "application/vnd.stardivision.draw": {
  7365. source: "apache",
  7366. extensions: [
  7367. "sda"
  7368. ]
  7369. },
  7370. "application/vnd.stardivision.impress": {
  7371. source: "apache",
  7372. extensions: [
  7373. "sdd"
  7374. ]
  7375. },
  7376. "application/vnd.stardivision.math": {
  7377. source: "apache",
  7378. extensions: [
  7379. "smf"
  7380. ]
  7381. },
  7382. "application/vnd.stardivision.writer": {
  7383. source: "apache",
  7384. extensions: [
  7385. "sdw",
  7386. "vor"
  7387. ]
  7388. },
  7389. "application/vnd.stardivision.writer-global": {
  7390. source: "apache",
  7391. extensions: [
  7392. "sgl"
  7393. ]
  7394. },
  7395. "application/vnd.stepmania.package": {
  7396. source: "iana",
  7397. extensions: [
  7398. "smzip"
  7399. ]
  7400. },
  7401. "application/vnd.stepmania.stepchart": {
  7402. source: "iana",
  7403. extensions: [
  7404. "sm"
  7405. ]
  7406. },
  7407. "application/vnd.street-stream": {
  7408. source: "iana"
  7409. },
  7410. "application/vnd.sun.wadl+xml": {
  7411. source: "iana",
  7412. compressible: true,
  7413. extensions: [
  7414. "wadl"
  7415. ]
  7416. },
  7417. "application/vnd.sun.xml.calc": {
  7418. source: "apache",
  7419. extensions: [
  7420. "sxc"
  7421. ]
  7422. },
  7423. "application/vnd.sun.xml.calc.template": {
  7424. source: "apache",
  7425. extensions: [
  7426. "stc"
  7427. ]
  7428. },
  7429. "application/vnd.sun.xml.draw": {
  7430. source: "apache",
  7431. extensions: [
  7432. "sxd"
  7433. ]
  7434. },
  7435. "application/vnd.sun.xml.draw.template": {
  7436. source: "apache",
  7437. extensions: [
  7438. "std"
  7439. ]
  7440. },
  7441. "application/vnd.sun.xml.impress": {
  7442. source: "apache",
  7443. extensions: [
  7444. "sxi"
  7445. ]
  7446. },
  7447. "application/vnd.sun.xml.impress.template": {
  7448. source: "apache",
  7449. extensions: [
  7450. "sti"
  7451. ]
  7452. },
  7453. "application/vnd.sun.xml.math": {
  7454. source: "apache",
  7455. extensions: [
  7456. "sxm"
  7457. ]
  7458. },
  7459. "application/vnd.sun.xml.writer": {
  7460. source: "apache",
  7461. extensions: [
  7462. "sxw"
  7463. ]
  7464. },
  7465. "application/vnd.sun.xml.writer.global": {
  7466. source: "apache",
  7467. extensions: [
  7468. "sxg"
  7469. ]
  7470. },
  7471. "application/vnd.sun.xml.writer.template": {
  7472. source: "apache",
  7473. extensions: [
  7474. "stw"
  7475. ]
  7476. },
  7477. "application/vnd.sus-calendar": {
  7478. source: "iana",
  7479. extensions: [
  7480. "sus",
  7481. "susp"
  7482. ]
  7483. },
  7484. "application/vnd.svd": {
  7485. source: "iana",
  7486. extensions: [
  7487. "svd"
  7488. ]
  7489. },
  7490. "application/vnd.swiftview-ics": {
  7491. source: "iana"
  7492. },
  7493. "application/vnd.sycle+xml": {
  7494. source: "iana",
  7495. compressible: true
  7496. },
  7497. "application/vnd.symbian.install": {
  7498. source: "apache",
  7499. extensions: [
  7500. "sis",
  7501. "sisx"
  7502. ]
  7503. },
  7504. "application/vnd.syncml+xml": {
  7505. source: "iana",
  7506. charset: "UTF-8",
  7507. compressible: true,
  7508. extensions: [
  7509. "xsm"
  7510. ]
  7511. },
  7512. "application/vnd.syncml.dm+wbxml": {
  7513. source: "iana",
  7514. charset: "UTF-8",
  7515. extensions: [
  7516. "bdm"
  7517. ]
  7518. },
  7519. "application/vnd.syncml.dm+xml": {
  7520. source: "iana",
  7521. charset: "UTF-8",
  7522. compressible: true,
  7523. extensions: [
  7524. "xdm"
  7525. ]
  7526. },
  7527. "application/vnd.syncml.dm.notification": {
  7528. source: "iana"
  7529. },
  7530. "application/vnd.syncml.dmddf+wbxml": {
  7531. source: "iana"
  7532. },
  7533. "application/vnd.syncml.dmddf+xml": {
  7534. source: "iana",
  7535. charset: "UTF-8",
  7536. compressible: true,
  7537. extensions: [
  7538. "ddf"
  7539. ]
  7540. },
  7541. "application/vnd.syncml.dmtnds+wbxml": {
  7542. source: "iana"
  7543. },
  7544. "application/vnd.syncml.dmtnds+xml": {
  7545. source: "iana",
  7546. charset: "UTF-8",
  7547. compressible: true
  7548. },
  7549. "application/vnd.syncml.ds.notification": {
  7550. source: "iana"
  7551. },
  7552. "application/vnd.tableschema+json": {
  7553. source: "iana",
  7554. compressible: true
  7555. },
  7556. "application/vnd.tao.intent-module-archive": {
  7557. source: "iana",
  7558. extensions: [
  7559. "tao"
  7560. ]
  7561. },
  7562. "application/vnd.tcpdump.pcap": {
  7563. source: "iana",
  7564. extensions: [
  7565. "pcap",
  7566. "cap",
  7567. "dmp"
  7568. ]
  7569. },
  7570. "application/vnd.think-cell.ppttc+json": {
  7571. source: "iana",
  7572. compressible: true
  7573. },
  7574. "application/vnd.tmd.mediaflex.api+xml": {
  7575. source: "iana",
  7576. compressible: true
  7577. },
  7578. "application/vnd.tml": {
  7579. source: "iana"
  7580. },
  7581. "application/vnd.tmobile-livetv": {
  7582. source: "iana",
  7583. extensions: [
  7584. "tmo"
  7585. ]
  7586. },
  7587. "application/vnd.tri.onesource": {
  7588. source: "iana"
  7589. },
  7590. "application/vnd.trid.tpt": {
  7591. source: "iana",
  7592. extensions: [
  7593. "tpt"
  7594. ]
  7595. },
  7596. "application/vnd.triscape.mxs": {
  7597. source: "iana",
  7598. extensions: [
  7599. "mxs"
  7600. ]
  7601. },
  7602. "application/vnd.trueapp": {
  7603. source: "iana",
  7604. extensions: [
  7605. "tra"
  7606. ]
  7607. },
  7608. "application/vnd.truedoc": {
  7609. source: "iana"
  7610. },
  7611. "application/vnd.ubisoft.webplayer": {
  7612. source: "iana"
  7613. },
  7614. "application/vnd.ufdl": {
  7615. source: "iana",
  7616. extensions: [
  7617. "ufd",
  7618. "ufdl"
  7619. ]
  7620. },
  7621. "application/vnd.uiq.theme": {
  7622. source: "iana",
  7623. extensions: [
  7624. "utz"
  7625. ]
  7626. },
  7627. "application/vnd.umajin": {
  7628. source: "iana",
  7629. extensions: [
  7630. "umj"
  7631. ]
  7632. },
  7633. "application/vnd.unity": {
  7634. source: "iana",
  7635. extensions: [
  7636. "unityweb"
  7637. ]
  7638. },
  7639. "application/vnd.uoml+xml": {
  7640. source: "iana",
  7641. compressible: true,
  7642. extensions: [
  7643. "uoml"
  7644. ]
  7645. },
  7646. "application/vnd.uplanet.alert": {
  7647. source: "iana"
  7648. },
  7649. "application/vnd.uplanet.alert-wbxml": {
  7650. source: "iana"
  7651. },
  7652. "application/vnd.uplanet.bearer-choice": {
  7653. source: "iana"
  7654. },
  7655. "application/vnd.uplanet.bearer-choice-wbxml": {
  7656. source: "iana"
  7657. },
  7658. "application/vnd.uplanet.cacheop": {
  7659. source: "iana"
  7660. },
  7661. "application/vnd.uplanet.cacheop-wbxml": {
  7662. source: "iana"
  7663. },
  7664. "application/vnd.uplanet.channel": {
  7665. source: "iana"
  7666. },
  7667. "application/vnd.uplanet.channel-wbxml": {
  7668. source: "iana"
  7669. },
  7670. "application/vnd.uplanet.list": {
  7671. source: "iana"
  7672. },
  7673. "application/vnd.uplanet.list-wbxml": {
  7674. source: "iana"
  7675. },
  7676. "application/vnd.uplanet.listcmd": {
  7677. source: "iana"
  7678. },
  7679. "application/vnd.uplanet.listcmd-wbxml": {
  7680. source: "iana"
  7681. },
  7682. "application/vnd.uplanet.signal": {
  7683. source: "iana"
  7684. },
  7685. "application/vnd.uri-map": {
  7686. source: "iana"
  7687. },
  7688. "application/vnd.valve.source.material": {
  7689. source: "iana"
  7690. },
  7691. "application/vnd.vcx": {
  7692. source: "iana",
  7693. extensions: [
  7694. "vcx"
  7695. ]
  7696. },
  7697. "application/vnd.vd-study": {
  7698. source: "iana"
  7699. },
  7700. "application/vnd.vectorworks": {
  7701. source: "iana"
  7702. },
  7703. "application/vnd.vel+json": {
  7704. source: "iana",
  7705. compressible: true
  7706. },
  7707. "application/vnd.verimatrix.vcas": {
  7708. source: "iana"
  7709. },
  7710. "application/vnd.veryant.thin": {
  7711. source: "iana"
  7712. },
  7713. "application/vnd.ves.encrypted": {
  7714. source: "iana"
  7715. },
  7716. "application/vnd.vidsoft.vidconference": {
  7717. source: "iana"
  7718. },
  7719. "application/vnd.visio": {
  7720. source: "iana",
  7721. extensions: [
  7722. "vsd",
  7723. "vst",
  7724. "vss",
  7725. "vsw"
  7726. ]
  7727. },
  7728. "application/vnd.visionary": {
  7729. source: "iana",
  7730. extensions: [
  7731. "vis"
  7732. ]
  7733. },
  7734. "application/vnd.vividence.scriptfile": {
  7735. source: "iana"
  7736. },
  7737. "application/vnd.vsf": {
  7738. source: "iana",
  7739. extensions: [
  7740. "vsf"
  7741. ]
  7742. },
  7743. "application/vnd.wap.sic": {
  7744. source: "iana"
  7745. },
  7746. "application/vnd.wap.slc": {
  7747. source: "iana"
  7748. },
  7749. "application/vnd.wap.wbxml": {
  7750. source: "iana",
  7751. charset: "UTF-8",
  7752. extensions: [
  7753. "wbxml"
  7754. ]
  7755. },
  7756. "application/vnd.wap.wmlc": {
  7757. source: "iana",
  7758. extensions: [
  7759. "wmlc"
  7760. ]
  7761. },
  7762. "application/vnd.wap.wmlscriptc": {
  7763. source: "iana",
  7764. extensions: [
  7765. "wmlsc"
  7766. ]
  7767. },
  7768. "application/vnd.webturbo": {
  7769. source: "iana",
  7770. extensions: [
  7771. "wtb"
  7772. ]
  7773. },
  7774. "application/vnd.wfa.dpp": {
  7775. source: "iana"
  7776. },
  7777. "application/vnd.wfa.p2p": {
  7778. source: "iana"
  7779. },
  7780. "application/vnd.wfa.wsc": {
  7781. source: "iana"
  7782. },
  7783. "application/vnd.windows.devicepairing": {
  7784. source: "iana"
  7785. },
  7786. "application/vnd.wmc": {
  7787. source: "iana"
  7788. },
  7789. "application/vnd.wmf.bootstrap": {
  7790. source: "iana"
  7791. },
  7792. "application/vnd.wolfram.mathematica": {
  7793. source: "iana"
  7794. },
  7795. "application/vnd.wolfram.mathematica.package": {
  7796. source: "iana"
  7797. },
  7798. "application/vnd.wolfram.player": {
  7799. source: "iana",
  7800. extensions: [
  7801. "nbp"
  7802. ]
  7803. },
  7804. "application/vnd.wordperfect": {
  7805. source: "iana",
  7806. extensions: [
  7807. "wpd"
  7808. ]
  7809. },
  7810. "application/vnd.wqd": {
  7811. source: "iana",
  7812. extensions: [
  7813. "wqd"
  7814. ]
  7815. },
  7816. "application/vnd.wrq-hp3000-labelled": {
  7817. source: "iana"
  7818. },
  7819. "application/vnd.wt.stf": {
  7820. source: "iana",
  7821. extensions: [
  7822. "stf"
  7823. ]
  7824. },
  7825. "application/vnd.wv.csp+wbxml": {
  7826. source: "iana"
  7827. },
  7828. "application/vnd.wv.csp+xml": {
  7829. source: "iana",
  7830. compressible: true
  7831. },
  7832. "application/vnd.wv.ssp+xml": {
  7833. source: "iana",
  7834. compressible: true
  7835. },
  7836. "application/vnd.xacml+json": {
  7837. source: "iana",
  7838. compressible: true
  7839. },
  7840. "application/vnd.xara": {
  7841. source: "iana",
  7842. extensions: [
  7843. "xar"
  7844. ]
  7845. },
  7846. "application/vnd.xfdl": {
  7847. source: "iana",
  7848. extensions: [
  7849. "xfdl"
  7850. ]
  7851. },
  7852. "application/vnd.xfdl.webform": {
  7853. source: "iana"
  7854. },
  7855. "application/vnd.xmi+xml": {
  7856. source: "iana",
  7857. compressible: true
  7858. },
  7859. "application/vnd.xmpie.cpkg": {
  7860. source: "iana"
  7861. },
  7862. "application/vnd.xmpie.dpkg": {
  7863. source: "iana"
  7864. },
  7865. "application/vnd.xmpie.plan": {
  7866. source: "iana"
  7867. },
  7868. "application/vnd.xmpie.ppkg": {
  7869. source: "iana"
  7870. },
  7871. "application/vnd.xmpie.xlim": {
  7872. source: "iana"
  7873. },
  7874. "application/vnd.yamaha.hv-dic": {
  7875. source: "iana",
  7876. extensions: [
  7877. "hvd"
  7878. ]
  7879. },
  7880. "application/vnd.yamaha.hv-script": {
  7881. source: "iana",
  7882. extensions: [
  7883. "hvs"
  7884. ]
  7885. },
  7886. "application/vnd.yamaha.hv-voice": {
  7887. source: "iana",
  7888. extensions: [
  7889. "hvp"
  7890. ]
  7891. },
  7892. "application/vnd.yamaha.openscoreformat": {
  7893. source: "iana",
  7894. extensions: [
  7895. "osf"
  7896. ]
  7897. },
  7898. "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
  7899. source: "iana",
  7900. compressible: true,
  7901. extensions: [
  7902. "osfpvg"
  7903. ]
  7904. },
  7905. "application/vnd.yamaha.remote-setup": {
  7906. source: "iana"
  7907. },
  7908. "application/vnd.yamaha.smaf-audio": {
  7909. source: "iana",
  7910. extensions: [
  7911. "saf"
  7912. ]
  7913. },
  7914. "application/vnd.yamaha.smaf-phrase": {
  7915. source: "iana",
  7916. extensions: [
  7917. "spf"
  7918. ]
  7919. },
  7920. "application/vnd.yamaha.through-ngn": {
  7921. source: "iana"
  7922. },
  7923. "application/vnd.yamaha.tunnel-udpencap": {
  7924. source: "iana"
  7925. },
  7926. "application/vnd.yaoweme": {
  7927. source: "iana"
  7928. },
  7929. "application/vnd.yellowriver-custom-menu": {
  7930. source: "iana",
  7931. extensions: [
  7932. "cmp"
  7933. ]
  7934. },
  7935. "application/vnd.youtube.yt": {
  7936. source: "iana"
  7937. },
  7938. "application/vnd.zul": {
  7939. source: "iana",
  7940. extensions: [
  7941. "zir",
  7942. "zirz"
  7943. ]
  7944. },
  7945. "application/vnd.zzazz.deck+xml": {
  7946. source: "iana",
  7947. compressible: true,
  7948. extensions: [
  7949. "zaz"
  7950. ]
  7951. },
  7952. "application/voicexml+xml": {
  7953. source: "iana",
  7954. compressible: true,
  7955. extensions: [
  7956. "vxml"
  7957. ]
  7958. },
  7959. "application/voucher-cms+json": {
  7960. source: "iana",
  7961. compressible: true
  7962. },
  7963. "application/vq-rtcpxr": {
  7964. source: "iana"
  7965. },
  7966. "application/wasm": {
  7967. compressible: true,
  7968. extensions: [
  7969. "wasm"
  7970. ]
  7971. },
  7972. "application/watcherinfo+xml": {
  7973. source: "iana",
  7974. compressible: true
  7975. },
  7976. "application/webpush-options+json": {
  7977. source: "iana",
  7978. compressible: true
  7979. },
  7980. "application/whoispp-query": {
  7981. source: "iana"
  7982. },
  7983. "application/whoispp-response": {
  7984. source: "iana"
  7985. },
  7986. "application/widget": {
  7987. source: "iana",
  7988. extensions: [
  7989. "wgt"
  7990. ]
  7991. },
  7992. "application/winhlp": {
  7993. source: "apache",
  7994. extensions: [
  7995. "hlp"
  7996. ]
  7997. },
  7998. "application/wita": {
  7999. source: "iana"
  8000. },
  8001. "application/wordperfect5.1": {
  8002. source: "iana"
  8003. },
  8004. "application/wsdl+xml": {
  8005. source: "iana",
  8006. compressible: true,
  8007. extensions: [
  8008. "wsdl"
  8009. ]
  8010. },
  8011. "application/wspolicy+xml": {
  8012. source: "iana",
  8013. compressible: true,
  8014. extensions: [
  8015. "wspolicy"
  8016. ]
  8017. },
  8018. "application/x-7z-compressed": {
  8019. source: "apache",
  8020. compressible: false,
  8021. extensions: [
  8022. "7z"
  8023. ]
  8024. },
  8025. "application/x-abiword": {
  8026. source: "apache",
  8027. extensions: [
  8028. "abw"
  8029. ]
  8030. },
  8031. "application/x-ace-compressed": {
  8032. source: "apache",
  8033. extensions: [
  8034. "ace"
  8035. ]
  8036. },
  8037. "application/x-amf": {
  8038. source: "apache"
  8039. },
  8040. "application/x-apple-diskimage": {
  8041. source: "apache",
  8042. extensions: [
  8043. "dmg"
  8044. ]
  8045. },
  8046. "application/x-arj": {
  8047. compressible: false,
  8048. extensions: [
  8049. "arj"
  8050. ]
  8051. },
  8052. "application/x-authorware-bin": {
  8053. source: "apache",
  8054. extensions: [
  8055. "aab",
  8056. "x32",
  8057. "u32",
  8058. "vox"
  8059. ]
  8060. },
  8061. "application/x-authorware-map": {
  8062. source: "apache",
  8063. extensions: [
  8064. "aam"
  8065. ]
  8066. },
  8067. "application/x-authorware-seg": {
  8068. source: "apache",
  8069. extensions: [
  8070. "aas"
  8071. ]
  8072. },
  8073. "application/x-bcpio": {
  8074. source: "apache",
  8075. extensions: [
  8076. "bcpio"
  8077. ]
  8078. },
  8079. "application/x-bdoc": {
  8080. compressible: false,
  8081. extensions: [
  8082. "bdoc"
  8083. ]
  8084. },
  8085. "application/x-bittorrent": {
  8086. source: "apache",
  8087. extensions: [
  8088. "torrent"
  8089. ]
  8090. },
  8091. "application/x-blorb": {
  8092. source: "apache",
  8093. extensions: [
  8094. "blb",
  8095. "blorb"
  8096. ]
  8097. },
  8098. "application/x-bzip": {
  8099. source: "apache",
  8100. compressible: false,
  8101. extensions: [
  8102. "bz"
  8103. ]
  8104. },
  8105. "application/x-bzip2": {
  8106. source: "apache",
  8107. compressible: false,
  8108. extensions: [
  8109. "bz2",
  8110. "boz"
  8111. ]
  8112. },
  8113. "application/x-cbr": {
  8114. source: "apache",
  8115. extensions: [
  8116. "cbr",
  8117. "cba",
  8118. "cbt",
  8119. "cbz",
  8120. "cb7"
  8121. ]
  8122. },
  8123. "application/x-cdlink": {
  8124. source: "apache",
  8125. extensions: [
  8126. "vcd"
  8127. ]
  8128. },
  8129. "application/x-cfs-compressed": {
  8130. source: "apache",
  8131. extensions: [
  8132. "cfs"
  8133. ]
  8134. },
  8135. "application/x-chat": {
  8136. source: "apache",
  8137. extensions: [
  8138. "chat"
  8139. ]
  8140. },
  8141. "application/x-chess-pgn": {
  8142. source: "apache",
  8143. extensions: [
  8144. "pgn"
  8145. ]
  8146. },
  8147. "application/x-chrome-extension": {
  8148. extensions: [
  8149. "crx"
  8150. ]
  8151. },
  8152. "application/x-cocoa": {
  8153. source: "nginx",
  8154. extensions: [
  8155. "cco"
  8156. ]
  8157. },
  8158. "application/x-compress": {
  8159. source: "apache"
  8160. },
  8161. "application/x-conference": {
  8162. source: "apache",
  8163. extensions: [
  8164. "nsc"
  8165. ]
  8166. },
  8167. "application/x-cpio": {
  8168. source: "apache",
  8169. extensions: [
  8170. "cpio"
  8171. ]
  8172. },
  8173. "application/x-csh": {
  8174. source: "apache",
  8175. extensions: [
  8176. "csh"
  8177. ]
  8178. },
  8179. "application/x-deb": {
  8180. compressible: false
  8181. },
  8182. "application/x-debian-package": {
  8183. source: "apache",
  8184. extensions: [
  8185. "deb",
  8186. "udeb"
  8187. ]
  8188. },
  8189. "application/x-dgc-compressed": {
  8190. source: "apache",
  8191. extensions: [
  8192. "dgc"
  8193. ]
  8194. },
  8195. "application/x-director": {
  8196. source: "apache",
  8197. extensions: [
  8198. "dir",
  8199. "dcr",
  8200. "dxr",
  8201. "cst",
  8202. "cct",
  8203. "cxt",
  8204. "w3d",
  8205. "fgd",
  8206. "swa"
  8207. ]
  8208. },
  8209. "application/x-doom": {
  8210. source: "apache",
  8211. extensions: [
  8212. "wad"
  8213. ]
  8214. },
  8215. "application/x-dtbncx+xml": {
  8216. source: "apache",
  8217. compressible: true,
  8218. extensions: [
  8219. "ncx"
  8220. ]
  8221. },
  8222. "application/x-dtbook+xml": {
  8223. source: "apache",
  8224. compressible: true,
  8225. extensions: [
  8226. "dtb"
  8227. ]
  8228. },
  8229. "application/x-dtbresource+xml": {
  8230. source: "apache",
  8231. compressible: true,
  8232. extensions: [
  8233. "res"
  8234. ]
  8235. },
  8236. "application/x-dvi": {
  8237. source: "apache",
  8238. compressible: false,
  8239. extensions: [
  8240. "dvi"
  8241. ]
  8242. },
  8243. "application/x-envoy": {
  8244. source: "apache",
  8245. extensions: [
  8246. "evy"
  8247. ]
  8248. },
  8249. "application/x-eva": {
  8250. source: "apache",
  8251. extensions: [
  8252. "eva"
  8253. ]
  8254. },
  8255. "application/x-font-bdf": {
  8256. source: "apache",
  8257. extensions: [
  8258. "bdf"
  8259. ]
  8260. },
  8261. "application/x-font-dos": {
  8262. source: "apache"
  8263. },
  8264. "application/x-font-framemaker": {
  8265. source: "apache"
  8266. },
  8267. "application/x-font-ghostscript": {
  8268. source: "apache",
  8269. extensions: [
  8270. "gsf"
  8271. ]
  8272. },
  8273. "application/x-font-libgrx": {
  8274. source: "apache"
  8275. },
  8276. "application/x-font-linux-psf": {
  8277. source: "apache",
  8278. extensions: [
  8279. "psf"
  8280. ]
  8281. },
  8282. "application/x-font-pcf": {
  8283. source: "apache",
  8284. extensions: [
  8285. "pcf"
  8286. ]
  8287. },
  8288. "application/x-font-snf": {
  8289. source: "apache",
  8290. extensions: [
  8291. "snf"
  8292. ]
  8293. },
  8294. "application/x-font-speedo": {
  8295. source: "apache"
  8296. },
  8297. "application/x-font-sunos-news": {
  8298. source: "apache"
  8299. },
  8300. "application/x-font-type1": {
  8301. source: "apache",
  8302. extensions: [
  8303. "pfa",
  8304. "pfb",
  8305. "pfm",
  8306. "afm"
  8307. ]
  8308. },
  8309. "application/x-font-vfont": {
  8310. source: "apache"
  8311. },
  8312. "application/x-freearc": {
  8313. source: "apache",
  8314. extensions: [
  8315. "arc"
  8316. ]
  8317. },
  8318. "application/x-futuresplash": {
  8319. source: "apache",
  8320. extensions: [
  8321. "spl"
  8322. ]
  8323. },
  8324. "application/x-gca-compressed": {
  8325. source: "apache",
  8326. extensions: [
  8327. "gca"
  8328. ]
  8329. },
  8330. "application/x-glulx": {
  8331. source: "apache",
  8332. extensions: [
  8333. "ulx"
  8334. ]
  8335. },
  8336. "application/x-gnumeric": {
  8337. source: "apache",
  8338. extensions: [
  8339. "gnumeric"
  8340. ]
  8341. },
  8342. "application/x-gramps-xml": {
  8343. source: "apache",
  8344. extensions: [
  8345. "gramps"
  8346. ]
  8347. },
  8348. "application/x-gtar": {
  8349. source: "apache",
  8350. extensions: [
  8351. "gtar"
  8352. ]
  8353. },
  8354. "application/x-gzip": {
  8355. source: "apache"
  8356. },
  8357. "application/x-hdf": {
  8358. source: "apache",
  8359. extensions: [
  8360. "hdf"
  8361. ]
  8362. },
  8363. "application/x-httpd-php": {
  8364. compressible: true,
  8365. extensions: [
  8366. "php"
  8367. ]
  8368. },
  8369. "application/x-install-instructions": {
  8370. source: "apache",
  8371. extensions: [
  8372. "install"
  8373. ]
  8374. },
  8375. "application/x-iso9660-image": {
  8376. source: "apache",
  8377. extensions: [
  8378. "iso"
  8379. ]
  8380. },
  8381. "application/x-java-archive-diff": {
  8382. source: "nginx",
  8383. extensions: [
  8384. "jardiff"
  8385. ]
  8386. },
  8387. "application/x-java-jnlp-file": {
  8388. source: "apache",
  8389. compressible: false,
  8390. extensions: [
  8391. "jnlp"
  8392. ]
  8393. },
  8394. "application/x-javascript": {
  8395. compressible: true
  8396. },
  8397. "application/x-keepass2": {
  8398. extensions: [
  8399. "kdbx"
  8400. ]
  8401. },
  8402. "application/x-latex": {
  8403. source: "apache",
  8404. compressible: false,
  8405. extensions: [
  8406. "latex"
  8407. ]
  8408. },
  8409. "application/x-lua-bytecode": {
  8410. extensions: [
  8411. "luac"
  8412. ]
  8413. },
  8414. "application/x-lzh-compressed": {
  8415. source: "apache",
  8416. extensions: [
  8417. "lzh",
  8418. "lha"
  8419. ]
  8420. },
  8421. "application/x-makeself": {
  8422. source: "nginx",
  8423. extensions: [
  8424. "run"
  8425. ]
  8426. },
  8427. "application/x-mie": {
  8428. source: "apache",
  8429. extensions: [
  8430. "mie"
  8431. ]
  8432. },
  8433. "application/x-mobipocket-ebook": {
  8434. source: "apache",
  8435. extensions: [
  8436. "prc",
  8437. "mobi"
  8438. ]
  8439. },
  8440. "application/x-mpegurl": {
  8441. compressible: false
  8442. },
  8443. "application/x-ms-application": {
  8444. source: "apache",
  8445. extensions: [
  8446. "application"
  8447. ]
  8448. },
  8449. "application/x-ms-shortcut": {
  8450. source: "apache",
  8451. extensions: [
  8452. "lnk"
  8453. ]
  8454. },
  8455. "application/x-ms-wmd": {
  8456. source: "apache",
  8457. extensions: [
  8458. "wmd"
  8459. ]
  8460. },
  8461. "application/x-ms-wmz": {
  8462. source: "apache",
  8463. extensions: [
  8464. "wmz"
  8465. ]
  8466. },
  8467. "application/x-ms-xbap": {
  8468. source: "apache",
  8469. extensions: [
  8470. "xbap"
  8471. ]
  8472. },
  8473. "application/x-msaccess": {
  8474. source: "apache",
  8475. extensions: [
  8476. "mdb"
  8477. ]
  8478. },
  8479. "application/x-msbinder": {
  8480. source: "apache",
  8481. extensions: [
  8482. "obd"
  8483. ]
  8484. },
  8485. "application/x-mscardfile": {
  8486. source: "apache",
  8487. extensions: [
  8488. "crd"
  8489. ]
  8490. },
  8491. "application/x-msclip": {
  8492. source: "apache",
  8493. extensions: [
  8494. "clp"
  8495. ]
  8496. },
  8497. "application/x-msdos-program": {
  8498. extensions: [
  8499. "exe"
  8500. ]
  8501. },
  8502. "application/x-msdownload": {
  8503. source: "apache",
  8504. extensions: [
  8505. "exe",
  8506. "dll",
  8507. "com",
  8508. "bat",
  8509. "msi"
  8510. ]
  8511. },
  8512. "application/x-msmediaview": {
  8513. source: "apache",
  8514. extensions: [
  8515. "mvb",
  8516. "m13",
  8517. "m14"
  8518. ]
  8519. },
  8520. "application/x-msmetafile": {
  8521. source: "apache",
  8522. extensions: [
  8523. "wmf",
  8524. "wmz",
  8525. "emf",
  8526. "emz"
  8527. ]
  8528. },
  8529. "application/x-msmoney": {
  8530. source: "apache",
  8531. extensions: [
  8532. "mny"
  8533. ]
  8534. },
  8535. "application/x-mspublisher": {
  8536. source: "apache",
  8537. extensions: [
  8538. "pub"
  8539. ]
  8540. },
  8541. "application/x-msschedule": {
  8542. source: "apache",
  8543. extensions: [
  8544. "scd"
  8545. ]
  8546. },
  8547. "application/x-msterminal": {
  8548. source: "apache",
  8549. extensions: [
  8550. "trm"
  8551. ]
  8552. },
  8553. "application/x-mswrite": {
  8554. source: "apache",
  8555. extensions: [
  8556. "wri"
  8557. ]
  8558. },
  8559. "application/x-netcdf": {
  8560. source: "apache",
  8561. extensions: [
  8562. "nc",
  8563. "cdf"
  8564. ]
  8565. },
  8566. "application/x-ns-proxy-autoconfig": {
  8567. compressible: true,
  8568. extensions: [
  8569. "pac"
  8570. ]
  8571. },
  8572. "application/x-nzb": {
  8573. source: "apache",
  8574. extensions: [
  8575. "nzb"
  8576. ]
  8577. },
  8578. "application/x-perl": {
  8579. source: "nginx",
  8580. extensions: [
  8581. "pl",
  8582. "pm"
  8583. ]
  8584. },
  8585. "application/x-pilot": {
  8586. source: "nginx",
  8587. extensions: [
  8588. "prc",
  8589. "pdb"
  8590. ]
  8591. },
  8592. "application/x-pkcs12": {
  8593. source: "apache",
  8594. compressible: false,
  8595. extensions: [
  8596. "p12",
  8597. "pfx"
  8598. ]
  8599. },
  8600. "application/x-pkcs7-certificates": {
  8601. source: "apache",
  8602. extensions: [
  8603. "p7b",
  8604. "spc"
  8605. ]
  8606. },
  8607. "application/x-pkcs7-certreqresp": {
  8608. source: "apache",
  8609. extensions: [
  8610. "p7r"
  8611. ]
  8612. },
  8613. "application/x-pki-message": {
  8614. source: "iana"
  8615. },
  8616. "application/x-rar-compressed": {
  8617. source: "apache",
  8618. compressible: false,
  8619. extensions: [
  8620. "rar"
  8621. ]
  8622. },
  8623. "application/x-redhat-package-manager": {
  8624. source: "nginx",
  8625. extensions: [
  8626. "rpm"
  8627. ]
  8628. },
  8629. "application/x-research-info-systems": {
  8630. source: "apache",
  8631. extensions: [
  8632. "ris"
  8633. ]
  8634. },
  8635. "application/x-sea": {
  8636. source: "nginx",
  8637. extensions: [
  8638. "sea"
  8639. ]
  8640. },
  8641. "application/x-sh": {
  8642. source: "apache",
  8643. compressible: true,
  8644. extensions: [
  8645. "sh"
  8646. ]
  8647. },
  8648. "application/x-shar": {
  8649. source: "apache",
  8650. extensions: [
  8651. "shar"
  8652. ]
  8653. },
  8654. "application/x-shockwave-flash": {
  8655. source: "apache",
  8656. compressible: false,
  8657. extensions: [
  8658. "swf"
  8659. ]
  8660. },
  8661. "application/x-silverlight-app": {
  8662. source: "apache",
  8663. extensions: [
  8664. "xap"
  8665. ]
  8666. },
  8667. "application/x-sql": {
  8668. source: "apache",
  8669. extensions: [
  8670. "sql"
  8671. ]
  8672. },
  8673. "application/x-stuffit": {
  8674. source: "apache",
  8675. compressible: false,
  8676. extensions: [
  8677. "sit"
  8678. ]
  8679. },
  8680. "application/x-stuffitx": {
  8681. source: "apache",
  8682. extensions: [
  8683. "sitx"
  8684. ]
  8685. },
  8686. "application/x-subrip": {
  8687. source: "apache",
  8688. extensions: [
  8689. "srt"
  8690. ]
  8691. },
  8692. "application/x-sv4cpio": {
  8693. source: "apache",
  8694. extensions: [
  8695. "sv4cpio"
  8696. ]
  8697. },
  8698. "application/x-sv4crc": {
  8699. source: "apache",
  8700. extensions: [
  8701. "sv4crc"
  8702. ]
  8703. },
  8704. "application/x-t3vm-image": {
  8705. source: "apache",
  8706. extensions: [
  8707. "t3"
  8708. ]
  8709. },
  8710. "application/x-tads": {
  8711. source: "apache",
  8712. extensions: [
  8713. "gam"
  8714. ]
  8715. },
  8716. "application/x-tar": {
  8717. source: "apache",
  8718. compressible: true,
  8719. extensions: [
  8720. "tar"
  8721. ]
  8722. },
  8723. "application/x-tcl": {
  8724. source: "apache",
  8725. extensions: [
  8726. "tcl",
  8727. "tk"
  8728. ]
  8729. },
  8730. "application/x-tex": {
  8731. source: "apache",
  8732. extensions: [
  8733. "tex"
  8734. ]
  8735. },
  8736. "application/x-tex-tfm": {
  8737. source: "apache",
  8738. extensions: [
  8739. "tfm"
  8740. ]
  8741. },
  8742. "application/x-texinfo": {
  8743. source: "apache",
  8744. extensions: [
  8745. "texinfo",
  8746. "texi"
  8747. ]
  8748. },
  8749. "application/x-tgif": {
  8750. source: "apache",
  8751. extensions: [
  8752. "obj"
  8753. ]
  8754. },
  8755. "application/x-ustar": {
  8756. source: "apache",
  8757. extensions: [
  8758. "ustar"
  8759. ]
  8760. },
  8761. "application/x-virtualbox-hdd": {
  8762. compressible: true,
  8763. extensions: [
  8764. "hdd"
  8765. ]
  8766. },
  8767. "application/x-virtualbox-ova": {
  8768. compressible: true,
  8769. extensions: [
  8770. "ova"
  8771. ]
  8772. },
  8773. "application/x-virtualbox-ovf": {
  8774. compressible: true,
  8775. extensions: [
  8776. "ovf"
  8777. ]
  8778. },
  8779. "application/x-virtualbox-vbox": {
  8780. compressible: true,
  8781. extensions: [
  8782. "vbox"
  8783. ]
  8784. },
  8785. "application/x-virtualbox-vbox-extpack": {
  8786. compressible: false,
  8787. extensions: [
  8788. "vbox-extpack"
  8789. ]
  8790. },
  8791. "application/x-virtualbox-vdi": {
  8792. compressible: true,
  8793. extensions: [
  8794. "vdi"
  8795. ]
  8796. },
  8797. "application/x-virtualbox-vhd": {
  8798. compressible: true,
  8799. extensions: [
  8800. "vhd"
  8801. ]
  8802. },
  8803. "application/x-virtualbox-vmdk": {
  8804. compressible: true,
  8805. extensions: [
  8806. "vmdk"
  8807. ]
  8808. },
  8809. "application/x-wais-source": {
  8810. source: "apache",
  8811. extensions: [
  8812. "src"
  8813. ]
  8814. },
  8815. "application/x-web-app-manifest+json": {
  8816. compressible: true,
  8817. extensions: [
  8818. "webapp"
  8819. ]
  8820. },
  8821. "application/x-www-form-urlencoded": {
  8822. source: "iana",
  8823. compressible: true
  8824. },
  8825. "application/x-x509-ca-cert": {
  8826. source: "iana",
  8827. extensions: [
  8828. "der",
  8829. "crt",
  8830. "pem"
  8831. ]
  8832. },
  8833. "application/x-x509-ca-ra-cert": {
  8834. source: "iana"
  8835. },
  8836. "application/x-x509-next-ca-cert": {
  8837. source: "iana"
  8838. },
  8839. "application/x-xfig": {
  8840. source: "apache",
  8841. extensions: [
  8842. "fig"
  8843. ]
  8844. },
  8845. "application/x-xliff+xml": {
  8846. source: "apache",
  8847. compressible: true,
  8848. extensions: [
  8849. "xlf"
  8850. ]
  8851. },
  8852. "application/x-xpinstall": {
  8853. source: "apache",
  8854. compressible: false,
  8855. extensions: [
  8856. "xpi"
  8857. ]
  8858. },
  8859. "application/x-xz": {
  8860. source: "apache",
  8861. extensions: [
  8862. "xz"
  8863. ]
  8864. },
  8865. "application/x-zmachine": {
  8866. source: "apache",
  8867. extensions: [
  8868. "z1",
  8869. "z2",
  8870. "z3",
  8871. "z4",
  8872. "z5",
  8873. "z6",
  8874. "z7",
  8875. "z8"
  8876. ]
  8877. },
  8878. "application/x400-bp": {
  8879. source: "iana"
  8880. },
  8881. "application/xacml+xml": {
  8882. source: "iana",
  8883. compressible: true
  8884. },
  8885. "application/xaml+xml": {
  8886. source: "apache",
  8887. compressible: true,
  8888. extensions: [
  8889. "xaml"
  8890. ]
  8891. },
  8892. "application/xcap-att+xml": {
  8893. source: "iana",
  8894. compressible: true,
  8895. extensions: [
  8896. "xav"
  8897. ]
  8898. },
  8899. "application/xcap-caps+xml": {
  8900. source: "iana",
  8901. compressible: true,
  8902. extensions: [
  8903. "xca"
  8904. ]
  8905. },
  8906. "application/xcap-diff+xml": {
  8907. source: "iana",
  8908. compressible: true,
  8909. extensions: [
  8910. "xdf"
  8911. ]
  8912. },
  8913. "application/xcap-el+xml": {
  8914. source: "iana",
  8915. compressible: true,
  8916. extensions: [
  8917. "xel"
  8918. ]
  8919. },
  8920. "application/xcap-error+xml": {
  8921. source: "iana",
  8922. compressible: true,
  8923. extensions: [
  8924. "xer"
  8925. ]
  8926. },
  8927. "application/xcap-ns+xml": {
  8928. source: "iana",
  8929. compressible: true,
  8930. extensions: [
  8931. "xns"
  8932. ]
  8933. },
  8934. "application/xcon-conference-info+xml": {
  8935. source: "iana",
  8936. compressible: true
  8937. },
  8938. "application/xcon-conference-info-diff+xml": {
  8939. source: "iana",
  8940. compressible: true
  8941. },
  8942. "application/xenc+xml": {
  8943. source: "iana",
  8944. compressible: true,
  8945. extensions: [
  8946. "xenc"
  8947. ]
  8948. },
  8949. "application/xhtml+xml": {
  8950. source: "iana",
  8951. compressible: true,
  8952. extensions: [
  8953. "xhtml",
  8954. "xht"
  8955. ]
  8956. },
  8957. "application/xhtml-voice+xml": {
  8958. source: "apache",
  8959. compressible: true
  8960. },
  8961. "application/xliff+xml": {
  8962. source: "iana",
  8963. compressible: true,
  8964. extensions: [
  8965. "xlf"
  8966. ]
  8967. },
  8968. "application/xml": {
  8969. source: "iana",
  8970. compressible: true,
  8971. extensions: [
  8972. "xml",
  8973. "xsl",
  8974. "xsd",
  8975. "rng"
  8976. ]
  8977. },
  8978. "application/xml-dtd": {
  8979. source: "iana",
  8980. compressible: true,
  8981. extensions: [
  8982. "dtd"
  8983. ]
  8984. },
  8985. "application/xml-external-parsed-entity": {
  8986. source: "iana"
  8987. },
  8988. "application/xml-patch+xml": {
  8989. source: "iana",
  8990. compressible: true
  8991. },
  8992. "application/xmpp+xml": {
  8993. source: "iana",
  8994. compressible: true
  8995. },
  8996. "application/xop+xml": {
  8997. source: "iana",
  8998. compressible: true,
  8999. extensions: [
  9000. "xop"
  9001. ]
  9002. },
  9003. "application/xproc+xml": {
  9004. source: "apache",
  9005. compressible: true,
  9006. extensions: [
  9007. "xpl"
  9008. ]
  9009. },
  9010. "application/xslt+xml": {
  9011. source: "iana",
  9012. compressible: true,
  9013. extensions: [
  9014. "xsl",
  9015. "xslt"
  9016. ]
  9017. },
  9018. "application/xspf+xml": {
  9019. source: "apache",
  9020. compressible: true,
  9021. extensions: [
  9022. "xspf"
  9023. ]
  9024. },
  9025. "application/xv+xml": {
  9026. source: "iana",
  9027. compressible: true,
  9028. extensions: [
  9029. "mxml",
  9030. "xhvml",
  9031. "xvml",
  9032. "xvm"
  9033. ]
  9034. },
  9035. "application/yang": {
  9036. source: "iana",
  9037. extensions: [
  9038. "yang"
  9039. ]
  9040. },
  9041. "application/yang-data+json": {
  9042. source: "iana",
  9043. compressible: true
  9044. },
  9045. "application/yang-data+xml": {
  9046. source: "iana",
  9047. compressible: true
  9048. },
  9049. "application/yang-patch+json": {
  9050. source: "iana",
  9051. compressible: true
  9052. },
  9053. "application/yang-patch+xml": {
  9054. source: "iana",
  9055. compressible: true
  9056. },
  9057. "application/yin+xml": {
  9058. source: "iana",
  9059. compressible: true,
  9060. extensions: [
  9061. "yin"
  9062. ]
  9063. },
  9064. "application/zip": {
  9065. source: "iana",
  9066. compressible: false,
  9067. extensions: [
  9068. "zip"
  9069. ]
  9070. },
  9071. "application/zlib": {
  9072. source: "iana"
  9073. },
  9074. "application/zstd": {
  9075. source: "iana"
  9076. },
  9077. "audio/1d-interleaved-parityfec": {
  9078. source: "iana"
  9079. },
  9080. "audio/32kadpcm": {
  9081. source: "iana"
  9082. },
  9083. "audio/3gpp": {
  9084. source: "iana",
  9085. compressible: false,
  9086. extensions: [
  9087. "3gpp"
  9088. ]
  9089. },
  9090. "audio/3gpp2": {
  9091. source: "iana"
  9092. },
  9093. "audio/aac": {
  9094. source: "iana"
  9095. },
  9096. "audio/ac3": {
  9097. source: "iana"
  9098. },
  9099. "audio/adpcm": {
  9100. source: "apache",
  9101. extensions: [
  9102. "adp"
  9103. ]
  9104. },
  9105. "audio/amr": {
  9106. source: "iana",
  9107. extensions: [
  9108. "amr"
  9109. ]
  9110. },
  9111. "audio/amr-wb": {
  9112. source: "iana"
  9113. },
  9114. "audio/amr-wb+": {
  9115. source: "iana"
  9116. },
  9117. "audio/aptx": {
  9118. source: "iana"
  9119. },
  9120. "audio/asc": {
  9121. source: "iana"
  9122. },
  9123. "audio/atrac-advanced-lossless": {
  9124. source: "iana"
  9125. },
  9126. "audio/atrac-x": {
  9127. source: "iana"
  9128. },
  9129. "audio/atrac3": {
  9130. source: "iana"
  9131. },
  9132. "audio/basic": {
  9133. source: "iana",
  9134. compressible: false,
  9135. extensions: [
  9136. "au",
  9137. "snd"
  9138. ]
  9139. },
  9140. "audio/bv16": {
  9141. source: "iana"
  9142. },
  9143. "audio/bv32": {
  9144. source: "iana"
  9145. },
  9146. "audio/clearmode": {
  9147. source: "iana"
  9148. },
  9149. "audio/cn": {
  9150. source: "iana"
  9151. },
  9152. "audio/dat12": {
  9153. source: "iana"
  9154. },
  9155. "audio/dls": {
  9156. source: "iana"
  9157. },
  9158. "audio/dsr-es201108": {
  9159. source: "iana"
  9160. },
  9161. "audio/dsr-es202050": {
  9162. source: "iana"
  9163. },
  9164. "audio/dsr-es202211": {
  9165. source: "iana"
  9166. },
  9167. "audio/dsr-es202212": {
  9168. source: "iana"
  9169. },
  9170. "audio/dv": {
  9171. source: "iana"
  9172. },
  9173. "audio/dvi4": {
  9174. source: "iana"
  9175. },
  9176. "audio/eac3": {
  9177. source: "iana"
  9178. },
  9179. "audio/encaprtp": {
  9180. source: "iana"
  9181. },
  9182. "audio/evrc": {
  9183. source: "iana"
  9184. },
  9185. "audio/evrc-qcp": {
  9186. source: "iana"
  9187. },
  9188. "audio/evrc0": {
  9189. source: "iana"
  9190. },
  9191. "audio/evrc1": {
  9192. source: "iana"
  9193. },
  9194. "audio/evrcb": {
  9195. source: "iana"
  9196. },
  9197. "audio/evrcb0": {
  9198. source: "iana"
  9199. },
  9200. "audio/evrcb1": {
  9201. source: "iana"
  9202. },
  9203. "audio/evrcnw": {
  9204. source: "iana"
  9205. },
  9206. "audio/evrcnw0": {
  9207. source: "iana"
  9208. },
  9209. "audio/evrcnw1": {
  9210. source: "iana"
  9211. },
  9212. "audio/evrcwb": {
  9213. source: "iana"
  9214. },
  9215. "audio/evrcwb0": {
  9216. source: "iana"
  9217. },
  9218. "audio/evrcwb1": {
  9219. source: "iana"
  9220. },
  9221. "audio/evs": {
  9222. source: "iana"
  9223. },
  9224. "audio/flexfec": {
  9225. source: "iana"
  9226. },
  9227. "audio/fwdred": {
  9228. source: "iana"
  9229. },
  9230. "audio/g711-0": {
  9231. source: "iana"
  9232. },
  9233. "audio/g719": {
  9234. source: "iana"
  9235. },
  9236. "audio/g722": {
  9237. source: "iana"
  9238. },
  9239. "audio/g7221": {
  9240. source: "iana"
  9241. },
  9242. "audio/g723": {
  9243. source: "iana"
  9244. },
  9245. "audio/g726-16": {
  9246. source: "iana"
  9247. },
  9248. "audio/g726-24": {
  9249. source: "iana"
  9250. },
  9251. "audio/g726-32": {
  9252. source: "iana"
  9253. },
  9254. "audio/g726-40": {
  9255. source: "iana"
  9256. },
  9257. "audio/g728": {
  9258. source: "iana"
  9259. },
  9260. "audio/g729": {
  9261. source: "iana"
  9262. },
  9263. "audio/g7291": {
  9264. source: "iana"
  9265. },
  9266. "audio/g729d": {
  9267. source: "iana"
  9268. },
  9269. "audio/g729e": {
  9270. source: "iana"
  9271. },
  9272. "audio/gsm": {
  9273. source: "iana"
  9274. },
  9275. "audio/gsm-efr": {
  9276. source: "iana"
  9277. },
  9278. "audio/gsm-hr-08": {
  9279. source: "iana"
  9280. },
  9281. "audio/ilbc": {
  9282. source: "iana"
  9283. },
  9284. "audio/ip-mr_v2.5": {
  9285. source: "iana"
  9286. },
  9287. "audio/isac": {
  9288. source: "apache"
  9289. },
  9290. "audio/l16": {
  9291. source: "iana"
  9292. },
  9293. "audio/l20": {
  9294. source: "iana"
  9295. },
  9296. "audio/l24": {
  9297. source: "iana",
  9298. compressible: false
  9299. },
  9300. "audio/l8": {
  9301. source: "iana"
  9302. },
  9303. "audio/lpc": {
  9304. source: "iana"
  9305. },
  9306. "audio/melp": {
  9307. source: "iana"
  9308. },
  9309. "audio/melp1200": {
  9310. source: "iana"
  9311. },
  9312. "audio/melp2400": {
  9313. source: "iana"
  9314. },
  9315. "audio/melp600": {
  9316. source: "iana"
  9317. },
  9318. "audio/mhas": {
  9319. source: "iana"
  9320. },
  9321. "audio/midi": {
  9322. source: "apache",
  9323. extensions: [
  9324. "mid",
  9325. "midi",
  9326. "kar",
  9327. "rmi"
  9328. ]
  9329. },
  9330. "audio/mobile-xmf": {
  9331. source: "iana",
  9332. extensions: [
  9333. "mxmf"
  9334. ]
  9335. },
  9336. "audio/mp3": {
  9337. compressible: false,
  9338. extensions: [
  9339. "mp3"
  9340. ]
  9341. },
  9342. "audio/mp4": {
  9343. source: "iana",
  9344. compressible: false,
  9345. extensions: [
  9346. "m4a",
  9347. "mp4a"
  9348. ]
  9349. },
  9350. "audio/mp4a-latm": {
  9351. source: "iana"
  9352. },
  9353. "audio/mpa": {
  9354. source: "iana"
  9355. },
  9356. "audio/mpa-robust": {
  9357. source: "iana"
  9358. },
  9359. "audio/mpeg": {
  9360. source: "iana",
  9361. compressible: false,
  9362. extensions: [
  9363. "mpga",
  9364. "mp2",
  9365. "mp2a",
  9366. "mp3",
  9367. "m2a",
  9368. "m3a"
  9369. ]
  9370. },
  9371. "audio/mpeg4-generic": {
  9372. source: "iana"
  9373. },
  9374. "audio/musepack": {
  9375. source: "apache"
  9376. },
  9377. "audio/ogg": {
  9378. source: "iana",
  9379. compressible: false,
  9380. extensions: [
  9381. "oga",
  9382. "ogg",
  9383. "spx",
  9384. "opus"
  9385. ]
  9386. },
  9387. "audio/opus": {
  9388. source: "iana"
  9389. },
  9390. "audio/parityfec": {
  9391. source: "iana"
  9392. },
  9393. "audio/pcma": {
  9394. source: "iana"
  9395. },
  9396. "audio/pcma-wb": {
  9397. source: "iana"
  9398. },
  9399. "audio/pcmu": {
  9400. source: "iana"
  9401. },
  9402. "audio/pcmu-wb": {
  9403. source: "iana"
  9404. },
  9405. "audio/prs.sid": {
  9406. source: "iana"
  9407. },
  9408. "audio/qcelp": {
  9409. source: "iana"
  9410. },
  9411. "audio/raptorfec": {
  9412. source: "iana"
  9413. },
  9414. "audio/red": {
  9415. source: "iana"
  9416. },
  9417. "audio/rtp-enc-aescm128": {
  9418. source: "iana"
  9419. },
  9420. "audio/rtp-midi": {
  9421. source: "iana"
  9422. },
  9423. "audio/rtploopback": {
  9424. source: "iana"
  9425. },
  9426. "audio/rtx": {
  9427. source: "iana"
  9428. },
  9429. "audio/s3m": {
  9430. source: "apache",
  9431. extensions: [
  9432. "s3m"
  9433. ]
  9434. },
  9435. "audio/scip": {
  9436. source: "iana"
  9437. },
  9438. "audio/silk": {
  9439. source: "apache",
  9440. extensions: [
  9441. "sil"
  9442. ]
  9443. },
  9444. "audio/smv": {
  9445. source: "iana"
  9446. },
  9447. "audio/smv-qcp": {
  9448. source: "iana"
  9449. },
  9450. "audio/smv0": {
  9451. source: "iana"
  9452. },
  9453. "audio/sofa": {
  9454. source: "iana"
  9455. },
  9456. "audio/sp-midi": {
  9457. source: "iana"
  9458. },
  9459. "audio/speex": {
  9460. source: "iana"
  9461. },
  9462. "audio/t140c": {
  9463. source: "iana"
  9464. },
  9465. "audio/t38": {
  9466. source: "iana"
  9467. },
  9468. "audio/telephone-event": {
  9469. source: "iana"
  9470. },
  9471. "audio/tetra_acelp": {
  9472. source: "iana"
  9473. },
  9474. "audio/tetra_acelp_bb": {
  9475. source: "iana"
  9476. },
  9477. "audio/tone": {
  9478. source: "iana"
  9479. },
  9480. "audio/tsvcis": {
  9481. source: "iana"
  9482. },
  9483. "audio/uemclip": {
  9484. source: "iana"
  9485. },
  9486. "audio/ulpfec": {
  9487. source: "iana"
  9488. },
  9489. "audio/usac": {
  9490. source: "iana"
  9491. },
  9492. "audio/vdvi": {
  9493. source: "iana"
  9494. },
  9495. "audio/vmr-wb": {
  9496. source: "iana"
  9497. },
  9498. "audio/vnd.3gpp.iufp": {
  9499. source: "iana"
  9500. },
  9501. "audio/vnd.4sb": {
  9502. source: "iana"
  9503. },
  9504. "audio/vnd.audiokoz": {
  9505. source: "iana"
  9506. },
  9507. "audio/vnd.celp": {
  9508. source: "iana"
  9509. },
  9510. "audio/vnd.cisco.nse": {
  9511. source: "iana"
  9512. },
  9513. "audio/vnd.cmles.radio-events": {
  9514. source: "iana"
  9515. },
  9516. "audio/vnd.cns.anp1": {
  9517. source: "iana"
  9518. },
  9519. "audio/vnd.cns.inf1": {
  9520. source: "iana"
  9521. },
  9522. "audio/vnd.dece.audio": {
  9523. source: "iana",
  9524. extensions: [
  9525. "uva",
  9526. "uvva"
  9527. ]
  9528. },
  9529. "audio/vnd.digital-winds": {
  9530. source: "iana",
  9531. extensions: [
  9532. "eol"
  9533. ]
  9534. },
  9535. "audio/vnd.dlna.adts": {
  9536. source: "iana"
  9537. },
  9538. "audio/vnd.dolby.heaac.1": {
  9539. source: "iana"
  9540. },
  9541. "audio/vnd.dolby.heaac.2": {
  9542. source: "iana"
  9543. },
  9544. "audio/vnd.dolby.mlp": {
  9545. source: "iana"
  9546. },
  9547. "audio/vnd.dolby.mps": {
  9548. source: "iana"
  9549. },
  9550. "audio/vnd.dolby.pl2": {
  9551. source: "iana"
  9552. },
  9553. "audio/vnd.dolby.pl2x": {
  9554. source: "iana"
  9555. },
  9556. "audio/vnd.dolby.pl2z": {
  9557. source: "iana"
  9558. },
  9559. "audio/vnd.dolby.pulse.1": {
  9560. source: "iana"
  9561. },
  9562. "audio/vnd.dra": {
  9563. source: "iana",
  9564. extensions: [
  9565. "dra"
  9566. ]
  9567. },
  9568. "audio/vnd.dts": {
  9569. source: "iana",
  9570. extensions: [
  9571. "dts"
  9572. ]
  9573. },
  9574. "audio/vnd.dts.hd": {
  9575. source: "iana",
  9576. extensions: [
  9577. "dtshd"
  9578. ]
  9579. },
  9580. "audio/vnd.dts.uhd": {
  9581. source: "iana"
  9582. },
  9583. "audio/vnd.dvb.file": {
  9584. source: "iana"
  9585. },
  9586. "audio/vnd.everad.plj": {
  9587. source: "iana"
  9588. },
  9589. "audio/vnd.hns.audio": {
  9590. source: "iana"
  9591. },
  9592. "audio/vnd.lucent.voice": {
  9593. source: "iana",
  9594. extensions: [
  9595. "lvp"
  9596. ]
  9597. },
  9598. "audio/vnd.ms-playready.media.pya": {
  9599. source: "iana",
  9600. extensions: [
  9601. "pya"
  9602. ]
  9603. },
  9604. "audio/vnd.nokia.mobile-xmf": {
  9605. source: "iana"
  9606. },
  9607. "audio/vnd.nortel.vbk": {
  9608. source: "iana"
  9609. },
  9610. "audio/vnd.nuera.ecelp4800": {
  9611. source: "iana",
  9612. extensions: [
  9613. "ecelp4800"
  9614. ]
  9615. },
  9616. "audio/vnd.nuera.ecelp7470": {
  9617. source: "iana",
  9618. extensions: [
  9619. "ecelp7470"
  9620. ]
  9621. },
  9622. "audio/vnd.nuera.ecelp9600": {
  9623. source: "iana",
  9624. extensions: [
  9625. "ecelp9600"
  9626. ]
  9627. },
  9628. "audio/vnd.octel.sbc": {
  9629. source: "iana"
  9630. },
  9631. "audio/vnd.presonus.multitrack": {
  9632. source: "iana"
  9633. },
  9634. "audio/vnd.qcelp": {
  9635. source: "iana"
  9636. },
  9637. "audio/vnd.rhetorex.32kadpcm": {
  9638. source: "iana"
  9639. },
  9640. "audio/vnd.rip": {
  9641. source: "iana",
  9642. extensions: [
  9643. "rip"
  9644. ]
  9645. },
  9646. "audio/vnd.rn-realaudio": {
  9647. compressible: false
  9648. },
  9649. "audio/vnd.sealedmedia.softseal.mpeg": {
  9650. source: "iana"
  9651. },
  9652. "audio/vnd.vmx.cvsd": {
  9653. source: "iana"
  9654. },
  9655. "audio/vnd.wave": {
  9656. compressible: false
  9657. },
  9658. "audio/vorbis": {
  9659. source: "iana",
  9660. compressible: false
  9661. },
  9662. "audio/vorbis-config": {
  9663. source: "iana"
  9664. },
  9665. "audio/wav": {
  9666. compressible: false,
  9667. extensions: [
  9668. "wav"
  9669. ]
  9670. },
  9671. "audio/wave": {
  9672. compressible: false,
  9673. extensions: [
  9674. "wav"
  9675. ]
  9676. },
  9677. "audio/webm": {
  9678. source: "apache",
  9679. compressible: false,
  9680. extensions: [
  9681. "weba"
  9682. ]
  9683. },
  9684. "audio/x-aac": {
  9685. source: "apache",
  9686. compressible: false,
  9687. extensions: [
  9688. "aac"
  9689. ]
  9690. },
  9691. "audio/x-aiff": {
  9692. source: "apache",
  9693. extensions: [
  9694. "aif",
  9695. "aiff",
  9696. "aifc"
  9697. ]
  9698. },
  9699. "audio/x-caf": {
  9700. source: "apache",
  9701. compressible: false,
  9702. extensions: [
  9703. "caf"
  9704. ]
  9705. },
  9706. "audio/x-flac": {
  9707. source: "apache",
  9708. extensions: [
  9709. "flac"
  9710. ]
  9711. },
  9712. "audio/x-m4a": {
  9713. source: "nginx",
  9714. extensions: [
  9715. "m4a"
  9716. ]
  9717. },
  9718. "audio/x-matroska": {
  9719. source: "apache",
  9720. extensions: [
  9721. "mka"
  9722. ]
  9723. },
  9724. "audio/x-mpegurl": {
  9725. source: "apache",
  9726. extensions: [
  9727. "m3u"
  9728. ]
  9729. },
  9730. "audio/x-ms-wax": {
  9731. source: "apache",
  9732. extensions: [
  9733. "wax"
  9734. ]
  9735. },
  9736. "audio/x-ms-wma": {
  9737. source: "apache",
  9738. extensions: [
  9739. "wma"
  9740. ]
  9741. },
  9742. "audio/x-pn-realaudio": {
  9743. source: "apache",
  9744. extensions: [
  9745. "ram",
  9746. "ra"
  9747. ]
  9748. },
  9749. "audio/x-pn-realaudio-plugin": {
  9750. source: "apache",
  9751. extensions: [
  9752. "rmp"
  9753. ]
  9754. },
  9755. "audio/x-realaudio": {
  9756. source: "nginx",
  9757. extensions: [
  9758. "ra"
  9759. ]
  9760. },
  9761. "audio/x-tta": {
  9762. source: "apache"
  9763. },
  9764. "audio/x-wav": {
  9765. source: "apache",
  9766. extensions: [
  9767. "wav"
  9768. ]
  9769. },
  9770. "audio/xm": {
  9771. source: "apache",
  9772. extensions: [
  9773. "xm"
  9774. ]
  9775. },
  9776. "chemical/x-cdx": {
  9777. source: "apache",
  9778. extensions: [
  9779. "cdx"
  9780. ]
  9781. },
  9782. "chemical/x-cif": {
  9783. source: "apache",
  9784. extensions: [
  9785. "cif"
  9786. ]
  9787. },
  9788. "chemical/x-cmdf": {
  9789. source: "apache",
  9790. extensions: [
  9791. "cmdf"
  9792. ]
  9793. },
  9794. "chemical/x-cml": {
  9795. source: "apache",
  9796. extensions: [
  9797. "cml"
  9798. ]
  9799. },
  9800. "chemical/x-csml": {
  9801. source: "apache",
  9802. extensions: [
  9803. "csml"
  9804. ]
  9805. },
  9806. "chemical/x-pdb": {
  9807. source: "apache"
  9808. },
  9809. "chemical/x-xyz": {
  9810. source: "apache",
  9811. extensions: [
  9812. "xyz"
  9813. ]
  9814. },
  9815. "font/collection": {
  9816. source: "iana",
  9817. extensions: [
  9818. "ttc"
  9819. ]
  9820. },
  9821. "font/otf": {
  9822. source: "iana",
  9823. compressible: true,
  9824. extensions: [
  9825. "otf"
  9826. ]
  9827. },
  9828. "font/sfnt": {
  9829. source: "iana"
  9830. },
  9831. "font/ttf": {
  9832. source: "iana",
  9833. compressible: true,
  9834. extensions: [
  9835. "ttf"
  9836. ]
  9837. },
  9838. "font/woff": {
  9839. source: "iana",
  9840. extensions: [
  9841. "woff"
  9842. ]
  9843. },
  9844. "font/woff2": {
  9845. source: "iana",
  9846. extensions: [
  9847. "woff2"
  9848. ]
  9849. },
  9850. "image/aces": {
  9851. source: "iana",
  9852. extensions: [
  9853. "exr"
  9854. ]
  9855. },
  9856. "image/apng": {
  9857. compressible: false,
  9858. extensions: [
  9859. "apng"
  9860. ]
  9861. },
  9862. "image/avci": {
  9863. source: "iana"
  9864. },
  9865. "image/avcs": {
  9866. source: "iana"
  9867. },
  9868. "image/avif": {
  9869. source: "iana",
  9870. compressible: false,
  9871. extensions: [
  9872. "avif"
  9873. ]
  9874. },
  9875. "image/bmp": {
  9876. source: "iana",
  9877. compressible: true,
  9878. extensions: [
  9879. "bmp"
  9880. ]
  9881. },
  9882. "image/cgm": {
  9883. source: "iana",
  9884. extensions: [
  9885. "cgm"
  9886. ]
  9887. },
  9888. "image/dicom-rle": {
  9889. source: "iana",
  9890. extensions: [
  9891. "drle"
  9892. ]
  9893. },
  9894. "image/emf": {
  9895. source: "iana",
  9896. extensions: [
  9897. "emf"
  9898. ]
  9899. },
  9900. "image/fits": {
  9901. source: "iana",
  9902. extensions: [
  9903. "fits"
  9904. ]
  9905. },
  9906. "image/g3fax": {
  9907. source: "iana",
  9908. extensions: [
  9909. "g3"
  9910. ]
  9911. },
  9912. "image/gif": {
  9913. source: "iana",
  9914. compressible: false,
  9915. extensions: [
  9916. "gif"
  9917. ]
  9918. },
  9919. "image/heic": {
  9920. source: "iana",
  9921. extensions: [
  9922. "heic"
  9923. ]
  9924. },
  9925. "image/heic-sequence": {
  9926. source: "iana",
  9927. extensions: [
  9928. "heics"
  9929. ]
  9930. },
  9931. "image/heif": {
  9932. source: "iana",
  9933. extensions: [
  9934. "heif"
  9935. ]
  9936. },
  9937. "image/heif-sequence": {
  9938. source: "iana",
  9939. extensions: [
  9940. "heifs"
  9941. ]
  9942. },
  9943. "image/hej2k": {
  9944. source: "iana",
  9945. extensions: [
  9946. "hej2"
  9947. ]
  9948. },
  9949. "image/hsj2": {
  9950. source: "iana",
  9951. extensions: [
  9952. "hsj2"
  9953. ]
  9954. },
  9955. "image/ief": {
  9956. source: "iana",
  9957. extensions: [
  9958. "ief"
  9959. ]
  9960. },
  9961. "image/jls": {
  9962. source: "iana",
  9963. extensions: [
  9964. "jls"
  9965. ]
  9966. },
  9967. "image/jp2": {
  9968. source: "iana",
  9969. compressible: false,
  9970. extensions: [
  9971. "jp2",
  9972. "jpg2"
  9973. ]
  9974. },
  9975. "image/jpeg": {
  9976. source: "iana",
  9977. compressible: false,
  9978. extensions: [
  9979. "jpeg",
  9980. "jpg",
  9981. "jpe"
  9982. ]
  9983. },
  9984. "image/jph": {
  9985. source: "iana",
  9986. extensions: [
  9987. "jph"
  9988. ]
  9989. },
  9990. "image/jphc": {
  9991. source: "iana",
  9992. extensions: [
  9993. "jhc"
  9994. ]
  9995. },
  9996. "image/jpm": {
  9997. source: "iana",
  9998. compressible: false,
  9999. extensions: [
  10000. "jpm"
  10001. ]
  10002. },
  10003. "image/jpx": {
  10004. source: "iana",
  10005. compressible: false,
  10006. extensions: [
  10007. "jpx",
  10008. "jpf"
  10009. ]
  10010. },
  10011. "image/jxr": {
  10012. source: "iana",
  10013. extensions: [
  10014. "jxr"
  10015. ]
  10016. },
  10017. "image/jxra": {
  10018. source: "iana",
  10019. extensions: [
  10020. "jxra"
  10021. ]
  10022. },
  10023. "image/jxrs": {
  10024. source: "iana",
  10025. extensions: [
  10026. "jxrs"
  10027. ]
  10028. },
  10029. "image/jxs": {
  10030. source: "iana",
  10031. extensions: [
  10032. "jxs"
  10033. ]
  10034. },
  10035. "image/jxsc": {
  10036. source: "iana",
  10037. extensions: [
  10038. "jxsc"
  10039. ]
  10040. },
  10041. "image/jxsi": {
  10042. source: "iana",
  10043. extensions: [
  10044. "jxsi"
  10045. ]
  10046. },
  10047. "image/jxss": {
  10048. source: "iana",
  10049. extensions: [
  10050. "jxss"
  10051. ]
  10052. },
  10053. "image/ktx": {
  10054. source: "iana",
  10055. extensions: [
  10056. "ktx"
  10057. ]
  10058. },
  10059. "image/ktx2": {
  10060. source: "iana",
  10061. extensions: [
  10062. "ktx2"
  10063. ]
  10064. },
  10065. "image/naplps": {
  10066. source: "iana"
  10067. },
  10068. "image/pjpeg": {
  10069. compressible: false
  10070. },
  10071. "image/png": {
  10072. source: "iana",
  10073. compressible: false,
  10074. extensions: [
  10075. "png"
  10076. ]
  10077. },
  10078. "image/prs.btif": {
  10079. source: "iana",
  10080. extensions: [
  10081. "btif"
  10082. ]
  10083. },
  10084. "image/prs.pti": {
  10085. source: "iana",
  10086. extensions: [
  10087. "pti"
  10088. ]
  10089. },
  10090. "image/pwg-raster": {
  10091. source: "iana"
  10092. },
  10093. "image/sgi": {
  10094. source: "apache",
  10095. extensions: [
  10096. "sgi"
  10097. ]
  10098. },
  10099. "image/svg+xml": {
  10100. source: "iana",
  10101. compressible: true,
  10102. extensions: [
  10103. "svg",
  10104. "svgz"
  10105. ]
  10106. },
  10107. "image/t38": {
  10108. source: "iana",
  10109. extensions: [
  10110. "t38"
  10111. ]
  10112. },
  10113. "image/tiff": {
  10114. source: "iana",
  10115. compressible: false,
  10116. extensions: [
  10117. "tif",
  10118. "tiff"
  10119. ]
  10120. },
  10121. "image/tiff-fx": {
  10122. source: "iana",
  10123. extensions: [
  10124. "tfx"
  10125. ]
  10126. },
  10127. "image/vnd.adobe.photoshop": {
  10128. source: "iana",
  10129. compressible: true,
  10130. extensions: [
  10131. "psd"
  10132. ]
  10133. },
  10134. "image/vnd.airzip.accelerator.azv": {
  10135. source: "iana",
  10136. extensions: [
  10137. "azv"
  10138. ]
  10139. },
  10140. "image/vnd.cns.inf2": {
  10141. source: "iana"
  10142. },
  10143. "image/vnd.dece.graphic": {
  10144. source: "iana",
  10145. extensions: [
  10146. "uvi",
  10147. "uvvi",
  10148. "uvg",
  10149. "uvvg"
  10150. ]
  10151. },
  10152. "image/vnd.djvu": {
  10153. source: "iana",
  10154. extensions: [
  10155. "djvu",
  10156. "djv"
  10157. ]
  10158. },
  10159. "image/vnd.dvb.subtitle": {
  10160. source: "iana",
  10161. extensions: [
  10162. "sub"
  10163. ]
  10164. },
  10165. "image/vnd.dwg": {
  10166. source: "iana",
  10167. extensions: [
  10168. "dwg"
  10169. ]
  10170. },
  10171. "image/vnd.dxf": {
  10172. source: "iana",
  10173. extensions: [
  10174. "dxf"
  10175. ]
  10176. },
  10177. "image/vnd.fastbidsheet": {
  10178. source: "iana",
  10179. extensions: [
  10180. "fbs"
  10181. ]
  10182. },
  10183. "image/vnd.fpx": {
  10184. source: "iana",
  10185. extensions: [
  10186. "fpx"
  10187. ]
  10188. },
  10189. "image/vnd.fst": {
  10190. source: "iana",
  10191. extensions: [
  10192. "fst"
  10193. ]
  10194. },
  10195. "image/vnd.fujixerox.edmics-mmr": {
  10196. source: "iana",
  10197. extensions: [
  10198. "mmr"
  10199. ]
  10200. },
  10201. "image/vnd.fujixerox.edmics-rlc": {
  10202. source: "iana",
  10203. extensions: [
  10204. "rlc"
  10205. ]
  10206. },
  10207. "image/vnd.globalgraphics.pgb": {
  10208. source: "iana"
  10209. },
  10210. "image/vnd.microsoft.icon": {
  10211. source: "iana",
  10212. extensions: [
  10213. "ico"
  10214. ]
  10215. },
  10216. "image/vnd.mix": {
  10217. source: "iana"
  10218. },
  10219. "image/vnd.mozilla.apng": {
  10220. source: "iana"
  10221. },
  10222. "image/vnd.ms-dds": {
  10223. extensions: [
  10224. "dds"
  10225. ]
  10226. },
  10227. "image/vnd.ms-modi": {
  10228. source: "iana",
  10229. extensions: [
  10230. "mdi"
  10231. ]
  10232. },
  10233. "image/vnd.ms-photo": {
  10234. source: "apache",
  10235. extensions: [
  10236. "wdp"
  10237. ]
  10238. },
  10239. "image/vnd.net-fpx": {
  10240. source: "iana",
  10241. extensions: [
  10242. "npx"
  10243. ]
  10244. },
  10245. "image/vnd.pco.b16": {
  10246. source: "iana",
  10247. extensions: [
  10248. "b16"
  10249. ]
  10250. },
  10251. "image/vnd.radiance": {
  10252. source: "iana"
  10253. },
  10254. "image/vnd.sealed.png": {
  10255. source: "iana"
  10256. },
  10257. "image/vnd.sealedmedia.softseal.gif": {
  10258. source: "iana"
  10259. },
  10260. "image/vnd.sealedmedia.softseal.jpg": {
  10261. source: "iana"
  10262. },
  10263. "image/vnd.svf": {
  10264. source: "iana"
  10265. },
  10266. "image/vnd.tencent.tap": {
  10267. source: "iana",
  10268. extensions: [
  10269. "tap"
  10270. ]
  10271. },
  10272. "image/vnd.valve.source.texture": {
  10273. source: "iana",
  10274. extensions: [
  10275. "vtf"
  10276. ]
  10277. },
  10278. "image/vnd.wap.wbmp": {
  10279. source: "iana",
  10280. extensions: [
  10281. "wbmp"
  10282. ]
  10283. },
  10284. "image/vnd.xiff": {
  10285. source: "iana",
  10286. extensions: [
  10287. "xif"
  10288. ]
  10289. },
  10290. "image/vnd.zbrush.pcx": {
  10291. source: "iana",
  10292. extensions: [
  10293. "pcx"
  10294. ]
  10295. },
  10296. "image/webp": {
  10297. source: "apache",
  10298. extensions: [
  10299. "webp"
  10300. ]
  10301. },
  10302. "image/wmf": {
  10303. source: "iana",
  10304. extensions: [
  10305. "wmf"
  10306. ]
  10307. },
  10308. "image/x-3ds": {
  10309. source: "apache",
  10310. extensions: [
  10311. "3ds"
  10312. ]
  10313. },
  10314. "image/x-cmu-raster": {
  10315. source: "apache",
  10316. extensions: [
  10317. "ras"
  10318. ]
  10319. },
  10320. "image/x-cmx": {
  10321. source: "apache",
  10322. extensions: [
  10323. "cmx"
  10324. ]
  10325. },
  10326. "image/x-freehand": {
  10327. source: "apache",
  10328. extensions: [
  10329. "fh",
  10330. "fhc",
  10331. "fh4",
  10332. "fh5",
  10333. "fh7"
  10334. ]
  10335. },
  10336. "image/x-icon": {
  10337. source: "apache",
  10338. compressible: true,
  10339. extensions: [
  10340. "ico"
  10341. ]
  10342. },
  10343. "image/x-jng": {
  10344. source: "nginx",
  10345. extensions: [
  10346. "jng"
  10347. ]
  10348. },
  10349. "image/x-mrsid-image": {
  10350. source: "apache",
  10351. extensions: [
  10352. "sid"
  10353. ]
  10354. },
  10355. "image/x-ms-bmp": {
  10356. source: "nginx",
  10357. compressible: true,
  10358. extensions: [
  10359. "bmp"
  10360. ]
  10361. },
  10362. "image/x-pcx": {
  10363. source: "apache",
  10364. extensions: [
  10365. "pcx"
  10366. ]
  10367. },
  10368. "image/x-pict": {
  10369. source: "apache",
  10370. extensions: [
  10371. "pic",
  10372. "pct"
  10373. ]
  10374. },
  10375. "image/x-portable-anymap": {
  10376. source: "apache",
  10377. extensions: [
  10378. "pnm"
  10379. ]
  10380. },
  10381. "image/x-portable-bitmap": {
  10382. source: "apache",
  10383. extensions: [
  10384. "pbm"
  10385. ]
  10386. },
  10387. "image/x-portable-graymap": {
  10388. source: "apache",
  10389. extensions: [
  10390. "pgm"
  10391. ]
  10392. },
  10393. "image/x-portable-pixmap": {
  10394. source: "apache",
  10395. extensions: [
  10396. "ppm"
  10397. ]
  10398. },
  10399. "image/x-rgb": {
  10400. source: "apache",
  10401. extensions: [
  10402. "rgb"
  10403. ]
  10404. },
  10405. "image/x-tga": {
  10406. source: "apache",
  10407. extensions: [
  10408. "tga"
  10409. ]
  10410. },
  10411. "image/x-xbitmap": {
  10412. source: "apache",
  10413. extensions: [
  10414. "xbm"
  10415. ]
  10416. },
  10417. "image/x-xcf": {
  10418. compressible: false
  10419. },
  10420. "image/x-xpixmap": {
  10421. source: "apache",
  10422. extensions: [
  10423. "xpm"
  10424. ]
  10425. },
  10426. "image/x-xwindowdump": {
  10427. source: "apache",
  10428. extensions: [
  10429. "xwd"
  10430. ]
  10431. },
  10432. "message/cpim": {
  10433. source: "iana"
  10434. },
  10435. "message/delivery-status": {
  10436. source: "iana"
  10437. },
  10438. "message/disposition-notification": {
  10439. source: "iana",
  10440. extensions: [
  10441. "disposition-notification"
  10442. ]
  10443. },
  10444. "message/external-body": {
  10445. source: "iana"
  10446. },
  10447. "message/feedback-report": {
  10448. source: "iana"
  10449. },
  10450. "message/global": {
  10451. source: "iana",
  10452. extensions: [
  10453. "u8msg"
  10454. ]
  10455. },
  10456. "message/global-delivery-status": {
  10457. source: "iana",
  10458. extensions: [
  10459. "u8dsn"
  10460. ]
  10461. },
  10462. "message/global-disposition-notification": {
  10463. source: "iana",
  10464. extensions: [
  10465. "u8mdn"
  10466. ]
  10467. },
  10468. "message/global-headers": {
  10469. source: "iana",
  10470. extensions: [
  10471. "u8hdr"
  10472. ]
  10473. },
  10474. "message/http": {
  10475. source: "iana",
  10476. compressible: false
  10477. },
  10478. "message/imdn+xml": {
  10479. source: "iana",
  10480. compressible: true
  10481. },
  10482. "message/news": {
  10483. source: "iana"
  10484. },
  10485. "message/partial": {
  10486. source: "iana",
  10487. compressible: false
  10488. },
  10489. "message/rfc822": {
  10490. source: "iana",
  10491. compressible: true,
  10492. extensions: [
  10493. "eml",
  10494. "mime"
  10495. ]
  10496. },
  10497. "message/s-http": {
  10498. source: "iana"
  10499. },
  10500. "message/sip": {
  10501. source: "iana"
  10502. },
  10503. "message/sipfrag": {
  10504. source: "iana"
  10505. },
  10506. "message/tracking-status": {
  10507. source: "iana"
  10508. },
  10509. "message/vnd.si.simp": {
  10510. source: "iana"
  10511. },
  10512. "message/vnd.wfa.wsc": {
  10513. source: "iana",
  10514. extensions: [
  10515. "wsc"
  10516. ]
  10517. },
  10518. "model/3mf": {
  10519. source: "iana",
  10520. extensions: [
  10521. "3mf"
  10522. ]
  10523. },
  10524. "model/e57": {
  10525. source: "iana"
  10526. },
  10527. "model/gltf+json": {
  10528. source: "iana",
  10529. compressible: true,
  10530. extensions: [
  10531. "gltf"
  10532. ]
  10533. },
  10534. "model/gltf-binary": {
  10535. source: "iana",
  10536. compressible: true,
  10537. extensions: [
  10538. "glb"
  10539. ]
  10540. },
  10541. "model/iges": {
  10542. source: "iana",
  10543. compressible: false,
  10544. extensions: [
  10545. "igs",
  10546. "iges"
  10547. ]
  10548. },
  10549. "model/mesh": {
  10550. source: "iana",
  10551. compressible: false,
  10552. extensions: [
  10553. "msh",
  10554. "mesh",
  10555. "silo"
  10556. ]
  10557. },
  10558. "model/mtl": {
  10559. source: "iana",
  10560. extensions: [
  10561. "mtl"
  10562. ]
  10563. },
  10564. "model/obj": {
  10565. source: "iana",
  10566. extensions: [
  10567. "obj"
  10568. ]
  10569. },
  10570. "model/stl": {
  10571. source: "iana",
  10572. extensions: [
  10573. "stl"
  10574. ]
  10575. },
  10576. "model/vnd.collada+xml": {
  10577. source: "iana",
  10578. compressible: true,
  10579. extensions: [
  10580. "dae"
  10581. ]
  10582. },
  10583. "model/vnd.dwf": {
  10584. source: "iana",
  10585. extensions: [
  10586. "dwf"
  10587. ]
  10588. },
  10589. "model/vnd.flatland.3dml": {
  10590. source: "iana"
  10591. },
  10592. "model/vnd.gdl": {
  10593. source: "iana",
  10594. extensions: [
  10595. "gdl"
  10596. ]
  10597. },
  10598. "model/vnd.gs-gdl": {
  10599. source: "apache"
  10600. },
  10601. "model/vnd.gs.gdl": {
  10602. source: "iana"
  10603. },
  10604. "model/vnd.gtw": {
  10605. source: "iana",
  10606. extensions: [
  10607. "gtw"
  10608. ]
  10609. },
  10610. "model/vnd.moml+xml": {
  10611. source: "iana",
  10612. compressible: true
  10613. },
  10614. "model/vnd.mts": {
  10615. source: "iana",
  10616. extensions: [
  10617. "mts"
  10618. ]
  10619. },
  10620. "model/vnd.opengex": {
  10621. source: "iana",
  10622. extensions: [
  10623. "ogex"
  10624. ]
  10625. },
  10626. "model/vnd.parasolid.transmit.binary": {
  10627. source: "iana",
  10628. extensions: [
  10629. "x_b"
  10630. ]
  10631. },
  10632. "model/vnd.parasolid.transmit.text": {
  10633. source: "iana",
  10634. extensions: [
  10635. "x_t"
  10636. ]
  10637. },
  10638. "model/vnd.rosette.annotated-data-model": {
  10639. source: "iana"
  10640. },
  10641. "model/vnd.usdz+zip": {
  10642. source: "iana",
  10643. compressible: false,
  10644. extensions: [
  10645. "usdz"
  10646. ]
  10647. },
  10648. "model/vnd.valve.source.compiled-map": {
  10649. source: "iana",
  10650. extensions: [
  10651. "bsp"
  10652. ]
  10653. },
  10654. "model/vnd.vtu": {
  10655. source: "iana",
  10656. extensions: [
  10657. "vtu"
  10658. ]
  10659. },
  10660. "model/vrml": {
  10661. source: "iana",
  10662. compressible: false,
  10663. extensions: [
  10664. "wrl",
  10665. "vrml"
  10666. ]
  10667. },
  10668. "model/x3d+binary": {
  10669. source: "apache",
  10670. compressible: false,
  10671. extensions: [
  10672. "x3db",
  10673. "x3dbz"
  10674. ]
  10675. },
  10676. "model/x3d+fastinfoset": {
  10677. source: "iana",
  10678. extensions: [
  10679. "x3db"
  10680. ]
  10681. },
  10682. "model/x3d+vrml": {
  10683. source: "apache",
  10684. compressible: false,
  10685. extensions: [
  10686. "x3dv",
  10687. "x3dvz"
  10688. ]
  10689. },
  10690. "model/x3d+xml": {
  10691. source: "iana",
  10692. compressible: true,
  10693. extensions: [
  10694. "x3d",
  10695. "x3dz"
  10696. ]
  10697. },
  10698. "model/x3d-vrml": {
  10699. source: "iana",
  10700. extensions: [
  10701. "x3dv"
  10702. ]
  10703. },
  10704. "multipart/alternative": {
  10705. source: "iana",
  10706. compressible: false
  10707. },
  10708. "multipart/appledouble": {
  10709. source: "iana"
  10710. },
  10711. "multipart/byteranges": {
  10712. source: "iana"
  10713. },
  10714. "multipart/digest": {
  10715. source: "iana"
  10716. },
  10717. "multipart/encrypted": {
  10718. source: "iana",
  10719. compressible: false
  10720. },
  10721. "multipart/form-data": {
  10722. source: "iana",
  10723. compressible: false
  10724. },
  10725. "multipart/header-set": {
  10726. source: "iana"
  10727. },
  10728. "multipart/mixed": {
  10729. source: "iana"
  10730. },
  10731. "multipart/multilingual": {
  10732. source: "iana"
  10733. },
  10734. "multipart/parallel": {
  10735. source: "iana"
  10736. },
  10737. "multipart/related": {
  10738. source: "iana",
  10739. compressible: false
  10740. },
  10741. "multipart/report": {
  10742. source: "iana"
  10743. },
  10744. "multipart/signed": {
  10745. source: "iana",
  10746. compressible: false
  10747. },
  10748. "multipart/vnd.bint.med-plus": {
  10749. source: "iana"
  10750. },
  10751. "multipart/voice-message": {
  10752. source: "iana"
  10753. },
  10754. "multipart/x-mixed-replace": {
  10755. source: "iana"
  10756. },
  10757. "text/1d-interleaved-parityfec": {
  10758. source: "iana"
  10759. },
  10760. "text/cache-manifest": {
  10761. source: "iana",
  10762. compressible: true,
  10763. extensions: [
  10764. "appcache",
  10765. "manifest"
  10766. ]
  10767. },
  10768. "text/calendar": {
  10769. source: "iana",
  10770. extensions: [
  10771. "ics",
  10772. "ifb"
  10773. ]
  10774. },
  10775. "text/calender": {
  10776. compressible: true
  10777. },
  10778. "text/cmd": {
  10779. compressible: true
  10780. },
  10781. "text/coffeescript": {
  10782. extensions: [
  10783. "coffee",
  10784. "litcoffee"
  10785. ]
  10786. },
  10787. "text/cql": {
  10788. source: "iana"
  10789. },
  10790. "text/cql-expression": {
  10791. source: "iana"
  10792. },
  10793. "text/cql-identifier": {
  10794. source: "iana"
  10795. },
  10796. "text/css": {
  10797. source: "iana",
  10798. charset: "UTF-8",
  10799. compressible: true,
  10800. extensions: [
  10801. "css"
  10802. ]
  10803. },
  10804. "text/csv": {
  10805. source: "iana",
  10806. compressible: true,
  10807. extensions: [
  10808. "csv"
  10809. ]
  10810. },
  10811. "text/csv-schema": {
  10812. source: "iana"
  10813. },
  10814. "text/directory": {
  10815. source: "iana"
  10816. },
  10817. "text/dns": {
  10818. source: "iana"
  10819. },
  10820. "text/ecmascript": {
  10821. source: "iana"
  10822. },
  10823. "text/encaprtp": {
  10824. source: "iana"
  10825. },
  10826. "text/enriched": {
  10827. source: "iana"
  10828. },
  10829. "text/fhirpath": {
  10830. source: "iana"
  10831. },
  10832. "text/flexfec": {
  10833. source: "iana"
  10834. },
  10835. "text/fwdred": {
  10836. source: "iana"
  10837. },
  10838. "text/gff3": {
  10839. source: "iana"
  10840. },
  10841. "text/grammar-ref-list": {
  10842. source: "iana"
  10843. },
  10844. "text/html": {
  10845. source: "iana",
  10846. compressible: true,
  10847. extensions: [
  10848. "html",
  10849. "htm",
  10850. "shtml"
  10851. ]
  10852. },
  10853. "text/jade": {
  10854. extensions: [
  10855. "jade"
  10856. ]
  10857. },
  10858. "text/javascript": {
  10859. source: "iana",
  10860. compressible: true
  10861. },
  10862. "text/jcr-cnd": {
  10863. source: "iana"
  10864. },
  10865. "text/jsx": {
  10866. compressible: true,
  10867. extensions: [
  10868. "jsx"
  10869. ]
  10870. },
  10871. "text/less": {
  10872. compressible: true,
  10873. extensions: [
  10874. "less"
  10875. ]
  10876. },
  10877. "text/markdown": {
  10878. source: "iana",
  10879. compressible: true,
  10880. extensions: [
  10881. "markdown",
  10882. "md"
  10883. ]
  10884. },
  10885. "text/mathml": {
  10886. source: "nginx",
  10887. extensions: [
  10888. "mml"
  10889. ]
  10890. },
  10891. "text/mdx": {
  10892. compressible: true,
  10893. extensions: [
  10894. "mdx"
  10895. ]
  10896. },
  10897. "text/mizar": {
  10898. source: "iana"
  10899. },
  10900. "text/n3": {
  10901. source: "iana",
  10902. charset: "UTF-8",
  10903. compressible: true,
  10904. extensions: [
  10905. "n3"
  10906. ]
  10907. },
  10908. "text/parameters": {
  10909. source: "iana",
  10910. charset: "UTF-8"
  10911. },
  10912. "text/parityfec": {
  10913. source: "iana"
  10914. },
  10915. "text/plain": {
  10916. source: "iana",
  10917. compressible: true,
  10918. extensions: [
  10919. "txt",
  10920. "text",
  10921. "conf",
  10922. "def",
  10923. "list",
  10924. "log",
  10925. "in",
  10926. "ini"
  10927. ]
  10928. },
  10929. "text/provenance-notation": {
  10930. source: "iana",
  10931. charset: "UTF-8"
  10932. },
  10933. "text/prs.fallenstein.rst": {
  10934. source: "iana"
  10935. },
  10936. "text/prs.lines.tag": {
  10937. source: "iana",
  10938. extensions: [
  10939. "dsc"
  10940. ]
  10941. },
  10942. "text/prs.prop.logic": {
  10943. source: "iana"
  10944. },
  10945. "text/raptorfec": {
  10946. source: "iana"
  10947. },
  10948. "text/red": {
  10949. source: "iana"
  10950. },
  10951. "text/rfc822-headers": {
  10952. source: "iana"
  10953. },
  10954. "text/richtext": {
  10955. source: "iana",
  10956. compressible: true,
  10957. extensions: [
  10958. "rtx"
  10959. ]
  10960. },
  10961. "text/rtf": {
  10962. source: "iana",
  10963. compressible: true,
  10964. extensions: [
  10965. "rtf"
  10966. ]
  10967. },
  10968. "text/rtp-enc-aescm128": {
  10969. source: "iana"
  10970. },
  10971. "text/rtploopback": {
  10972. source: "iana"
  10973. },
  10974. "text/rtx": {
  10975. source: "iana"
  10976. },
  10977. "text/sgml": {
  10978. source: "iana",
  10979. extensions: [
  10980. "sgml",
  10981. "sgm"
  10982. ]
  10983. },
  10984. "text/shaclc": {
  10985. source: "iana"
  10986. },
  10987. "text/shex": {
  10988. extensions: [
  10989. "shex"
  10990. ]
  10991. },
  10992. "text/slim": {
  10993. extensions: [
  10994. "slim",
  10995. "slm"
  10996. ]
  10997. },
  10998. "text/spdx": {
  10999. source: "iana",
  11000. extensions: [
  11001. "spdx"
  11002. ]
  11003. },
  11004. "text/strings": {
  11005. source: "iana"
  11006. },
  11007. "text/stylus": {
  11008. extensions: [
  11009. "stylus",
  11010. "styl"
  11011. ]
  11012. },
  11013. "text/t140": {
  11014. source: "iana"
  11015. },
  11016. "text/tab-separated-values": {
  11017. source: "iana",
  11018. compressible: true,
  11019. extensions: [
  11020. "tsv"
  11021. ]
  11022. },
  11023. "text/troff": {
  11024. source: "iana",
  11025. extensions: [
  11026. "t",
  11027. "tr",
  11028. "roff",
  11029. "man",
  11030. "me",
  11031. "ms"
  11032. ]
  11033. },
  11034. "text/turtle": {
  11035. source: "iana",
  11036. charset: "UTF-8",
  11037. extensions: [
  11038. "ttl"
  11039. ]
  11040. },
  11041. "text/ulpfec": {
  11042. source: "iana"
  11043. },
  11044. "text/uri-list": {
  11045. source: "iana",
  11046. compressible: true,
  11047. extensions: [
  11048. "uri",
  11049. "uris",
  11050. "urls"
  11051. ]
  11052. },
  11053. "text/vcard": {
  11054. source: "iana",
  11055. compressible: true,
  11056. extensions: [
  11057. "vcard"
  11058. ]
  11059. },
  11060. "text/vnd.a": {
  11061. source: "iana"
  11062. },
  11063. "text/vnd.abc": {
  11064. source: "iana"
  11065. },
  11066. "text/vnd.ascii-art": {
  11067. source: "iana"
  11068. },
  11069. "text/vnd.curl": {
  11070. source: "iana",
  11071. extensions: [
  11072. "curl"
  11073. ]
  11074. },
  11075. "text/vnd.curl.dcurl": {
  11076. source: "apache",
  11077. extensions: [
  11078. "dcurl"
  11079. ]
  11080. },
  11081. "text/vnd.curl.mcurl": {
  11082. source: "apache",
  11083. extensions: [
  11084. "mcurl"
  11085. ]
  11086. },
  11087. "text/vnd.curl.scurl": {
  11088. source: "apache",
  11089. extensions: [
  11090. "scurl"
  11091. ]
  11092. },
  11093. "text/vnd.debian.copyright": {
  11094. source: "iana",
  11095. charset: "UTF-8"
  11096. },
  11097. "text/vnd.dmclientscript": {
  11098. source: "iana"
  11099. },
  11100. "text/vnd.dvb.subtitle": {
  11101. source: "iana",
  11102. extensions: [
  11103. "sub"
  11104. ]
  11105. },
  11106. "text/vnd.esmertec.theme-descriptor": {
  11107. source: "iana",
  11108. charset: "UTF-8"
  11109. },
  11110. "text/vnd.ficlab.flt": {
  11111. source: "iana"
  11112. },
  11113. "text/vnd.fly": {
  11114. source: "iana",
  11115. extensions: [
  11116. "fly"
  11117. ]
  11118. },
  11119. "text/vnd.fmi.flexstor": {
  11120. source: "iana",
  11121. extensions: [
  11122. "flx"
  11123. ]
  11124. },
  11125. "text/vnd.gml": {
  11126. source: "iana"
  11127. },
  11128. "text/vnd.graphviz": {
  11129. source: "iana",
  11130. extensions: [
  11131. "gv"
  11132. ]
  11133. },
  11134. "text/vnd.hans": {
  11135. source: "iana"
  11136. },
  11137. "text/vnd.hgl": {
  11138. source: "iana"
  11139. },
  11140. "text/vnd.in3d.3dml": {
  11141. source: "iana",
  11142. extensions: [
  11143. "3dml"
  11144. ]
  11145. },
  11146. "text/vnd.in3d.spot": {
  11147. source: "iana",
  11148. extensions: [
  11149. "spot"
  11150. ]
  11151. },
  11152. "text/vnd.iptc.newsml": {
  11153. source: "iana"
  11154. },
  11155. "text/vnd.iptc.nitf": {
  11156. source: "iana"
  11157. },
  11158. "text/vnd.latex-z": {
  11159. source: "iana"
  11160. },
  11161. "text/vnd.motorola.reflex": {
  11162. source: "iana"
  11163. },
  11164. "text/vnd.ms-mediapackage": {
  11165. source: "iana"
  11166. },
  11167. "text/vnd.net2phone.commcenter.command": {
  11168. source: "iana"
  11169. },
  11170. "text/vnd.radisys.msml-basic-layout": {
  11171. source: "iana"
  11172. },
  11173. "text/vnd.senx.warpscript": {
  11174. source: "iana"
  11175. },
  11176. "text/vnd.si.uricatalogue": {
  11177. source: "iana"
  11178. },
  11179. "text/vnd.sosi": {
  11180. source: "iana"
  11181. },
  11182. "text/vnd.sun.j2me.app-descriptor": {
  11183. source: "iana",
  11184. charset: "UTF-8",
  11185. extensions: [
  11186. "jad"
  11187. ]
  11188. },
  11189. "text/vnd.trolltech.linguist": {
  11190. source: "iana",
  11191. charset: "UTF-8"
  11192. },
  11193. "text/vnd.wap.si": {
  11194. source: "iana"
  11195. },
  11196. "text/vnd.wap.sl": {
  11197. source: "iana"
  11198. },
  11199. "text/vnd.wap.wml": {
  11200. source: "iana",
  11201. extensions: [
  11202. "wml"
  11203. ]
  11204. },
  11205. "text/vnd.wap.wmlscript": {
  11206. source: "iana",
  11207. extensions: [
  11208. "wmls"
  11209. ]
  11210. },
  11211. "text/vtt": {
  11212. source: "iana",
  11213. charset: "UTF-8",
  11214. compressible: true,
  11215. extensions: [
  11216. "vtt"
  11217. ]
  11218. },
  11219. "text/x-asm": {
  11220. source: "apache",
  11221. extensions: [
  11222. "s",
  11223. "asm"
  11224. ]
  11225. },
  11226. "text/x-c": {
  11227. source: "apache",
  11228. extensions: [
  11229. "c",
  11230. "cc",
  11231. "cxx",
  11232. "cpp",
  11233. "h",
  11234. "hh",
  11235. "dic"
  11236. ]
  11237. },
  11238. "text/x-component": {
  11239. source: "nginx",
  11240. extensions: [
  11241. "htc"
  11242. ]
  11243. },
  11244. "text/x-fortran": {
  11245. source: "apache",
  11246. extensions: [
  11247. "f",
  11248. "for",
  11249. "f77",
  11250. "f90"
  11251. ]
  11252. },
  11253. "text/x-gwt-rpc": {
  11254. compressible: true
  11255. },
  11256. "text/x-handlebars-template": {
  11257. extensions: [
  11258. "hbs"
  11259. ]
  11260. },
  11261. "text/x-java-source": {
  11262. source: "apache",
  11263. extensions: [
  11264. "java"
  11265. ]
  11266. },
  11267. "text/x-jquery-tmpl": {
  11268. compressible: true
  11269. },
  11270. "text/x-lua": {
  11271. extensions: [
  11272. "lua"
  11273. ]
  11274. },
  11275. "text/x-markdown": {
  11276. compressible: true,
  11277. extensions: [
  11278. "mkd"
  11279. ]
  11280. },
  11281. "text/x-nfo": {
  11282. source: "apache",
  11283. extensions: [
  11284. "nfo"
  11285. ]
  11286. },
  11287. "text/x-opml": {
  11288. source: "apache",
  11289. extensions: [
  11290. "opml"
  11291. ]
  11292. },
  11293. "text/x-org": {
  11294. compressible: true,
  11295. extensions: [
  11296. "org"
  11297. ]
  11298. },
  11299. "text/x-pascal": {
  11300. source: "apache",
  11301. extensions: [
  11302. "p",
  11303. "pas"
  11304. ]
  11305. },
  11306. "text/x-processing": {
  11307. compressible: true,
  11308. extensions: [
  11309. "pde"
  11310. ]
  11311. },
  11312. "text/x-sass": {
  11313. extensions: [
  11314. "sass"
  11315. ]
  11316. },
  11317. "text/x-scss": {
  11318. extensions: [
  11319. "scss"
  11320. ]
  11321. },
  11322. "text/x-setext": {
  11323. source: "apache",
  11324. extensions: [
  11325. "etx"
  11326. ]
  11327. },
  11328. "text/x-sfv": {
  11329. source: "apache",
  11330. extensions: [
  11331. "sfv"
  11332. ]
  11333. },
  11334. "text/x-suse-ymp": {
  11335. compressible: true,
  11336. extensions: [
  11337. "ymp"
  11338. ]
  11339. },
  11340. "text/x-uuencode": {
  11341. source: "apache",
  11342. extensions: [
  11343. "uu"
  11344. ]
  11345. },
  11346. "text/x-vcalendar": {
  11347. source: "apache",
  11348. extensions: [
  11349. "vcs"
  11350. ]
  11351. },
  11352. "text/x-vcard": {
  11353. source: "apache",
  11354. extensions: [
  11355. "vcf"
  11356. ]
  11357. },
  11358. "text/xml": {
  11359. source: "iana",
  11360. compressible: true,
  11361. extensions: [
  11362. "xml"
  11363. ]
  11364. },
  11365. "text/xml-external-parsed-entity": {
  11366. source: "iana"
  11367. },
  11368. "text/yaml": {
  11369. extensions: [
  11370. "yaml",
  11371. "yml"
  11372. ]
  11373. },
  11374. "video/1d-interleaved-parityfec": {
  11375. source: "iana"
  11376. },
  11377. "video/3gpp": {
  11378. source: "iana",
  11379. extensions: [
  11380. "3gp",
  11381. "3gpp"
  11382. ]
  11383. },
  11384. "video/3gpp-tt": {
  11385. source: "iana"
  11386. },
  11387. "video/3gpp2": {
  11388. source: "iana",
  11389. extensions: [
  11390. "3g2"
  11391. ]
  11392. },
  11393. "video/av1": {
  11394. source: "iana"
  11395. },
  11396. "video/bmpeg": {
  11397. source: "iana"
  11398. },
  11399. "video/bt656": {
  11400. source: "iana"
  11401. },
  11402. "video/celb": {
  11403. source: "iana"
  11404. },
  11405. "video/dv": {
  11406. source: "iana"
  11407. },
  11408. "video/encaprtp": {
  11409. source: "iana"
  11410. },
  11411. "video/flexfec": {
  11412. source: "iana"
  11413. },
  11414. "video/h261": {
  11415. source: "iana",
  11416. extensions: [
  11417. "h261"
  11418. ]
  11419. },
  11420. "video/h263": {
  11421. source: "iana",
  11422. extensions: [
  11423. "h263"
  11424. ]
  11425. },
  11426. "video/h263-1998": {
  11427. source: "iana"
  11428. },
  11429. "video/h263-2000": {
  11430. source: "iana"
  11431. },
  11432. "video/h264": {
  11433. source: "iana",
  11434. extensions: [
  11435. "h264"
  11436. ]
  11437. },
  11438. "video/h264-rcdo": {
  11439. source: "iana"
  11440. },
  11441. "video/h264-svc": {
  11442. source: "iana"
  11443. },
  11444. "video/h265": {
  11445. source: "iana"
  11446. },
  11447. "video/iso.segment": {
  11448. source: "iana",
  11449. extensions: [
  11450. "m4s"
  11451. ]
  11452. },
  11453. "video/jpeg": {
  11454. source: "iana",
  11455. extensions: [
  11456. "jpgv"
  11457. ]
  11458. },
  11459. "video/jpeg2000": {
  11460. source: "iana"
  11461. },
  11462. "video/jpm": {
  11463. source: "apache",
  11464. extensions: [
  11465. "jpm",
  11466. "jpgm"
  11467. ]
  11468. },
  11469. "video/mj2": {
  11470. source: "iana",
  11471. extensions: [
  11472. "mj2",
  11473. "mjp2"
  11474. ]
  11475. },
  11476. "video/mp1s": {
  11477. source: "iana"
  11478. },
  11479. "video/mp2p": {
  11480. source: "iana"
  11481. },
  11482. "video/mp2t": {
  11483. source: "iana",
  11484. extensions: [
  11485. "ts"
  11486. ]
  11487. },
  11488. "video/mp4": {
  11489. source: "iana",
  11490. compressible: false,
  11491. extensions: [
  11492. "mp4",
  11493. "mp4v",
  11494. "mpg4"
  11495. ]
  11496. },
  11497. "video/mp4v-es": {
  11498. source: "iana"
  11499. },
  11500. "video/mpeg": {
  11501. source: "iana",
  11502. compressible: false,
  11503. extensions: [
  11504. "mpeg",
  11505. "mpg",
  11506. "mpe",
  11507. "m1v",
  11508. "m2v"
  11509. ]
  11510. },
  11511. "video/mpeg4-generic": {
  11512. source: "iana"
  11513. },
  11514. "video/mpv": {
  11515. source: "iana"
  11516. },
  11517. "video/nv": {
  11518. source: "iana"
  11519. },
  11520. "video/ogg": {
  11521. source: "iana",
  11522. compressible: false,
  11523. extensions: [
  11524. "ogv"
  11525. ]
  11526. },
  11527. "video/parityfec": {
  11528. source: "iana"
  11529. },
  11530. "video/pointer": {
  11531. source: "iana"
  11532. },
  11533. "video/quicktime": {
  11534. source: "iana",
  11535. compressible: false,
  11536. extensions: [
  11537. "qt",
  11538. "mov"
  11539. ]
  11540. },
  11541. "video/raptorfec": {
  11542. source: "iana"
  11543. },
  11544. "video/raw": {
  11545. source: "iana"
  11546. },
  11547. "video/rtp-enc-aescm128": {
  11548. source: "iana"
  11549. },
  11550. "video/rtploopback": {
  11551. source: "iana"
  11552. },
  11553. "video/rtx": {
  11554. source: "iana"
  11555. },
  11556. "video/scip": {
  11557. source: "iana"
  11558. },
  11559. "video/smpte291": {
  11560. source: "iana"
  11561. },
  11562. "video/smpte292m": {
  11563. source: "iana"
  11564. },
  11565. "video/ulpfec": {
  11566. source: "iana"
  11567. },
  11568. "video/vc1": {
  11569. source: "iana"
  11570. },
  11571. "video/vc2": {
  11572. source: "iana"
  11573. },
  11574. "video/vnd.cctv": {
  11575. source: "iana"
  11576. },
  11577. "video/vnd.dece.hd": {
  11578. source: "iana",
  11579. extensions: [
  11580. "uvh",
  11581. "uvvh"
  11582. ]
  11583. },
  11584. "video/vnd.dece.mobile": {
  11585. source: "iana",
  11586. extensions: [
  11587. "uvm",
  11588. "uvvm"
  11589. ]
  11590. },
  11591. "video/vnd.dece.mp4": {
  11592. source: "iana"
  11593. },
  11594. "video/vnd.dece.pd": {
  11595. source: "iana",
  11596. extensions: [
  11597. "uvp",
  11598. "uvvp"
  11599. ]
  11600. },
  11601. "video/vnd.dece.sd": {
  11602. source: "iana",
  11603. extensions: [
  11604. "uvs",
  11605. "uvvs"
  11606. ]
  11607. },
  11608. "video/vnd.dece.video": {
  11609. source: "iana",
  11610. extensions: [
  11611. "uvv",
  11612. "uvvv"
  11613. ]
  11614. },
  11615. "video/vnd.directv.mpeg": {
  11616. source: "iana"
  11617. },
  11618. "video/vnd.directv.mpeg-tts": {
  11619. source: "iana"
  11620. },
  11621. "video/vnd.dlna.mpeg-tts": {
  11622. source: "iana"
  11623. },
  11624. "video/vnd.dvb.file": {
  11625. source: "iana",
  11626. extensions: [
  11627. "dvb"
  11628. ]
  11629. },
  11630. "video/vnd.fvt": {
  11631. source: "iana",
  11632. extensions: [
  11633. "fvt"
  11634. ]
  11635. },
  11636. "video/vnd.hns.video": {
  11637. source: "iana"
  11638. },
  11639. "video/vnd.iptvforum.1dparityfec-1010": {
  11640. source: "iana"
  11641. },
  11642. "video/vnd.iptvforum.1dparityfec-2005": {
  11643. source: "iana"
  11644. },
  11645. "video/vnd.iptvforum.2dparityfec-1010": {
  11646. source: "iana"
  11647. },
  11648. "video/vnd.iptvforum.2dparityfec-2005": {
  11649. source: "iana"
  11650. },
  11651. "video/vnd.iptvforum.ttsavc": {
  11652. source: "iana"
  11653. },
  11654. "video/vnd.iptvforum.ttsmpeg2": {
  11655. source: "iana"
  11656. },
  11657. "video/vnd.motorola.video": {
  11658. source: "iana"
  11659. },
  11660. "video/vnd.motorola.videop": {
  11661. source: "iana"
  11662. },
  11663. "video/vnd.mpegurl": {
  11664. source: "iana",
  11665. extensions: [
  11666. "mxu",
  11667. "m4u"
  11668. ]
  11669. },
  11670. "video/vnd.ms-playready.media.pyv": {
  11671. source: "iana",
  11672. extensions: [
  11673. "pyv"
  11674. ]
  11675. },
  11676. "video/vnd.nokia.interleaved-multimedia": {
  11677. source: "iana"
  11678. },
  11679. "video/vnd.nokia.mp4vr": {
  11680. source: "iana"
  11681. },
  11682. "video/vnd.nokia.videovoip": {
  11683. source: "iana"
  11684. },
  11685. "video/vnd.objectvideo": {
  11686. source: "iana"
  11687. },
  11688. "video/vnd.radgamettools.bink": {
  11689. source: "iana"
  11690. },
  11691. "video/vnd.radgamettools.smacker": {
  11692. source: "iana"
  11693. },
  11694. "video/vnd.sealed.mpeg1": {
  11695. source: "iana"
  11696. },
  11697. "video/vnd.sealed.mpeg4": {
  11698. source: "iana"
  11699. },
  11700. "video/vnd.sealed.swf": {
  11701. source: "iana"
  11702. },
  11703. "video/vnd.sealedmedia.softseal.mov": {
  11704. source: "iana"
  11705. },
  11706. "video/vnd.uvvu.mp4": {
  11707. source: "iana",
  11708. extensions: [
  11709. "uvu",
  11710. "uvvu"
  11711. ]
  11712. },
  11713. "video/vnd.vivo": {
  11714. source: "iana",
  11715. extensions: [
  11716. "viv"
  11717. ]
  11718. },
  11719. "video/vnd.youtube.yt": {
  11720. source: "iana"
  11721. },
  11722. "video/vp8": {
  11723. source: "iana"
  11724. },
  11725. "video/webm": {
  11726. source: "apache",
  11727. compressible: false,
  11728. extensions: [
  11729. "webm"
  11730. ]
  11731. },
  11732. "video/x-f4v": {
  11733. source: "apache",
  11734. extensions: [
  11735. "f4v"
  11736. ]
  11737. },
  11738. "video/x-fli": {
  11739. source: "apache",
  11740. extensions: [
  11741. "fli"
  11742. ]
  11743. },
  11744. "video/x-flv": {
  11745. source: "apache",
  11746. compressible: false,
  11747. extensions: [
  11748. "flv"
  11749. ]
  11750. },
  11751. "video/x-m4v": {
  11752. source: "apache",
  11753. extensions: [
  11754. "m4v"
  11755. ]
  11756. },
  11757. "video/x-matroska": {
  11758. source: "apache",
  11759. compressible: false,
  11760. extensions: [
  11761. "mkv",
  11762. "mk3d",
  11763. "mks"
  11764. ]
  11765. },
  11766. "video/x-mng": {
  11767. source: "apache",
  11768. extensions: [
  11769. "mng"
  11770. ]
  11771. },
  11772. "video/x-ms-asf": {
  11773. source: "apache",
  11774. extensions: [
  11775. "asf",
  11776. "asx"
  11777. ]
  11778. },
  11779. "video/x-ms-vob": {
  11780. source: "apache",
  11781. extensions: [
  11782. "vob"
  11783. ]
  11784. },
  11785. "video/x-ms-wm": {
  11786. source: "apache",
  11787. extensions: [
  11788. "wm"
  11789. ]
  11790. },
  11791. "video/x-ms-wmv": {
  11792. source: "apache",
  11793. compressible: false,
  11794. extensions: [
  11795. "wmv"
  11796. ]
  11797. },
  11798. "video/x-ms-wmx": {
  11799. source: "apache",
  11800. extensions: [
  11801. "wmx"
  11802. ]
  11803. },
  11804. "video/x-ms-wvx": {
  11805. source: "apache",
  11806. extensions: [
  11807. "wvx"
  11808. ]
  11809. },
  11810. "video/x-msvideo": {
  11811. source: "apache",
  11812. extensions: [
  11813. "avi"
  11814. ]
  11815. },
  11816. "video/x-sgi-movie": {
  11817. source: "apache",
  11818. extensions: [
  11819. "movie"
  11820. ]
  11821. },
  11822. "video/x-smv": {
  11823. source: "apache",
  11824. extensions: [
  11825. "smv"
  11826. ]
  11827. },
  11828. "x-conference/x-cooltalk": {
  11829. source: "apache",
  11830. extensions: [
  11831. "ice"
  11832. ]
  11833. },
  11834. "x-shader/x-fragment": {
  11835. compressible: true
  11836. },
  11837. "x-shader/x-vertex": {
  11838. compressible: true
  11839. }
  11840. };
  11841. /*!
  11842. * mime-db
  11843. * Copyright(c) 2014 Jonathan Ong
  11844. * MIT Licensed
  11845. */
  11846. /**
  11847. * Module exports.
  11848. */
  11849. var mimeDb = require$$0;
  11850. /*!
  11851. * mime-types
  11852. * Copyright(c) 2014 Jonathan Ong
  11853. * Copyright(c) 2015 Douglas Christopher Wilson
  11854. * MIT Licensed
  11855. */
  11856. var mimeTypes = build.createCommonjsModule(function (module, exports) {
  11857. /**
  11858. * Module dependencies.
  11859. * @private
  11860. */
  11861. var extname = path__default.extname;
  11862. /**
  11863. * Module variables.
  11864. * @private
  11865. */
  11866. var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
  11867. var TEXT_TYPE_REGEXP = /^text\//i;
  11868. /**
  11869. * Module exports.
  11870. * @public
  11871. */
  11872. exports.charset = charset;
  11873. exports.charsets = { lookup: charset };
  11874. exports.contentType = contentType;
  11875. exports.extension = extension;
  11876. exports.extensions = Object.create(null);
  11877. exports.lookup = lookup;
  11878. exports.types = Object.create(null);
  11879. // Populate the extensions/types maps
  11880. populateMaps(exports.extensions, exports.types);
  11881. /**
  11882. * Get the default charset for a MIME type.
  11883. *
  11884. * @param {string} type
  11885. * @return {boolean|string}
  11886. */
  11887. function charset (type) {
  11888. if (!type || typeof type !== 'string') {
  11889. return false
  11890. }
  11891. // TODO: use media-typer
  11892. var match = EXTRACT_TYPE_REGEXP.exec(type);
  11893. var mime = match && mimeDb[match[1].toLowerCase()];
  11894. if (mime && mime.charset) {
  11895. return mime.charset
  11896. }
  11897. // default text/* to utf-8
  11898. if (match && TEXT_TYPE_REGEXP.test(match[1])) {
  11899. return 'UTF-8'
  11900. }
  11901. return false
  11902. }
  11903. /**
  11904. * Create a full Content-Type header given a MIME type or extension.
  11905. *
  11906. * @param {string} str
  11907. * @return {boolean|string}
  11908. */
  11909. function contentType (str) {
  11910. // TODO: should this even be in this module?
  11911. if (!str || typeof str !== 'string') {
  11912. return false
  11913. }
  11914. var mime = str.indexOf('/') === -1
  11915. ? exports.lookup(str)
  11916. : str;
  11917. if (!mime) {
  11918. return false
  11919. }
  11920. // TODO: use content-type or other module
  11921. if (mime.indexOf('charset') === -1) {
  11922. var charset = exports.charset(mime);
  11923. if (charset) mime += '; charset=' + charset.toLowerCase();
  11924. }
  11925. return mime
  11926. }
  11927. /**
  11928. * Get the default extension for a MIME type.
  11929. *
  11930. * @param {string} type
  11931. * @return {boolean|string}
  11932. */
  11933. function extension (type) {
  11934. if (!type || typeof type !== 'string') {
  11935. return false
  11936. }
  11937. // TODO: use media-typer
  11938. var match = EXTRACT_TYPE_REGEXP.exec(type);
  11939. // get extensions
  11940. var exts = match && exports.extensions[match[1].toLowerCase()];
  11941. if (!exts || !exts.length) {
  11942. return false
  11943. }
  11944. return exts[0]
  11945. }
  11946. /**
  11947. * Lookup the MIME type for a file path/extension.
  11948. *
  11949. * @param {string} path
  11950. * @return {boolean|string}
  11951. */
  11952. function lookup (path) {
  11953. if (!path || typeof path !== 'string') {
  11954. return false
  11955. }
  11956. // get the extension ("ext" or ".ext" or full path)
  11957. var extension = extname('x.' + path)
  11958. .toLowerCase()
  11959. .substr(1);
  11960. if (!extension) {
  11961. return false
  11962. }
  11963. return exports.types[extension] || false
  11964. }
  11965. /**
  11966. * Populate the extensions and types maps.
  11967. * @private
  11968. */
  11969. function populateMaps (extensions, types) {
  11970. // source preference (least -> most)
  11971. var preference = ['nginx', 'apache', undefined, 'iana'];
  11972. Object.keys(mimeDb).forEach(function forEachMimeType (type) {
  11973. var mime = mimeDb[type];
  11974. var exts = mime.extensions;
  11975. if (!exts || !exts.length) {
  11976. return
  11977. }
  11978. // mime -> extensions
  11979. extensions[type] = exts;
  11980. // extension -> mime
  11981. for (var i = 0; i < exts.length; i++) {
  11982. var extension = exts[i];
  11983. if (types[extension]) {
  11984. var from = preference.indexOf(mimeDb[types[extension]].source);
  11985. var to = preference.indexOf(mime.source);
  11986. if (types[extension] !== 'application/octet-stream' &&
  11987. (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
  11988. // skip the remapping
  11989. continue
  11990. }
  11991. }
  11992. // set the extension -> mime
  11993. types[extension] = type;
  11994. }
  11995. });
  11996. }
  11997. });
  11998. /*!
  11999. * accepts
  12000. * Copyright(c) 2014 Jonathan Ong
  12001. * Copyright(c) 2015 Douglas Christopher Wilson
  12002. * MIT Licensed
  12003. */
  12004. /**
  12005. * Module dependencies.
  12006. * @private
  12007. */
  12008. /**
  12009. * Module exports.
  12010. * @public
  12011. */
  12012. var accepts = Accepts;
  12013. /**
  12014. * Create a new Accepts object for the given req.
  12015. *
  12016. * @param {object} req
  12017. * @public
  12018. */
  12019. function Accepts (req) {
  12020. if (!(this instanceof Accepts)) {
  12021. return new Accepts(req)
  12022. }
  12023. this.headers = req.headers;
  12024. this.negotiator = new negotiator(req);
  12025. }
  12026. /**
  12027. * Check if the given `type(s)` is acceptable, returning
  12028. * the best match when true, otherwise `undefined`, in which
  12029. * case you should respond with 406 "Not Acceptable".
  12030. *
  12031. * The `type` value may be a single mime type string
  12032. * such as "application/json", the extension name
  12033. * such as "json" or an array `["json", "html", "text/plain"]`. When a list
  12034. * or array is given the _best_ match, if any is returned.
  12035. *
  12036. * Examples:
  12037. *
  12038. * // Accept: text/html
  12039. * this.types('html');
  12040. * // => "html"
  12041. *
  12042. * // Accept: text/*, application/json
  12043. * this.types('html');
  12044. * // => "html"
  12045. * this.types('text/html');
  12046. * // => "text/html"
  12047. * this.types('json', 'text');
  12048. * // => "json"
  12049. * this.types('application/json');
  12050. * // => "application/json"
  12051. *
  12052. * // Accept: text/*, application/json
  12053. * this.types('image/png');
  12054. * this.types('png');
  12055. * // => undefined
  12056. *
  12057. * // Accept: text/*;q=.5, application/json
  12058. * this.types(['html', 'json']);
  12059. * this.types('html', 'json');
  12060. * // => "json"
  12061. *
  12062. * @param {String|Array} types...
  12063. * @return {String|Array|Boolean}
  12064. * @public
  12065. */
  12066. Accepts.prototype.type =
  12067. Accepts.prototype.types = function (types_) {
  12068. var types = types_;
  12069. // support flattened arguments
  12070. if (types && !Array.isArray(types)) {
  12071. types = new Array(arguments.length);
  12072. for (var i = 0; i < types.length; i++) {
  12073. types[i] = arguments[i];
  12074. }
  12075. }
  12076. // no types, return all requested types
  12077. if (!types || types.length === 0) {
  12078. return this.negotiator.mediaTypes()
  12079. }
  12080. // no accept header, return first given type
  12081. if (!this.headers.accept) {
  12082. return types[0]
  12083. }
  12084. var mimes = types.map(extToMime);
  12085. var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
  12086. var first = accepts[0];
  12087. return first
  12088. ? types[mimes.indexOf(first)]
  12089. : false
  12090. };
  12091. /**
  12092. * Return accepted encodings or best fit based on `encodings`.
  12093. *
  12094. * Given `Accept-Encoding: gzip, deflate`
  12095. * an array sorted by quality is returned:
  12096. *
  12097. * ['gzip', 'deflate']
  12098. *
  12099. * @param {String|Array} encodings...
  12100. * @return {String|Array}
  12101. * @public
  12102. */
  12103. Accepts.prototype.encoding =
  12104. Accepts.prototype.encodings = function (encodings_) {
  12105. var encodings = encodings_;
  12106. // support flattened arguments
  12107. if (encodings && !Array.isArray(encodings)) {
  12108. encodings = new Array(arguments.length);
  12109. for (var i = 0; i < encodings.length; i++) {
  12110. encodings[i] = arguments[i];
  12111. }
  12112. }
  12113. // no encodings, return all requested encodings
  12114. if (!encodings || encodings.length === 0) {
  12115. return this.negotiator.encodings()
  12116. }
  12117. return this.negotiator.encodings(encodings)[0] || false
  12118. };
  12119. /**
  12120. * Return accepted charsets or best fit based on `charsets`.
  12121. *
  12122. * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
  12123. * an array sorted by quality is returned:
  12124. *
  12125. * ['utf-8', 'utf-7', 'iso-8859-1']
  12126. *
  12127. * @param {String|Array} charsets...
  12128. * @return {String|Array}
  12129. * @public
  12130. */
  12131. Accepts.prototype.charset =
  12132. Accepts.prototype.charsets = function (charsets_) {
  12133. var charsets = charsets_;
  12134. // support flattened arguments
  12135. if (charsets && !Array.isArray(charsets)) {
  12136. charsets = new Array(arguments.length);
  12137. for (var i = 0; i < charsets.length; i++) {
  12138. charsets[i] = arguments[i];
  12139. }
  12140. }
  12141. // no charsets, return all requested charsets
  12142. if (!charsets || charsets.length === 0) {
  12143. return this.negotiator.charsets()
  12144. }
  12145. return this.negotiator.charsets(charsets)[0] || false
  12146. };
  12147. /**
  12148. * Return accepted languages or best fit based on `langs`.
  12149. *
  12150. * Given `Accept-Language: en;q=0.8, es, pt`
  12151. * an array sorted by quality is returned:
  12152. *
  12153. * ['es', 'pt', 'en']
  12154. *
  12155. * @param {String|Array} langs...
  12156. * @return {Array|String}
  12157. * @public
  12158. */
  12159. Accepts.prototype.lang =
  12160. Accepts.prototype.langs =
  12161. Accepts.prototype.language =
  12162. Accepts.prototype.languages = function (languages_) {
  12163. var languages = languages_;
  12164. // support flattened arguments
  12165. if (languages && !Array.isArray(languages)) {
  12166. languages = new Array(arguments.length);
  12167. for (var i = 0; i < languages.length; i++) {
  12168. languages[i] = arguments[i];
  12169. }
  12170. }
  12171. // no languages, return all requested languages
  12172. if (!languages || languages.length === 0) {
  12173. return this.negotiator.languages()
  12174. }
  12175. return this.negotiator.languages(languages)[0] || false
  12176. };
  12177. /**
  12178. * Convert extnames to mime.
  12179. *
  12180. * @param {String} type
  12181. * @return {String}
  12182. * @private
  12183. */
  12184. function extToMime (type) {
  12185. return type.indexOf('/') === -1
  12186. ? mimeTypes.lookup(type)
  12187. : type
  12188. }
  12189. /**
  12190. * Check if mime is valid.
  12191. *
  12192. * @param {String} type
  12193. * @return {String}
  12194. * @private
  12195. */
  12196. function validMime (type) {
  12197. return typeof type === 'string'
  12198. }
  12199. /*!
  12200. * bytes
  12201. * Copyright(c) 2012-2014 TJ Holowaychuk
  12202. * Copyright(c) 2015 Jed Watson
  12203. * MIT Licensed
  12204. */
  12205. /**
  12206. * Module exports.
  12207. * @public
  12208. */
  12209. var bytes_1 = bytes;
  12210. var format_1 = format;
  12211. var parse_1 = parse;
  12212. /**
  12213. * Module variables.
  12214. * @private
  12215. */
  12216. var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
  12217. var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
  12218. var map = {
  12219. b: 1,
  12220. kb: 1 << 10,
  12221. mb: 1 << 20,
  12222. gb: 1 << 30,
  12223. tb: ((1 << 30) * 1024)
  12224. };
  12225. var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
  12226. /**
  12227. * Convert the given value in bytes into a string or parse to string to an integer in bytes.
  12228. *
  12229. * @param {string|number} value
  12230. * @param {{
  12231. * case: [string],
  12232. * decimalPlaces: [number]
  12233. * fixedDecimals: [boolean]
  12234. * thousandsSeparator: [string]
  12235. * unitSeparator: [string]
  12236. * }} [options] bytes options.
  12237. *
  12238. * @returns {string|number|null}
  12239. */
  12240. function bytes(value, options) {
  12241. if (typeof value === 'string') {
  12242. return parse(value);
  12243. }
  12244. if (typeof value === 'number') {
  12245. return format(value, options);
  12246. }
  12247. return null;
  12248. }
  12249. /**
  12250. * Format the given value in bytes into a string.
  12251. *
  12252. * If the value is negative, it is kept as such. If it is a float,
  12253. * it is rounded.
  12254. *
  12255. * @param {number} value
  12256. * @param {object} [options]
  12257. * @param {number} [options.decimalPlaces=2]
  12258. * @param {number} [options.fixedDecimals=false]
  12259. * @param {string} [options.thousandsSeparator=]
  12260. * @param {string} [options.unit=]
  12261. * @param {string} [options.unitSeparator=]
  12262. *
  12263. * @returns {string|null}
  12264. * @public
  12265. */
  12266. function format(value, options) {
  12267. if (!Number.isFinite(value)) {
  12268. return null;
  12269. }
  12270. var mag = Math.abs(value);
  12271. var thousandsSeparator = (options && options.thousandsSeparator) || '';
  12272. var unitSeparator = (options && options.unitSeparator) || '';
  12273. var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;
  12274. var fixedDecimals = Boolean(options && options.fixedDecimals);
  12275. var unit = (options && options.unit) || '';
  12276. if (!unit || !map[unit.toLowerCase()]) {
  12277. if (mag >= map.tb) {
  12278. unit = 'TB';
  12279. } else if (mag >= map.gb) {
  12280. unit = 'GB';
  12281. } else if (mag >= map.mb) {
  12282. unit = 'MB';
  12283. } else if (mag >= map.kb) {
  12284. unit = 'KB';
  12285. } else {
  12286. unit = 'B';
  12287. }
  12288. }
  12289. var val = value / map[unit.toLowerCase()];
  12290. var str = val.toFixed(decimalPlaces);
  12291. if (!fixedDecimals) {
  12292. str = str.replace(formatDecimalsRegExp, '$1');
  12293. }
  12294. if (thousandsSeparator) {
  12295. str = str.replace(formatThousandsRegExp, thousandsSeparator);
  12296. }
  12297. return str + unitSeparator + unit;
  12298. }
  12299. /**
  12300. * Parse the string value into an integer in bytes.
  12301. *
  12302. * If no unit is given, it is assumed the value is in bytes.
  12303. *
  12304. * @param {number|string} val
  12305. *
  12306. * @returns {number|null}
  12307. * @public
  12308. */
  12309. function parse(val) {
  12310. if (typeof val === 'number' && !isNaN(val)) {
  12311. return val;
  12312. }
  12313. if (typeof val !== 'string') {
  12314. return null;
  12315. }
  12316. // Test if the string passed is valid
  12317. var results = parseRegExp.exec(val);
  12318. var floatValue;
  12319. var unit = 'b';
  12320. if (!results) {
  12321. // Nothing could be extracted from the given string
  12322. floatValue = parseInt(val, 10);
  12323. unit = 'b';
  12324. } else {
  12325. // Retrieve the value and the unit
  12326. floatValue = parseFloat(results[1]);
  12327. unit = results[4].toLowerCase();
  12328. }
  12329. return Math.floor(map[unit] * floatValue);
  12330. }
  12331. bytes_1.format = format_1;
  12332. bytes_1.parse = parse_1;
  12333. /*!
  12334. * compressible
  12335. * Copyright(c) 2013 Jonathan Ong
  12336. * Copyright(c) 2014 Jeremiah Senkpiel
  12337. * Copyright(c) 2015 Douglas Christopher Wilson
  12338. * MIT Licensed
  12339. */
  12340. /**
  12341. * Module dependencies.
  12342. * @private
  12343. */
  12344. /**
  12345. * Module variables.
  12346. * @private
  12347. */
  12348. var COMPRESSIBLE_TYPE_REGEXP = /^text\/|\+(?:json|text|xml)$/i;
  12349. var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
  12350. /**
  12351. * Module exports.
  12352. * @public
  12353. */
  12354. var compressible_1 = compressible;
  12355. /**
  12356. * Checks if a type is compressible.
  12357. *
  12358. * @param {string} type
  12359. * @return {Boolean} compressible
  12360. * @public
  12361. */
  12362. function compressible (type) {
  12363. if (!type || typeof type !== 'string') {
  12364. return false
  12365. }
  12366. // strip parameters
  12367. var match = EXTRACT_TYPE_REGEXP.exec(type);
  12368. var mime = match && match[1].toLowerCase();
  12369. var data = mimeDb[mime];
  12370. // return database information
  12371. if (data && data.compressible !== undefined) {
  12372. return data.compressible
  12373. }
  12374. // fallback to regexp or unknown
  12375. return COMPRESSIBLE_TYPE_REGEXP.test(mime) || undefined
  12376. }
  12377. /**
  12378. * Helpers.
  12379. */
  12380. var s = 1000;
  12381. var m = s * 60;
  12382. var h = m * 60;
  12383. var d = h * 24;
  12384. var y = d * 365.25;
  12385. /**
  12386. * Parse or format the given `val`.
  12387. *
  12388. * Options:
  12389. *
  12390. * - `long` verbose formatting [false]
  12391. *
  12392. * @param {String|Number} val
  12393. * @param {Object} [options]
  12394. * @throws {Error} throw an error if val is not a non-empty string or a number
  12395. * @return {String|Number}
  12396. * @api public
  12397. */
  12398. var ms = function(val, options) {
  12399. options = options || {};
  12400. var type = typeof val;
  12401. if (type === 'string' && val.length > 0) {
  12402. return parse$1(val);
  12403. } else if (type === 'number' && isNaN(val) === false) {
  12404. return options.long ? fmtLong(val) : fmtShort(val);
  12405. }
  12406. throw new Error(
  12407. 'val is not a non-empty string or a valid number. val=' +
  12408. JSON.stringify(val)
  12409. );
  12410. };
  12411. /**
  12412. * Parse the given `str` and return milliseconds.
  12413. *
  12414. * @param {String} str
  12415. * @return {Number}
  12416. * @api private
  12417. */
  12418. function parse$1(str) {
  12419. str = String(str);
  12420. if (str.length > 100) {
  12421. return;
  12422. }
  12423. var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
  12424. str
  12425. );
  12426. if (!match) {
  12427. return;
  12428. }
  12429. var n = parseFloat(match[1]);
  12430. var type = (match[2] || 'ms').toLowerCase();
  12431. switch (type) {
  12432. case 'years':
  12433. case 'year':
  12434. case 'yrs':
  12435. case 'yr':
  12436. case 'y':
  12437. return n * y;
  12438. case 'days':
  12439. case 'day':
  12440. case 'd':
  12441. return n * d;
  12442. case 'hours':
  12443. case 'hour':
  12444. case 'hrs':
  12445. case 'hr':
  12446. case 'h':
  12447. return n * h;
  12448. case 'minutes':
  12449. case 'minute':
  12450. case 'mins':
  12451. case 'min':
  12452. case 'm':
  12453. return n * m;
  12454. case 'seconds':
  12455. case 'second':
  12456. case 'secs':
  12457. case 'sec':
  12458. case 's':
  12459. return n * s;
  12460. case 'milliseconds':
  12461. case 'millisecond':
  12462. case 'msecs':
  12463. case 'msec':
  12464. case 'ms':
  12465. return n;
  12466. default:
  12467. return undefined;
  12468. }
  12469. }
  12470. /**
  12471. * Short format for `ms`.
  12472. *
  12473. * @param {Number} ms
  12474. * @return {String}
  12475. * @api private
  12476. */
  12477. function fmtShort(ms) {
  12478. if (ms >= d) {
  12479. return Math.round(ms / d) + 'd';
  12480. }
  12481. if (ms >= h) {
  12482. return Math.round(ms / h) + 'h';
  12483. }
  12484. if (ms >= m) {
  12485. return Math.round(ms / m) + 'm';
  12486. }
  12487. if (ms >= s) {
  12488. return Math.round(ms / s) + 's';
  12489. }
  12490. return ms + 'ms';
  12491. }
  12492. /**
  12493. * Long format for `ms`.
  12494. *
  12495. * @param {Number} ms
  12496. * @return {String}
  12497. * @api private
  12498. */
  12499. function fmtLong(ms) {
  12500. return plural(ms, d, 'day') ||
  12501. plural(ms, h, 'hour') ||
  12502. plural(ms, m, 'minute') ||
  12503. plural(ms, s, 'second') ||
  12504. ms + ' ms';
  12505. }
  12506. /**
  12507. * Pluralization helper.
  12508. */
  12509. function plural(ms, n, name) {
  12510. if (ms < n) {
  12511. return;
  12512. }
  12513. if (ms < n * 1.5) {
  12514. return Math.floor(ms / n) + ' ' + name;
  12515. }
  12516. return Math.ceil(ms / n) + ' ' + name + 's';
  12517. }
  12518. var debug = build.createCommonjsModule(function (module, exports) {
  12519. /**
  12520. * This is the common logic for both the Node.js and web browser
  12521. * implementations of `debug()`.
  12522. *
  12523. * Expose `debug()` as the module.
  12524. */
  12525. exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
  12526. exports.coerce = coerce;
  12527. exports.disable = disable;
  12528. exports.enable = enable;
  12529. exports.enabled = enabled;
  12530. exports.humanize = ms;
  12531. /**
  12532. * The currently active debug mode names, and names to skip.
  12533. */
  12534. exports.names = [];
  12535. exports.skips = [];
  12536. /**
  12537. * Map of special "%n" handling functions, for the debug "format" argument.
  12538. *
  12539. * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
  12540. */
  12541. exports.formatters = {};
  12542. /**
  12543. * Previous log timestamp.
  12544. */
  12545. var prevTime;
  12546. /**
  12547. * Select a color.
  12548. * @param {String} namespace
  12549. * @return {Number}
  12550. * @api private
  12551. */
  12552. function selectColor(namespace) {
  12553. var hash = 0, i;
  12554. for (i in namespace) {
  12555. hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
  12556. hash |= 0; // Convert to 32bit integer
  12557. }
  12558. return exports.colors[Math.abs(hash) % exports.colors.length];
  12559. }
  12560. /**
  12561. * Create a debugger with the given `namespace`.
  12562. *
  12563. * @param {String} namespace
  12564. * @return {Function}
  12565. * @api public
  12566. */
  12567. function createDebug(namespace) {
  12568. function debug() {
  12569. // disabled?
  12570. if (!debug.enabled) return;
  12571. var self = debug;
  12572. // set `diff` timestamp
  12573. var curr = +new Date();
  12574. var ms = curr - (prevTime || curr);
  12575. self.diff = ms;
  12576. self.prev = prevTime;
  12577. self.curr = curr;
  12578. prevTime = curr;
  12579. // turn the `arguments` into a proper Array
  12580. var args = new Array(arguments.length);
  12581. for (var i = 0; i < args.length; i++) {
  12582. args[i] = arguments[i];
  12583. }
  12584. args[0] = exports.coerce(args[0]);
  12585. if ('string' !== typeof args[0]) {
  12586. // anything else let's inspect with %O
  12587. args.unshift('%O');
  12588. }
  12589. // apply any `formatters` transformations
  12590. var index = 0;
  12591. args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
  12592. // if we encounter an escaped % then don't increase the array index
  12593. if (match === '%%') return match;
  12594. index++;
  12595. var formatter = exports.formatters[format];
  12596. if ('function' === typeof formatter) {
  12597. var val = args[index];
  12598. match = formatter.call(self, val);
  12599. // now we need to remove `args[index]` since it's inlined in the `format`
  12600. args.splice(index, 1);
  12601. index--;
  12602. }
  12603. return match;
  12604. });
  12605. // apply env-specific formatting (colors, etc.)
  12606. exports.formatArgs.call(self, args);
  12607. var logFn = debug.log || exports.log || console.log.bind(console);
  12608. logFn.apply(self, args);
  12609. }
  12610. debug.namespace = namespace;
  12611. debug.enabled = exports.enabled(namespace);
  12612. debug.useColors = exports.useColors();
  12613. debug.color = selectColor(namespace);
  12614. // env-specific initialization logic for debug instances
  12615. if ('function' === typeof exports.init) {
  12616. exports.init(debug);
  12617. }
  12618. return debug;
  12619. }
  12620. /**
  12621. * Enables a debug mode by namespaces. This can include modes
  12622. * separated by a colon and wildcards.
  12623. *
  12624. * @param {String} namespaces
  12625. * @api public
  12626. */
  12627. function enable(namespaces) {
  12628. exports.save(namespaces);
  12629. exports.names = [];
  12630. exports.skips = [];
  12631. var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
  12632. var len = split.length;
  12633. for (var i = 0; i < len; i++) {
  12634. if (!split[i]) continue; // ignore empty strings
  12635. namespaces = split[i].replace(/\*/g, '.*?');
  12636. if (namespaces[0] === '-') {
  12637. exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
  12638. } else {
  12639. exports.names.push(new RegExp('^' + namespaces + '$'));
  12640. }
  12641. }
  12642. }
  12643. /**
  12644. * Disable debug output.
  12645. *
  12646. * @api public
  12647. */
  12648. function disable() {
  12649. exports.enable('');
  12650. }
  12651. /**
  12652. * Returns true if the given mode name is enabled, false otherwise.
  12653. *
  12654. * @param {String} name
  12655. * @return {Boolean}
  12656. * @api public
  12657. */
  12658. function enabled(name) {
  12659. var i, len;
  12660. for (i = 0, len = exports.skips.length; i < len; i++) {
  12661. if (exports.skips[i].test(name)) {
  12662. return false;
  12663. }
  12664. }
  12665. for (i = 0, len = exports.names.length; i < len; i++) {
  12666. if (exports.names[i].test(name)) {
  12667. return true;
  12668. }
  12669. }
  12670. return false;
  12671. }
  12672. /**
  12673. * Coerce `val`.
  12674. *
  12675. * @param {Mixed} val
  12676. * @return {Mixed}
  12677. * @api private
  12678. */
  12679. function coerce(val) {
  12680. if (val instanceof Error) return val.stack || val.message;
  12681. return val;
  12682. }
  12683. });
  12684. /**
  12685. * This is the web browser implementation of `debug()`.
  12686. *
  12687. * Expose `debug()` as the module.
  12688. */
  12689. var browser = build.createCommonjsModule(function (module, exports) {
  12690. exports = module.exports = debug;
  12691. exports.log = log;
  12692. exports.formatArgs = formatArgs;
  12693. exports.save = save;
  12694. exports.load = load;
  12695. exports.useColors = useColors;
  12696. exports.storage = 'undefined' != typeof chrome
  12697. && 'undefined' != typeof chrome.storage
  12698. ? chrome.storage.local
  12699. : localstorage();
  12700. /**
  12701. * Colors.
  12702. */
  12703. exports.colors = [
  12704. 'lightseagreen',
  12705. 'forestgreen',
  12706. 'goldenrod',
  12707. 'dodgerblue',
  12708. 'darkorchid',
  12709. 'crimson'
  12710. ];
  12711. /**
  12712. * Currently only WebKit-based Web Inspectors, Firefox >= v31,
  12713. * and the Firebug extension (any Firefox version) are known
  12714. * to support "%c" CSS customizations.
  12715. *
  12716. * TODO: add a `localStorage` variable to explicitly enable/disable colors
  12717. */
  12718. function useColors() {
  12719. // NB: In an Electron preload script, document will be defined but not fully
  12720. // initialized. Since we know we're in Chrome, we'll just detect this case
  12721. // explicitly
  12722. if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
  12723. return true;
  12724. }
  12725. // is webkit? http://stackoverflow.com/a/16459606/376773
  12726. // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
  12727. return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
  12728. // is firebug? http://stackoverflow.com/a/398120/376773
  12729. (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
  12730. // is firefox >= v31?
  12731. // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
  12732. (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
  12733. // double check webkit in userAgent just in case we are in a worker
  12734. (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
  12735. }
  12736. /**
  12737. * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
  12738. */
  12739. exports.formatters.j = function(v) {
  12740. try {
  12741. return JSON.stringify(v);
  12742. } catch (err) {
  12743. return '[UnexpectedJSONParseError]: ' + err.message;
  12744. }
  12745. };
  12746. /**
  12747. * Colorize log arguments if enabled.
  12748. *
  12749. * @api public
  12750. */
  12751. function formatArgs(args) {
  12752. var useColors = this.useColors;
  12753. args[0] = (useColors ? '%c' : '')
  12754. + this.namespace
  12755. + (useColors ? ' %c' : ' ')
  12756. + args[0]
  12757. + (useColors ? '%c ' : ' ')
  12758. + '+' + exports.humanize(this.diff);
  12759. if (!useColors) return;
  12760. var c = 'color: ' + this.color;
  12761. args.splice(1, 0, c, 'color: inherit');
  12762. // the final "%c" is somewhat tricky, because there could be other
  12763. // arguments passed either before or after the %c, so we need to
  12764. // figure out the correct index to insert the CSS into
  12765. var index = 0;
  12766. var lastC = 0;
  12767. args[0].replace(/%[a-zA-Z%]/g, function(match) {
  12768. if ('%%' === match) return;
  12769. index++;
  12770. if ('%c' === match) {
  12771. // we only are interested in the *last* %c
  12772. // (the user may have provided their own)
  12773. lastC = index;
  12774. }
  12775. });
  12776. args.splice(lastC, 0, c);
  12777. }
  12778. /**
  12779. * Invokes `console.log()` when available.
  12780. * No-op when `console.log` is not a "function".
  12781. *
  12782. * @api public
  12783. */
  12784. function log() {
  12785. // this hackery is required for IE8/9, where
  12786. // the `console.log` function doesn't have 'apply'
  12787. return 'object' === typeof console
  12788. && console.log
  12789. && Function.prototype.apply.call(console.log, console, arguments);
  12790. }
  12791. /**
  12792. * Save `namespaces`.
  12793. *
  12794. * @param {String} namespaces
  12795. * @api private
  12796. */
  12797. function save(namespaces) {
  12798. try {
  12799. if (null == namespaces) {
  12800. exports.storage.removeItem('debug');
  12801. } else {
  12802. exports.storage.debug = namespaces;
  12803. }
  12804. } catch(e) {}
  12805. }
  12806. /**
  12807. * Load `namespaces`.
  12808. *
  12809. * @return {String} returns the previously persisted debug modes
  12810. * @api private
  12811. */
  12812. function load() {
  12813. var r;
  12814. try {
  12815. r = exports.storage.debug;
  12816. } catch(e) {}
  12817. // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
  12818. if (!r && typeof process !== 'undefined' && 'env' in process) {
  12819. r = process.env.DEBUG;
  12820. }
  12821. return r;
  12822. }
  12823. /**
  12824. * Enable namespaces listed in `localStorage.debug` initially.
  12825. */
  12826. exports.enable(load());
  12827. /**
  12828. * Localstorage attempts to return the localstorage.
  12829. *
  12830. * This is necessary because safari throws
  12831. * when a user disables cookies/localstorage
  12832. * and you attempt to access it.
  12833. *
  12834. * @return {LocalStorage}
  12835. * @api private
  12836. */
  12837. function localstorage() {
  12838. try {
  12839. return window.localStorage;
  12840. } catch (e) {}
  12841. }
  12842. });
  12843. /**
  12844. * Module dependencies.
  12845. */
  12846. var node = build.createCommonjsModule(function (module, exports) {
  12847. /**
  12848. * This is the Node.js implementation of `debug()`.
  12849. *
  12850. * Expose `debug()` as the module.
  12851. */
  12852. exports = module.exports = debug;
  12853. exports.init = init;
  12854. exports.log = log;
  12855. exports.formatArgs = formatArgs;
  12856. exports.save = save;
  12857. exports.load = load;
  12858. exports.useColors = useColors;
  12859. /**
  12860. * Colors.
  12861. */
  12862. exports.colors = [6, 2, 3, 4, 5, 1];
  12863. /**
  12864. * Build up the default `inspectOpts` object from the environment variables.
  12865. *
  12866. * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
  12867. */
  12868. exports.inspectOpts = Object.keys(process.env).filter(function (key) {
  12869. return /^debug_/i.test(key);
  12870. }).reduce(function (obj, key) {
  12871. // camel-case
  12872. var prop = key
  12873. .substring(6)
  12874. .toLowerCase()
  12875. .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
  12876. // coerce string value into JS value
  12877. var val = process.env[key];
  12878. if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
  12879. else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
  12880. else if (val === 'null') val = null;
  12881. else val = Number(val);
  12882. obj[prop] = val;
  12883. return obj;
  12884. }, {});
  12885. /**
  12886. * The file descriptor to write the `debug()` calls to.
  12887. * Set the `DEBUG_FD` env variable to override with another value. i.e.:
  12888. *
  12889. * $ DEBUG_FD=3 node script.js 3>debug.log
  12890. */
  12891. var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
  12892. if (1 !== fd && 2 !== fd) {
  12893. util__default.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)')();
  12894. }
  12895. var stream = 1 === fd ? process.stdout :
  12896. 2 === fd ? process.stderr :
  12897. createWritableStdioStream(fd);
  12898. /**
  12899. * Is stdout a TTY? Colored output is enabled when `true`.
  12900. */
  12901. function useColors() {
  12902. return 'colors' in exports.inspectOpts
  12903. ? Boolean(exports.inspectOpts.colors)
  12904. : tty__default.isatty(fd);
  12905. }
  12906. /**
  12907. * Map %o to `util.inspect()`, all on a single line.
  12908. */
  12909. exports.formatters.o = function(v) {
  12910. this.inspectOpts.colors = this.useColors;
  12911. return util__default.inspect(v, this.inspectOpts)
  12912. .split('\n').map(function(str) {
  12913. return str.trim()
  12914. }).join(' ');
  12915. };
  12916. /**
  12917. * Map %o to `util.inspect()`, allowing multiple lines if needed.
  12918. */
  12919. exports.formatters.O = function(v) {
  12920. this.inspectOpts.colors = this.useColors;
  12921. return util__default.inspect(v, this.inspectOpts);
  12922. };
  12923. /**
  12924. * Adds ANSI color escape codes if enabled.
  12925. *
  12926. * @api public
  12927. */
  12928. function formatArgs(args) {
  12929. var name = this.namespace;
  12930. var useColors = this.useColors;
  12931. if (useColors) {
  12932. var c = this.color;
  12933. var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
  12934. args[0] = prefix + args[0].split('\n').join('\n' + prefix);
  12935. args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
  12936. } else {
  12937. args[0] = new Date().toUTCString()
  12938. + ' ' + name + ' ' + args[0];
  12939. }
  12940. }
  12941. /**
  12942. * Invokes `util.format()` with the specified arguments and writes to `stream`.
  12943. */
  12944. function log() {
  12945. return stream.write(util__default.format.apply(util__default, arguments) + '\n');
  12946. }
  12947. /**
  12948. * Save `namespaces`.
  12949. *
  12950. * @param {String} namespaces
  12951. * @api private
  12952. */
  12953. function save(namespaces) {
  12954. if (null == namespaces) {
  12955. // If you set a process.env field to null or undefined, it gets cast to the
  12956. // string 'null' or 'undefined'. Just delete instead.
  12957. delete process.env.DEBUG;
  12958. } else {
  12959. process.env.DEBUG = namespaces;
  12960. }
  12961. }
  12962. /**
  12963. * Load `namespaces`.
  12964. *
  12965. * @return {String} returns the previously persisted debug modes
  12966. * @api private
  12967. */
  12968. function load() {
  12969. return process.env.DEBUG;
  12970. }
  12971. /**
  12972. * Copied from `node/src/node.js`.
  12973. *
  12974. * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
  12975. * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
  12976. */
  12977. function createWritableStdioStream (fd) {
  12978. var stream;
  12979. var tty_wrap = process.binding('tty_wrap');
  12980. // Note stream._type is used for test-module-load-list.js
  12981. switch (tty_wrap.guessHandleType(fd)) {
  12982. case 'TTY':
  12983. stream = new tty__default.WriteStream(fd);
  12984. stream._type = 'tty';
  12985. // Hack to have stream not keep the event loop alive.
  12986. // See https://github.com/joyent/node/issues/1726
  12987. if (stream._handle && stream._handle.unref) {
  12988. stream._handle.unref();
  12989. }
  12990. break;
  12991. case 'FILE':
  12992. var fs = fs__default;
  12993. stream = new fs.SyncWriteStream(fd, { autoClose: false });
  12994. stream._type = 'fs';
  12995. break;
  12996. case 'PIPE':
  12997. case 'TCP':
  12998. var net = require$$2__default;
  12999. stream = new net.Socket({
  13000. fd: fd,
  13001. readable: false,
  13002. writable: true
  13003. });
  13004. // FIXME Should probably have an option in net.Socket to create a
  13005. // stream from an existing fd which is writable only. But for now
  13006. // we'll just add this hack and set the `readable` member to false.
  13007. // Test: ./node test/fixtures/echo.js < /etc/passwd
  13008. stream.readable = false;
  13009. stream.read = null;
  13010. stream._type = 'pipe';
  13011. // FIXME Hack to have stream not keep the event loop alive.
  13012. // See https://github.com/joyent/node/issues/1726
  13013. if (stream._handle && stream._handle.unref) {
  13014. stream._handle.unref();
  13015. }
  13016. break;
  13017. default:
  13018. // Probably an error on in uv_guess_handle()
  13019. throw new Error('Implement me. Unknown stream file type!');
  13020. }
  13021. // For supporting legacy API we put the FD here.
  13022. stream.fd = fd;
  13023. stream._isStdio = true;
  13024. return stream;
  13025. }
  13026. /**
  13027. * Init logic for `debug` instances.
  13028. *
  13029. * Create a new `inspectOpts` object in case `useColors` is set
  13030. * differently for a particular `debug` instance.
  13031. */
  13032. function init (debug) {
  13033. debug.inspectOpts = {};
  13034. var keys = Object.keys(exports.inspectOpts);
  13035. for (var i = 0; i < keys.length; i++) {
  13036. debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
  13037. }
  13038. }
  13039. /**
  13040. * Enable namespaces listed in `process.env.DEBUG` initially.
  13041. */
  13042. exports.enable(load());
  13043. });
  13044. /**
  13045. * Detect Electron renderer process, which is node, but we should
  13046. * treat as a browser.
  13047. */
  13048. var src = build.createCommonjsModule(function (module) {
  13049. if (typeof process !== 'undefined' && process.type === 'renderer') {
  13050. module.exports = browser;
  13051. } else {
  13052. module.exports = node;
  13053. }
  13054. });
  13055. /*!
  13056. * on-headers
  13057. * Copyright(c) 2014 Douglas Christopher Wilson
  13058. * MIT Licensed
  13059. */
  13060. /**
  13061. * Module exports.
  13062. * @public
  13063. */
  13064. var onHeaders_1 = onHeaders;
  13065. /**
  13066. * Create a replacement writeHead method.
  13067. *
  13068. * @param {function} prevWriteHead
  13069. * @param {function} listener
  13070. * @private
  13071. */
  13072. function createWriteHead (prevWriteHead, listener) {
  13073. var fired = false;
  13074. // return function with core name and argument list
  13075. return function writeHead (statusCode) {
  13076. // set headers from arguments
  13077. var args = setWriteHeadHeaders.apply(this, arguments);
  13078. // fire listener
  13079. if (!fired) {
  13080. fired = true;
  13081. listener.call(this);
  13082. // pass-along an updated status code
  13083. if (typeof args[0] === 'number' && this.statusCode !== args[0]) {
  13084. args[0] = this.statusCode;
  13085. args.length = 1;
  13086. }
  13087. }
  13088. return prevWriteHead.apply(this, args)
  13089. }
  13090. }
  13091. /**
  13092. * Execute a listener when a response is about to write headers.
  13093. *
  13094. * @param {object} res
  13095. * @return {function} listener
  13096. * @public
  13097. */
  13098. function onHeaders (res, listener) {
  13099. if (!res) {
  13100. throw new TypeError('argument res is required')
  13101. }
  13102. if (typeof listener !== 'function') {
  13103. throw new TypeError('argument listener must be a function')
  13104. }
  13105. res.writeHead = createWriteHead(res.writeHead, listener);
  13106. }
  13107. /**
  13108. * Set headers contained in array on the response object.
  13109. *
  13110. * @param {object} res
  13111. * @param {array} headers
  13112. * @private
  13113. */
  13114. function setHeadersFromArray (res, headers) {
  13115. for (var i = 0; i < headers.length; i++) {
  13116. res.setHeader(headers[i][0], headers[i][1]);
  13117. }
  13118. }
  13119. /**
  13120. * Set headers contained in object on the response object.
  13121. *
  13122. * @param {object} res
  13123. * @param {object} headers
  13124. * @private
  13125. */
  13126. function setHeadersFromObject (res, headers) {
  13127. var keys = Object.keys(headers);
  13128. for (var i = 0; i < keys.length; i++) {
  13129. var k = keys[i];
  13130. if (k) res.setHeader(k, headers[k]);
  13131. }
  13132. }
  13133. /**
  13134. * Set headers and other properties on the response object.
  13135. *
  13136. * @param {number} statusCode
  13137. * @private
  13138. */
  13139. function setWriteHeadHeaders (statusCode) {
  13140. var length = arguments.length;
  13141. var headerIndex = length > 1 && typeof arguments[1] === 'string'
  13142. ? 2
  13143. : 1;
  13144. var headers = length >= headerIndex + 1
  13145. ? arguments[headerIndex]
  13146. : undefined;
  13147. this.statusCode = statusCode;
  13148. if (Array.isArray(headers)) {
  13149. // handle array case
  13150. setHeadersFromArray(this, headers);
  13151. } else if (headers) {
  13152. // handle object case
  13153. setHeadersFromObject(this, headers);
  13154. }
  13155. // copy leading arguments
  13156. var args = new Array(Math.min(length, headerIndex));
  13157. for (var i = 0; i < args.length; i++) {
  13158. args[i] = arguments[i];
  13159. }
  13160. return args
  13161. }
  13162. /*!
  13163. * compression
  13164. * Copyright(c) 2010 Sencha Inc.
  13165. * Copyright(c) 2011 TJ Holowaychuk
  13166. * Copyright(c) 2014 Jonathan Ong
  13167. * Copyright(c) 2014-2015 Douglas Christopher Wilson
  13168. * MIT Licensed
  13169. */
  13170. /**
  13171. * Module dependencies.
  13172. * @private
  13173. */
  13174. var Buffer = build.safeBuffer.Buffer;
  13175. var debug$1 = src('compression');
  13176. /**
  13177. * Module exports.
  13178. */
  13179. var compression_1 = compression;
  13180. var filter = shouldCompress;
  13181. /**
  13182. * Module variables.
  13183. * @private
  13184. */
  13185. var cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/;
  13186. /**
  13187. * Compress response data with gzip / deflate.
  13188. *
  13189. * @param {Object} [options]
  13190. * @return {Function} middleware
  13191. * @public
  13192. */
  13193. function compression (options) {
  13194. var opts = options || {};
  13195. // options
  13196. var filter = opts.filter || shouldCompress;
  13197. var threshold = bytes_1.parse(opts.threshold);
  13198. if (threshold == null) {
  13199. threshold = 1024;
  13200. }
  13201. return function compression (req, res, next) {
  13202. var ended = false;
  13203. var length;
  13204. var listeners = [];
  13205. var stream;
  13206. var _end = res.end;
  13207. var _on = res.on;
  13208. var _write = res.write;
  13209. // flush
  13210. res.flush = function flush () {
  13211. if (stream) {
  13212. stream.flush();
  13213. }
  13214. };
  13215. // proxy
  13216. res.write = function write (chunk, encoding) {
  13217. if (ended) {
  13218. return false
  13219. }
  13220. if (!this._header) {
  13221. this._implicitHeader();
  13222. }
  13223. return stream
  13224. ? stream.write(toBuffer(chunk, encoding))
  13225. : _write.call(this, chunk, encoding)
  13226. };
  13227. res.end = function end (chunk, encoding) {
  13228. if (ended) {
  13229. return false
  13230. }
  13231. if (!this._header) {
  13232. // estimate the length
  13233. if (!this.getHeader('Content-Length')) {
  13234. length = chunkLength(chunk, encoding);
  13235. }
  13236. this._implicitHeader();
  13237. }
  13238. if (!stream) {
  13239. return _end.call(this, chunk, encoding)
  13240. }
  13241. // mark ended
  13242. ended = true;
  13243. // write Buffer for Node.js 0.8
  13244. return chunk
  13245. ? stream.end(toBuffer(chunk, encoding))
  13246. : stream.end()
  13247. };
  13248. res.on = function on (type, listener) {
  13249. if (!listeners || type !== 'drain') {
  13250. return _on.call(this, type, listener)
  13251. }
  13252. if (stream) {
  13253. return stream.on(type, listener)
  13254. }
  13255. // buffer listeners for future stream
  13256. listeners.push([type, listener]);
  13257. return this
  13258. };
  13259. function nocompress (msg) {
  13260. debug$1('no compression: %s', msg);
  13261. addListeners(res, _on, listeners);
  13262. listeners = null;
  13263. }
  13264. onHeaders_1(res, function onResponseHeaders () {
  13265. // determine if request is filtered
  13266. if (!filter(req, res)) {
  13267. nocompress('filtered');
  13268. return
  13269. }
  13270. // determine if the entity should be transformed
  13271. if (!shouldTransform(req, res)) {
  13272. nocompress('no transform');
  13273. return
  13274. }
  13275. // vary
  13276. build.vary_1(res, 'Accept-Encoding');
  13277. // content-length below threshold
  13278. if (Number(res.getHeader('Content-Length')) < threshold || length < threshold) {
  13279. nocompress('size below threshold');
  13280. return
  13281. }
  13282. var encoding = res.getHeader('Content-Encoding') || 'identity';
  13283. // already encoded
  13284. if (encoding !== 'identity') {
  13285. nocompress('already encoded');
  13286. return
  13287. }
  13288. // head
  13289. if (req.method === 'HEAD') {
  13290. nocompress('HEAD request');
  13291. return
  13292. }
  13293. // compression method
  13294. var accept = accepts(req);
  13295. var method = accept.encoding(['gzip', 'deflate', 'identity']);
  13296. // we really don't prefer deflate
  13297. if (method === 'deflate' && accept.encoding(['gzip'])) {
  13298. method = accept.encoding(['gzip', 'identity']);
  13299. }
  13300. // negotiation failed
  13301. if (!method || method === 'identity') {
  13302. nocompress('not acceptable');
  13303. return
  13304. }
  13305. // compression stream
  13306. debug$1('%s compression', method);
  13307. stream = method === 'gzip'
  13308. ? zlib_1__default.createGzip(opts)
  13309. : zlib_1__default.createDeflate(opts);
  13310. // add buffered listeners to stream
  13311. addListeners(stream, stream.on, listeners);
  13312. // header fields
  13313. res.setHeader('Content-Encoding', method);
  13314. res.removeHeader('Content-Length');
  13315. // compression
  13316. stream.on('data', function onStreamData (chunk) {
  13317. if (_write.call(res, chunk) === false) {
  13318. stream.pause();
  13319. }
  13320. });
  13321. stream.on('end', function onStreamEnd () {
  13322. _end.call(res);
  13323. });
  13324. _on.call(res, 'drain', function onResponseDrain () {
  13325. stream.resume();
  13326. });
  13327. });
  13328. next();
  13329. }
  13330. }
  13331. /**
  13332. * Add bufferred listeners to stream
  13333. * @private
  13334. */
  13335. function addListeners (stream, on, listeners) {
  13336. for (var i = 0; i < listeners.length; i++) {
  13337. on.apply(stream, listeners[i]);
  13338. }
  13339. }
  13340. /**
  13341. * Get the length of a given chunk
  13342. */
  13343. function chunkLength (chunk, encoding) {
  13344. if (!chunk) {
  13345. return 0
  13346. }
  13347. return !Buffer.isBuffer(chunk)
  13348. ? Buffer.byteLength(chunk, encoding)
  13349. : chunk.length
  13350. }
  13351. /**
  13352. * Default filter function.
  13353. * @private
  13354. */
  13355. function shouldCompress (req, res) {
  13356. var type = res.getHeader('Content-Type');
  13357. if (type === undefined || !compressible_1(type)) {
  13358. debug$1('%s not compressible', type);
  13359. return false
  13360. }
  13361. return true
  13362. }
  13363. /**
  13364. * Determine if the entity should be transformed.
  13365. * @private
  13366. */
  13367. function shouldTransform (req, res) {
  13368. var cacheControl = res.getHeader('Cache-Control');
  13369. // Don't compress for Cache-Control: no-transform
  13370. // https://tools.ietf.org/html/rfc7234#section-5.2.2.4
  13371. return !cacheControl ||
  13372. !cacheControlNoTransformRegExp.test(cacheControl)
  13373. }
  13374. /**
  13375. * Coerce arguments to Buffer
  13376. * @private
  13377. */
  13378. function toBuffer (chunk, encoding) {
  13379. return !Buffer.isBuffer(chunk)
  13380. ? Buffer.from(chunk, encoding)
  13381. : chunk
  13382. }
  13383. compression_1.filter = filter;
  13384. async function serve(config, port = 5000) {
  13385. const app = build.connect();
  13386. app.use(compression_1());
  13387. const distDir = path__default.resolve(config.root, config.build.outDir);
  13388. app.use(config.base, build.sirv(distDir, {
  13389. etag: true,
  13390. single: true
  13391. }));
  13392. const server = await build.resolveHttpServer(config.server, app);
  13393. const options = config.server || {};
  13394. const hostname = options.host || 'localhost';
  13395. const protocol = options.https ? 'https' : 'http';
  13396. const logger = config.logger;
  13397. const base = config.base;
  13398. server.listen(port, () => {
  13399. logger.info(build.source.cyan(`\n vite v${require('vite/package.json').version}`) +
  13400. build.source.green(` build preview server running at:\n`));
  13401. const interfaces = os__default.networkInterfaces();
  13402. Object.keys(interfaces).forEach((key) => (interfaces[key] || [])
  13403. .filter((details) => details.family === 'IPv4')
  13404. .map((detail) => {
  13405. return {
  13406. type: detail.address.includes('127.0.0.1')
  13407. ? 'Local: '
  13408. : 'Network: ',
  13409. host: detail.address.replace('127.0.0.1', hostname)
  13410. };
  13411. })
  13412. .forEach(({ type, host }) => {
  13413. const url = `${protocol}://${host}:${build.source.bold(port)}${base}`;
  13414. logger.info(` > ${type} ${build.source.cyan(url)}`);
  13415. }));
  13416. if (options.open) {
  13417. const path = typeof options.open === 'string' ? options.open : base;
  13418. build.openBrowser(`${protocol}://${hostname}:${port}${path}`, true, logger);
  13419. }
  13420. });
  13421. }
  13422. const cli = cac('vite');
  13423. /**
  13424. * removing global flags before passing as command specific sub-configs
  13425. */
  13426. function cleanOptions(options) {
  13427. const ret = { ...options };
  13428. delete ret['--'];
  13429. delete ret.debug;
  13430. delete ret.d;
  13431. delete ret.filter;
  13432. delete ret.f;
  13433. delete ret.config;
  13434. delete ret.c;
  13435. delete ret.root;
  13436. delete ret.base;
  13437. delete ret.r;
  13438. delete ret.mode;
  13439. delete ret.m;
  13440. delete ret.logLevel;
  13441. delete ret.l;
  13442. delete ret.clearScreen;
  13443. return ret;
  13444. }
  13445. cli
  13446. .option('-c, --config <file>', `[string] use specified config file`)
  13447. .option('-r, --root <path>', `[string] use specified root directory`)
  13448. .option('--base <path>', `[string] public base path (default: /)`)
  13449. .option('-l, --logLevel <level>', `[string] silent | error | warn | all`)
  13450. .option('--clearScreen', `[boolean] allow/disable clear screen when logging`)
  13451. .option('-d, --debug [feat]', `[string | boolean] show debug logs`)
  13452. .option('-f, --filter <filter>', `[string] filter debug logs`);
  13453. // dev
  13454. cli
  13455. .command('[root]') // default command
  13456. .alias('serve')
  13457. .option('--host <host>', `[string] specify hostname`)
  13458. .option('--port <port>', `[number] specify port`)
  13459. .option('--https', `[boolean] use TLS + HTTP/2`)
  13460. .option('--open [path]', `[boolean | string] open browser on startup`)
  13461. .option('--cors', `[boolean] enable CORS`)
  13462. .option('--strictPort', `[boolean] exit if specified port is already in use`)
  13463. .option('-m, --mode <mode>', `[string] set env mode`)
  13464. .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
  13465. .action(async (root, options) => {
  13466. // output structure is preserved even after bundling so require()
  13467. // is ok here
  13468. const { createServer } = await Promise.resolve().then(function () { return require('./chunks/dep-1bdbec90.js'); }).then(function (n) { return n.index$1; });
  13469. try {
  13470. const server = await createServer({
  13471. root,
  13472. base: options.base,
  13473. mode: options.mode,
  13474. configFile: options.config,
  13475. logLevel: options.logLevel,
  13476. clearScreen: options.clearScreen,
  13477. server: cleanOptions(options)
  13478. });
  13479. await server.listen();
  13480. }
  13481. catch (e) {
  13482. build.createLogger(options.logLevel).error(build.source.red(`error when starting dev server:\n${e.stack}`));
  13483. process.exit(1);
  13484. }
  13485. });
  13486. // build
  13487. cli
  13488. .command('build [root]')
  13489. .option('--target <target>', `[string] transpile target (default: 'modules')`)
  13490. .option('--outDir <dir>', `[string] output directory (default: dist)`)
  13491. .option('--assetsDir <dir>', `[string] directory under outDir to place assets in (default: _assets)`)
  13492. .option('--assetsInlineLimit <number>', `[number] static asset base64 inline threshold in bytes (default: 4096)`)
  13493. .option('--ssr [entry]', `[string] build specified entry for server-side rendering`)
  13494. .option('--sourcemap', `[boolean] output source maps for build (default: false)`)
  13495. .option('--minify [minifier]', `[boolean | "terser" | "esbuild"] enable/disable minification, ` +
  13496. `or specify minifier to use (default: terser)`)
  13497. .option('--manifest', `[boolean] emit build manifest json`)
  13498. .option('--ssrManifest', `[boolean] emit ssr manifest json`)
  13499. .option('--emptyOutDir', `[boolean] force empty outDir when it's outside of root`)
  13500. .option('-m, --mode <mode>', `[string] set env mode`)
  13501. .action(async (root, options) => {
  13502. const { build: build$1 } = await Promise.resolve().then(function () { return require('./chunks/dep-1bdbec90.js'); }).then(function (n) { return n.build$1; });
  13503. const buildOptions = cleanOptions(options);
  13504. try {
  13505. await build$1({
  13506. root,
  13507. base: options.base,
  13508. mode: options.mode,
  13509. configFile: options.config,
  13510. logLevel: options.logLevel,
  13511. clearScreen: options.clearScreen,
  13512. build: buildOptions
  13513. });
  13514. }
  13515. catch (e) {
  13516. build.createLogger(options.logLevel).error(build.source.red(`error during build:\n${e.stack}`));
  13517. process.exit(1);
  13518. }
  13519. });
  13520. // optimize
  13521. cli
  13522. .command('optimize [root]')
  13523. .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
  13524. .action(async (root, options) => {
  13525. const { optimizeDeps } = await Promise.resolve().then(function () { return require('./chunks/dep-1bdbec90.js'); }).then(function (n) { return n.index; });
  13526. try {
  13527. const config = await build.resolveConfig({
  13528. root,
  13529. base: options.base,
  13530. configFile: options.config,
  13531. logLevel: options.logLevel
  13532. }, 'build', 'development');
  13533. await optimizeDeps(config, options.force, true);
  13534. }
  13535. catch (e) {
  13536. build.createLogger(options.logLevel).error(build.source.red(`error when optimizing deps:\n${e.stack}`));
  13537. process.exit(1);
  13538. }
  13539. });
  13540. cli
  13541. .command('preview [root]')
  13542. .option('--port <port>', `[number] specify port`)
  13543. .option('--open [path]', `[boolean | string] open browser on startup`)
  13544. .action(async (root, options) => {
  13545. try {
  13546. const config = await build.resolveConfig({
  13547. root,
  13548. base: options.base,
  13549. configFile: options.config,
  13550. logLevel: options.logLevel,
  13551. server: {
  13552. open: options.open
  13553. }
  13554. }, 'serve', 'development');
  13555. await serve(config, options.port);
  13556. }
  13557. catch (e) {
  13558. build.createLogger(options.logLevel).error(build.source.red(`error when starting preview server:\n${e.stack}`));
  13559. process.exit(1);
  13560. }
  13561. });
  13562. cli.help();
  13563. cli.version(require('../../package.json').version);
  13564. cli.parse();