| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121 |
- 'use strict';
- var require$$0$1 = require('events');
- var build = require('./chunks/dep-1bdbec90.js');
- var os = require('os');
- var path = require('path');
- var tty = require('tty');
- var util = require('util');
- var fs = require('fs');
- var require$$2 = require('net');
- var zlib_1 = require('zlib');
- require('url');
- require('http');
- require('stream');
- require('resolve');
- require('module');
- require('readline');
- require('crypto');
- require('worker_threads');
- require('assert');
- require('https');
- require('tls');
- require('buffer');
- require('child_process');
- require('querystring');
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
- var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
- var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
- var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty);
- var util__default = /*#__PURE__*/_interopDefaultLegacy(util);
- var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
- var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
- var zlib_1__default = /*#__PURE__*/_interopDefaultLegacy(zlib_1);
- function toArr(any) {
- return any == null ? [] : Array.isArray(any) ? any : [any];
- }
- function toVal(out, key, val, opts) {
- var x, old=out[key], nxt=(
- !!~opts.string.indexOf(key) ? (val == null || val === true ? '' : String(val))
- : typeof val === 'boolean' ? val
- : !!~opts.boolean.indexOf(key) ? (val === 'false' ? false : val === 'true' || (out._.push((x = +val,x * 0 === 0) ? x : val),!!val))
- : (x = +val,x * 0 === 0) ? x : val
- );
- out[key] = old == null ? nxt : (Array.isArray(old) ? old.concat(nxt) : [old, nxt]);
- }
- function mri2 (args, opts) {
- args = args || [];
- opts = opts || {};
- var k, arr, arg, name, val, out={ _:[] };
- var i=0, j=0, idx=0, len=args.length;
- const alibi = opts.alias !== void 0;
- const strict = opts.unknown !== void 0;
- const defaults = opts.default !== void 0;
- opts.alias = opts.alias || {};
- opts.string = toArr(opts.string);
- opts.boolean = toArr(opts.boolean);
- if (alibi) {
- for (k in opts.alias) {
- arr = opts.alias[k] = toArr(opts.alias[k]);
- for (i=0; i < arr.length; i++) {
- (opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);
- }
- }
- }
- for (i=opts.boolean.length; i-- > 0;) {
- arr = opts.alias[opts.boolean[i]] || [];
- for (j=arr.length; j-- > 0;) opts.boolean.push(arr[j]);
- }
- for (i=opts.string.length; i-- > 0;) {
- arr = opts.alias[opts.string[i]] || [];
- for (j=arr.length; j-- > 0;) opts.string.push(arr[j]);
- }
- if (defaults) {
- for (k in opts.default) {
- name = typeof opts.default[k];
- arr = opts.alias[k] = opts.alias[k] || [];
- if (opts[name] !== void 0) {
- opts[name].push(k);
- for (i=0; i < arr.length; i++) {
- opts[name].push(arr[i]);
- }
- }
- }
- }
- const keys = strict ? Object.keys(opts.alias) : [];
- for (i=0; i < len; i++) {
- arg = args[i];
- if (arg === '--') {
- out._ = out._.concat(args.slice(++i));
- break;
- }
- for (j=0; j < arg.length; j++) {
- if (arg.charCodeAt(j) !== 45) break; // "-"
- }
- if (j === 0) {
- out._.push(arg);
- } else if (arg.substring(j, j + 3) === 'no-') {
- name = arg.substring(j + 3);
- if (strict && !~keys.indexOf(name)) {
- return opts.unknown(arg);
- }
- out[name] = false;
- } else {
- for (idx=j+1; idx < arg.length; idx++) {
- if (arg.charCodeAt(idx) === 61) break; // "="
- }
- name = arg.substring(j, idx);
- val = arg.substring(++idx) || (i+1 === len || (''+args[i+1]).charCodeAt(0) === 45 || args[++i]);
- arr = (j === 2 ? [name] : name);
- for (idx=0; idx < arr.length; idx++) {
- name = arr[idx];
- if (strict && !~keys.indexOf(name)) return opts.unknown('-'.repeat(j) + name);
- toVal(out, name, (idx + 1 < arr.length) || val, opts);
- }
- }
- }
- if (defaults) {
- for (k in opts.default) {
- if (out[k] === void 0) {
- out[k] = opts.default[k];
- }
- }
- }
- if (alibi) {
- for (k in out) {
- arr = opts.alias[k] || [];
- while (arr.length > 0) {
- out[arr.shift()] = out[k];
- }
- }
- }
- return out;
- }
- const removeBrackets = (v) => v.replace(/[<[].+/, "").trim();
- const findAllBrackets = (v) => {
- const ANGLED_BRACKET_RE_GLOBAL = /<([^>]+)>/g;
- const SQUARE_BRACKET_RE_GLOBAL = /\[([^\]]+)\]/g;
- const res = [];
- const parse = (match) => {
- let variadic = false;
- let value = match[1];
- if (value.startsWith("...")) {
- value = value.slice(3);
- variadic = true;
- }
- return {
- required: match[0].startsWith("<"),
- value,
- variadic
- };
- };
- let angledMatch;
- while (angledMatch = ANGLED_BRACKET_RE_GLOBAL.exec(v)) {
- res.push(parse(angledMatch));
- }
- let squareMatch;
- while (squareMatch = SQUARE_BRACKET_RE_GLOBAL.exec(v)) {
- res.push(parse(squareMatch));
- }
- return res;
- };
- const getMriOptions = (options) => {
- const result = {alias: {}, boolean: []};
- for (const [index, option] of options.entries()) {
- if (option.names.length > 1) {
- result.alias[option.names[0]] = option.names.slice(1);
- }
- if (option.isBoolean) {
- if (option.negated) {
- const hasStringTypeOption = options.some((o, i) => {
- return i !== index && o.names.some((name) => option.names.includes(name)) && typeof o.required === "boolean";
- });
- if (!hasStringTypeOption) {
- result.boolean.push(option.names[0]);
- }
- } else {
- result.boolean.push(option.names[0]);
- }
- }
- }
- return result;
- };
- const findLongest = (arr) => {
- return arr.sort((a, b) => {
- return a.length > b.length ? -1 : 1;
- })[0];
- };
- const padRight = (str, length) => {
- return str.length >= length ? str : `${str}${" ".repeat(length - str.length)}`;
- };
- const camelcase = (input) => {
- return input.replace(/([a-z])-([a-z])/g, (_, p1, p2) => {
- return p1 + p2.toUpperCase();
- });
- };
- const setDotProp = (obj, keys, val) => {
- let i = 0;
- let length = keys.length;
- let t = obj;
- let x;
- for (; i < length; ++i) {
- x = t[keys[i]];
- t = t[keys[i]] = i === length - 1 ? val : x != null ? x : !!~keys[i + 1].indexOf(".") || !(+keys[i + 1] > -1) ? {} : [];
- }
- };
- const setByType = (obj, transforms) => {
- for (const key of Object.keys(transforms)) {
- const transform = transforms[key];
- if (transform.shouldTransform) {
- obj[key] = Array.prototype.concat.call([], obj[key]);
- if (typeof transform.transformFunction === "function") {
- obj[key] = obj[key].map(transform.transformFunction);
- }
- }
- }
- };
- const getFileName = (input) => {
- const m = /([^\\\/]+)$/.exec(input);
- return m ? m[1] : "";
- };
- const camelcaseOptionName = (name) => {
- return name.split(".").map((v, i) => {
- return i === 0 ? camelcase(v) : v;
- }).join(".");
- };
- class CACError extends Error {
- constructor(message) {
- super(message);
- this.name = this.constructor.name;
- if (typeof Error.captureStackTrace === "function") {
- Error.captureStackTrace(this, this.constructor);
- } else {
- this.stack = new Error(message).stack;
- }
- }
- }
- class Option {
- constructor(rawName, description, config) {
- this.rawName = rawName;
- this.description = description;
- this.config = Object.assign({}, config);
- rawName = rawName.replace(/\.\*/g, "");
- this.negated = false;
- this.names = removeBrackets(rawName).split(",").map((v) => {
- let name = v.trim().replace(/^-{1,2}/, "");
- if (name.startsWith("no-")) {
- this.negated = true;
- name = name.replace(/^no-/, "");
- }
- return camelcaseOptionName(name);
- }).sort((a, b) => a.length > b.length ? 1 : -1);
- this.name = this.names[this.names.length - 1];
- if (this.negated && this.config.default == null) {
- this.config.default = true;
- }
- if (rawName.includes("<")) {
- this.required = true;
- } else if (rawName.includes("[")) {
- this.required = false;
- } else {
- this.isBoolean = true;
- }
- }
- }
- const processArgs = process.argv;
- const platformInfo = `${process.platform}-${process.arch} node-${process.version}`;
- class Command {
- constructor(rawName, description, config = {}, cli) {
- this.rawName = rawName;
- this.description = description;
- this.config = config;
- this.cli = cli;
- this.options = [];
- this.aliasNames = [];
- this.name = removeBrackets(rawName);
- this.args = findAllBrackets(rawName);
- this.examples = [];
- }
- usage(text) {
- this.usageText = text;
- return this;
- }
- allowUnknownOptions() {
- this.config.allowUnknownOptions = true;
- return this;
- }
- ignoreOptionDefaultValue() {
- this.config.ignoreOptionDefaultValue = true;
- return this;
- }
- version(version, customFlags = "-v, --version") {
- this.versionNumber = version;
- this.option(customFlags, "Display version number");
- return this;
- }
- example(example) {
- this.examples.push(example);
- return this;
- }
- option(rawName, description, config) {
- const option = new Option(rawName, description, config);
- this.options.push(option);
- return this;
- }
- alias(name) {
- this.aliasNames.push(name);
- return this;
- }
- action(callback) {
- this.commandAction = callback;
- return this;
- }
- isMatched(name) {
- return this.name === name || this.aliasNames.includes(name);
- }
- get isDefaultCommand() {
- return this.name === "" || this.aliasNames.includes("!");
- }
- get isGlobalCommand() {
- return this instanceof GlobalCommand;
- }
- hasOption(name) {
- name = name.split(".")[0];
- return this.options.find((option) => {
- return option.names.includes(name);
- });
- }
- outputHelp() {
- const {name, commands} = this.cli;
- const {
- versionNumber,
- options: globalOptions,
- helpCallback
- } = this.cli.globalCommand;
- let sections = [
- {
- body: `${name}${versionNumber ? `/${versionNumber}` : ""}`
- }
- ];
- sections.push({
- title: "Usage",
- body: ` $ ${name} ${this.usageText || this.rawName}`
- });
- const showCommands = (this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0;
- if (showCommands) {
- const longestCommandName = findLongest(commands.map((command) => command.rawName));
- sections.push({
- title: "Commands",
- body: commands.map((command) => {
- return ` ${padRight(command.rawName, longestCommandName.length)} ${command.description}`;
- }).join("\n")
- });
- sections.push({
- title: `For more info, run any command with the \`--help\` flag`,
- body: commands.map((command) => ` $ ${name}${command.name === "" ? "" : ` ${command.name}`} --help`).join("\n")
- });
- }
- const options = this.isGlobalCommand ? globalOptions : [...this.options, ...globalOptions || []];
- if (options.length > 0) {
- const longestOptionName = findLongest(options.map((option) => option.rawName));
- sections.push({
- title: "Options",
- body: options.map((option) => {
- return ` ${padRight(option.rawName, longestOptionName.length)} ${option.description} ${option.config.default === void 0 ? "" : `(default: ${option.config.default})`}`;
- }).join("\n")
- });
- }
- if (this.examples.length > 0) {
- sections.push({
- title: "Examples",
- body: this.examples.map((example) => {
- if (typeof example === "function") {
- return example(name);
- }
- return example;
- }).join("\n")
- });
- }
- if (helpCallback) {
- sections = helpCallback(sections) || sections;
- }
- console.log(sections.map((section) => {
- return section.title ? `${section.title}:
- ${section.body}` : section.body;
- }).join("\n\n"));
- }
- outputVersion() {
- const {name} = this.cli;
- const {versionNumber} = this.cli.globalCommand;
- if (versionNumber) {
- console.log(`${name}/${versionNumber} ${platformInfo}`);
- }
- }
- checkRequiredArgs() {
- const minimalArgsCount = this.args.filter((arg) => arg.required).length;
- if (this.cli.args.length < minimalArgsCount) {
- throw new CACError(`missing required args for command \`${this.rawName}\``);
- }
- }
- checkUnknownOptions() {
- const {options, globalCommand} = this.cli;
- if (!this.config.allowUnknownOptions) {
- for (const name of Object.keys(options)) {
- if (name !== "--" && !this.hasOption(name) && !globalCommand.hasOption(name)) {
- throw new CACError(`Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``);
- }
- }
- }
- }
- checkOptionValue() {
- const {options: parsedOptions, globalCommand} = this.cli;
- const options = [...globalCommand.options, ...this.options];
- for (const option of options) {
- const value = parsedOptions[option.name.split(".")[0]];
- if (option.required) {
- const hasNegated = options.some((o) => o.negated && o.names.includes(option.name));
- if (value === true || value === false && !hasNegated) {
- throw new CACError(`option \`${option.rawName}\` value is missing`);
- }
- }
- }
- }
- }
- class GlobalCommand extends Command {
- constructor(cli) {
- super("@@global@@", "", {}, cli);
- }
- }
- var __assign = Object.assign;
- class CAC extends require$$0$1.EventEmitter {
- constructor(name = "") {
- super();
- this.name = name;
- this.commands = [];
- this.rawArgs = [];
- this.args = [];
- this.options = {};
- this.globalCommand = new GlobalCommand(this);
- this.globalCommand.usage("<command> [options]");
- }
- usage(text) {
- this.globalCommand.usage(text);
- return this;
- }
- command(rawName, description, config) {
- const command = new Command(rawName, description || "", config, this);
- command.globalCommand = this.globalCommand;
- this.commands.push(command);
- return command;
- }
- option(rawName, description, config) {
- this.globalCommand.option(rawName, description, config);
- return this;
- }
- help(callback) {
- this.globalCommand.option("-h, --help", "Display this message");
- this.globalCommand.helpCallback = callback;
- this.showHelpOnExit = true;
- return this;
- }
- version(version, customFlags = "-v, --version") {
- this.globalCommand.version(version, customFlags);
- this.showVersionOnExit = true;
- return this;
- }
- example(example) {
- this.globalCommand.example(example);
- return this;
- }
- outputHelp() {
- if (this.matchedCommand) {
- this.matchedCommand.outputHelp();
- } else {
- this.globalCommand.outputHelp();
- }
- }
- outputVersion() {
- this.globalCommand.outputVersion();
- }
- setParsedInfo({args, options}, matchedCommand, matchedCommandName) {
- this.args = args;
- this.options = options;
- if (matchedCommand) {
- this.matchedCommand = matchedCommand;
- }
- if (matchedCommandName) {
- this.matchedCommandName = matchedCommandName;
- }
- return this;
- }
- unsetMatchedCommand() {
- this.matchedCommand = void 0;
- this.matchedCommandName = void 0;
- }
- parse(argv = processArgs, {
- run = true
- } = {}) {
- this.rawArgs = argv;
- if (!this.name) {
- this.name = argv[1] ? getFileName(argv[1]) : "cli";
- }
- let shouldParse = true;
- for (const command of this.commands) {
- const parsed = this.mri(argv.slice(2), command);
- const commandName = parsed.args[0];
- if (command.isMatched(commandName)) {
- shouldParse = false;
- const parsedInfo = __assign(__assign({}, parsed), {
- args: parsed.args.slice(1)
- });
- this.setParsedInfo(parsedInfo, command, commandName);
- this.emit(`command:${commandName}`, command);
- }
- }
- if (shouldParse) {
- for (const command of this.commands) {
- if (command.name === "") {
- shouldParse = false;
- const parsed = this.mri(argv.slice(2), command);
- this.setParsedInfo(parsed, command);
- this.emit(`command:!`, command);
- }
- }
- }
- if (shouldParse) {
- const parsed = this.mri(argv.slice(2));
- this.setParsedInfo(parsed);
- }
- if (this.options.help && this.showHelpOnExit) {
- this.outputHelp();
- run = false;
- this.unsetMatchedCommand();
- }
- if (this.options.version && this.showVersionOnExit) {
- this.outputVersion();
- run = false;
- this.unsetMatchedCommand();
- }
- const parsedArgv = {args: this.args, options: this.options};
- if (run) {
- this.runMatchedCommand();
- }
- if (!this.matchedCommand && this.args[0]) {
- this.emit("command:*");
- }
- return parsedArgv;
- }
- mri(argv, command) {
- const cliOptions = [
- ...this.globalCommand.options,
- ...command ? command.options : []
- ];
- const mriOptions = getMriOptions(cliOptions);
- let argsAfterDoubleDashes = [];
- const doubleDashesIndex = argv.indexOf("--");
- if (doubleDashesIndex > -1) {
- argsAfterDoubleDashes = argv.slice(doubleDashesIndex + 1);
- argv = argv.slice(0, doubleDashesIndex);
- }
- let parsed = mri2(argv, mriOptions);
- parsed = Object.keys(parsed).reduce((res, name) => {
- return __assign(__assign({}, res), {
- [camelcaseOptionName(name)]: parsed[name]
- });
- }, {_: []});
- const args = parsed._;
- const options = {
- "--": argsAfterDoubleDashes
- };
- const ignoreDefault = command && command.config.ignoreOptionDefaultValue ? command.config.ignoreOptionDefaultValue : this.globalCommand.config.ignoreOptionDefaultValue;
- let transforms = Object.create(null);
- for (const cliOption of cliOptions) {
- if (!ignoreDefault && cliOption.config.default !== void 0) {
- for (const name of cliOption.names) {
- options[name] = cliOption.config.default;
- }
- }
- if (Array.isArray(cliOption.config.type)) {
- if (transforms[cliOption.name] === void 0) {
- transforms[cliOption.name] = Object.create(null);
- transforms[cliOption.name]["shouldTransform"] = true;
- transforms[cliOption.name]["transformFunction"] = cliOption.config.type[0];
- }
- }
- }
- for (const key of Object.keys(parsed)) {
- if (key !== "_") {
- const keys = key.split(".");
- setDotProp(options, keys, parsed[key]);
- setByType(options, transforms);
- }
- }
- return {
- args,
- options
- };
- }
- runMatchedCommand() {
- const {args, options, matchedCommand: command} = this;
- if (!command || !command.commandAction)
- return;
- command.checkUnknownOptions();
- command.checkOptionValue();
- command.checkRequiredArgs();
- const actionArgs = [];
- command.args.forEach((arg, index) => {
- if (arg.variadic) {
- actionArgs.push(args.slice(index));
- } else {
- actionArgs.push(args[index]);
- }
- });
- actionArgs.push(options);
- return command.commandAction.apply(this, actionArgs);
- }
- }
- const cac = (name = "") => new CAC(name);
- /**
- * negotiator
- * Copyright(c) 2012 Isaac Z. Schlueter
- * Copyright(c) 2014 Federico Romero
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module exports.
- * @public
- */
- var charset = preferredCharsets;
- var preferredCharsets_1 = preferredCharsets;
- /**
- * Module variables.
- * @private
- */
- var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
- /**
- * Parse the Accept-Charset header.
- * @private
- */
- function parseAcceptCharset(accept) {
- var accepts = accept.split(',');
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var charset = parseCharset(accepts[i].trim(), i);
- if (charset) {
- accepts[j++] = charset;
- }
- }
- // trim accepts
- accepts.length = j;
- return accepts;
- }
- /**
- * Parse a charset from the Accept-Charset header.
- * @private
- */
- function parseCharset(str, i) {
- var match = simpleCharsetRegExp.exec(str);
- if (!match) return null;
- var charset = match[1];
- var q = 1;
- if (match[2]) {
- var params = match[2].split(';');
- for (var j = 0; j < params.length; j++) {
- var p = params[j].trim().split('=');
- if (p[0] === 'q') {
- q = parseFloat(p[1]);
- break;
- }
- }
- }
- return {
- charset: charset,
- q: q,
- i: i
- };
- }
- /**
- * Get the priority of a charset.
- * @private
- */
- function getCharsetPriority(charset, accepted, index) {
- var priority = {o: -1, q: 0, s: 0};
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify(charset, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- /**
- * Get the specificity of the charset.
- * @private
- */
- function specify(charset, spec, index) {
- var s = 0;
- if(spec.charset.toLowerCase() === charset.toLowerCase()){
- s |= 1;
- } else if (spec.charset !== '*' ) {
- return null
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s: s
- }
- }
- /**
- * Get the preferred charsets from an Accept-Charset header.
- * @public
- */
- function preferredCharsets(accept, provided) {
- // RFC 2616 sec 14.2: no header = *
- var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || '');
- if (!provided) {
- // sorted list of all charsets
- return accepts
- .filter(isQuality)
- .sort(compareSpecs)
- .map(getFullCharset);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getCharsetPriority(type, accepts, index);
- });
- // sorted list of accepted charsets
- return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- /**
- * Compare two specs.
- * @private
- */
- function compareSpecs(a, b) {
- return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
- }
- /**
- * Get full charset string.
- * @private
- */
- function getFullCharset(spec) {
- return spec.charset;
- }
- /**
- * Check if a spec has any quality.
- * @private
- */
- function isQuality(spec) {
- return spec.q > 0;
- }
- charset.preferredCharsets = preferredCharsets_1;
- /**
- * negotiator
- * Copyright(c) 2012 Isaac Z. Schlueter
- * Copyright(c) 2014 Federico Romero
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module exports.
- * @public
- */
- var encoding = preferredEncodings;
- var preferredEncodings_1 = preferredEncodings;
- /**
- * Module variables.
- * @private
- */
- var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
- /**
- * Parse the Accept-Encoding header.
- * @private
- */
- function parseAcceptEncoding(accept) {
- var accepts = accept.split(',');
- var hasIdentity = false;
- var minQuality = 1;
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var encoding = parseEncoding(accepts[i].trim(), i);
- if (encoding) {
- accepts[j++] = encoding;
- hasIdentity = hasIdentity || specify$1('identity', encoding);
- minQuality = Math.min(minQuality, encoding.q || 1);
- }
- }
- if (!hasIdentity) {
- /*
- * If identity doesn't explicitly appear in the accept-encoding header,
- * it's added to the list of acceptable encoding with the lowest q
- */
- accepts[j++] = {
- encoding: 'identity',
- q: minQuality,
- i: i
- };
- }
- // trim accepts
- accepts.length = j;
- return accepts;
- }
- /**
- * Parse an encoding from the Accept-Encoding header.
- * @private
- */
- function parseEncoding(str, i) {
- var match = simpleEncodingRegExp.exec(str);
- if (!match) return null;
- var encoding = match[1];
- var q = 1;
- if (match[2]) {
- var params = match[2].split(';');
- for (var j = 0; j < params.length; j++) {
- var p = params[j].trim().split('=');
- if (p[0] === 'q') {
- q = parseFloat(p[1]);
- break;
- }
- }
- }
- return {
- encoding: encoding,
- q: q,
- i: i
- };
- }
- /**
- * Get the priority of an encoding.
- * @private
- */
- function getEncodingPriority(encoding, accepted, index) {
- var priority = {o: -1, q: 0, s: 0};
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify$1(encoding, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- /**
- * Get the specificity of the encoding.
- * @private
- */
- function specify$1(encoding, spec, index) {
- var s = 0;
- if(spec.encoding.toLowerCase() === encoding.toLowerCase()){
- s |= 1;
- } else if (spec.encoding !== '*' ) {
- return null
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s: s
- }
- }
- /**
- * Get the preferred encodings from an Accept-Encoding header.
- * @public
- */
- function preferredEncodings(accept, provided) {
- var accepts = parseAcceptEncoding(accept || '');
- if (!provided) {
- // sorted list of all encodings
- return accepts
- .filter(isQuality$1)
- .sort(compareSpecs$1)
- .map(getFullEncoding);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getEncodingPriority(type, accepts, index);
- });
- // sorted list of accepted encodings
- return priorities.filter(isQuality$1).sort(compareSpecs$1).map(function getEncoding(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- /**
- * Compare two specs.
- * @private
- */
- function compareSpecs$1(a, b) {
- return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
- }
- /**
- * Get full encoding string.
- * @private
- */
- function getFullEncoding(spec) {
- return spec.encoding;
- }
- /**
- * Check if a spec has any quality.
- * @private
- */
- function isQuality$1(spec) {
- return spec.q > 0;
- }
- encoding.preferredEncodings = preferredEncodings_1;
- /**
- * negotiator
- * Copyright(c) 2012 Isaac Z. Schlueter
- * Copyright(c) 2014 Federico Romero
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module exports.
- * @public
- */
- var language = preferredLanguages;
- var preferredLanguages_1 = preferredLanguages;
- /**
- * Module variables.
- * @private
- */
- var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
- /**
- * Parse the Accept-Language header.
- * @private
- */
- function parseAcceptLanguage(accept) {
- var accepts = accept.split(',');
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var language = parseLanguage(accepts[i].trim(), i);
- if (language) {
- accepts[j++] = language;
- }
- }
- // trim accepts
- accepts.length = j;
- return accepts;
- }
- /**
- * Parse a language from the Accept-Language header.
- * @private
- */
- function parseLanguage(str, i) {
- var match = simpleLanguageRegExp.exec(str);
- if (!match) return null;
- var prefix = match[1],
- suffix = match[2],
- full = prefix;
- if (suffix) full += "-" + suffix;
- var q = 1;
- if (match[3]) {
- var params = match[3].split(';');
- for (var j = 0; j < params.length; j++) {
- var p = params[j].split('=');
- if (p[0] === 'q') q = parseFloat(p[1]);
- }
- }
- return {
- prefix: prefix,
- suffix: suffix,
- q: q,
- i: i,
- full: full
- };
- }
- /**
- * Get the priority of a language.
- * @private
- */
- function getLanguagePriority(language, accepted, index) {
- var priority = {o: -1, q: 0, s: 0};
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify$2(language, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- /**
- * Get the specificity of the language.
- * @private
- */
- function specify$2(language, spec, index) {
- var p = parseLanguage(language);
- if (!p) return null;
- var s = 0;
- if(spec.full.toLowerCase() === p.full.toLowerCase()){
- s |= 4;
- } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
- s |= 2;
- } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
- s |= 1;
- } else if (spec.full !== '*' ) {
- return null
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s: s
- }
- }
- /**
- * Get the preferred languages from an Accept-Language header.
- * @public
- */
- function preferredLanguages(accept, provided) {
- // RFC 2616 sec 14.4: no header = *
- var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || '');
- if (!provided) {
- // sorted list of all languages
- return accepts
- .filter(isQuality$2)
- .sort(compareSpecs$2)
- .map(getFullLanguage);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getLanguagePriority(type, accepts, index);
- });
- // sorted list of accepted languages
- return priorities.filter(isQuality$2).sort(compareSpecs$2).map(function getLanguage(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- /**
- * Compare two specs.
- * @private
- */
- function compareSpecs$2(a, b) {
- return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
- }
- /**
- * Get full language string.
- * @private
- */
- function getFullLanguage(spec) {
- return spec.full;
- }
- /**
- * Check if a spec has any quality.
- * @private
- */
- function isQuality$2(spec) {
- return spec.q > 0;
- }
- language.preferredLanguages = preferredLanguages_1;
- /**
- * negotiator
- * Copyright(c) 2012 Isaac Z. Schlueter
- * Copyright(c) 2014 Federico Romero
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module exports.
- * @public
- */
- var mediaType = preferredMediaTypes;
- var preferredMediaTypes_1 = preferredMediaTypes;
- /**
- * Module variables.
- * @private
- */
- var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
- /**
- * Parse the Accept header.
- * @private
- */
- function parseAccept(accept) {
- var accepts = splitMediaTypes(accept);
- for (var i = 0, j = 0; i < accepts.length; i++) {
- var mediaType = parseMediaType(accepts[i].trim(), i);
- if (mediaType) {
- accepts[j++] = mediaType;
- }
- }
- // trim accepts
- accepts.length = j;
- return accepts;
- }
- /**
- * Parse a media type from the Accept header.
- * @private
- */
- function parseMediaType(str, i) {
- var match = simpleMediaTypeRegExp.exec(str);
- if (!match) return null;
- var params = Object.create(null);
- var q = 1;
- var subtype = match[2];
- var type = match[1];
- if (match[3]) {
- var kvps = splitParameters(match[3]).map(splitKeyValuePair);
- for (var j = 0; j < kvps.length; j++) {
- var pair = kvps[j];
- var key = pair[0].toLowerCase();
- var val = pair[1];
- // get the value, unwrapping quotes
- var value = val && val[0] === '"' && val[val.length - 1] === '"'
- ? val.substr(1, val.length - 2)
- : val;
- if (key === 'q') {
- q = parseFloat(value);
- break;
- }
- // store parameter
- params[key] = value;
- }
- }
- return {
- type: type,
- subtype: subtype,
- params: params,
- q: q,
- i: i
- };
- }
- /**
- * Get the priority of a media type.
- * @private
- */
- function getMediaTypePriority(type, accepted, index) {
- var priority = {o: -1, q: 0, s: 0};
- for (var i = 0; i < accepted.length; i++) {
- var spec = specify$3(type, accepted[i], index);
- if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
- priority = spec;
- }
- }
- return priority;
- }
- /**
- * Get the specificity of the media type.
- * @private
- */
- function specify$3(type, spec, index) {
- var p = parseMediaType(type);
- var s = 0;
- if (!p) {
- return null;
- }
- if(spec.type.toLowerCase() == p.type.toLowerCase()) {
- s |= 4;
- } else if(spec.type != '*') {
- return null;
- }
- if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
- s |= 2;
- } else if(spec.subtype != '*') {
- return null;
- }
- var keys = Object.keys(spec.params);
- if (keys.length > 0) {
- if (keys.every(function (k) {
- return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase();
- })) {
- s |= 1;
- } else {
- return null
- }
- }
- return {
- i: index,
- o: spec.i,
- q: spec.q,
- s: s,
- }
- }
- /**
- * Get the preferred media types from an Accept header.
- * @public
- */
- function preferredMediaTypes(accept, provided) {
- // RFC 2616 sec 14.2: no header = */*
- var accepts = parseAccept(accept === undefined ? '*/*' : accept || '');
- if (!provided) {
- // sorted list of all types
- return accepts
- .filter(isQuality$3)
- .sort(compareSpecs$3)
- .map(getFullType);
- }
- var priorities = provided.map(function getPriority(type, index) {
- return getMediaTypePriority(type, accepts, index);
- });
- // sorted list of accepted types
- return priorities.filter(isQuality$3).sort(compareSpecs$3).map(function getType(priority) {
- return provided[priorities.indexOf(priority)];
- });
- }
- /**
- * Compare two specs.
- * @private
- */
- function compareSpecs$3(a, b) {
- return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
- }
- /**
- * Get full type string.
- * @private
- */
- function getFullType(spec) {
- return spec.type + '/' + spec.subtype;
- }
- /**
- * Check if a spec has any quality.
- * @private
- */
- function isQuality$3(spec) {
- return spec.q > 0;
- }
- /**
- * Count the number of quotes in a string.
- * @private
- */
- function quoteCount(string) {
- var count = 0;
- var index = 0;
- while ((index = string.indexOf('"', index)) !== -1) {
- count++;
- index++;
- }
- return count;
- }
- /**
- * Split a key value pair.
- * @private
- */
- function splitKeyValuePair(str) {
- var index = str.indexOf('=');
- var key;
- var val;
- if (index === -1) {
- key = str;
- } else {
- key = str.substr(0, index);
- val = str.substr(index + 1);
- }
- return [key, val];
- }
- /**
- * Split an Accept header into media types.
- * @private
- */
- function splitMediaTypes(accept) {
- var accepts = accept.split(',');
- for (var i = 1, j = 0; i < accepts.length; i++) {
- if (quoteCount(accepts[j]) % 2 == 0) {
- accepts[++j] = accepts[i];
- } else {
- accepts[j] += ',' + accepts[i];
- }
- }
- // trim accepts
- accepts.length = j + 1;
- return accepts;
- }
- /**
- * Split a string of parameters.
- * @private
- */
- function splitParameters(str) {
- var parameters = str.split(';');
- for (var i = 1, j = 0; i < parameters.length; i++) {
- if (quoteCount(parameters[j]) % 2 == 0) {
- parameters[++j] = parameters[i];
- } else {
- parameters[j] += ';' + parameters[i];
- }
- }
- // trim parameters
- parameters.length = j + 1;
- for (var i = 0; i < parameters.length; i++) {
- parameters[i] = parameters[i].trim();
- }
- return parameters;
- }
- mediaType.preferredMediaTypes = preferredMediaTypes_1;
- /*!
- * negotiator
- * Copyright(c) 2012 Federico Romero
- * Copyright(c) 2012-2014 Isaac Z. Schlueter
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Cached loaded submodules.
- * @private
- */
- var modules = Object.create(null);
- /**
- * Module exports.
- * @public
- */
- var negotiator = Negotiator;
- var Negotiator_1 = Negotiator;
- /**
- * Create a Negotiator instance from a request.
- * @param {object} request
- * @public
- */
- function Negotiator(request) {
- if (!(this instanceof Negotiator)) {
- return new Negotiator(request);
- }
- this.request = request;
- }
- Negotiator.prototype.charset = function charset(available) {
- var set = this.charsets(available);
- return set && set[0];
- };
- Negotiator.prototype.charsets = function charsets(available) {
- var preferredCharsets = loadModule('charset').preferredCharsets;
- return preferredCharsets(this.request.headers['accept-charset'], available);
- };
- Negotiator.prototype.encoding = function encoding(available) {
- var set = this.encodings(available);
- return set && set[0];
- };
- Negotiator.prototype.encodings = function encodings(available) {
- var preferredEncodings = loadModule('encoding').preferredEncodings;
- return preferredEncodings(this.request.headers['accept-encoding'], available);
- };
- Negotiator.prototype.language = function language(available) {
- var set = this.languages(available);
- return set && set[0];
- };
- Negotiator.prototype.languages = function languages(available) {
- var preferredLanguages = loadModule('language').preferredLanguages;
- return preferredLanguages(this.request.headers['accept-language'], available);
- };
- Negotiator.prototype.mediaType = function mediaType(available) {
- var set = this.mediaTypes(available);
- return set && set[0];
- };
- Negotiator.prototype.mediaTypes = function mediaTypes(available) {
- var preferredMediaTypes = loadModule('mediaType').preferredMediaTypes;
- return preferredMediaTypes(this.request.headers.accept, available);
- };
- // Backwards compatibility
- Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
- Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
- Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
- Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
- Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
- Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
- Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
- Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
- /**
- * Load the given module.
- * @private
- */
- function loadModule(moduleName) {
- var module = modules[moduleName];
- if (module !== undefined) {
- return module;
- }
- // This uses a switch for static require analysis
- switch (moduleName) {
- case 'charset':
- module = charset;
- break;
- case 'encoding':
- module = encoding;
- break;
- case 'language':
- module = language;
- break;
- case 'mediaType':
- module = mediaType;
- break;
- default:
- throw new Error('Cannot find module \'' + moduleName + '\'');
- }
- // Store to prevent invoking require()
- modules[moduleName] = module;
- return module;
- }
- negotiator.Negotiator = Negotiator_1;
- var require$$0 = {
- "application/1d-interleaved-parityfec": {
- source: "iana"
- },
- "application/3gpdash-qoe-report+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/3gpp-ims+xml": {
- source: "iana",
- compressible: true
- },
- "application/a2l": {
- source: "iana"
- },
- "application/activemessage": {
- source: "iana"
- },
- "application/activity+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-costmap+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-costmapfilter+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-directory+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointcost+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointcostparams+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointprop+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-endpointpropparams+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-error+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-networkmap+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-networkmapfilter+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-updatestreamcontrol+json": {
- source: "iana",
- compressible: true
- },
- "application/alto-updatestreamparams+json": {
- source: "iana",
- compressible: true
- },
- "application/aml": {
- source: "iana"
- },
- "application/andrew-inset": {
- source: "iana",
- extensions: [
- "ez"
- ]
- },
- "application/applefile": {
- source: "iana"
- },
- "application/applixware": {
- source: "apache",
- extensions: [
- "aw"
- ]
- },
- "application/atf": {
- source: "iana"
- },
- "application/atfx": {
- source: "iana"
- },
- "application/atom+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "atom"
- ]
- },
- "application/atomcat+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "atomcat"
- ]
- },
- "application/atomdeleted+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "atomdeleted"
- ]
- },
- "application/atomicmail": {
- source: "iana"
- },
- "application/atomsvc+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "atomsvc"
- ]
- },
- "application/atsc-dwd+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "dwd"
- ]
- },
- "application/atsc-dynamic-event-message": {
- source: "iana"
- },
- "application/atsc-held+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "held"
- ]
- },
- "application/atsc-rdt+json": {
- source: "iana",
- compressible: true
- },
- "application/atsc-rsat+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rsat"
- ]
- },
- "application/atxml": {
- source: "iana"
- },
- "application/auth-policy+xml": {
- source: "iana",
- compressible: true
- },
- "application/bacnet-xdd+zip": {
- source: "iana",
- compressible: false
- },
- "application/batch-smtp": {
- source: "iana"
- },
- "application/bdoc": {
- compressible: false,
- extensions: [
- "bdoc"
- ]
- },
- "application/beep+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/calendar+json": {
- source: "iana",
- compressible: true
- },
- "application/calendar+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xcs"
- ]
- },
- "application/call-completion": {
- source: "iana"
- },
- "application/cals-1840": {
- source: "iana"
- },
- "application/captive+json": {
- source: "iana",
- compressible: true
- },
- "application/cbor": {
- source: "iana"
- },
- "application/cbor-seq": {
- source: "iana"
- },
- "application/cccex": {
- source: "iana"
- },
- "application/ccmp+xml": {
- source: "iana",
- compressible: true
- },
- "application/ccxml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "ccxml"
- ]
- },
- "application/cdfx+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "cdfx"
- ]
- },
- "application/cdmi-capability": {
- source: "iana",
- extensions: [
- "cdmia"
- ]
- },
- "application/cdmi-container": {
- source: "iana",
- extensions: [
- "cdmic"
- ]
- },
- "application/cdmi-domain": {
- source: "iana",
- extensions: [
- "cdmid"
- ]
- },
- "application/cdmi-object": {
- source: "iana",
- extensions: [
- "cdmio"
- ]
- },
- "application/cdmi-queue": {
- source: "iana",
- extensions: [
- "cdmiq"
- ]
- },
- "application/cdni": {
- source: "iana"
- },
- "application/cea": {
- source: "iana"
- },
- "application/cea-2018+xml": {
- source: "iana",
- compressible: true
- },
- "application/cellml+xml": {
- source: "iana",
- compressible: true
- },
- "application/cfw": {
- source: "iana"
- },
- "application/clr": {
- source: "iana"
- },
- "application/clue+xml": {
- source: "iana",
- compressible: true
- },
- "application/clue_info+xml": {
- source: "iana",
- compressible: true
- },
- "application/cms": {
- source: "iana"
- },
- "application/cnrp+xml": {
- source: "iana",
- compressible: true
- },
- "application/coap-group+json": {
- source: "iana",
- compressible: true
- },
- "application/coap-payload": {
- source: "iana"
- },
- "application/commonground": {
- source: "iana"
- },
- "application/conference-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/cose": {
- source: "iana"
- },
- "application/cose-key": {
- source: "iana"
- },
- "application/cose-key-set": {
- source: "iana"
- },
- "application/cpl+xml": {
- source: "iana",
- compressible: true
- },
- "application/csrattrs": {
- source: "iana"
- },
- "application/csta+xml": {
- source: "iana",
- compressible: true
- },
- "application/cstadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/csvm+json": {
- source: "iana",
- compressible: true
- },
- "application/cu-seeme": {
- source: "apache",
- extensions: [
- "cu"
- ]
- },
- "application/cwt": {
- source: "iana"
- },
- "application/cybercash": {
- source: "iana"
- },
- "application/dart": {
- compressible: true
- },
- "application/dash+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mpd"
- ]
- },
- "application/dashdelta": {
- source: "iana"
- },
- "application/davmount+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "davmount"
- ]
- },
- "application/dca-rft": {
- source: "iana"
- },
- "application/dcd": {
- source: "iana"
- },
- "application/dec-dx": {
- source: "iana"
- },
- "application/dialog-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/dicom": {
- source: "iana"
- },
- "application/dicom+json": {
- source: "iana",
- compressible: true
- },
- "application/dicom+xml": {
- source: "iana",
- compressible: true
- },
- "application/dii": {
- source: "iana"
- },
- "application/dit": {
- source: "iana"
- },
- "application/dns": {
- source: "iana"
- },
- "application/dns+json": {
- source: "iana",
- compressible: true
- },
- "application/dns-message": {
- source: "iana"
- },
- "application/docbook+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "dbk"
- ]
- },
- "application/dots+cbor": {
- source: "iana"
- },
- "application/dskpp+xml": {
- source: "iana",
- compressible: true
- },
- "application/dssc+der": {
- source: "iana",
- extensions: [
- "dssc"
- ]
- },
- "application/dssc+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xdssc"
- ]
- },
- "application/dvcs": {
- source: "iana"
- },
- "application/ecmascript": {
- source: "iana",
- compressible: true,
- extensions: [
- "ecma",
- "es"
- ]
- },
- "application/edi-consent": {
- source: "iana"
- },
- "application/edi-x12": {
- source: "iana",
- compressible: false
- },
- "application/edifact": {
- source: "iana",
- compressible: false
- },
- "application/efi": {
- source: "iana"
- },
- "application/elm+json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/elm+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.cap+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/emergencycalldata.comment+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.control+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.deviceinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.ecall.msd": {
- source: "iana"
- },
- "application/emergencycalldata.providerinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.serviceinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.subscriberinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/emergencycalldata.veds+xml": {
- source: "iana",
- compressible: true
- },
- "application/emma+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "emma"
- ]
- },
- "application/emotionml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "emotionml"
- ]
- },
- "application/encaprtp": {
- source: "iana"
- },
- "application/epp+xml": {
- source: "iana",
- compressible: true
- },
- "application/epub+zip": {
- source: "iana",
- compressible: false,
- extensions: [
- "epub"
- ]
- },
- "application/eshop": {
- source: "iana"
- },
- "application/exi": {
- source: "iana",
- extensions: [
- "exi"
- ]
- },
- "application/expect-ct-report+json": {
- source: "iana",
- compressible: true
- },
- "application/fastinfoset": {
- source: "iana"
- },
- "application/fastsoap": {
- source: "iana"
- },
- "application/fdt+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "fdt"
- ]
- },
- "application/fhir+json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/fhir+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/fido.trusted-apps+json": {
- compressible: true
- },
- "application/fits": {
- source: "iana"
- },
- "application/flexfec": {
- source: "iana"
- },
- "application/font-sfnt": {
- source: "iana"
- },
- "application/font-tdpfr": {
- source: "iana",
- extensions: [
- "pfr"
- ]
- },
- "application/font-woff": {
- source: "iana",
- compressible: false
- },
- "application/framework-attributes+xml": {
- source: "iana",
- compressible: true
- },
- "application/geo+json": {
- source: "iana",
- compressible: true,
- extensions: [
- "geojson"
- ]
- },
- "application/geo+json-seq": {
- source: "iana"
- },
- "application/geopackage+sqlite3": {
- source: "iana"
- },
- "application/geoxacml+xml": {
- source: "iana",
- compressible: true
- },
- "application/gltf-buffer": {
- source: "iana"
- },
- "application/gml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "gml"
- ]
- },
- "application/gpx+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "gpx"
- ]
- },
- "application/gxf": {
- source: "apache",
- extensions: [
- "gxf"
- ]
- },
- "application/gzip": {
- source: "iana",
- compressible: false,
- extensions: [
- "gz"
- ]
- },
- "application/h224": {
- source: "iana"
- },
- "application/held+xml": {
- source: "iana",
- compressible: true
- },
- "application/hjson": {
- extensions: [
- "hjson"
- ]
- },
- "application/http": {
- source: "iana"
- },
- "application/hyperstudio": {
- source: "iana",
- extensions: [
- "stk"
- ]
- },
- "application/ibe-key-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/ibe-pkg-reply+xml": {
- source: "iana",
- compressible: true
- },
- "application/ibe-pp-data": {
- source: "iana"
- },
- "application/iges": {
- source: "iana"
- },
- "application/im-iscomposing+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/index": {
- source: "iana"
- },
- "application/index.cmd": {
- source: "iana"
- },
- "application/index.obj": {
- source: "iana"
- },
- "application/index.response": {
- source: "iana"
- },
- "application/index.vnd": {
- source: "iana"
- },
- "application/inkml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "ink",
- "inkml"
- ]
- },
- "application/iotp": {
- source: "iana"
- },
- "application/ipfix": {
- source: "iana",
- extensions: [
- "ipfix"
- ]
- },
- "application/ipp": {
- source: "iana"
- },
- "application/isup": {
- source: "iana"
- },
- "application/its+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "its"
- ]
- },
- "application/java-archive": {
- source: "apache",
- compressible: false,
- extensions: [
- "jar",
- "war",
- "ear"
- ]
- },
- "application/java-serialized-object": {
- source: "apache",
- compressible: false,
- extensions: [
- "ser"
- ]
- },
- "application/java-vm": {
- source: "apache",
- compressible: false,
- extensions: [
- "class"
- ]
- },
- "application/javascript": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "js",
- "mjs"
- ]
- },
- "application/jf2feed+json": {
- source: "iana",
- compressible: true
- },
- "application/jose": {
- source: "iana"
- },
- "application/jose+json": {
- source: "iana",
- compressible: true
- },
- "application/jrd+json": {
- source: "iana",
- compressible: true
- },
- "application/jscalendar+json": {
- source: "iana",
- compressible: true
- },
- "application/json": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "json",
- "map"
- ]
- },
- "application/json-patch+json": {
- source: "iana",
- compressible: true
- },
- "application/json-seq": {
- source: "iana"
- },
- "application/json5": {
- extensions: [
- "json5"
- ]
- },
- "application/jsonml+json": {
- source: "apache",
- compressible: true,
- extensions: [
- "jsonml"
- ]
- },
- "application/jwk+json": {
- source: "iana",
- compressible: true
- },
- "application/jwk-set+json": {
- source: "iana",
- compressible: true
- },
- "application/jwt": {
- source: "iana"
- },
- "application/kpml-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/kpml-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/ld+json": {
- source: "iana",
- compressible: true,
- extensions: [
- "jsonld"
- ]
- },
- "application/lgr+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "lgr"
- ]
- },
- "application/link-format": {
- source: "iana"
- },
- "application/load-control+xml": {
- source: "iana",
- compressible: true
- },
- "application/lost+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "lostxml"
- ]
- },
- "application/lostsync+xml": {
- source: "iana",
- compressible: true
- },
- "application/lpf+zip": {
- source: "iana",
- compressible: false
- },
- "application/lxf": {
- source: "iana"
- },
- "application/mac-binhex40": {
- source: "iana",
- extensions: [
- "hqx"
- ]
- },
- "application/mac-compactpro": {
- source: "apache",
- extensions: [
- "cpt"
- ]
- },
- "application/macwriteii": {
- source: "iana"
- },
- "application/mads+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mads"
- ]
- },
- "application/manifest+json": {
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "webmanifest"
- ]
- },
- "application/marc": {
- source: "iana",
- extensions: [
- "mrc"
- ]
- },
- "application/marcxml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mrcx"
- ]
- },
- "application/mathematica": {
- source: "iana",
- extensions: [
- "ma",
- "nb",
- "mb"
- ]
- },
- "application/mathml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mathml"
- ]
- },
- "application/mathml-content+xml": {
- source: "iana",
- compressible: true
- },
- "application/mathml-presentation+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-associated-procedure-description+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-deregister+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-envelope+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-msk+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-msk-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-protection-description+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-reception-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-register+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-register-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-schedule+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbms-user-service-description+xml": {
- source: "iana",
- compressible: true
- },
- "application/mbox": {
- source: "iana",
- extensions: [
- "mbox"
- ]
- },
- "application/media-policy-dataset+xml": {
- source: "iana",
- compressible: true
- },
- "application/media_control+xml": {
- source: "iana",
- compressible: true
- },
- "application/mediaservercontrol+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mscml"
- ]
- },
- "application/merge-patch+json": {
- source: "iana",
- compressible: true
- },
- "application/metalink+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "metalink"
- ]
- },
- "application/metalink4+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "meta4"
- ]
- },
- "application/mets+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mets"
- ]
- },
- "application/mf4": {
- source: "iana"
- },
- "application/mikey": {
- source: "iana"
- },
- "application/mipc": {
- source: "iana"
- },
- "application/mmt-aei+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "maei"
- ]
- },
- "application/mmt-usd+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "musd"
- ]
- },
- "application/mods+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mods"
- ]
- },
- "application/moss-keys": {
- source: "iana"
- },
- "application/moss-signature": {
- source: "iana"
- },
- "application/mosskey-data": {
- source: "iana"
- },
- "application/mosskey-request": {
- source: "iana"
- },
- "application/mp21": {
- source: "iana",
- extensions: [
- "m21",
- "mp21"
- ]
- },
- "application/mp4": {
- source: "iana",
- extensions: [
- "mp4s",
- "m4p"
- ]
- },
- "application/mpeg4-generic": {
- source: "iana"
- },
- "application/mpeg4-iod": {
- source: "iana"
- },
- "application/mpeg4-iod-xmt": {
- source: "iana"
- },
- "application/mrb-consumer+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xdf"
- ]
- },
- "application/mrb-publish+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xdf"
- ]
- },
- "application/msc-ivr+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/msc-mixer+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/msword": {
- source: "iana",
- compressible: false,
- extensions: [
- "doc",
- "dot"
- ]
- },
- "application/mud+json": {
- source: "iana",
- compressible: true
- },
- "application/multipart-core": {
- source: "iana"
- },
- "application/mxf": {
- source: "iana",
- extensions: [
- "mxf"
- ]
- },
- "application/n-quads": {
- source: "iana",
- extensions: [
- "nq"
- ]
- },
- "application/n-triples": {
- source: "iana",
- extensions: [
- "nt"
- ]
- },
- "application/nasdata": {
- source: "iana"
- },
- "application/news-checkgroups": {
- source: "iana",
- charset: "US-ASCII"
- },
- "application/news-groupinfo": {
- source: "iana",
- charset: "US-ASCII"
- },
- "application/news-transmission": {
- source: "iana"
- },
- "application/nlsml+xml": {
- source: "iana",
- compressible: true
- },
- "application/node": {
- source: "iana",
- extensions: [
- "cjs"
- ]
- },
- "application/nss": {
- source: "iana"
- },
- "application/ocsp-request": {
- source: "iana"
- },
- "application/ocsp-response": {
- source: "iana"
- },
- "application/octet-stream": {
- source: "iana",
- compressible: false,
- extensions: [
- "bin",
- "dms",
- "lrf",
- "mar",
- "so",
- "dist",
- "distz",
- "pkg",
- "bpk",
- "dump",
- "elc",
- "deploy",
- "exe",
- "dll",
- "deb",
- "dmg",
- "iso",
- "img",
- "msi",
- "msp",
- "msm",
- "buffer"
- ]
- },
- "application/oda": {
- source: "iana",
- extensions: [
- "oda"
- ]
- },
- "application/odm+xml": {
- source: "iana",
- compressible: true
- },
- "application/odx": {
- source: "iana"
- },
- "application/oebps-package+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "opf"
- ]
- },
- "application/ogg": {
- source: "iana",
- compressible: false,
- extensions: [
- "ogx"
- ]
- },
- "application/omdoc+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "omdoc"
- ]
- },
- "application/onenote": {
- source: "apache",
- extensions: [
- "onetoc",
- "onetoc2",
- "onetmp",
- "onepkg"
- ]
- },
- "application/opc-nodeset+xml": {
- source: "iana",
- compressible: true
- },
- "application/oscore": {
- source: "iana"
- },
- "application/oxps": {
- source: "iana",
- extensions: [
- "oxps"
- ]
- },
- "application/p2p-overlay+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "relo"
- ]
- },
- "application/parityfec": {
- source: "iana"
- },
- "application/passport": {
- source: "iana"
- },
- "application/patch-ops-error+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xer"
- ]
- },
- "application/pdf": {
- source: "iana",
- compressible: false,
- extensions: [
- "pdf"
- ]
- },
- "application/pdx": {
- source: "iana"
- },
- "application/pem-certificate-chain": {
- source: "iana"
- },
- "application/pgp-encrypted": {
- source: "iana",
- compressible: false,
- extensions: [
- "pgp"
- ]
- },
- "application/pgp-keys": {
- source: "iana"
- },
- "application/pgp-signature": {
- source: "iana",
- extensions: [
- "asc",
- "sig"
- ]
- },
- "application/pics-rules": {
- source: "apache",
- extensions: [
- "prf"
- ]
- },
- "application/pidf+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/pidf-diff+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/pkcs10": {
- source: "iana",
- extensions: [
- "p10"
- ]
- },
- "application/pkcs12": {
- source: "iana"
- },
- "application/pkcs7-mime": {
- source: "iana",
- extensions: [
- "p7m",
- "p7c"
- ]
- },
- "application/pkcs7-signature": {
- source: "iana",
- extensions: [
- "p7s"
- ]
- },
- "application/pkcs8": {
- source: "iana",
- extensions: [
- "p8"
- ]
- },
- "application/pkcs8-encrypted": {
- source: "iana"
- },
- "application/pkix-attr-cert": {
- source: "iana",
- extensions: [
- "ac"
- ]
- },
- "application/pkix-cert": {
- source: "iana",
- extensions: [
- "cer"
- ]
- },
- "application/pkix-crl": {
- source: "iana",
- extensions: [
- "crl"
- ]
- },
- "application/pkix-pkipath": {
- source: "iana",
- extensions: [
- "pkipath"
- ]
- },
- "application/pkixcmp": {
- source: "iana",
- extensions: [
- "pki"
- ]
- },
- "application/pls+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "pls"
- ]
- },
- "application/poc-settings+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/postscript": {
- source: "iana",
- compressible: true,
- extensions: [
- "ai",
- "eps",
- "ps"
- ]
- },
- "application/ppsp-tracker+json": {
- source: "iana",
- compressible: true
- },
- "application/problem+json": {
- source: "iana",
- compressible: true
- },
- "application/problem+xml": {
- source: "iana",
- compressible: true
- },
- "application/provenance+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "provx"
- ]
- },
- "application/prs.alvestrand.titrax-sheet": {
- source: "iana"
- },
- "application/prs.cww": {
- source: "iana",
- extensions: [
- "cww"
- ]
- },
- "application/prs.cyn": {
- source: "iana",
- charset: "7-BIT"
- },
- "application/prs.hpub+zip": {
- source: "iana",
- compressible: false
- },
- "application/prs.nprend": {
- source: "iana"
- },
- "application/prs.plucker": {
- source: "iana"
- },
- "application/prs.rdf-xml-crypt": {
- source: "iana"
- },
- "application/prs.xsf+xml": {
- source: "iana",
- compressible: true
- },
- "application/pskc+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "pskcxml"
- ]
- },
- "application/pvd+json": {
- source: "iana",
- compressible: true
- },
- "application/qsig": {
- source: "iana"
- },
- "application/raml+yaml": {
- compressible: true,
- extensions: [
- "raml"
- ]
- },
- "application/raptorfec": {
- source: "iana"
- },
- "application/rdap+json": {
- source: "iana",
- compressible: true
- },
- "application/rdf+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rdf",
- "owl"
- ]
- },
- "application/reginfo+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rif"
- ]
- },
- "application/relax-ng-compact-syntax": {
- source: "iana",
- extensions: [
- "rnc"
- ]
- },
- "application/remote-printing": {
- source: "iana"
- },
- "application/reputon+json": {
- source: "iana",
- compressible: true
- },
- "application/resource-lists+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rl"
- ]
- },
- "application/resource-lists-diff+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rld"
- ]
- },
- "application/rfc+xml": {
- source: "iana",
- compressible: true
- },
- "application/riscos": {
- source: "iana"
- },
- "application/rlmi+xml": {
- source: "iana",
- compressible: true
- },
- "application/rls-services+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rs"
- ]
- },
- "application/route-apd+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rapd"
- ]
- },
- "application/route-s-tsid+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "sls"
- ]
- },
- "application/route-usd+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rusd"
- ]
- },
- "application/rpki-ghostbusters": {
- source: "iana",
- extensions: [
- "gbr"
- ]
- },
- "application/rpki-manifest": {
- source: "iana",
- extensions: [
- "mft"
- ]
- },
- "application/rpki-publication": {
- source: "iana"
- },
- "application/rpki-roa": {
- source: "iana",
- extensions: [
- "roa"
- ]
- },
- "application/rpki-updown": {
- source: "iana"
- },
- "application/rsd+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "rsd"
- ]
- },
- "application/rss+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "rss"
- ]
- },
- "application/rtf": {
- source: "iana",
- compressible: true,
- extensions: [
- "rtf"
- ]
- },
- "application/rtploopback": {
- source: "iana"
- },
- "application/rtx": {
- source: "iana"
- },
- "application/samlassertion+xml": {
- source: "iana",
- compressible: true
- },
- "application/samlmetadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/sarif+json": {
- source: "iana",
- compressible: true
- },
- "application/sbe": {
- source: "iana"
- },
- "application/sbml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "sbml"
- ]
- },
- "application/scaip+xml": {
- source: "iana",
- compressible: true
- },
- "application/scim+json": {
- source: "iana",
- compressible: true
- },
- "application/scvp-cv-request": {
- source: "iana",
- extensions: [
- "scq"
- ]
- },
- "application/scvp-cv-response": {
- source: "iana",
- extensions: [
- "scs"
- ]
- },
- "application/scvp-vp-request": {
- source: "iana",
- extensions: [
- "spq"
- ]
- },
- "application/scvp-vp-response": {
- source: "iana",
- extensions: [
- "spp"
- ]
- },
- "application/sdp": {
- source: "iana",
- extensions: [
- "sdp"
- ]
- },
- "application/secevent+jwt": {
- source: "iana"
- },
- "application/senml+cbor": {
- source: "iana"
- },
- "application/senml+json": {
- source: "iana",
- compressible: true
- },
- "application/senml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "senmlx"
- ]
- },
- "application/senml-etch+cbor": {
- source: "iana"
- },
- "application/senml-etch+json": {
- source: "iana",
- compressible: true
- },
- "application/senml-exi": {
- source: "iana"
- },
- "application/sensml+cbor": {
- source: "iana"
- },
- "application/sensml+json": {
- source: "iana",
- compressible: true
- },
- "application/sensml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "sensmlx"
- ]
- },
- "application/sensml-exi": {
- source: "iana"
- },
- "application/sep+xml": {
- source: "iana",
- compressible: true
- },
- "application/sep-exi": {
- source: "iana"
- },
- "application/session-info": {
- source: "iana"
- },
- "application/set-payment": {
- source: "iana"
- },
- "application/set-payment-initiation": {
- source: "iana",
- extensions: [
- "setpay"
- ]
- },
- "application/set-registration": {
- source: "iana"
- },
- "application/set-registration-initiation": {
- source: "iana",
- extensions: [
- "setreg"
- ]
- },
- "application/sgml": {
- source: "iana"
- },
- "application/sgml-open-catalog": {
- source: "iana"
- },
- "application/shf+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "shf"
- ]
- },
- "application/sieve": {
- source: "iana",
- extensions: [
- "siv",
- "sieve"
- ]
- },
- "application/simple-filter+xml": {
- source: "iana",
- compressible: true
- },
- "application/simple-message-summary": {
- source: "iana"
- },
- "application/simplesymbolcontainer": {
- source: "iana"
- },
- "application/sipc": {
- source: "iana"
- },
- "application/slate": {
- source: "iana"
- },
- "application/smil": {
- source: "iana"
- },
- "application/smil+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "smi",
- "smil"
- ]
- },
- "application/smpte336m": {
- source: "iana"
- },
- "application/soap+fastinfoset": {
- source: "iana"
- },
- "application/soap+xml": {
- source: "iana",
- compressible: true
- },
- "application/sparql-query": {
- source: "iana",
- extensions: [
- "rq"
- ]
- },
- "application/sparql-results+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "srx"
- ]
- },
- "application/spirits-event+xml": {
- source: "iana",
- compressible: true
- },
- "application/sql": {
- source: "iana"
- },
- "application/srgs": {
- source: "iana",
- extensions: [
- "gram"
- ]
- },
- "application/srgs+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "grxml"
- ]
- },
- "application/sru+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "sru"
- ]
- },
- "application/ssdl+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "ssdl"
- ]
- },
- "application/ssml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "ssml"
- ]
- },
- "application/stix+json": {
- source: "iana",
- compressible: true
- },
- "application/swid+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "swidtag"
- ]
- },
- "application/tamp-apex-update": {
- source: "iana"
- },
- "application/tamp-apex-update-confirm": {
- source: "iana"
- },
- "application/tamp-community-update": {
- source: "iana"
- },
- "application/tamp-community-update-confirm": {
- source: "iana"
- },
- "application/tamp-error": {
- source: "iana"
- },
- "application/tamp-sequence-adjust": {
- source: "iana"
- },
- "application/tamp-sequence-adjust-confirm": {
- source: "iana"
- },
- "application/tamp-status-query": {
- source: "iana"
- },
- "application/tamp-status-response": {
- source: "iana"
- },
- "application/tamp-update": {
- source: "iana"
- },
- "application/tamp-update-confirm": {
- source: "iana"
- },
- "application/tar": {
- compressible: true
- },
- "application/taxii+json": {
- source: "iana",
- compressible: true
- },
- "application/td+json": {
- source: "iana",
- compressible: true
- },
- "application/tei+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "tei",
- "teicorpus"
- ]
- },
- "application/tetra_isi": {
- source: "iana"
- },
- "application/thraud+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "tfi"
- ]
- },
- "application/timestamp-query": {
- source: "iana"
- },
- "application/timestamp-reply": {
- source: "iana"
- },
- "application/timestamped-data": {
- source: "iana",
- extensions: [
- "tsd"
- ]
- },
- "application/tlsrpt+gzip": {
- source: "iana"
- },
- "application/tlsrpt+json": {
- source: "iana",
- compressible: true
- },
- "application/tnauthlist": {
- source: "iana"
- },
- "application/toml": {
- compressible: true,
- extensions: [
- "toml"
- ]
- },
- "application/trickle-ice-sdpfrag": {
- source: "iana"
- },
- "application/trig": {
- source: "iana"
- },
- "application/ttml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "ttml"
- ]
- },
- "application/tve-trigger": {
- source: "iana"
- },
- "application/tzif": {
- source: "iana"
- },
- "application/tzif-leap": {
- source: "iana"
- },
- "application/ubjson": {
- compressible: false,
- extensions: [
- "ubj"
- ]
- },
- "application/ulpfec": {
- source: "iana"
- },
- "application/urc-grpsheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/urc-ressheet+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "rsheet"
- ]
- },
- "application/urc-targetdesc+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "td"
- ]
- },
- "application/urc-uisocketdesc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vcard+json": {
- source: "iana",
- compressible: true
- },
- "application/vcard+xml": {
- source: "iana",
- compressible: true
- },
- "application/vemmi": {
- source: "iana"
- },
- "application/vividence.scriptfile": {
- source: "apache"
- },
- "application/vnd.1000minds.decision-model+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "1km"
- ]
- },
- "application/vnd.3gpp-prose+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-prose-pc3ch+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp-v2x-local-service-information": {
- source: "iana"
- },
- "application/vnd.3gpp.access-transfer-events+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.bsf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.gmop+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.interworking-data": {
- source: "iana"
- },
- "application/vnd.3gpp.mc-signalling-ear": {
- source: "iana"
- },
- "application/vnd.3gpp.mcdata-affiliation-command+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-payload": {
- source: "iana"
- },
- "application/vnd.3gpp.mcdata-service-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-signalling": {
- source: "iana"
- },
- "application/vnd.3gpp.mcdata-ue-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcdata-user-profile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-affiliation-command+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-floor-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-location-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-service-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-signed+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-ue-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-ue-init-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcptt-user-profile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-affiliation-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-location-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-service-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-transmission-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-ue-config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mcvideo-user-profile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.mid-call+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.pic-bw-large": {
- source: "iana",
- extensions: [
- "plb"
- ]
- },
- "application/vnd.3gpp.pic-bw-small": {
- source: "iana",
- extensions: [
- "psb"
- ]
- },
- "application/vnd.3gpp.pic-bw-var": {
- source: "iana",
- extensions: [
- "pvb"
- ]
- },
- "application/vnd.3gpp.sms": {
- source: "iana"
- },
- "application/vnd.3gpp.sms+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.srvcc-ext+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.srvcc-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.state-and-event-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp.ussd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp2.bcmcsinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.3gpp2.sms": {
- source: "iana"
- },
- "application/vnd.3gpp2.tcap": {
- source: "iana",
- extensions: [
- "tcap"
- ]
- },
- "application/vnd.3lightssoftware.imagescal": {
- source: "iana"
- },
- "application/vnd.3m.post-it-notes": {
- source: "iana",
- extensions: [
- "pwn"
- ]
- },
- "application/vnd.accpac.simply.aso": {
- source: "iana",
- extensions: [
- "aso"
- ]
- },
- "application/vnd.accpac.simply.imp": {
- source: "iana",
- extensions: [
- "imp"
- ]
- },
- "application/vnd.acucobol": {
- source: "iana",
- extensions: [
- "acu"
- ]
- },
- "application/vnd.acucorp": {
- source: "iana",
- extensions: [
- "atc",
- "acutc"
- ]
- },
- "application/vnd.adobe.air-application-installer-package+zip": {
- source: "apache",
- compressible: false,
- extensions: [
- "air"
- ]
- },
- "application/vnd.adobe.flash.movie": {
- source: "iana"
- },
- "application/vnd.adobe.formscentral.fcdt": {
- source: "iana",
- extensions: [
- "fcdt"
- ]
- },
- "application/vnd.adobe.fxp": {
- source: "iana",
- extensions: [
- "fxp",
- "fxpl"
- ]
- },
- "application/vnd.adobe.partial-upload": {
- source: "iana"
- },
- "application/vnd.adobe.xdp+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xdp"
- ]
- },
- "application/vnd.adobe.xfdf": {
- source: "iana",
- extensions: [
- "xfdf"
- ]
- },
- "application/vnd.aether.imp": {
- source: "iana"
- },
- "application/vnd.afpc.afplinedata": {
- source: "iana"
- },
- "application/vnd.afpc.afplinedata-pagedef": {
- source: "iana"
- },
- "application/vnd.afpc.cmoca-cmresource": {
- source: "iana"
- },
- "application/vnd.afpc.foca-charset": {
- source: "iana"
- },
- "application/vnd.afpc.foca-codedfont": {
- source: "iana"
- },
- "application/vnd.afpc.foca-codepage": {
- source: "iana"
- },
- "application/vnd.afpc.modca": {
- source: "iana"
- },
- "application/vnd.afpc.modca-cmtable": {
- source: "iana"
- },
- "application/vnd.afpc.modca-formdef": {
- source: "iana"
- },
- "application/vnd.afpc.modca-mediummap": {
- source: "iana"
- },
- "application/vnd.afpc.modca-objectcontainer": {
- source: "iana"
- },
- "application/vnd.afpc.modca-overlay": {
- source: "iana"
- },
- "application/vnd.afpc.modca-pagesegment": {
- source: "iana"
- },
- "application/vnd.ah-barcode": {
- source: "iana"
- },
- "application/vnd.ahead.space": {
- source: "iana",
- extensions: [
- "ahead"
- ]
- },
- "application/vnd.airzip.filesecure.azf": {
- source: "iana",
- extensions: [
- "azf"
- ]
- },
- "application/vnd.airzip.filesecure.azs": {
- source: "iana",
- extensions: [
- "azs"
- ]
- },
- "application/vnd.amadeus+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.amazon.ebook": {
- source: "apache",
- extensions: [
- "azw"
- ]
- },
- "application/vnd.amazon.mobi8-ebook": {
- source: "iana"
- },
- "application/vnd.americandynamics.acc": {
- source: "iana",
- extensions: [
- "acc"
- ]
- },
- "application/vnd.amiga.ami": {
- source: "iana",
- extensions: [
- "ami"
- ]
- },
- "application/vnd.amundsen.maze+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.android.ota": {
- source: "iana"
- },
- "application/vnd.android.package-archive": {
- source: "apache",
- compressible: false,
- extensions: [
- "apk"
- ]
- },
- "application/vnd.anki": {
- source: "iana"
- },
- "application/vnd.anser-web-certificate-issue-initiation": {
- source: "iana",
- extensions: [
- "cii"
- ]
- },
- "application/vnd.anser-web-funds-transfer-initiation": {
- source: "apache",
- extensions: [
- "fti"
- ]
- },
- "application/vnd.antix.game-component": {
- source: "iana",
- extensions: [
- "atx"
- ]
- },
- "application/vnd.apache.thrift.binary": {
- source: "iana"
- },
- "application/vnd.apache.thrift.compact": {
- source: "iana"
- },
- "application/vnd.apache.thrift.json": {
- source: "iana"
- },
- "application/vnd.api+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.aplextor.warrp+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.apothekende.reservation+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.apple.installer+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mpkg"
- ]
- },
- "application/vnd.apple.keynote": {
- source: "iana",
- extensions: [
- "key"
- ]
- },
- "application/vnd.apple.mpegurl": {
- source: "iana",
- extensions: [
- "m3u8"
- ]
- },
- "application/vnd.apple.numbers": {
- source: "iana",
- extensions: [
- "numbers"
- ]
- },
- "application/vnd.apple.pages": {
- source: "iana",
- extensions: [
- "pages"
- ]
- },
- "application/vnd.apple.pkpass": {
- compressible: false,
- extensions: [
- "pkpass"
- ]
- },
- "application/vnd.arastra.swi": {
- source: "iana"
- },
- "application/vnd.aristanetworks.swi": {
- source: "iana",
- extensions: [
- "swi"
- ]
- },
- "application/vnd.artisan+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.artsquare": {
- source: "iana"
- },
- "application/vnd.astraea-software.iota": {
- source: "iana",
- extensions: [
- "iota"
- ]
- },
- "application/vnd.audiograph": {
- source: "iana",
- extensions: [
- "aep"
- ]
- },
- "application/vnd.autopackage": {
- source: "iana"
- },
- "application/vnd.avalon+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.avistar+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.balsamiq.bmml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "bmml"
- ]
- },
- "application/vnd.balsamiq.bmpr": {
- source: "iana"
- },
- "application/vnd.banana-accounting": {
- source: "iana"
- },
- "application/vnd.bbf.usp.error": {
- source: "iana"
- },
- "application/vnd.bbf.usp.msg": {
- source: "iana"
- },
- "application/vnd.bbf.usp.msg+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.bekitzur-stech+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.bint.med-content": {
- source: "iana"
- },
- "application/vnd.biopax.rdf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.blink-idb-value-wrapper": {
- source: "iana"
- },
- "application/vnd.blueice.multipass": {
- source: "iana",
- extensions: [
- "mpm"
- ]
- },
- "application/vnd.bluetooth.ep.oob": {
- source: "iana"
- },
- "application/vnd.bluetooth.le.oob": {
- source: "iana"
- },
- "application/vnd.bmi": {
- source: "iana",
- extensions: [
- "bmi"
- ]
- },
- "application/vnd.bpf": {
- source: "iana"
- },
- "application/vnd.bpf3": {
- source: "iana"
- },
- "application/vnd.businessobjects": {
- source: "iana",
- extensions: [
- "rep"
- ]
- },
- "application/vnd.byu.uapi+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cab-jscript": {
- source: "iana"
- },
- "application/vnd.canon-cpdl": {
- source: "iana"
- },
- "application/vnd.canon-lips": {
- source: "iana"
- },
- "application/vnd.capasystems-pg+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cendio.thinlinc.clientconf": {
- source: "iana"
- },
- "application/vnd.century-systems.tcp_stream": {
- source: "iana"
- },
- "application/vnd.chemdraw+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "cdxml"
- ]
- },
- "application/vnd.chess-pgn": {
- source: "iana"
- },
- "application/vnd.chipnuts.karaoke-mmd": {
- source: "iana",
- extensions: [
- "mmd"
- ]
- },
- "application/vnd.ciedi": {
- source: "iana"
- },
- "application/vnd.cinderella": {
- source: "iana",
- extensions: [
- "cdy"
- ]
- },
- "application/vnd.cirpack.isdn-ext": {
- source: "iana"
- },
- "application/vnd.citationstyles.style+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "csl"
- ]
- },
- "application/vnd.claymore": {
- source: "iana",
- extensions: [
- "cla"
- ]
- },
- "application/vnd.cloanto.rp9": {
- source: "iana",
- extensions: [
- "rp9"
- ]
- },
- "application/vnd.clonk.c4group": {
- source: "iana",
- extensions: [
- "c4g",
- "c4d",
- "c4f",
- "c4p",
- "c4u"
- ]
- },
- "application/vnd.cluetrust.cartomobile-config": {
- source: "iana",
- extensions: [
- "c11amc"
- ]
- },
- "application/vnd.cluetrust.cartomobile-config-pkg": {
- source: "iana",
- extensions: [
- "c11amz"
- ]
- },
- "application/vnd.coffeescript": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.document": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.document-template": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.presentation": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.presentation-template": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.spreadsheet": {
- source: "iana"
- },
- "application/vnd.collabio.xodocuments.spreadsheet-template": {
- source: "iana"
- },
- "application/vnd.collection+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.collection.doc+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.collection.next+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.comicbook+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.comicbook-rar": {
- source: "iana"
- },
- "application/vnd.commerce-battelle": {
- source: "iana"
- },
- "application/vnd.commonspace": {
- source: "iana",
- extensions: [
- "csp"
- ]
- },
- "application/vnd.contact.cmsg": {
- source: "iana",
- extensions: [
- "cdbcmsg"
- ]
- },
- "application/vnd.coreos.ignition+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cosmocaller": {
- source: "iana",
- extensions: [
- "cmc"
- ]
- },
- "application/vnd.crick.clicker": {
- source: "iana",
- extensions: [
- "clkx"
- ]
- },
- "application/vnd.crick.clicker.keyboard": {
- source: "iana",
- extensions: [
- "clkk"
- ]
- },
- "application/vnd.crick.clicker.palette": {
- source: "iana",
- extensions: [
- "clkp"
- ]
- },
- "application/vnd.crick.clicker.template": {
- source: "iana",
- extensions: [
- "clkt"
- ]
- },
- "application/vnd.crick.clicker.wordbank": {
- source: "iana",
- extensions: [
- "clkw"
- ]
- },
- "application/vnd.criticaltools.wbs+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "wbs"
- ]
- },
- "application/vnd.cryptii.pipe+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.crypto-shade-file": {
- source: "iana"
- },
- "application/vnd.ctc-posml": {
- source: "iana",
- extensions: [
- "pml"
- ]
- },
- "application/vnd.ctct.ws+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cups-pdf": {
- source: "iana"
- },
- "application/vnd.cups-postscript": {
- source: "iana"
- },
- "application/vnd.cups-ppd": {
- source: "iana",
- extensions: [
- "ppd"
- ]
- },
- "application/vnd.cups-raster": {
- source: "iana"
- },
- "application/vnd.cups-raw": {
- source: "iana"
- },
- "application/vnd.curl": {
- source: "iana"
- },
- "application/vnd.curl.car": {
- source: "apache",
- extensions: [
- "car"
- ]
- },
- "application/vnd.curl.pcurl": {
- source: "apache",
- extensions: [
- "pcurl"
- ]
- },
- "application/vnd.cyan.dean.root+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cybank": {
- source: "iana"
- },
- "application/vnd.cyclonedx+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.cyclonedx+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.d2l.coursepackage1p0+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.d3m-dataset": {
- source: "iana"
- },
- "application/vnd.d3m-problem": {
- source: "iana"
- },
- "application/vnd.dart": {
- source: "iana",
- compressible: true,
- extensions: [
- "dart"
- ]
- },
- "application/vnd.data-vision.rdz": {
- source: "iana",
- extensions: [
- "rdz"
- ]
- },
- "application/vnd.datapackage+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dataresource+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dbf": {
- source: "iana",
- extensions: [
- "dbf"
- ]
- },
- "application/vnd.debian.binary-package": {
- source: "iana"
- },
- "application/vnd.dece.data": {
- source: "iana",
- extensions: [
- "uvf",
- "uvvf",
- "uvd",
- "uvvd"
- ]
- },
- "application/vnd.dece.ttml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "uvt",
- "uvvt"
- ]
- },
- "application/vnd.dece.unspecified": {
- source: "iana",
- extensions: [
- "uvx",
- "uvvx"
- ]
- },
- "application/vnd.dece.zip": {
- source: "iana",
- extensions: [
- "uvz",
- "uvvz"
- ]
- },
- "application/vnd.denovo.fcselayout-link": {
- source: "iana",
- extensions: [
- "fe_launch"
- ]
- },
- "application/vnd.desmume.movie": {
- source: "iana"
- },
- "application/vnd.dir-bi.plate-dl-nosuffix": {
- source: "iana"
- },
- "application/vnd.dm.delegation+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dna": {
- source: "iana",
- extensions: [
- "dna"
- ]
- },
- "application/vnd.document+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dolby.mlp": {
- source: "apache",
- extensions: [
- "mlp"
- ]
- },
- "application/vnd.dolby.mobile.1": {
- source: "iana"
- },
- "application/vnd.dolby.mobile.2": {
- source: "iana"
- },
- "application/vnd.doremir.scorecloud-binary-document": {
- source: "iana"
- },
- "application/vnd.dpgraph": {
- source: "iana",
- extensions: [
- "dpg"
- ]
- },
- "application/vnd.dreamfactory": {
- source: "iana",
- extensions: [
- "dfac"
- ]
- },
- "application/vnd.drive+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ds-keypoint": {
- source: "apache",
- extensions: [
- "kpxx"
- ]
- },
- "application/vnd.dtg.local": {
- source: "iana"
- },
- "application/vnd.dtg.local.flash": {
- source: "iana"
- },
- "application/vnd.dtg.local.html": {
- source: "iana"
- },
- "application/vnd.dvb.ait": {
- source: "iana",
- extensions: [
- "ait"
- ]
- },
- "application/vnd.dvb.dvbisl+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.dvbj": {
- source: "iana"
- },
- "application/vnd.dvb.esgcontainer": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcdftnotifaccess": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcesgaccess": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcesgaccess2": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcesgpdd": {
- source: "iana"
- },
- "application/vnd.dvb.ipdcroaming": {
- source: "iana"
- },
- "application/vnd.dvb.iptv.alfec-base": {
- source: "iana"
- },
- "application/vnd.dvb.iptv.alfec-enhancement": {
- source: "iana"
- },
- "application/vnd.dvb.notif-aggregate-root+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-container+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-generic+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-ia-msglist+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-ia-registration-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-ia-registration-response+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.notif-init+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.dvb.pfr": {
- source: "iana"
- },
- "application/vnd.dvb.service": {
- source: "iana",
- extensions: [
- "svc"
- ]
- },
- "application/vnd.dxr": {
- source: "iana"
- },
- "application/vnd.dynageo": {
- source: "iana",
- extensions: [
- "geo"
- ]
- },
- "application/vnd.dzr": {
- source: "iana"
- },
- "application/vnd.easykaraoke.cdgdownload": {
- source: "iana"
- },
- "application/vnd.ecdis-update": {
- source: "iana"
- },
- "application/vnd.ecip.rlp": {
- source: "iana"
- },
- "application/vnd.ecowin.chart": {
- source: "iana",
- extensions: [
- "mag"
- ]
- },
- "application/vnd.ecowin.filerequest": {
- source: "iana"
- },
- "application/vnd.ecowin.fileupdate": {
- source: "iana"
- },
- "application/vnd.ecowin.series": {
- source: "iana"
- },
- "application/vnd.ecowin.seriesrequest": {
- source: "iana"
- },
- "application/vnd.ecowin.seriesupdate": {
- source: "iana"
- },
- "application/vnd.efi.img": {
- source: "iana"
- },
- "application/vnd.efi.iso": {
- source: "iana"
- },
- "application/vnd.emclient.accessrequest+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.enliven": {
- source: "iana",
- extensions: [
- "nml"
- ]
- },
- "application/vnd.enphase.envoy": {
- source: "iana"
- },
- "application/vnd.eprints.data+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.epson.esf": {
- source: "iana",
- extensions: [
- "esf"
- ]
- },
- "application/vnd.epson.msf": {
- source: "iana",
- extensions: [
- "msf"
- ]
- },
- "application/vnd.epson.quickanime": {
- source: "iana",
- extensions: [
- "qam"
- ]
- },
- "application/vnd.epson.salt": {
- source: "iana",
- extensions: [
- "slt"
- ]
- },
- "application/vnd.epson.ssf": {
- source: "iana",
- extensions: [
- "ssf"
- ]
- },
- "application/vnd.ericsson.quickcall": {
- source: "iana"
- },
- "application/vnd.espass-espass+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.eszigno3+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "es3",
- "et3"
- ]
- },
- "application/vnd.etsi.aoc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.asic-e+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.etsi.asic-s+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.etsi.cug+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvcommand+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvdiscovery+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsad-bc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsad-cod+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsad-npvr+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvservice+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvsync+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.iptvueprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.mcid+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.mheg5": {
- source: "iana"
- },
- "application/vnd.etsi.overload-control-policy-dataset+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.pstn+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.sci+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.simservs+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.timestamp-token": {
- source: "iana"
- },
- "application/vnd.etsi.tsl+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.etsi.tsl.der": {
- source: "iana"
- },
- "application/vnd.eudora.data": {
- source: "iana"
- },
- "application/vnd.evolv.ecig.profile": {
- source: "iana"
- },
- "application/vnd.evolv.ecig.settings": {
- source: "iana"
- },
- "application/vnd.evolv.ecig.theme": {
- source: "iana"
- },
- "application/vnd.exstream-empower+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.exstream-package": {
- source: "iana"
- },
- "application/vnd.ezpix-album": {
- source: "iana",
- extensions: [
- "ez2"
- ]
- },
- "application/vnd.ezpix-package": {
- source: "iana",
- extensions: [
- "ez3"
- ]
- },
- "application/vnd.f-secure.mobile": {
- source: "iana"
- },
- "application/vnd.fastcopy-disk-image": {
- source: "iana"
- },
- "application/vnd.fdf": {
- source: "iana",
- extensions: [
- "fdf"
- ]
- },
- "application/vnd.fdsn.mseed": {
- source: "iana",
- extensions: [
- "mseed"
- ]
- },
- "application/vnd.fdsn.seed": {
- source: "iana",
- extensions: [
- "seed",
- "dataless"
- ]
- },
- "application/vnd.ffsns": {
- source: "iana"
- },
- "application/vnd.ficlab.flb+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.filmit.zfc": {
- source: "iana"
- },
- "application/vnd.fints": {
- source: "iana"
- },
- "application/vnd.firemonkeys.cloudcell": {
- source: "iana"
- },
- "application/vnd.flographit": {
- source: "iana",
- extensions: [
- "gph"
- ]
- },
- "application/vnd.fluxtime.clip": {
- source: "iana",
- extensions: [
- "ftc"
- ]
- },
- "application/vnd.font-fontforge-sfd": {
- source: "iana"
- },
- "application/vnd.framemaker": {
- source: "iana",
- extensions: [
- "fm",
- "frame",
- "maker",
- "book"
- ]
- },
- "application/vnd.frogans.fnc": {
- source: "iana",
- extensions: [
- "fnc"
- ]
- },
- "application/vnd.frogans.ltf": {
- source: "iana",
- extensions: [
- "ltf"
- ]
- },
- "application/vnd.fsc.weblaunch": {
- source: "iana",
- extensions: [
- "fsc"
- ]
- },
- "application/vnd.fujitsu.oasys": {
- source: "iana",
- extensions: [
- "oas"
- ]
- },
- "application/vnd.fujitsu.oasys2": {
- source: "iana",
- extensions: [
- "oa2"
- ]
- },
- "application/vnd.fujitsu.oasys3": {
- source: "iana",
- extensions: [
- "oa3"
- ]
- },
- "application/vnd.fujitsu.oasysgp": {
- source: "iana",
- extensions: [
- "fg5"
- ]
- },
- "application/vnd.fujitsu.oasysprs": {
- source: "iana",
- extensions: [
- "bh2"
- ]
- },
- "application/vnd.fujixerox.art-ex": {
- source: "iana"
- },
- "application/vnd.fujixerox.art4": {
- source: "iana"
- },
- "application/vnd.fujixerox.ddd": {
- source: "iana",
- extensions: [
- "ddd"
- ]
- },
- "application/vnd.fujixerox.docuworks": {
- source: "iana",
- extensions: [
- "xdw"
- ]
- },
- "application/vnd.fujixerox.docuworks.binder": {
- source: "iana",
- extensions: [
- "xbd"
- ]
- },
- "application/vnd.fujixerox.docuworks.container": {
- source: "iana"
- },
- "application/vnd.fujixerox.hbpl": {
- source: "iana"
- },
- "application/vnd.fut-misnet": {
- source: "iana"
- },
- "application/vnd.futoin+cbor": {
- source: "iana"
- },
- "application/vnd.futoin+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.fuzzysheet": {
- source: "iana",
- extensions: [
- "fzs"
- ]
- },
- "application/vnd.genomatix.tuxedo": {
- source: "iana",
- extensions: [
- "txd"
- ]
- },
- "application/vnd.gentics.grd+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.geo+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.geocube+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.geogebra.file": {
- source: "iana",
- extensions: [
- "ggb"
- ]
- },
- "application/vnd.geogebra.slides": {
- source: "iana"
- },
- "application/vnd.geogebra.tool": {
- source: "iana",
- extensions: [
- "ggt"
- ]
- },
- "application/vnd.geometry-explorer": {
- source: "iana",
- extensions: [
- "gex",
- "gre"
- ]
- },
- "application/vnd.geonext": {
- source: "iana",
- extensions: [
- "gxt"
- ]
- },
- "application/vnd.geoplan": {
- source: "iana",
- extensions: [
- "g2w"
- ]
- },
- "application/vnd.geospace": {
- source: "iana",
- extensions: [
- "g3w"
- ]
- },
- "application/vnd.gerber": {
- source: "iana"
- },
- "application/vnd.globalplatform.card-content-mgt": {
- source: "iana"
- },
- "application/vnd.globalplatform.card-content-mgt-response": {
- source: "iana"
- },
- "application/vnd.gmx": {
- source: "iana",
- extensions: [
- "gmx"
- ]
- },
- "application/vnd.google-apps.document": {
- compressible: false,
- extensions: [
- "gdoc"
- ]
- },
- "application/vnd.google-apps.presentation": {
- compressible: false,
- extensions: [
- "gslides"
- ]
- },
- "application/vnd.google-apps.spreadsheet": {
- compressible: false,
- extensions: [
- "gsheet"
- ]
- },
- "application/vnd.google-earth.kml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "kml"
- ]
- },
- "application/vnd.google-earth.kmz": {
- source: "iana",
- compressible: false,
- extensions: [
- "kmz"
- ]
- },
- "application/vnd.gov.sk.e-form+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.gov.sk.e-form+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.gov.sk.xmldatacontainer+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.grafeq": {
- source: "iana",
- extensions: [
- "gqf",
- "gqs"
- ]
- },
- "application/vnd.gridmp": {
- source: "iana"
- },
- "application/vnd.groove-account": {
- source: "iana",
- extensions: [
- "gac"
- ]
- },
- "application/vnd.groove-help": {
- source: "iana",
- extensions: [
- "ghf"
- ]
- },
- "application/vnd.groove-identity-message": {
- source: "iana",
- extensions: [
- "gim"
- ]
- },
- "application/vnd.groove-injector": {
- source: "iana",
- extensions: [
- "grv"
- ]
- },
- "application/vnd.groove-tool-message": {
- source: "iana",
- extensions: [
- "gtm"
- ]
- },
- "application/vnd.groove-tool-template": {
- source: "iana",
- extensions: [
- "tpl"
- ]
- },
- "application/vnd.groove-vcard": {
- source: "iana",
- extensions: [
- "vcg"
- ]
- },
- "application/vnd.hal+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hal+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "hal"
- ]
- },
- "application/vnd.handheld-entertainment+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "zmm"
- ]
- },
- "application/vnd.hbci": {
- source: "iana",
- extensions: [
- "hbci"
- ]
- },
- "application/vnd.hc+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hcl-bireports": {
- source: "iana"
- },
- "application/vnd.hdt": {
- source: "iana"
- },
- "application/vnd.heroku+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hhe.lesson-player": {
- source: "iana",
- extensions: [
- "les"
- ]
- },
- "application/vnd.hp-hpgl": {
- source: "iana",
- extensions: [
- "hpgl"
- ]
- },
- "application/vnd.hp-hpid": {
- source: "iana",
- extensions: [
- "hpid"
- ]
- },
- "application/vnd.hp-hps": {
- source: "iana",
- extensions: [
- "hps"
- ]
- },
- "application/vnd.hp-jlyt": {
- source: "iana",
- extensions: [
- "jlt"
- ]
- },
- "application/vnd.hp-pcl": {
- source: "iana",
- extensions: [
- "pcl"
- ]
- },
- "application/vnd.hp-pclxl": {
- source: "iana",
- extensions: [
- "pclxl"
- ]
- },
- "application/vnd.httphone": {
- source: "iana"
- },
- "application/vnd.hydrostatix.sof-data": {
- source: "iana",
- extensions: [
- "sfd-hdstx"
- ]
- },
- "application/vnd.hyper+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hyper-item+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hyperdrive+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.hzn-3d-crossword": {
- source: "iana"
- },
- "application/vnd.ibm.afplinedata": {
- source: "iana"
- },
- "application/vnd.ibm.electronic-media": {
- source: "iana"
- },
- "application/vnd.ibm.minipay": {
- source: "iana",
- extensions: [
- "mpy"
- ]
- },
- "application/vnd.ibm.modcap": {
- source: "iana",
- extensions: [
- "afp",
- "listafp",
- "list3820"
- ]
- },
- "application/vnd.ibm.rights-management": {
- source: "iana",
- extensions: [
- "irm"
- ]
- },
- "application/vnd.ibm.secure-container": {
- source: "iana",
- extensions: [
- "sc"
- ]
- },
- "application/vnd.iccprofile": {
- source: "iana",
- extensions: [
- "icc",
- "icm"
- ]
- },
- "application/vnd.ieee.1905": {
- source: "iana"
- },
- "application/vnd.igloader": {
- source: "iana",
- extensions: [
- "igl"
- ]
- },
- "application/vnd.imagemeter.folder+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.imagemeter.image+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.immervision-ivp": {
- source: "iana",
- extensions: [
- "ivp"
- ]
- },
- "application/vnd.immervision-ivu": {
- source: "iana",
- extensions: [
- "ivu"
- ]
- },
- "application/vnd.ims.imsccv1p1": {
- source: "iana"
- },
- "application/vnd.ims.imsccv1p2": {
- source: "iana"
- },
- "application/vnd.ims.imsccv1p3": {
- source: "iana"
- },
- "application/vnd.ims.lis.v2.result+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolproxy+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolproxy.id+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolsettings+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ims.lti.v2.toolsettings.simple+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.informedcontrol.rms+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.informix-visionary": {
- source: "iana"
- },
- "application/vnd.infotech.project": {
- source: "iana"
- },
- "application/vnd.infotech.project+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.innopath.wamp.notification": {
- source: "iana"
- },
- "application/vnd.insors.igm": {
- source: "iana",
- extensions: [
- "igm"
- ]
- },
- "application/vnd.intercon.formnet": {
- source: "iana",
- extensions: [
- "xpw",
- "xpx"
- ]
- },
- "application/vnd.intergeo": {
- source: "iana",
- extensions: [
- "i2g"
- ]
- },
- "application/vnd.intertrust.digibox": {
- source: "iana"
- },
- "application/vnd.intertrust.nncp": {
- source: "iana"
- },
- "application/vnd.intu.qbo": {
- source: "iana",
- extensions: [
- "qbo"
- ]
- },
- "application/vnd.intu.qfx": {
- source: "iana",
- extensions: [
- "qfx"
- ]
- },
- "application/vnd.iptc.g2.catalogitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.conceptitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.knowledgeitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.newsitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.newsmessage+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.packageitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.iptc.g2.planningitem+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ipunplugged.rcprofile": {
- source: "iana",
- extensions: [
- "rcprofile"
- ]
- },
- "application/vnd.irepository.package+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "irp"
- ]
- },
- "application/vnd.is-xpr": {
- source: "iana",
- extensions: [
- "xpr"
- ]
- },
- "application/vnd.isac.fcs": {
- source: "iana",
- extensions: [
- "fcs"
- ]
- },
- "application/vnd.iso11783-10+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.jam": {
- source: "iana",
- extensions: [
- "jam"
- ]
- },
- "application/vnd.japannet-directory-service": {
- source: "iana"
- },
- "application/vnd.japannet-jpnstore-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-payment-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-registration": {
- source: "iana"
- },
- "application/vnd.japannet-registration-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-setstore-wakeup": {
- source: "iana"
- },
- "application/vnd.japannet-verification": {
- source: "iana"
- },
- "application/vnd.japannet-verification-wakeup": {
- source: "iana"
- },
- "application/vnd.jcp.javame.midlet-rms": {
- source: "iana",
- extensions: [
- "rms"
- ]
- },
- "application/vnd.jisp": {
- source: "iana",
- extensions: [
- "jisp"
- ]
- },
- "application/vnd.joost.joda-archive": {
- source: "iana",
- extensions: [
- "joda"
- ]
- },
- "application/vnd.jsk.isdn-ngn": {
- source: "iana"
- },
- "application/vnd.kahootz": {
- source: "iana",
- extensions: [
- "ktz",
- "ktr"
- ]
- },
- "application/vnd.kde.karbon": {
- source: "iana",
- extensions: [
- "karbon"
- ]
- },
- "application/vnd.kde.kchart": {
- source: "iana",
- extensions: [
- "chrt"
- ]
- },
- "application/vnd.kde.kformula": {
- source: "iana",
- extensions: [
- "kfo"
- ]
- },
- "application/vnd.kde.kivio": {
- source: "iana",
- extensions: [
- "flw"
- ]
- },
- "application/vnd.kde.kontour": {
- source: "iana",
- extensions: [
- "kon"
- ]
- },
- "application/vnd.kde.kpresenter": {
- source: "iana",
- extensions: [
- "kpr",
- "kpt"
- ]
- },
- "application/vnd.kde.kspread": {
- source: "iana",
- extensions: [
- "ksp"
- ]
- },
- "application/vnd.kde.kword": {
- source: "iana",
- extensions: [
- "kwd",
- "kwt"
- ]
- },
- "application/vnd.kenameaapp": {
- source: "iana",
- extensions: [
- "htke"
- ]
- },
- "application/vnd.kidspiration": {
- source: "iana",
- extensions: [
- "kia"
- ]
- },
- "application/vnd.kinar": {
- source: "iana",
- extensions: [
- "kne",
- "knp"
- ]
- },
- "application/vnd.koan": {
- source: "iana",
- extensions: [
- "skp",
- "skd",
- "skt",
- "skm"
- ]
- },
- "application/vnd.kodak-descriptor": {
- source: "iana",
- extensions: [
- "sse"
- ]
- },
- "application/vnd.las": {
- source: "iana"
- },
- "application/vnd.las.las+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.las.las+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "lasxml"
- ]
- },
- "application/vnd.laszip": {
- source: "iana"
- },
- "application/vnd.leap+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.liberty-request+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.llamagraphics.life-balance.desktop": {
- source: "iana",
- extensions: [
- "lbd"
- ]
- },
- "application/vnd.llamagraphics.life-balance.exchange+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "lbe"
- ]
- },
- "application/vnd.logipipe.circuit+zip": {
- source: "iana",
- compressible: false
- },
- "application/vnd.loom": {
- source: "iana"
- },
- "application/vnd.lotus-1-2-3": {
- source: "iana",
- extensions: [
- "123"
- ]
- },
- "application/vnd.lotus-approach": {
- source: "iana",
- extensions: [
- "apr"
- ]
- },
- "application/vnd.lotus-freelance": {
- source: "iana",
- extensions: [
- "pre"
- ]
- },
- "application/vnd.lotus-notes": {
- source: "iana",
- extensions: [
- "nsf"
- ]
- },
- "application/vnd.lotus-organizer": {
- source: "iana",
- extensions: [
- "org"
- ]
- },
- "application/vnd.lotus-screencam": {
- source: "iana",
- extensions: [
- "scm"
- ]
- },
- "application/vnd.lotus-wordpro": {
- source: "iana",
- extensions: [
- "lwp"
- ]
- },
- "application/vnd.macports.portpkg": {
- source: "iana",
- extensions: [
- "portpkg"
- ]
- },
- "application/vnd.mapbox-vector-tile": {
- source: "iana"
- },
- "application/vnd.marlin.drm.actiontoken+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.marlin.drm.conftoken+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.marlin.drm.license+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.marlin.drm.mdcf": {
- source: "iana"
- },
- "application/vnd.mason+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.maxmind.maxmind-db": {
- source: "iana"
- },
- "application/vnd.mcd": {
- source: "iana",
- extensions: [
- "mcd"
- ]
- },
- "application/vnd.medcalcdata": {
- source: "iana",
- extensions: [
- "mc1"
- ]
- },
- "application/vnd.mediastation.cdkey": {
- source: "iana",
- extensions: [
- "cdkey"
- ]
- },
- "application/vnd.meridian-slingshot": {
- source: "iana"
- },
- "application/vnd.mfer": {
- source: "iana",
- extensions: [
- "mwf"
- ]
- },
- "application/vnd.mfmp": {
- source: "iana",
- extensions: [
- "mfm"
- ]
- },
- "application/vnd.micro+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.micrografx.flo": {
- source: "iana",
- extensions: [
- "flo"
- ]
- },
- "application/vnd.micrografx.igx": {
- source: "iana",
- extensions: [
- "igx"
- ]
- },
- "application/vnd.microsoft.portable-executable": {
- source: "iana"
- },
- "application/vnd.microsoft.windows.thumbnail-cache": {
- source: "iana"
- },
- "application/vnd.miele+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.mif": {
- source: "iana",
- extensions: [
- "mif"
- ]
- },
- "application/vnd.minisoft-hp3000-save": {
- source: "iana"
- },
- "application/vnd.mitsubishi.misty-guard.trustweb": {
- source: "iana"
- },
- "application/vnd.mobius.daf": {
- source: "iana",
- extensions: [
- "daf"
- ]
- },
- "application/vnd.mobius.dis": {
- source: "iana",
- extensions: [
- "dis"
- ]
- },
- "application/vnd.mobius.mbk": {
- source: "iana",
- extensions: [
- "mbk"
- ]
- },
- "application/vnd.mobius.mqy": {
- source: "iana",
- extensions: [
- "mqy"
- ]
- },
- "application/vnd.mobius.msl": {
- source: "iana",
- extensions: [
- "msl"
- ]
- },
- "application/vnd.mobius.plc": {
- source: "iana",
- extensions: [
- "plc"
- ]
- },
- "application/vnd.mobius.txf": {
- source: "iana",
- extensions: [
- "txf"
- ]
- },
- "application/vnd.mophun.application": {
- source: "iana",
- extensions: [
- "mpn"
- ]
- },
- "application/vnd.mophun.certificate": {
- source: "iana",
- extensions: [
- "mpc"
- ]
- },
- "application/vnd.motorola.flexsuite": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.adsi": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.fis": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.gotap": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.kmr": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.ttc": {
- source: "iana"
- },
- "application/vnd.motorola.flexsuite.wem": {
- source: "iana"
- },
- "application/vnd.motorola.iprm": {
- source: "iana"
- },
- "application/vnd.mozilla.xul+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xul"
- ]
- },
- "application/vnd.ms-3mfdocument": {
- source: "iana"
- },
- "application/vnd.ms-artgalry": {
- source: "iana",
- extensions: [
- "cil"
- ]
- },
- "application/vnd.ms-asf": {
- source: "iana"
- },
- "application/vnd.ms-cab-compressed": {
- source: "iana",
- extensions: [
- "cab"
- ]
- },
- "application/vnd.ms-color.iccprofile": {
- source: "apache"
- },
- "application/vnd.ms-excel": {
- source: "iana",
- compressible: false,
- extensions: [
- "xls",
- "xlm",
- "xla",
- "xlc",
- "xlt",
- "xlw"
- ]
- },
- "application/vnd.ms-excel.addin.macroenabled.12": {
- source: "iana",
- extensions: [
- "xlam"
- ]
- },
- "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
- source: "iana",
- extensions: [
- "xlsb"
- ]
- },
- "application/vnd.ms-excel.sheet.macroenabled.12": {
- source: "iana",
- extensions: [
- "xlsm"
- ]
- },
- "application/vnd.ms-excel.template.macroenabled.12": {
- source: "iana",
- extensions: [
- "xltm"
- ]
- },
- "application/vnd.ms-fontobject": {
- source: "iana",
- compressible: true,
- extensions: [
- "eot"
- ]
- },
- "application/vnd.ms-htmlhelp": {
- source: "iana",
- extensions: [
- "chm"
- ]
- },
- "application/vnd.ms-ims": {
- source: "iana",
- extensions: [
- "ims"
- ]
- },
- "application/vnd.ms-lrm": {
- source: "iana",
- extensions: [
- "lrm"
- ]
- },
- "application/vnd.ms-office.activex+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-officetheme": {
- source: "iana",
- extensions: [
- "thmx"
- ]
- },
- "application/vnd.ms-opentype": {
- source: "apache",
- compressible: true
- },
- "application/vnd.ms-outlook": {
- compressible: false,
- extensions: [
- "msg"
- ]
- },
- "application/vnd.ms-package.obfuscated-opentype": {
- source: "apache"
- },
- "application/vnd.ms-pki.seccat": {
- source: "apache",
- extensions: [
- "cat"
- ]
- },
- "application/vnd.ms-pki.stl": {
- source: "apache",
- extensions: [
- "stl"
- ]
- },
- "application/vnd.ms-playready.initiator+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-powerpoint": {
- source: "iana",
- compressible: false,
- extensions: [
- "ppt",
- "pps",
- "pot"
- ]
- },
- "application/vnd.ms-powerpoint.addin.macroenabled.12": {
- source: "iana",
- extensions: [
- "ppam"
- ]
- },
- "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
- source: "iana",
- extensions: [
- "pptm"
- ]
- },
- "application/vnd.ms-powerpoint.slide.macroenabled.12": {
- source: "iana",
- extensions: [
- "sldm"
- ]
- },
- "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
- source: "iana",
- extensions: [
- "ppsm"
- ]
- },
- "application/vnd.ms-powerpoint.template.macroenabled.12": {
- source: "iana",
- extensions: [
- "potm"
- ]
- },
- "application/vnd.ms-printdevicecapabilities+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-printing.printticket+xml": {
- source: "apache",
- compressible: true
- },
- "application/vnd.ms-printschematicket+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.ms-project": {
- source: "iana",
- extensions: [
- "mpp",
- "mpt"
- ]
- },
- "application/vnd.ms-tnef": {
- source: "iana"
- },
- "application/vnd.ms-windows.devicepairing": {
- source: "iana"
- },
- "application/vnd.ms-windows.nwprinting.oob": {
- source: "iana"
- },
- "application/vnd.ms-windows.printerpairing": {
- source: "iana"
- },
- "application/vnd.ms-windows.wsd.oob": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.lic-chlg-req": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.lic-resp": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.meter-chlg-req": {
- source: "iana"
- },
- "application/vnd.ms-wmdrm.meter-resp": {
- source: "iana"
- },
- "application/vnd.ms-word.document.macroenabled.12": {
- source: "iana",
- extensions: [
- "docm"
- ]
- },
- "application/vnd.ms-word.template.macroenabled.12": {
- source: "iana",
- extensions: [
- "dotm"
- ]
- },
- "application/vnd.ms-works": {
- source: "iana",
- extensions: [
- "wps",
- "wks",
- "wcm",
- "wdb"
- ]
- },
- "application/vnd.ms-wpl": {
- source: "iana",
- extensions: [
- "wpl"
- ]
- },
- "application/vnd.ms-xpsdocument": {
- source: "iana",
- compressible: false,
- extensions: [
- "xps"
- ]
- },
- "application/vnd.msa-disk-image": {
- source: "iana"
- },
- "application/vnd.mseq": {
- source: "iana",
- extensions: [
- "mseq"
- ]
- },
- "application/vnd.msign": {
- source: "iana"
- },
- "application/vnd.multiad.creator": {
- source: "iana"
- },
- "application/vnd.multiad.creator.cif": {
- source: "iana"
- },
- "application/vnd.music-niff": {
- source: "iana"
- },
- "application/vnd.musician": {
- source: "iana",
- extensions: [
- "mus"
- ]
- },
- "application/vnd.muvee.style": {
- source: "iana",
- extensions: [
- "msty"
- ]
- },
- "application/vnd.mynfc": {
- source: "iana",
- extensions: [
- "taglet"
- ]
- },
- "application/vnd.ncd.control": {
- source: "iana"
- },
- "application/vnd.ncd.reference": {
- source: "iana"
- },
- "application/vnd.nearst.inv+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nervana": {
- source: "iana"
- },
- "application/vnd.netfpx": {
- source: "iana"
- },
- "application/vnd.neurolanguage.nlu": {
- source: "iana",
- extensions: [
- "nlu"
- ]
- },
- "application/vnd.nimn": {
- source: "iana"
- },
- "application/vnd.nintendo.nitro.rom": {
- source: "iana"
- },
- "application/vnd.nintendo.snes.rom": {
- source: "iana"
- },
- "application/vnd.nitf": {
- source: "iana",
- extensions: [
- "ntf",
- "nitf"
- ]
- },
- "application/vnd.noblenet-directory": {
- source: "iana",
- extensions: [
- "nnd"
- ]
- },
- "application/vnd.noblenet-sealer": {
- source: "iana",
- extensions: [
- "nns"
- ]
- },
- "application/vnd.noblenet-web": {
- source: "iana",
- extensions: [
- "nnw"
- ]
- },
- "application/vnd.nokia.catalogs": {
- source: "iana"
- },
- "application/vnd.nokia.conml+wbxml": {
- source: "iana"
- },
- "application/vnd.nokia.conml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.iptv.config+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.isds-radio-presets": {
- source: "iana"
- },
- "application/vnd.nokia.landmark+wbxml": {
- source: "iana"
- },
- "application/vnd.nokia.landmark+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.landmarkcollection+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.n-gage.ac+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "ac"
- ]
- },
- "application/vnd.nokia.n-gage.data": {
- source: "iana",
- extensions: [
- "ngdat"
- ]
- },
- "application/vnd.nokia.n-gage.symbian.install": {
- source: "iana",
- extensions: [
- "n-gage"
- ]
- },
- "application/vnd.nokia.ncd": {
- source: "iana"
- },
- "application/vnd.nokia.pcd+wbxml": {
- source: "iana"
- },
- "application/vnd.nokia.pcd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.nokia.radio-preset": {
- source: "iana",
- extensions: [
- "rpst"
- ]
- },
- "application/vnd.nokia.radio-presets": {
- source: "iana",
- extensions: [
- "rpss"
- ]
- },
- "application/vnd.novadigm.edm": {
- source: "iana",
- extensions: [
- "edm"
- ]
- },
- "application/vnd.novadigm.edx": {
- source: "iana",
- extensions: [
- "edx"
- ]
- },
- "application/vnd.novadigm.ext": {
- source: "iana",
- extensions: [
- "ext"
- ]
- },
- "application/vnd.ntt-local.content-share": {
- source: "iana"
- },
- "application/vnd.ntt-local.file-transfer": {
- source: "iana"
- },
- "application/vnd.ntt-local.ogw_remote-access": {
- source: "iana"
- },
- "application/vnd.ntt-local.sip-ta_remote": {
- source: "iana"
- },
- "application/vnd.ntt-local.sip-ta_tcp_stream": {
- source: "iana"
- },
- "application/vnd.oasis.opendocument.chart": {
- source: "iana",
- extensions: [
- "odc"
- ]
- },
- "application/vnd.oasis.opendocument.chart-template": {
- source: "iana",
- extensions: [
- "otc"
- ]
- },
- "application/vnd.oasis.opendocument.database": {
- source: "iana",
- extensions: [
- "odb"
- ]
- },
- "application/vnd.oasis.opendocument.formula": {
- source: "iana",
- extensions: [
- "odf"
- ]
- },
- "application/vnd.oasis.opendocument.formula-template": {
- source: "iana",
- extensions: [
- "odft"
- ]
- },
- "application/vnd.oasis.opendocument.graphics": {
- source: "iana",
- compressible: false,
- extensions: [
- "odg"
- ]
- },
- "application/vnd.oasis.opendocument.graphics-template": {
- source: "iana",
- extensions: [
- "otg"
- ]
- },
- "application/vnd.oasis.opendocument.image": {
- source: "iana",
- extensions: [
- "odi"
- ]
- },
- "application/vnd.oasis.opendocument.image-template": {
- source: "iana",
- extensions: [
- "oti"
- ]
- },
- "application/vnd.oasis.opendocument.presentation": {
- source: "iana",
- compressible: false,
- extensions: [
- "odp"
- ]
- },
- "application/vnd.oasis.opendocument.presentation-template": {
- source: "iana",
- extensions: [
- "otp"
- ]
- },
- "application/vnd.oasis.opendocument.spreadsheet": {
- source: "iana",
- compressible: false,
- extensions: [
- "ods"
- ]
- },
- "application/vnd.oasis.opendocument.spreadsheet-template": {
- source: "iana",
- extensions: [
- "ots"
- ]
- },
- "application/vnd.oasis.opendocument.text": {
- source: "iana",
- compressible: false,
- extensions: [
- "odt"
- ]
- },
- "application/vnd.oasis.opendocument.text-master": {
- source: "iana",
- extensions: [
- "odm"
- ]
- },
- "application/vnd.oasis.opendocument.text-template": {
- source: "iana",
- extensions: [
- "ott"
- ]
- },
- "application/vnd.oasis.opendocument.text-web": {
- source: "iana",
- extensions: [
- "oth"
- ]
- },
- "application/vnd.obn": {
- source: "iana"
- },
- "application/vnd.ocf+cbor": {
- source: "iana"
- },
- "application/vnd.oci.image.manifest.v1+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oftn.l10n+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.contentaccessdownload+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.contentaccessstreaming+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.cspg-hexbinary": {
- source: "iana"
- },
- "application/vnd.oipf.dae.svg+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.dae.xhtml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.mippvcontrolmessage+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.pae.gem": {
- source: "iana"
- },
- "application/vnd.oipf.spdiscovery+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.spdlist+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.ueprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oipf.userprofile+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.olpc-sugar": {
- source: "iana",
- extensions: [
- "xo"
- ]
- },
- "application/vnd.oma-scws-config": {
- source: "iana"
- },
- "application/vnd.oma-scws-http-request": {
- source: "iana"
- },
- "application/vnd.oma-scws-http-response": {
- source: "iana"
- },
- "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.drm-trigger+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.imd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.ltkm": {
- source: "iana"
- },
- "application/vnd.oma.bcast.notification+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.provisioningtrigger": {
- source: "iana"
- },
- "application/vnd.oma.bcast.sgboot": {
- source: "iana"
- },
- "application/vnd.oma.bcast.sgdd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.sgdu": {
- source: "iana"
- },
- "application/vnd.oma.bcast.simple-symbol-container": {
- source: "iana"
- },
- "application/vnd.oma.bcast.smartcard-trigger+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.sprov+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.bcast.stkm": {
- source: "iana"
- },
- "application/vnd.oma.cab-address-book+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-feature-handler+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-pcc+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-subs-invite+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.cab-user-prefs+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.dcd": {
- source: "iana"
- },
- "application/vnd.oma.dcdc": {
- source: "iana"
- },
- "application/vnd.oma.dd2+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "dd2"
- ]
- },
- "application/vnd.oma.drm.risd+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.group-usage-list+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.lwm2m+cbor": {
- source: "iana"
- },
- "application/vnd.oma.lwm2m+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.lwm2m+tlv": {
- source: "iana"
- },
- "application/vnd.oma.pal+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.detailed-progress-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.final-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.groups+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.invocation-descriptor+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.poc.optimized-progress-report+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.push": {
- source: "iana"
- },
- "application/vnd.oma.scidm.messages+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oma.xcap-directory+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.omads-email+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.omads-file+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.omads-folder+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.omaloc-supl-init": {
- source: "iana"
- },
- "application/vnd.onepager": {
- source: "iana"
- },
- "application/vnd.onepagertamp": {
- source: "iana"
- },
- "application/vnd.onepagertamx": {
- source: "iana"
- },
- "application/vnd.onepagertat": {
- source: "iana"
- },
- "application/vnd.onepagertatp": {
- source: "iana"
- },
- "application/vnd.onepagertatx": {
- source: "iana"
- },
- "application/vnd.openblox.game+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "obgx"
- ]
- },
- "application/vnd.openblox.game-binary": {
- source: "iana"
- },
- "application/vnd.openeye.oeb": {
- source: "iana"
- },
- "application/vnd.openofficeorg.extension": {
- source: "apache",
- extensions: [
- "oxt"
- ]
- },
- "application/vnd.openstreetmap.data+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "osm"
- ]
- },
- "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawing+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
- source: "iana",
- compressible: false,
- extensions: [
- "pptx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slide": {
- source: "iana",
- extensions: [
- "sldx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
- source: "iana",
- extensions: [
- "ppsx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.template": {
- source: "iana",
- extensions: [
- "potx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
- source: "iana",
- compressible: false,
- extensions: [
- "xlsx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
- source: "iana",
- extensions: [
- "xltx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.theme+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.vmldrawing": {
- source: "iana"
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
- source: "iana",
- compressible: false,
- extensions: [
- "docx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
- source: "iana",
- extensions: [
- "dotx"
- ]
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-package.core-properties+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.openxmlformats-package.relationships+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oracle.resource+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.orange.indata": {
- source: "iana"
- },
- "application/vnd.osa.netdeploy": {
- source: "iana"
- },
- "application/vnd.osgeo.mapguide.package": {
- source: "iana",
- extensions: [
- "mgp"
- ]
- },
- "application/vnd.osgi.bundle": {
- source: "iana"
- },
- "application/vnd.osgi.dp": {
- source: "iana",
- extensions: [
- "dp"
- ]
- },
- "application/vnd.osgi.subsystem": {
- source: "iana",
- extensions: [
- "esa"
- ]
- },
- "application/vnd.otps.ct-kip+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.oxli.countgraph": {
- source: "iana"
- },
- "application/vnd.pagerduty+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.palm": {
- source: "iana",
- extensions: [
- "pdb",
- "pqa",
- "oprc"
- ]
- },
- "application/vnd.panoply": {
- source: "iana"
- },
- "application/vnd.paos.xml": {
- source: "iana"
- },
- "application/vnd.patentdive": {
- source: "iana"
- },
- "application/vnd.patientecommsdoc": {
- source: "iana"
- },
- "application/vnd.pawaafile": {
- source: "iana",
- extensions: [
- "paw"
- ]
- },
- "application/vnd.pcos": {
- source: "iana"
- },
- "application/vnd.pg.format": {
- source: "iana",
- extensions: [
- "str"
- ]
- },
- "application/vnd.pg.osasli": {
- source: "iana",
- extensions: [
- "ei6"
- ]
- },
- "application/vnd.piaccess.application-licence": {
- source: "iana"
- },
- "application/vnd.picsel": {
- source: "iana",
- extensions: [
- "efif"
- ]
- },
- "application/vnd.pmi.widget": {
- source: "iana",
- extensions: [
- "wg"
- ]
- },
- "application/vnd.poc.group-advertisement+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.pocketlearn": {
- source: "iana",
- extensions: [
- "plf"
- ]
- },
- "application/vnd.powerbuilder6": {
- source: "iana",
- extensions: [
- "pbd"
- ]
- },
- "application/vnd.powerbuilder6-s": {
- source: "iana"
- },
- "application/vnd.powerbuilder7": {
- source: "iana"
- },
- "application/vnd.powerbuilder7-s": {
- source: "iana"
- },
- "application/vnd.powerbuilder75": {
- source: "iana"
- },
- "application/vnd.powerbuilder75-s": {
- source: "iana"
- },
- "application/vnd.preminet": {
- source: "iana"
- },
- "application/vnd.previewsystems.box": {
- source: "iana",
- extensions: [
- "box"
- ]
- },
- "application/vnd.proteus.magazine": {
- source: "iana",
- extensions: [
- "mgz"
- ]
- },
- "application/vnd.psfs": {
- source: "iana"
- },
- "application/vnd.publishare-delta-tree": {
- source: "iana",
- extensions: [
- "qps"
- ]
- },
- "application/vnd.pvi.ptid1": {
- source: "iana",
- extensions: [
- "ptid"
- ]
- },
- "application/vnd.pwg-multiplexed": {
- source: "iana"
- },
- "application/vnd.pwg-xhtml-print+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.qualcomm.brew-app-res": {
- source: "iana"
- },
- "application/vnd.quarantainenet": {
- source: "iana"
- },
- "application/vnd.quark.quarkxpress": {
- source: "iana",
- extensions: [
- "qxd",
- "qxt",
- "qwd",
- "qwt",
- "qxl",
- "qxb"
- ]
- },
- "application/vnd.quobject-quoxdocument": {
- source: "iana"
- },
- "application/vnd.radisys.moml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-conf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-conn+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-dialog+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-audit-stream+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-conf+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-base+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-fax-detect+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-group+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-speech+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.radisys.msml-dialog-transform+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.rainstor.data": {
- source: "iana"
- },
- "application/vnd.rapid": {
- source: "iana"
- },
- "application/vnd.rar": {
- source: "iana",
- extensions: [
- "rar"
- ]
- },
- "application/vnd.realvnc.bed": {
- source: "iana",
- extensions: [
- "bed"
- ]
- },
- "application/vnd.recordare.musicxml": {
- source: "iana",
- extensions: [
- "mxl"
- ]
- },
- "application/vnd.recordare.musicxml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "musicxml"
- ]
- },
- "application/vnd.renlearn.rlprint": {
- source: "iana"
- },
- "application/vnd.restful+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.rig.cryptonote": {
- source: "iana",
- extensions: [
- "cryptonote"
- ]
- },
- "application/vnd.rim.cod": {
- source: "apache",
- extensions: [
- "cod"
- ]
- },
- "application/vnd.rn-realmedia": {
- source: "apache",
- extensions: [
- "rm"
- ]
- },
- "application/vnd.rn-realmedia-vbr": {
- source: "apache",
- extensions: [
- "rmvb"
- ]
- },
- "application/vnd.route66.link66+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "link66"
- ]
- },
- "application/vnd.rs-274x": {
- source: "iana"
- },
- "application/vnd.ruckus.download": {
- source: "iana"
- },
- "application/vnd.s3sms": {
- source: "iana"
- },
- "application/vnd.sailingtracker.track": {
- source: "iana",
- extensions: [
- "st"
- ]
- },
- "application/vnd.sar": {
- source: "iana"
- },
- "application/vnd.sbm.cid": {
- source: "iana"
- },
- "application/vnd.sbm.mid2": {
- source: "iana"
- },
- "application/vnd.scribus": {
- source: "iana"
- },
- "application/vnd.sealed.3df": {
- source: "iana"
- },
- "application/vnd.sealed.csf": {
- source: "iana"
- },
- "application/vnd.sealed.doc": {
- source: "iana"
- },
- "application/vnd.sealed.eml": {
- source: "iana"
- },
- "application/vnd.sealed.mht": {
- source: "iana"
- },
- "application/vnd.sealed.net": {
- source: "iana"
- },
- "application/vnd.sealed.ppt": {
- source: "iana"
- },
- "application/vnd.sealed.tiff": {
- source: "iana"
- },
- "application/vnd.sealed.xls": {
- source: "iana"
- },
- "application/vnd.sealedmedia.softseal.html": {
- source: "iana"
- },
- "application/vnd.sealedmedia.softseal.pdf": {
- source: "iana"
- },
- "application/vnd.seemail": {
- source: "iana",
- extensions: [
- "see"
- ]
- },
- "application/vnd.seis+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.sema": {
- source: "iana",
- extensions: [
- "sema"
- ]
- },
- "application/vnd.semd": {
- source: "iana",
- extensions: [
- "semd"
- ]
- },
- "application/vnd.semf": {
- source: "iana",
- extensions: [
- "semf"
- ]
- },
- "application/vnd.shade-save-file": {
- source: "iana"
- },
- "application/vnd.shana.informed.formdata": {
- source: "iana",
- extensions: [
- "ifm"
- ]
- },
- "application/vnd.shana.informed.formtemplate": {
- source: "iana",
- extensions: [
- "itp"
- ]
- },
- "application/vnd.shana.informed.interchange": {
- source: "iana",
- extensions: [
- "iif"
- ]
- },
- "application/vnd.shana.informed.package": {
- source: "iana",
- extensions: [
- "ipk"
- ]
- },
- "application/vnd.shootproof+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.shopkick+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.shp": {
- source: "iana"
- },
- "application/vnd.shx": {
- source: "iana"
- },
- "application/vnd.sigrok.session": {
- source: "iana"
- },
- "application/vnd.simtech-mindmapper": {
- source: "iana",
- extensions: [
- "twd",
- "twds"
- ]
- },
- "application/vnd.siren+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.smaf": {
- source: "iana",
- extensions: [
- "mmf"
- ]
- },
- "application/vnd.smart.notebook": {
- source: "iana"
- },
- "application/vnd.smart.teacher": {
- source: "iana",
- extensions: [
- "teacher"
- ]
- },
- "application/vnd.snesdev-page-table": {
- source: "iana"
- },
- "application/vnd.software602.filler.form+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "fo"
- ]
- },
- "application/vnd.software602.filler.form-xml-zip": {
- source: "iana"
- },
- "application/vnd.solent.sdkm+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "sdkm",
- "sdkd"
- ]
- },
- "application/vnd.spotfire.dxp": {
- source: "iana",
- extensions: [
- "dxp"
- ]
- },
- "application/vnd.spotfire.sfs": {
- source: "iana",
- extensions: [
- "sfs"
- ]
- },
- "application/vnd.sqlite3": {
- source: "iana"
- },
- "application/vnd.sss-cod": {
- source: "iana"
- },
- "application/vnd.sss-dtf": {
- source: "iana"
- },
- "application/vnd.sss-ntf": {
- source: "iana"
- },
- "application/vnd.stardivision.calc": {
- source: "apache",
- extensions: [
- "sdc"
- ]
- },
- "application/vnd.stardivision.draw": {
- source: "apache",
- extensions: [
- "sda"
- ]
- },
- "application/vnd.stardivision.impress": {
- source: "apache",
- extensions: [
- "sdd"
- ]
- },
- "application/vnd.stardivision.math": {
- source: "apache",
- extensions: [
- "smf"
- ]
- },
- "application/vnd.stardivision.writer": {
- source: "apache",
- extensions: [
- "sdw",
- "vor"
- ]
- },
- "application/vnd.stardivision.writer-global": {
- source: "apache",
- extensions: [
- "sgl"
- ]
- },
- "application/vnd.stepmania.package": {
- source: "iana",
- extensions: [
- "smzip"
- ]
- },
- "application/vnd.stepmania.stepchart": {
- source: "iana",
- extensions: [
- "sm"
- ]
- },
- "application/vnd.street-stream": {
- source: "iana"
- },
- "application/vnd.sun.wadl+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "wadl"
- ]
- },
- "application/vnd.sun.xml.calc": {
- source: "apache",
- extensions: [
- "sxc"
- ]
- },
- "application/vnd.sun.xml.calc.template": {
- source: "apache",
- extensions: [
- "stc"
- ]
- },
- "application/vnd.sun.xml.draw": {
- source: "apache",
- extensions: [
- "sxd"
- ]
- },
- "application/vnd.sun.xml.draw.template": {
- source: "apache",
- extensions: [
- "std"
- ]
- },
- "application/vnd.sun.xml.impress": {
- source: "apache",
- extensions: [
- "sxi"
- ]
- },
- "application/vnd.sun.xml.impress.template": {
- source: "apache",
- extensions: [
- "sti"
- ]
- },
- "application/vnd.sun.xml.math": {
- source: "apache",
- extensions: [
- "sxm"
- ]
- },
- "application/vnd.sun.xml.writer": {
- source: "apache",
- extensions: [
- "sxw"
- ]
- },
- "application/vnd.sun.xml.writer.global": {
- source: "apache",
- extensions: [
- "sxg"
- ]
- },
- "application/vnd.sun.xml.writer.template": {
- source: "apache",
- extensions: [
- "stw"
- ]
- },
- "application/vnd.sus-calendar": {
- source: "iana",
- extensions: [
- "sus",
- "susp"
- ]
- },
- "application/vnd.svd": {
- source: "iana",
- extensions: [
- "svd"
- ]
- },
- "application/vnd.swiftview-ics": {
- source: "iana"
- },
- "application/vnd.sycle+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.symbian.install": {
- source: "apache",
- extensions: [
- "sis",
- "sisx"
- ]
- },
- "application/vnd.syncml+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "xsm"
- ]
- },
- "application/vnd.syncml.dm+wbxml": {
- source: "iana",
- charset: "UTF-8",
- extensions: [
- "bdm"
- ]
- },
- "application/vnd.syncml.dm+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "xdm"
- ]
- },
- "application/vnd.syncml.dm.notification": {
- source: "iana"
- },
- "application/vnd.syncml.dmddf+wbxml": {
- source: "iana"
- },
- "application/vnd.syncml.dmddf+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "ddf"
- ]
- },
- "application/vnd.syncml.dmtnds+wbxml": {
- source: "iana"
- },
- "application/vnd.syncml.dmtnds+xml": {
- source: "iana",
- charset: "UTF-8",
- compressible: true
- },
- "application/vnd.syncml.ds.notification": {
- source: "iana"
- },
- "application/vnd.tableschema+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.tao.intent-module-archive": {
- source: "iana",
- extensions: [
- "tao"
- ]
- },
- "application/vnd.tcpdump.pcap": {
- source: "iana",
- extensions: [
- "pcap",
- "cap",
- "dmp"
- ]
- },
- "application/vnd.think-cell.ppttc+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.tmd.mediaflex.api+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.tml": {
- source: "iana"
- },
- "application/vnd.tmobile-livetv": {
- source: "iana",
- extensions: [
- "tmo"
- ]
- },
- "application/vnd.tri.onesource": {
- source: "iana"
- },
- "application/vnd.trid.tpt": {
- source: "iana",
- extensions: [
- "tpt"
- ]
- },
- "application/vnd.triscape.mxs": {
- source: "iana",
- extensions: [
- "mxs"
- ]
- },
- "application/vnd.trueapp": {
- source: "iana",
- extensions: [
- "tra"
- ]
- },
- "application/vnd.truedoc": {
- source: "iana"
- },
- "application/vnd.ubisoft.webplayer": {
- source: "iana"
- },
- "application/vnd.ufdl": {
- source: "iana",
- extensions: [
- "ufd",
- "ufdl"
- ]
- },
- "application/vnd.uiq.theme": {
- source: "iana",
- extensions: [
- "utz"
- ]
- },
- "application/vnd.umajin": {
- source: "iana",
- extensions: [
- "umj"
- ]
- },
- "application/vnd.unity": {
- source: "iana",
- extensions: [
- "unityweb"
- ]
- },
- "application/vnd.uoml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "uoml"
- ]
- },
- "application/vnd.uplanet.alert": {
- source: "iana"
- },
- "application/vnd.uplanet.alert-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.bearer-choice": {
- source: "iana"
- },
- "application/vnd.uplanet.bearer-choice-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.cacheop": {
- source: "iana"
- },
- "application/vnd.uplanet.cacheop-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.channel": {
- source: "iana"
- },
- "application/vnd.uplanet.channel-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.list": {
- source: "iana"
- },
- "application/vnd.uplanet.list-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.listcmd": {
- source: "iana"
- },
- "application/vnd.uplanet.listcmd-wbxml": {
- source: "iana"
- },
- "application/vnd.uplanet.signal": {
- source: "iana"
- },
- "application/vnd.uri-map": {
- source: "iana"
- },
- "application/vnd.valve.source.material": {
- source: "iana"
- },
- "application/vnd.vcx": {
- source: "iana",
- extensions: [
- "vcx"
- ]
- },
- "application/vnd.vd-study": {
- source: "iana"
- },
- "application/vnd.vectorworks": {
- source: "iana"
- },
- "application/vnd.vel+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.verimatrix.vcas": {
- source: "iana"
- },
- "application/vnd.veryant.thin": {
- source: "iana"
- },
- "application/vnd.ves.encrypted": {
- source: "iana"
- },
- "application/vnd.vidsoft.vidconference": {
- source: "iana"
- },
- "application/vnd.visio": {
- source: "iana",
- extensions: [
- "vsd",
- "vst",
- "vss",
- "vsw"
- ]
- },
- "application/vnd.visionary": {
- source: "iana",
- extensions: [
- "vis"
- ]
- },
- "application/vnd.vividence.scriptfile": {
- source: "iana"
- },
- "application/vnd.vsf": {
- source: "iana",
- extensions: [
- "vsf"
- ]
- },
- "application/vnd.wap.sic": {
- source: "iana"
- },
- "application/vnd.wap.slc": {
- source: "iana"
- },
- "application/vnd.wap.wbxml": {
- source: "iana",
- charset: "UTF-8",
- extensions: [
- "wbxml"
- ]
- },
- "application/vnd.wap.wmlc": {
- source: "iana",
- extensions: [
- "wmlc"
- ]
- },
- "application/vnd.wap.wmlscriptc": {
- source: "iana",
- extensions: [
- "wmlsc"
- ]
- },
- "application/vnd.webturbo": {
- source: "iana",
- extensions: [
- "wtb"
- ]
- },
- "application/vnd.wfa.dpp": {
- source: "iana"
- },
- "application/vnd.wfa.p2p": {
- source: "iana"
- },
- "application/vnd.wfa.wsc": {
- source: "iana"
- },
- "application/vnd.windows.devicepairing": {
- source: "iana"
- },
- "application/vnd.wmc": {
- source: "iana"
- },
- "application/vnd.wmf.bootstrap": {
- source: "iana"
- },
- "application/vnd.wolfram.mathematica": {
- source: "iana"
- },
- "application/vnd.wolfram.mathematica.package": {
- source: "iana"
- },
- "application/vnd.wolfram.player": {
- source: "iana",
- extensions: [
- "nbp"
- ]
- },
- "application/vnd.wordperfect": {
- source: "iana",
- extensions: [
- "wpd"
- ]
- },
- "application/vnd.wqd": {
- source: "iana",
- extensions: [
- "wqd"
- ]
- },
- "application/vnd.wrq-hp3000-labelled": {
- source: "iana"
- },
- "application/vnd.wt.stf": {
- source: "iana",
- extensions: [
- "stf"
- ]
- },
- "application/vnd.wv.csp+wbxml": {
- source: "iana"
- },
- "application/vnd.wv.csp+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.wv.ssp+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.xacml+json": {
- source: "iana",
- compressible: true
- },
- "application/vnd.xara": {
- source: "iana",
- extensions: [
- "xar"
- ]
- },
- "application/vnd.xfdl": {
- source: "iana",
- extensions: [
- "xfdl"
- ]
- },
- "application/vnd.xfdl.webform": {
- source: "iana"
- },
- "application/vnd.xmi+xml": {
- source: "iana",
- compressible: true
- },
- "application/vnd.xmpie.cpkg": {
- source: "iana"
- },
- "application/vnd.xmpie.dpkg": {
- source: "iana"
- },
- "application/vnd.xmpie.plan": {
- source: "iana"
- },
- "application/vnd.xmpie.ppkg": {
- source: "iana"
- },
- "application/vnd.xmpie.xlim": {
- source: "iana"
- },
- "application/vnd.yamaha.hv-dic": {
- source: "iana",
- extensions: [
- "hvd"
- ]
- },
- "application/vnd.yamaha.hv-script": {
- source: "iana",
- extensions: [
- "hvs"
- ]
- },
- "application/vnd.yamaha.hv-voice": {
- source: "iana",
- extensions: [
- "hvp"
- ]
- },
- "application/vnd.yamaha.openscoreformat": {
- source: "iana",
- extensions: [
- "osf"
- ]
- },
- "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "osfpvg"
- ]
- },
- "application/vnd.yamaha.remote-setup": {
- source: "iana"
- },
- "application/vnd.yamaha.smaf-audio": {
- source: "iana",
- extensions: [
- "saf"
- ]
- },
- "application/vnd.yamaha.smaf-phrase": {
- source: "iana",
- extensions: [
- "spf"
- ]
- },
- "application/vnd.yamaha.through-ngn": {
- source: "iana"
- },
- "application/vnd.yamaha.tunnel-udpencap": {
- source: "iana"
- },
- "application/vnd.yaoweme": {
- source: "iana"
- },
- "application/vnd.yellowriver-custom-menu": {
- source: "iana",
- extensions: [
- "cmp"
- ]
- },
- "application/vnd.youtube.yt": {
- source: "iana"
- },
- "application/vnd.zul": {
- source: "iana",
- extensions: [
- "zir",
- "zirz"
- ]
- },
- "application/vnd.zzazz.deck+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "zaz"
- ]
- },
- "application/voicexml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "vxml"
- ]
- },
- "application/voucher-cms+json": {
- source: "iana",
- compressible: true
- },
- "application/vq-rtcpxr": {
- source: "iana"
- },
- "application/wasm": {
- compressible: true,
- extensions: [
- "wasm"
- ]
- },
- "application/watcherinfo+xml": {
- source: "iana",
- compressible: true
- },
- "application/webpush-options+json": {
- source: "iana",
- compressible: true
- },
- "application/whoispp-query": {
- source: "iana"
- },
- "application/whoispp-response": {
- source: "iana"
- },
- "application/widget": {
- source: "iana",
- extensions: [
- "wgt"
- ]
- },
- "application/winhlp": {
- source: "apache",
- extensions: [
- "hlp"
- ]
- },
- "application/wita": {
- source: "iana"
- },
- "application/wordperfect5.1": {
- source: "iana"
- },
- "application/wsdl+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "wsdl"
- ]
- },
- "application/wspolicy+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "wspolicy"
- ]
- },
- "application/x-7z-compressed": {
- source: "apache",
- compressible: false,
- extensions: [
- "7z"
- ]
- },
- "application/x-abiword": {
- source: "apache",
- extensions: [
- "abw"
- ]
- },
- "application/x-ace-compressed": {
- source: "apache",
- extensions: [
- "ace"
- ]
- },
- "application/x-amf": {
- source: "apache"
- },
- "application/x-apple-diskimage": {
- source: "apache",
- extensions: [
- "dmg"
- ]
- },
- "application/x-arj": {
- compressible: false,
- extensions: [
- "arj"
- ]
- },
- "application/x-authorware-bin": {
- source: "apache",
- extensions: [
- "aab",
- "x32",
- "u32",
- "vox"
- ]
- },
- "application/x-authorware-map": {
- source: "apache",
- extensions: [
- "aam"
- ]
- },
- "application/x-authorware-seg": {
- source: "apache",
- extensions: [
- "aas"
- ]
- },
- "application/x-bcpio": {
- source: "apache",
- extensions: [
- "bcpio"
- ]
- },
- "application/x-bdoc": {
- compressible: false,
- extensions: [
- "bdoc"
- ]
- },
- "application/x-bittorrent": {
- source: "apache",
- extensions: [
- "torrent"
- ]
- },
- "application/x-blorb": {
- source: "apache",
- extensions: [
- "blb",
- "blorb"
- ]
- },
- "application/x-bzip": {
- source: "apache",
- compressible: false,
- extensions: [
- "bz"
- ]
- },
- "application/x-bzip2": {
- source: "apache",
- compressible: false,
- extensions: [
- "bz2",
- "boz"
- ]
- },
- "application/x-cbr": {
- source: "apache",
- extensions: [
- "cbr",
- "cba",
- "cbt",
- "cbz",
- "cb7"
- ]
- },
- "application/x-cdlink": {
- source: "apache",
- extensions: [
- "vcd"
- ]
- },
- "application/x-cfs-compressed": {
- source: "apache",
- extensions: [
- "cfs"
- ]
- },
- "application/x-chat": {
- source: "apache",
- extensions: [
- "chat"
- ]
- },
- "application/x-chess-pgn": {
- source: "apache",
- extensions: [
- "pgn"
- ]
- },
- "application/x-chrome-extension": {
- extensions: [
- "crx"
- ]
- },
- "application/x-cocoa": {
- source: "nginx",
- extensions: [
- "cco"
- ]
- },
- "application/x-compress": {
- source: "apache"
- },
- "application/x-conference": {
- source: "apache",
- extensions: [
- "nsc"
- ]
- },
- "application/x-cpio": {
- source: "apache",
- extensions: [
- "cpio"
- ]
- },
- "application/x-csh": {
- source: "apache",
- extensions: [
- "csh"
- ]
- },
- "application/x-deb": {
- compressible: false
- },
- "application/x-debian-package": {
- source: "apache",
- extensions: [
- "deb",
- "udeb"
- ]
- },
- "application/x-dgc-compressed": {
- source: "apache",
- extensions: [
- "dgc"
- ]
- },
- "application/x-director": {
- source: "apache",
- extensions: [
- "dir",
- "dcr",
- "dxr",
- "cst",
- "cct",
- "cxt",
- "w3d",
- "fgd",
- "swa"
- ]
- },
- "application/x-doom": {
- source: "apache",
- extensions: [
- "wad"
- ]
- },
- "application/x-dtbncx+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "ncx"
- ]
- },
- "application/x-dtbook+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "dtb"
- ]
- },
- "application/x-dtbresource+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "res"
- ]
- },
- "application/x-dvi": {
- source: "apache",
- compressible: false,
- extensions: [
- "dvi"
- ]
- },
- "application/x-envoy": {
- source: "apache",
- extensions: [
- "evy"
- ]
- },
- "application/x-eva": {
- source: "apache",
- extensions: [
- "eva"
- ]
- },
- "application/x-font-bdf": {
- source: "apache",
- extensions: [
- "bdf"
- ]
- },
- "application/x-font-dos": {
- source: "apache"
- },
- "application/x-font-framemaker": {
- source: "apache"
- },
- "application/x-font-ghostscript": {
- source: "apache",
- extensions: [
- "gsf"
- ]
- },
- "application/x-font-libgrx": {
- source: "apache"
- },
- "application/x-font-linux-psf": {
- source: "apache",
- extensions: [
- "psf"
- ]
- },
- "application/x-font-pcf": {
- source: "apache",
- extensions: [
- "pcf"
- ]
- },
- "application/x-font-snf": {
- source: "apache",
- extensions: [
- "snf"
- ]
- },
- "application/x-font-speedo": {
- source: "apache"
- },
- "application/x-font-sunos-news": {
- source: "apache"
- },
- "application/x-font-type1": {
- source: "apache",
- extensions: [
- "pfa",
- "pfb",
- "pfm",
- "afm"
- ]
- },
- "application/x-font-vfont": {
- source: "apache"
- },
- "application/x-freearc": {
- source: "apache",
- extensions: [
- "arc"
- ]
- },
- "application/x-futuresplash": {
- source: "apache",
- extensions: [
- "spl"
- ]
- },
- "application/x-gca-compressed": {
- source: "apache",
- extensions: [
- "gca"
- ]
- },
- "application/x-glulx": {
- source: "apache",
- extensions: [
- "ulx"
- ]
- },
- "application/x-gnumeric": {
- source: "apache",
- extensions: [
- "gnumeric"
- ]
- },
- "application/x-gramps-xml": {
- source: "apache",
- extensions: [
- "gramps"
- ]
- },
- "application/x-gtar": {
- source: "apache",
- extensions: [
- "gtar"
- ]
- },
- "application/x-gzip": {
- source: "apache"
- },
- "application/x-hdf": {
- source: "apache",
- extensions: [
- "hdf"
- ]
- },
- "application/x-httpd-php": {
- compressible: true,
- extensions: [
- "php"
- ]
- },
- "application/x-install-instructions": {
- source: "apache",
- extensions: [
- "install"
- ]
- },
- "application/x-iso9660-image": {
- source: "apache",
- extensions: [
- "iso"
- ]
- },
- "application/x-java-archive-diff": {
- source: "nginx",
- extensions: [
- "jardiff"
- ]
- },
- "application/x-java-jnlp-file": {
- source: "apache",
- compressible: false,
- extensions: [
- "jnlp"
- ]
- },
- "application/x-javascript": {
- compressible: true
- },
- "application/x-keepass2": {
- extensions: [
- "kdbx"
- ]
- },
- "application/x-latex": {
- source: "apache",
- compressible: false,
- extensions: [
- "latex"
- ]
- },
- "application/x-lua-bytecode": {
- extensions: [
- "luac"
- ]
- },
- "application/x-lzh-compressed": {
- source: "apache",
- extensions: [
- "lzh",
- "lha"
- ]
- },
- "application/x-makeself": {
- source: "nginx",
- extensions: [
- "run"
- ]
- },
- "application/x-mie": {
- source: "apache",
- extensions: [
- "mie"
- ]
- },
- "application/x-mobipocket-ebook": {
- source: "apache",
- extensions: [
- "prc",
- "mobi"
- ]
- },
- "application/x-mpegurl": {
- compressible: false
- },
- "application/x-ms-application": {
- source: "apache",
- extensions: [
- "application"
- ]
- },
- "application/x-ms-shortcut": {
- source: "apache",
- extensions: [
- "lnk"
- ]
- },
- "application/x-ms-wmd": {
- source: "apache",
- extensions: [
- "wmd"
- ]
- },
- "application/x-ms-wmz": {
- source: "apache",
- extensions: [
- "wmz"
- ]
- },
- "application/x-ms-xbap": {
- source: "apache",
- extensions: [
- "xbap"
- ]
- },
- "application/x-msaccess": {
- source: "apache",
- extensions: [
- "mdb"
- ]
- },
- "application/x-msbinder": {
- source: "apache",
- extensions: [
- "obd"
- ]
- },
- "application/x-mscardfile": {
- source: "apache",
- extensions: [
- "crd"
- ]
- },
- "application/x-msclip": {
- source: "apache",
- extensions: [
- "clp"
- ]
- },
- "application/x-msdos-program": {
- extensions: [
- "exe"
- ]
- },
- "application/x-msdownload": {
- source: "apache",
- extensions: [
- "exe",
- "dll",
- "com",
- "bat",
- "msi"
- ]
- },
- "application/x-msmediaview": {
- source: "apache",
- extensions: [
- "mvb",
- "m13",
- "m14"
- ]
- },
- "application/x-msmetafile": {
- source: "apache",
- extensions: [
- "wmf",
- "wmz",
- "emf",
- "emz"
- ]
- },
- "application/x-msmoney": {
- source: "apache",
- extensions: [
- "mny"
- ]
- },
- "application/x-mspublisher": {
- source: "apache",
- extensions: [
- "pub"
- ]
- },
- "application/x-msschedule": {
- source: "apache",
- extensions: [
- "scd"
- ]
- },
- "application/x-msterminal": {
- source: "apache",
- extensions: [
- "trm"
- ]
- },
- "application/x-mswrite": {
- source: "apache",
- extensions: [
- "wri"
- ]
- },
- "application/x-netcdf": {
- source: "apache",
- extensions: [
- "nc",
- "cdf"
- ]
- },
- "application/x-ns-proxy-autoconfig": {
- compressible: true,
- extensions: [
- "pac"
- ]
- },
- "application/x-nzb": {
- source: "apache",
- extensions: [
- "nzb"
- ]
- },
- "application/x-perl": {
- source: "nginx",
- extensions: [
- "pl",
- "pm"
- ]
- },
- "application/x-pilot": {
- source: "nginx",
- extensions: [
- "prc",
- "pdb"
- ]
- },
- "application/x-pkcs12": {
- source: "apache",
- compressible: false,
- extensions: [
- "p12",
- "pfx"
- ]
- },
- "application/x-pkcs7-certificates": {
- source: "apache",
- extensions: [
- "p7b",
- "spc"
- ]
- },
- "application/x-pkcs7-certreqresp": {
- source: "apache",
- extensions: [
- "p7r"
- ]
- },
- "application/x-pki-message": {
- source: "iana"
- },
- "application/x-rar-compressed": {
- source: "apache",
- compressible: false,
- extensions: [
- "rar"
- ]
- },
- "application/x-redhat-package-manager": {
- source: "nginx",
- extensions: [
- "rpm"
- ]
- },
- "application/x-research-info-systems": {
- source: "apache",
- extensions: [
- "ris"
- ]
- },
- "application/x-sea": {
- source: "nginx",
- extensions: [
- "sea"
- ]
- },
- "application/x-sh": {
- source: "apache",
- compressible: true,
- extensions: [
- "sh"
- ]
- },
- "application/x-shar": {
- source: "apache",
- extensions: [
- "shar"
- ]
- },
- "application/x-shockwave-flash": {
- source: "apache",
- compressible: false,
- extensions: [
- "swf"
- ]
- },
- "application/x-silverlight-app": {
- source: "apache",
- extensions: [
- "xap"
- ]
- },
- "application/x-sql": {
- source: "apache",
- extensions: [
- "sql"
- ]
- },
- "application/x-stuffit": {
- source: "apache",
- compressible: false,
- extensions: [
- "sit"
- ]
- },
- "application/x-stuffitx": {
- source: "apache",
- extensions: [
- "sitx"
- ]
- },
- "application/x-subrip": {
- source: "apache",
- extensions: [
- "srt"
- ]
- },
- "application/x-sv4cpio": {
- source: "apache",
- extensions: [
- "sv4cpio"
- ]
- },
- "application/x-sv4crc": {
- source: "apache",
- extensions: [
- "sv4crc"
- ]
- },
- "application/x-t3vm-image": {
- source: "apache",
- extensions: [
- "t3"
- ]
- },
- "application/x-tads": {
- source: "apache",
- extensions: [
- "gam"
- ]
- },
- "application/x-tar": {
- source: "apache",
- compressible: true,
- extensions: [
- "tar"
- ]
- },
- "application/x-tcl": {
- source: "apache",
- extensions: [
- "tcl",
- "tk"
- ]
- },
- "application/x-tex": {
- source: "apache",
- extensions: [
- "tex"
- ]
- },
- "application/x-tex-tfm": {
- source: "apache",
- extensions: [
- "tfm"
- ]
- },
- "application/x-texinfo": {
- source: "apache",
- extensions: [
- "texinfo",
- "texi"
- ]
- },
- "application/x-tgif": {
- source: "apache",
- extensions: [
- "obj"
- ]
- },
- "application/x-ustar": {
- source: "apache",
- extensions: [
- "ustar"
- ]
- },
- "application/x-virtualbox-hdd": {
- compressible: true,
- extensions: [
- "hdd"
- ]
- },
- "application/x-virtualbox-ova": {
- compressible: true,
- extensions: [
- "ova"
- ]
- },
- "application/x-virtualbox-ovf": {
- compressible: true,
- extensions: [
- "ovf"
- ]
- },
- "application/x-virtualbox-vbox": {
- compressible: true,
- extensions: [
- "vbox"
- ]
- },
- "application/x-virtualbox-vbox-extpack": {
- compressible: false,
- extensions: [
- "vbox-extpack"
- ]
- },
- "application/x-virtualbox-vdi": {
- compressible: true,
- extensions: [
- "vdi"
- ]
- },
- "application/x-virtualbox-vhd": {
- compressible: true,
- extensions: [
- "vhd"
- ]
- },
- "application/x-virtualbox-vmdk": {
- compressible: true,
- extensions: [
- "vmdk"
- ]
- },
- "application/x-wais-source": {
- source: "apache",
- extensions: [
- "src"
- ]
- },
- "application/x-web-app-manifest+json": {
- compressible: true,
- extensions: [
- "webapp"
- ]
- },
- "application/x-www-form-urlencoded": {
- source: "iana",
- compressible: true
- },
- "application/x-x509-ca-cert": {
- source: "iana",
- extensions: [
- "der",
- "crt",
- "pem"
- ]
- },
- "application/x-x509-ca-ra-cert": {
- source: "iana"
- },
- "application/x-x509-next-ca-cert": {
- source: "iana"
- },
- "application/x-xfig": {
- source: "apache",
- extensions: [
- "fig"
- ]
- },
- "application/x-xliff+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "xlf"
- ]
- },
- "application/x-xpinstall": {
- source: "apache",
- compressible: false,
- extensions: [
- "xpi"
- ]
- },
- "application/x-xz": {
- source: "apache",
- extensions: [
- "xz"
- ]
- },
- "application/x-zmachine": {
- source: "apache",
- extensions: [
- "z1",
- "z2",
- "z3",
- "z4",
- "z5",
- "z6",
- "z7",
- "z8"
- ]
- },
- "application/x400-bp": {
- source: "iana"
- },
- "application/xacml+xml": {
- source: "iana",
- compressible: true
- },
- "application/xaml+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "xaml"
- ]
- },
- "application/xcap-att+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xav"
- ]
- },
- "application/xcap-caps+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xca"
- ]
- },
- "application/xcap-diff+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xdf"
- ]
- },
- "application/xcap-el+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xel"
- ]
- },
- "application/xcap-error+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xer"
- ]
- },
- "application/xcap-ns+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xns"
- ]
- },
- "application/xcon-conference-info+xml": {
- source: "iana",
- compressible: true
- },
- "application/xcon-conference-info-diff+xml": {
- source: "iana",
- compressible: true
- },
- "application/xenc+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xenc"
- ]
- },
- "application/xhtml+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xhtml",
- "xht"
- ]
- },
- "application/xhtml-voice+xml": {
- source: "apache",
- compressible: true
- },
- "application/xliff+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xlf"
- ]
- },
- "application/xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xml",
- "xsl",
- "xsd",
- "rng"
- ]
- },
- "application/xml-dtd": {
- source: "iana",
- compressible: true,
- extensions: [
- "dtd"
- ]
- },
- "application/xml-external-parsed-entity": {
- source: "iana"
- },
- "application/xml-patch+xml": {
- source: "iana",
- compressible: true
- },
- "application/xmpp+xml": {
- source: "iana",
- compressible: true
- },
- "application/xop+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xop"
- ]
- },
- "application/xproc+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "xpl"
- ]
- },
- "application/xslt+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xsl",
- "xslt"
- ]
- },
- "application/xspf+xml": {
- source: "apache",
- compressible: true,
- extensions: [
- "xspf"
- ]
- },
- "application/xv+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "mxml",
- "xhvml",
- "xvml",
- "xvm"
- ]
- },
- "application/yang": {
- source: "iana",
- extensions: [
- "yang"
- ]
- },
- "application/yang-data+json": {
- source: "iana",
- compressible: true
- },
- "application/yang-data+xml": {
- source: "iana",
- compressible: true
- },
- "application/yang-patch+json": {
- source: "iana",
- compressible: true
- },
- "application/yang-patch+xml": {
- source: "iana",
- compressible: true
- },
- "application/yin+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "yin"
- ]
- },
- "application/zip": {
- source: "iana",
- compressible: false,
- extensions: [
- "zip"
- ]
- },
- "application/zlib": {
- source: "iana"
- },
- "application/zstd": {
- source: "iana"
- },
- "audio/1d-interleaved-parityfec": {
- source: "iana"
- },
- "audio/32kadpcm": {
- source: "iana"
- },
- "audio/3gpp": {
- source: "iana",
- compressible: false,
- extensions: [
- "3gpp"
- ]
- },
- "audio/3gpp2": {
- source: "iana"
- },
- "audio/aac": {
- source: "iana"
- },
- "audio/ac3": {
- source: "iana"
- },
- "audio/adpcm": {
- source: "apache",
- extensions: [
- "adp"
- ]
- },
- "audio/amr": {
- source: "iana",
- extensions: [
- "amr"
- ]
- },
- "audio/amr-wb": {
- source: "iana"
- },
- "audio/amr-wb+": {
- source: "iana"
- },
- "audio/aptx": {
- source: "iana"
- },
- "audio/asc": {
- source: "iana"
- },
- "audio/atrac-advanced-lossless": {
- source: "iana"
- },
- "audio/atrac-x": {
- source: "iana"
- },
- "audio/atrac3": {
- source: "iana"
- },
- "audio/basic": {
- source: "iana",
- compressible: false,
- extensions: [
- "au",
- "snd"
- ]
- },
- "audio/bv16": {
- source: "iana"
- },
- "audio/bv32": {
- source: "iana"
- },
- "audio/clearmode": {
- source: "iana"
- },
- "audio/cn": {
- source: "iana"
- },
- "audio/dat12": {
- source: "iana"
- },
- "audio/dls": {
- source: "iana"
- },
- "audio/dsr-es201108": {
- source: "iana"
- },
- "audio/dsr-es202050": {
- source: "iana"
- },
- "audio/dsr-es202211": {
- source: "iana"
- },
- "audio/dsr-es202212": {
- source: "iana"
- },
- "audio/dv": {
- source: "iana"
- },
- "audio/dvi4": {
- source: "iana"
- },
- "audio/eac3": {
- source: "iana"
- },
- "audio/encaprtp": {
- source: "iana"
- },
- "audio/evrc": {
- source: "iana"
- },
- "audio/evrc-qcp": {
- source: "iana"
- },
- "audio/evrc0": {
- source: "iana"
- },
- "audio/evrc1": {
- source: "iana"
- },
- "audio/evrcb": {
- source: "iana"
- },
- "audio/evrcb0": {
- source: "iana"
- },
- "audio/evrcb1": {
- source: "iana"
- },
- "audio/evrcnw": {
- source: "iana"
- },
- "audio/evrcnw0": {
- source: "iana"
- },
- "audio/evrcnw1": {
- source: "iana"
- },
- "audio/evrcwb": {
- source: "iana"
- },
- "audio/evrcwb0": {
- source: "iana"
- },
- "audio/evrcwb1": {
- source: "iana"
- },
- "audio/evs": {
- source: "iana"
- },
- "audio/flexfec": {
- source: "iana"
- },
- "audio/fwdred": {
- source: "iana"
- },
- "audio/g711-0": {
- source: "iana"
- },
- "audio/g719": {
- source: "iana"
- },
- "audio/g722": {
- source: "iana"
- },
- "audio/g7221": {
- source: "iana"
- },
- "audio/g723": {
- source: "iana"
- },
- "audio/g726-16": {
- source: "iana"
- },
- "audio/g726-24": {
- source: "iana"
- },
- "audio/g726-32": {
- source: "iana"
- },
- "audio/g726-40": {
- source: "iana"
- },
- "audio/g728": {
- source: "iana"
- },
- "audio/g729": {
- source: "iana"
- },
- "audio/g7291": {
- source: "iana"
- },
- "audio/g729d": {
- source: "iana"
- },
- "audio/g729e": {
- source: "iana"
- },
- "audio/gsm": {
- source: "iana"
- },
- "audio/gsm-efr": {
- source: "iana"
- },
- "audio/gsm-hr-08": {
- source: "iana"
- },
- "audio/ilbc": {
- source: "iana"
- },
- "audio/ip-mr_v2.5": {
- source: "iana"
- },
- "audio/isac": {
- source: "apache"
- },
- "audio/l16": {
- source: "iana"
- },
- "audio/l20": {
- source: "iana"
- },
- "audio/l24": {
- source: "iana",
- compressible: false
- },
- "audio/l8": {
- source: "iana"
- },
- "audio/lpc": {
- source: "iana"
- },
- "audio/melp": {
- source: "iana"
- },
- "audio/melp1200": {
- source: "iana"
- },
- "audio/melp2400": {
- source: "iana"
- },
- "audio/melp600": {
- source: "iana"
- },
- "audio/mhas": {
- source: "iana"
- },
- "audio/midi": {
- source: "apache",
- extensions: [
- "mid",
- "midi",
- "kar",
- "rmi"
- ]
- },
- "audio/mobile-xmf": {
- source: "iana",
- extensions: [
- "mxmf"
- ]
- },
- "audio/mp3": {
- compressible: false,
- extensions: [
- "mp3"
- ]
- },
- "audio/mp4": {
- source: "iana",
- compressible: false,
- extensions: [
- "m4a",
- "mp4a"
- ]
- },
- "audio/mp4a-latm": {
- source: "iana"
- },
- "audio/mpa": {
- source: "iana"
- },
- "audio/mpa-robust": {
- source: "iana"
- },
- "audio/mpeg": {
- source: "iana",
- compressible: false,
- extensions: [
- "mpga",
- "mp2",
- "mp2a",
- "mp3",
- "m2a",
- "m3a"
- ]
- },
- "audio/mpeg4-generic": {
- source: "iana"
- },
- "audio/musepack": {
- source: "apache"
- },
- "audio/ogg": {
- source: "iana",
- compressible: false,
- extensions: [
- "oga",
- "ogg",
- "spx",
- "opus"
- ]
- },
- "audio/opus": {
- source: "iana"
- },
- "audio/parityfec": {
- source: "iana"
- },
- "audio/pcma": {
- source: "iana"
- },
- "audio/pcma-wb": {
- source: "iana"
- },
- "audio/pcmu": {
- source: "iana"
- },
- "audio/pcmu-wb": {
- source: "iana"
- },
- "audio/prs.sid": {
- source: "iana"
- },
- "audio/qcelp": {
- source: "iana"
- },
- "audio/raptorfec": {
- source: "iana"
- },
- "audio/red": {
- source: "iana"
- },
- "audio/rtp-enc-aescm128": {
- source: "iana"
- },
- "audio/rtp-midi": {
- source: "iana"
- },
- "audio/rtploopback": {
- source: "iana"
- },
- "audio/rtx": {
- source: "iana"
- },
- "audio/s3m": {
- source: "apache",
- extensions: [
- "s3m"
- ]
- },
- "audio/scip": {
- source: "iana"
- },
- "audio/silk": {
- source: "apache",
- extensions: [
- "sil"
- ]
- },
- "audio/smv": {
- source: "iana"
- },
- "audio/smv-qcp": {
- source: "iana"
- },
- "audio/smv0": {
- source: "iana"
- },
- "audio/sofa": {
- source: "iana"
- },
- "audio/sp-midi": {
- source: "iana"
- },
- "audio/speex": {
- source: "iana"
- },
- "audio/t140c": {
- source: "iana"
- },
- "audio/t38": {
- source: "iana"
- },
- "audio/telephone-event": {
- source: "iana"
- },
- "audio/tetra_acelp": {
- source: "iana"
- },
- "audio/tetra_acelp_bb": {
- source: "iana"
- },
- "audio/tone": {
- source: "iana"
- },
- "audio/tsvcis": {
- source: "iana"
- },
- "audio/uemclip": {
- source: "iana"
- },
- "audio/ulpfec": {
- source: "iana"
- },
- "audio/usac": {
- source: "iana"
- },
- "audio/vdvi": {
- source: "iana"
- },
- "audio/vmr-wb": {
- source: "iana"
- },
- "audio/vnd.3gpp.iufp": {
- source: "iana"
- },
- "audio/vnd.4sb": {
- source: "iana"
- },
- "audio/vnd.audiokoz": {
- source: "iana"
- },
- "audio/vnd.celp": {
- source: "iana"
- },
- "audio/vnd.cisco.nse": {
- source: "iana"
- },
- "audio/vnd.cmles.radio-events": {
- source: "iana"
- },
- "audio/vnd.cns.anp1": {
- source: "iana"
- },
- "audio/vnd.cns.inf1": {
- source: "iana"
- },
- "audio/vnd.dece.audio": {
- source: "iana",
- extensions: [
- "uva",
- "uvva"
- ]
- },
- "audio/vnd.digital-winds": {
- source: "iana",
- extensions: [
- "eol"
- ]
- },
- "audio/vnd.dlna.adts": {
- source: "iana"
- },
- "audio/vnd.dolby.heaac.1": {
- source: "iana"
- },
- "audio/vnd.dolby.heaac.2": {
- source: "iana"
- },
- "audio/vnd.dolby.mlp": {
- source: "iana"
- },
- "audio/vnd.dolby.mps": {
- source: "iana"
- },
- "audio/vnd.dolby.pl2": {
- source: "iana"
- },
- "audio/vnd.dolby.pl2x": {
- source: "iana"
- },
- "audio/vnd.dolby.pl2z": {
- source: "iana"
- },
- "audio/vnd.dolby.pulse.1": {
- source: "iana"
- },
- "audio/vnd.dra": {
- source: "iana",
- extensions: [
- "dra"
- ]
- },
- "audio/vnd.dts": {
- source: "iana",
- extensions: [
- "dts"
- ]
- },
- "audio/vnd.dts.hd": {
- source: "iana",
- extensions: [
- "dtshd"
- ]
- },
- "audio/vnd.dts.uhd": {
- source: "iana"
- },
- "audio/vnd.dvb.file": {
- source: "iana"
- },
- "audio/vnd.everad.plj": {
- source: "iana"
- },
- "audio/vnd.hns.audio": {
- source: "iana"
- },
- "audio/vnd.lucent.voice": {
- source: "iana",
- extensions: [
- "lvp"
- ]
- },
- "audio/vnd.ms-playready.media.pya": {
- source: "iana",
- extensions: [
- "pya"
- ]
- },
- "audio/vnd.nokia.mobile-xmf": {
- source: "iana"
- },
- "audio/vnd.nortel.vbk": {
- source: "iana"
- },
- "audio/vnd.nuera.ecelp4800": {
- source: "iana",
- extensions: [
- "ecelp4800"
- ]
- },
- "audio/vnd.nuera.ecelp7470": {
- source: "iana",
- extensions: [
- "ecelp7470"
- ]
- },
- "audio/vnd.nuera.ecelp9600": {
- source: "iana",
- extensions: [
- "ecelp9600"
- ]
- },
- "audio/vnd.octel.sbc": {
- source: "iana"
- },
- "audio/vnd.presonus.multitrack": {
- source: "iana"
- },
- "audio/vnd.qcelp": {
- source: "iana"
- },
- "audio/vnd.rhetorex.32kadpcm": {
- source: "iana"
- },
- "audio/vnd.rip": {
- source: "iana",
- extensions: [
- "rip"
- ]
- },
- "audio/vnd.rn-realaudio": {
- compressible: false
- },
- "audio/vnd.sealedmedia.softseal.mpeg": {
- source: "iana"
- },
- "audio/vnd.vmx.cvsd": {
- source: "iana"
- },
- "audio/vnd.wave": {
- compressible: false
- },
- "audio/vorbis": {
- source: "iana",
- compressible: false
- },
- "audio/vorbis-config": {
- source: "iana"
- },
- "audio/wav": {
- compressible: false,
- extensions: [
- "wav"
- ]
- },
- "audio/wave": {
- compressible: false,
- extensions: [
- "wav"
- ]
- },
- "audio/webm": {
- source: "apache",
- compressible: false,
- extensions: [
- "weba"
- ]
- },
- "audio/x-aac": {
- source: "apache",
- compressible: false,
- extensions: [
- "aac"
- ]
- },
- "audio/x-aiff": {
- source: "apache",
- extensions: [
- "aif",
- "aiff",
- "aifc"
- ]
- },
- "audio/x-caf": {
- source: "apache",
- compressible: false,
- extensions: [
- "caf"
- ]
- },
- "audio/x-flac": {
- source: "apache",
- extensions: [
- "flac"
- ]
- },
- "audio/x-m4a": {
- source: "nginx",
- extensions: [
- "m4a"
- ]
- },
- "audio/x-matroska": {
- source: "apache",
- extensions: [
- "mka"
- ]
- },
- "audio/x-mpegurl": {
- source: "apache",
- extensions: [
- "m3u"
- ]
- },
- "audio/x-ms-wax": {
- source: "apache",
- extensions: [
- "wax"
- ]
- },
- "audio/x-ms-wma": {
- source: "apache",
- extensions: [
- "wma"
- ]
- },
- "audio/x-pn-realaudio": {
- source: "apache",
- extensions: [
- "ram",
- "ra"
- ]
- },
- "audio/x-pn-realaudio-plugin": {
- source: "apache",
- extensions: [
- "rmp"
- ]
- },
- "audio/x-realaudio": {
- source: "nginx",
- extensions: [
- "ra"
- ]
- },
- "audio/x-tta": {
- source: "apache"
- },
- "audio/x-wav": {
- source: "apache",
- extensions: [
- "wav"
- ]
- },
- "audio/xm": {
- source: "apache",
- extensions: [
- "xm"
- ]
- },
- "chemical/x-cdx": {
- source: "apache",
- extensions: [
- "cdx"
- ]
- },
- "chemical/x-cif": {
- source: "apache",
- extensions: [
- "cif"
- ]
- },
- "chemical/x-cmdf": {
- source: "apache",
- extensions: [
- "cmdf"
- ]
- },
- "chemical/x-cml": {
- source: "apache",
- extensions: [
- "cml"
- ]
- },
- "chemical/x-csml": {
- source: "apache",
- extensions: [
- "csml"
- ]
- },
- "chemical/x-pdb": {
- source: "apache"
- },
- "chemical/x-xyz": {
- source: "apache",
- extensions: [
- "xyz"
- ]
- },
- "font/collection": {
- source: "iana",
- extensions: [
- "ttc"
- ]
- },
- "font/otf": {
- source: "iana",
- compressible: true,
- extensions: [
- "otf"
- ]
- },
- "font/sfnt": {
- source: "iana"
- },
- "font/ttf": {
- source: "iana",
- compressible: true,
- extensions: [
- "ttf"
- ]
- },
- "font/woff": {
- source: "iana",
- extensions: [
- "woff"
- ]
- },
- "font/woff2": {
- source: "iana",
- extensions: [
- "woff2"
- ]
- },
- "image/aces": {
- source: "iana",
- extensions: [
- "exr"
- ]
- },
- "image/apng": {
- compressible: false,
- extensions: [
- "apng"
- ]
- },
- "image/avci": {
- source: "iana"
- },
- "image/avcs": {
- source: "iana"
- },
- "image/avif": {
- source: "iana",
- compressible: false,
- extensions: [
- "avif"
- ]
- },
- "image/bmp": {
- source: "iana",
- compressible: true,
- extensions: [
- "bmp"
- ]
- },
- "image/cgm": {
- source: "iana",
- extensions: [
- "cgm"
- ]
- },
- "image/dicom-rle": {
- source: "iana",
- extensions: [
- "drle"
- ]
- },
- "image/emf": {
- source: "iana",
- extensions: [
- "emf"
- ]
- },
- "image/fits": {
- source: "iana",
- extensions: [
- "fits"
- ]
- },
- "image/g3fax": {
- source: "iana",
- extensions: [
- "g3"
- ]
- },
- "image/gif": {
- source: "iana",
- compressible: false,
- extensions: [
- "gif"
- ]
- },
- "image/heic": {
- source: "iana",
- extensions: [
- "heic"
- ]
- },
- "image/heic-sequence": {
- source: "iana",
- extensions: [
- "heics"
- ]
- },
- "image/heif": {
- source: "iana",
- extensions: [
- "heif"
- ]
- },
- "image/heif-sequence": {
- source: "iana",
- extensions: [
- "heifs"
- ]
- },
- "image/hej2k": {
- source: "iana",
- extensions: [
- "hej2"
- ]
- },
- "image/hsj2": {
- source: "iana",
- extensions: [
- "hsj2"
- ]
- },
- "image/ief": {
- source: "iana",
- extensions: [
- "ief"
- ]
- },
- "image/jls": {
- source: "iana",
- extensions: [
- "jls"
- ]
- },
- "image/jp2": {
- source: "iana",
- compressible: false,
- extensions: [
- "jp2",
- "jpg2"
- ]
- },
- "image/jpeg": {
- source: "iana",
- compressible: false,
- extensions: [
- "jpeg",
- "jpg",
- "jpe"
- ]
- },
- "image/jph": {
- source: "iana",
- extensions: [
- "jph"
- ]
- },
- "image/jphc": {
- source: "iana",
- extensions: [
- "jhc"
- ]
- },
- "image/jpm": {
- source: "iana",
- compressible: false,
- extensions: [
- "jpm"
- ]
- },
- "image/jpx": {
- source: "iana",
- compressible: false,
- extensions: [
- "jpx",
- "jpf"
- ]
- },
- "image/jxr": {
- source: "iana",
- extensions: [
- "jxr"
- ]
- },
- "image/jxra": {
- source: "iana",
- extensions: [
- "jxra"
- ]
- },
- "image/jxrs": {
- source: "iana",
- extensions: [
- "jxrs"
- ]
- },
- "image/jxs": {
- source: "iana",
- extensions: [
- "jxs"
- ]
- },
- "image/jxsc": {
- source: "iana",
- extensions: [
- "jxsc"
- ]
- },
- "image/jxsi": {
- source: "iana",
- extensions: [
- "jxsi"
- ]
- },
- "image/jxss": {
- source: "iana",
- extensions: [
- "jxss"
- ]
- },
- "image/ktx": {
- source: "iana",
- extensions: [
- "ktx"
- ]
- },
- "image/ktx2": {
- source: "iana",
- extensions: [
- "ktx2"
- ]
- },
- "image/naplps": {
- source: "iana"
- },
- "image/pjpeg": {
- compressible: false
- },
- "image/png": {
- source: "iana",
- compressible: false,
- extensions: [
- "png"
- ]
- },
- "image/prs.btif": {
- source: "iana",
- extensions: [
- "btif"
- ]
- },
- "image/prs.pti": {
- source: "iana",
- extensions: [
- "pti"
- ]
- },
- "image/pwg-raster": {
- source: "iana"
- },
- "image/sgi": {
- source: "apache",
- extensions: [
- "sgi"
- ]
- },
- "image/svg+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "svg",
- "svgz"
- ]
- },
- "image/t38": {
- source: "iana",
- extensions: [
- "t38"
- ]
- },
- "image/tiff": {
- source: "iana",
- compressible: false,
- extensions: [
- "tif",
- "tiff"
- ]
- },
- "image/tiff-fx": {
- source: "iana",
- extensions: [
- "tfx"
- ]
- },
- "image/vnd.adobe.photoshop": {
- source: "iana",
- compressible: true,
- extensions: [
- "psd"
- ]
- },
- "image/vnd.airzip.accelerator.azv": {
- source: "iana",
- extensions: [
- "azv"
- ]
- },
- "image/vnd.cns.inf2": {
- source: "iana"
- },
- "image/vnd.dece.graphic": {
- source: "iana",
- extensions: [
- "uvi",
- "uvvi",
- "uvg",
- "uvvg"
- ]
- },
- "image/vnd.djvu": {
- source: "iana",
- extensions: [
- "djvu",
- "djv"
- ]
- },
- "image/vnd.dvb.subtitle": {
- source: "iana",
- extensions: [
- "sub"
- ]
- },
- "image/vnd.dwg": {
- source: "iana",
- extensions: [
- "dwg"
- ]
- },
- "image/vnd.dxf": {
- source: "iana",
- extensions: [
- "dxf"
- ]
- },
- "image/vnd.fastbidsheet": {
- source: "iana",
- extensions: [
- "fbs"
- ]
- },
- "image/vnd.fpx": {
- source: "iana",
- extensions: [
- "fpx"
- ]
- },
- "image/vnd.fst": {
- source: "iana",
- extensions: [
- "fst"
- ]
- },
- "image/vnd.fujixerox.edmics-mmr": {
- source: "iana",
- extensions: [
- "mmr"
- ]
- },
- "image/vnd.fujixerox.edmics-rlc": {
- source: "iana",
- extensions: [
- "rlc"
- ]
- },
- "image/vnd.globalgraphics.pgb": {
- source: "iana"
- },
- "image/vnd.microsoft.icon": {
- source: "iana",
- extensions: [
- "ico"
- ]
- },
- "image/vnd.mix": {
- source: "iana"
- },
- "image/vnd.mozilla.apng": {
- source: "iana"
- },
- "image/vnd.ms-dds": {
- extensions: [
- "dds"
- ]
- },
- "image/vnd.ms-modi": {
- source: "iana",
- extensions: [
- "mdi"
- ]
- },
- "image/vnd.ms-photo": {
- source: "apache",
- extensions: [
- "wdp"
- ]
- },
- "image/vnd.net-fpx": {
- source: "iana",
- extensions: [
- "npx"
- ]
- },
- "image/vnd.pco.b16": {
- source: "iana",
- extensions: [
- "b16"
- ]
- },
- "image/vnd.radiance": {
- source: "iana"
- },
- "image/vnd.sealed.png": {
- source: "iana"
- },
- "image/vnd.sealedmedia.softseal.gif": {
- source: "iana"
- },
- "image/vnd.sealedmedia.softseal.jpg": {
- source: "iana"
- },
- "image/vnd.svf": {
- source: "iana"
- },
- "image/vnd.tencent.tap": {
- source: "iana",
- extensions: [
- "tap"
- ]
- },
- "image/vnd.valve.source.texture": {
- source: "iana",
- extensions: [
- "vtf"
- ]
- },
- "image/vnd.wap.wbmp": {
- source: "iana",
- extensions: [
- "wbmp"
- ]
- },
- "image/vnd.xiff": {
- source: "iana",
- extensions: [
- "xif"
- ]
- },
- "image/vnd.zbrush.pcx": {
- source: "iana",
- extensions: [
- "pcx"
- ]
- },
- "image/webp": {
- source: "apache",
- extensions: [
- "webp"
- ]
- },
- "image/wmf": {
- source: "iana",
- extensions: [
- "wmf"
- ]
- },
- "image/x-3ds": {
- source: "apache",
- extensions: [
- "3ds"
- ]
- },
- "image/x-cmu-raster": {
- source: "apache",
- extensions: [
- "ras"
- ]
- },
- "image/x-cmx": {
- source: "apache",
- extensions: [
- "cmx"
- ]
- },
- "image/x-freehand": {
- source: "apache",
- extensions: [
- "fh",
- "fhc",
- "fh4",
- "fh5",
- "fh7"
- ]
- },
- "image/x-icon": {
- source: "apache",
- compressible: true,
- extensions: [
- "ico"
- ]
- },
- "image/x-jng": {
- source: "nginx",
- extensions: [
- "jng"
- ]
- },
- "image/x-mrsid-image": {
- source: "apache",
- extensions: [
- "sid"
- ]
- },
- "image/x-ms-bmp": {
- source: "nginx",
- compressible: true,
- extensions: [
- "bmp"
- ]
- },
- "image/x-pcx": {
- source: "apache",
- extensions: [
- "pcx"
- ]
- },
- "image/x-pict": {
- source: "apache",
- extensions: [
- "pic",
- "pct"
- ]
- },
- "image/x-portable-anymap": {
- source: "apache",
- extensions: [
- "pnm"
- ]
- },
- "image/x-portable-bitmap": {
- source: "apache",
- extensions: [
- "pbm"
- ]
- },
- "image/x-portable-graymap": {
- source: "apache",
- extensions: [
- "pgm"
- ]
- },
- "image/x-portable-pixmap": {
- source: "apache",
- extensions: [
- "ppm"
- ]
- },
- "image/x-rgb": {
- source: "apache",
- extensions: [
- "rgb"
- ]
- },
- "image/x-tga": {
- source: "apache",
- extensions: [
- "tga"
- ]
- },
- "image/x-xbitmap": {
- source: "apache",
- extensions: [
- "xbm"
- ]
- },
- "image/x-xcf": {
- compressible: false
- },
- "image/x-xpixmap": {
- source: "apache",
- extensions: [
- "xpm"
- ]
- },
- "image/x-xwindowdump": {
- source: "apache",
- extensions: [
- "xwd"
- ]
- },
- "message/cpim": {
- source: "iana"
- },
- "message/delivery-status": {
- source: "iana"
- },
- "message/disposition-notification": {
- source: "iana",
- extensions: [
- "disposition-notification"
- ]
- },
- "message/external-body": {
- source: "iana"
- },
- "message/feedback-report": {
- source: "iana"
- },
- "message/global": {
- source: "iana",
- extensions: [
- "u8msg"
- ]
- },
- "message/global-delivery-status": {
- source: "iana",
- extensions: [
- "u8dsn"
- ]
- },
- "message/global-disposition-notification": {
- source: "iana",
- extensions: [
- "u8mdn"
- ]
- },
- "message/global-headers": {
- source: "iana",
- extensions: [
- "u8hdr"
- ]
- },
- "message/http": {
- source: "iana",
- compressible: false
- },
- "message/imdn+xml": {
- source: "iana",
- compressible: true
- },
- "message/news": {
- source: "iana"
- },
- "message/partial": {
- source: "iana",
- compressible: false
- },
- "message/rfc822": {
- source: "iana",
- compressible: true,
- extensions: [
- "eml",
- "mime"
- ]
- },
- "message/s-http": {
- source: "iana"
- },
- "message/sip": {
- source: "iana"
- },
- "message/sipfrag": {
- source: "iana"
- },
- "message/tracking-status": {
- source: "iana"
- },
- "message/vnd.si.simp": {
- source: "iana"
- },
- "message/vnd.wfa.wsc": {
- source: "iana",
- extensions: [
- "wsc"
- ]
- },
- "model/3mf": {
- source: "iana",
- extensions: [
- "3mf"
- ]
- },
- "model/e57": {
- source: "iana"
- },
- "model/gltf+json": {
- source: "iana",
- compressible: true,
- extensions: [
- "gltf"
- ]
- },
- "model/gltf-binary": {
- source: "iana",
- compressible: true,
- extensions: [
- "glb"
- ]
- },
- "model/iges": {
- source: "iana",
- compressible: false,
- extensions: [
- "igs",
- "iges"
- ]
- },
- "model/mesh": {
- source: "iana",
- compressible: false,
- extensions: [
- "msh",
- "mesh",
- "silo"
- ]
- },
- "model/mtl": {
- source: "iana",
- extensions: [
- "mtl"
- ]
- },
- "model/obj": {
- source: "iana",
- extensions: [
- "obj"
- ]
- },
- "model/stl": {
- source: "iana",
- extensions: [
- "stl"
- ]
- },
- "model/vnd.collada+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "dae"
- ]
- },
- "model/vnd.dwf": {
- source: "iana",
- extensions: [
- "dwf"
- ]
- },
- "model/vnd.flatland.3dml": {
- source: "iana"
- },
- "model/vnd.gdl": {
- source: "iana",
- extensions: [
- "gdl"
- ]
- },
- "model/vnd.gs-gdl": {
- source: "apache"
- },
- "model/vnd.gs.gdl": {
- source: "iana"
- },
- "model/vnd.gtw": {
- source: "iana",
- extensions: [
- "gtw"
- ]
- },
- "model/vnd.moml+xml": {
- source: "iana",
- compressible: true
- },
- "model/vnd.mts": {
- source: "iana",
- extensions: [
- "mts"
- ]
- },
- "model/vnd.opengex": {
- source: "iana",
- extensions: [
- "ogex"
- ]
- },
- "model/vnd.parasolid.transmit.binary": {
- source: "iana",
- extensions: [
- "x_b"
- ]
- },
- "model/vnd.parasolid.transmit.text": {
- source: "iana",
- extensions: [
- "x_t"
- ]
- },
- "model/vnd.rosette.annotated-data-model": {
- source: "iana"
- },
- "model/vnd.usdz+zip": {
- source: "iana",
- compressible: false,
- extensions: [
- "usdz"
- ]
- },
- "model/vnd.valve.source.compiled-map": {
- source: "iana",
- extensions: [
- "bsp"
- ]
- },
- "model/vnd.vtu": {
- source: "iana",
- extensions: [
- "vtu"
- ]
- },
- "model/vrml": {
- source: "iana",
- compressible: false,
- extensions: [
- "wrl",
- "vrml"
- ]
- },
- "model/x3d+binary": {
- source: "apache",
- compressible: false,
- extensions: [
- "x3db",
- "x3dbz"
- ]
- },
- "model/x3d+fastinfoset": {
- source: "iana",
- extensions: [
- "x3db"
- ]
- },
- "model/x3d+vrml": {
- source: "apache",
- compressible: false,
- extensions: [
- "x3dv",
- "x3dvz"
- ]
- },
- "model/x3d+xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "x3d",
- "x3dz"
- ]
- },
- "model/x3d-vrml": {
- source: "iana",
- extensions: [
- "x3dv"
- ]
- },
- "multipart/alternative": {
- source: "iana",
- compressible: false
- },
- "multipart/appledouble": {
- source: "iana"
- },
- "multipart/byteranges": {
- source: "iana"
- },
- "multipart/digest": {
- source: "iana"
- },
- "multipart/encrypted": {
- source: "iana",
- compressible: false
- },
- "multipart/form-data": {
- source: "iana",
- compressible: false
- },
- "multipart/header-set": {
- source: "iana"
- },
- "multipart/mixed": {
- source: "iana"
- },
- "multipart/multilingual": {
- source: "iana"
- },
- "multipart/parallel": {
- source: "iana"
- },
- "multipart/related": {
- source: "iana",
- compressible: false
- },
- "multipart/report": {
- source: "iana"
- },
- "multipart/signed": {
- source: "iana",
- compressible: false
- },
- "multipart/vnd.bint.med-plus": {
- source: "iana"
- },
- "multipart/voice-message": {
- source: "iana"
- },
- "multipart/x-mixed-replace": {
- source: "iana"
- },
- "text/1d-interleaved-parityfec": {
- source: "iana"
- },
- "text/cache-manifest": {
- source: "iana",
- compressible: true,
- extensions: [
- "appcache",
- "manifest"
- ]
- },
- "text/calendar": {
- source: "iana",
- extensions: [
- "ics",
- "ifb"
- ]
- },
- "text/calender": {
- compressible: true
- },
- "text/cmd": {
- compressible: true
- },
- "text/coffeescript": {
- extensions: [
- "coffee",
- "litcoffee"
- ]
- },
- "text/cql": {
- source: "iana"
- },
- "text/cql-expression": {
- source: "iana"
- },
- "text/cql-identifier": {
- source: "iana"
- },
- "text/css": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "css"
- ]
- },
- "text/csv": {
- source: "iana",
- compressible: true,
- extensions: [
- "csv"
- ]
- },
- "text/csv-schema": {
- source: "iana"
- },
- "text/directory": {
- source: "iana"
- },
- "text/dns": {
- source: "iana"
- },
- "text/ecmascript": {
- source: "iana"
- },
- "text/encaprtp": {
- source: "iana"
- },
- "text/enriched": {
- source: "iana"
- },
- "text/fhirpath": {
- source: "iana"
- },
- "text/flexfec": {
- source: "iana"
- },
- "text/fwdred": {
- source: "iana"
- },
- "text/gff3": {
- source: "iana"
- },
- "text/grammar-ref-list": {
- source: "iana"
- },
- "text/html": {
- source: "iana",
- compressible: true,
- extensions: [
- "html",
- "htm",
- "shtml"
- ]
- },
- "text/jade": {
- extensions: [
- "jade"
- ]
- },
- "text/javascript": {
- source: "iana",
- compressible: true
- },
- "text/jcr-cnd": {
- source: "iana"
- },
- "text/jsx": {
- compressible: true,
- extensions: [
- "jsx"
- ]
- },
- "text/less": {
- compressible: true,
- extensions: [
- "less"
- ]
- },
- "text/markdown": {
- source: "iana",
- compressible: true,
- extensions: [
- "markdown",
- "md"
- ]
- },
- "text/mathml": {
- source: "nginx",
- extensions: [
- "mml"
- ]
- },
- "text/mdx": {
- compressible: true,
- extensions: [
- "mdx"
- ]
- },
- "text/mizar": {
- source: "iana"
- },
- "text/n3": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "n3"
- ]
- },
- "text/parameters": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/parityfec": {
- source: "iana"
- },
- "text/plain": {
- source: "iana",
- compressible: true,
- extensions: [
- "txt",
- "text",
- "conf",
- "def",
- "list",
- "log",
- "in",
- "ini"
- ]
- },
- "text/provenance-notation": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/prs.fallenstein.rst": {
- source: "iana"
- },
- "text/prs.lines.tag": {
- source: "iana",
- extensions: [
- "dsc"
- ]
- },
- "text/prs.prop.logic": {
- source: "iana"
- },
- "text/raptorfec": {
- source: "iana"
- },
- "text/red": {
- source: "iana"
- },
- "text/rfc822-headers": {
- source: "iana"
- },
- "text/richtext": {
- source: "iana",
- compressible: true,
- extensions: [
- "rtx"
- ]
- },
- "text/rtf": {
- source: "iana",
- compressible: true,
- extensions: [
- "rtf"
- ]
- },
- "text/rtp-enc-aescm128": {
- source: "iana"
- },
- "text/rtploopback": {
- source: "iana"
- },
- "text/rtx": {
- source: "iana"
- },
- "text/sgml": {
- source: "iana",
- extensions: [
- "sgml",
- "sgm"
- ]
- },
- "text/shaclc": {
- source: "iana"
- },
- "text/shex": {
- extensions: [
- "shex"
- ]
- },
- "text/slim": {
- extensions: [
- "slim",
- "slm"
- ]
- },
- "text/spdx": {
- source: "iana",
- extensions: [
- "spdx"
- ]
- },
- "text/strings": {
- source: "iana"
- },
- "text/stylus": {
- extensions: [
- "stylus",
- "styl"
- ]
- },
- "text/t140": {
- source: "iana"
- },
- "text/tab-separated-values": {
- source: "iana",
- compressible: true,
- extensions: [
- "tsv"
- ]
- },
- "text/troff": {
- source: "iana",
- extensions: [
- "t",
- "tr",
- "roff",
- "man",
- "me",
- "ms"
- ]
- },
- "text/turtle": {
- source: "iana",
- charset: "UTF-8",
- extensions: [
- "ttl"
- ]
- },
- "text/ulpfec": {
- source: "iana"
- },
- "text/uri-list": {
- source: "iana",
- compressible: true,
- extensions: [
- "uri",
- "uris",
- "urls"
- ]
- },
- "text/vcard": {
- source: "iana",
- compressible: true,
- extensions: [
- "vcard"
- ]
- },
- "text/vnd.a": {
- source: "iana"
- },
- "text/vnd.abc": {
- source: "iana"
- },
- "text/vnd.ascii-art": {
- source: "iana"
- },
- "text/vnd.curl": {
- source: "iana",
- extensions: [
- "curl"
- ]
- },
- "text/vnd.curl.dcurl": {
- source: "apache",
- extensions: [
- "dcurl"
- ]
- },
- "text/vnd.curl.mcurl": {
- source: "apache",
- extensions: [
- "mcurl"
- ]
- },
- "text/vnd.curl.scurl": {
- source: "apache",
- extensions: [
- "scurl"
- ]
- },
- "text/vnd.debian.copyright": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/vnd.dmclientscript": {
- source: "iana"
- },
- "text/vnd.dvb.subtitle": {
- source: "iana",
- extensions: [
- "sub"
- ]
- },
- "text/vnd.esmertec.theme-descriptor": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/vnd.ficlab.flt": {
- source: "iana"
- },
- "text/vnd.fly": {
- source: "iana",
- extensions: [
- "fly"
- ]
- },
- "text/vnd.fmi.flexstor": {
- source: "iana",
- extensions: [
- "flx"
- ]
- },
- "text/vnd.gml": {
- source: "iana"
- },
- "text/vnd.graphviz": {
- source: "iana",
- extensions: [
- "gv"
- ]
- },
- "text/vnd.hans": {
- source: "iana"
- },
- "text/vnd.hgl": {
- source: "iana"
- },
- "text/vnd.in3d.3dml": {
- source: "iana",
- extensions: [
- "3dml"
- ]
- },
- "text/vnd.in3d.spot": {
- source: "iana",
- extensions: [
- "spot"
- ]
- },
- "text/vnd.iptc.newsml": {
- source: "iana"
- },
- "text/vnd.iptc.nitf": {
- source: "iana"
- },
- "text/vnd.latex-z": {
- source: "iana"
- },
- "text/vnd.motorola.reflex": {
- source: "iana"
- },
- "text/vnd.ms-mediapackage": {
- source: "iana"
- },
- "text/vnd.net2phone.commcenter.command": {
- source: "iana"
- },
- "text/vnd.radisys.msml-basic-layout": {
- source: "iana"
- },
- "text/vnd.senx.warpscript": {
- source: "iana"
- },
- "text/vnd.si.uricatalogue": {
- source: "iana"
- },
- "text/vnd.sosi": {
- source: "iana"
- },
- "text/vnd.sun.j2me.app-descriptor": {
- source: "iana",
- charset: "UTF-8",
- extensions: [
- "jad"
- ]
- },
- "text/vnd.trolltech.linguist": {
- source: "iana",
- charset: "UTF-8"
- },
- "text/vnd.wap.si": {
- source: "iana"
- },
- "text/vnd.wap.sl": {
- source: "iana"
- },
- "text/vnd.wap.wml": {
- source: "iana",
- extensions: [
- "wml"
- ]
- },
- "text/vnd.wap.wmlscript": {
- source: "iana",
- extensions: [
- "wmls"
- ]
- },
- "text/vtt": {
- source: "iana",
- charset: "UTF-8",
- compressible: true,
- extensions: [
- "vtt"
- ]
- },
- "text/x-asm": {
- source: "apache",
- extensions: [
- "s",
- "asm"
- ]
- },
- "text/x-c": {
- source: "apache",
- extensions: [
- "c",
- "cc",
- "cxx",
- "cpp",
- "h",
- "hh",
- "dic"
- ]
- },
- "text/x-component": {
- source: "nginx",
- extensions: [
- "htc"
- ]
- },
- "text/x-fortran": {
- source: "apache",
- extensions: [
- "f",
- "for",
- "f77",
- "f90"
- ]
- },
- "text/x-gwt-rpc": {
- compressible: true
- },
- "text/x-handlebars-template": {
- extensions: [
- "hbs"
- ]
- },
- "text/x-java-source": {
- source: "apache",
- extensions: [
- "java"
- ]
- },
- "text/x-jquery-tmpl": {
- compressible: true
- },
- "text/x-lua": {
- extensions: [
- "lua"
- ]
- },
- "text/x-markdown": {
- compressible: true,
- extensions: [
- "mkd"
- ]
- },
- "text/x-nfo": {
- source: "apache",
- extensions: [
- "nfo"
- ]
- },
- "text/x-opml": {
- source: "apache",
- extensions: [
- "opml"
- ]
- },
- "text/x-org": {
- compressible: true,
- extensions: [
- "org"
- ]
- },
- "text/x-pascal": {
- source: "apache",
- extensions: [
- "p",
- "pas"
- ]
- },
- "text/x-processing": {
- compressible: true,
- extensions: [
- "pde"
- ]
- },
- "text/x-sass": {
- extensions: [
- "sass"
- ]
- },
- "text/x-scss": {
- extensions: [
- "scss"
- ]
- },
- "text/x-setext": {
- source: "apache",
- extensions: [
- "etx"
- ]
- },
- "text/x-sfv": {
- source: "apache",
- extensions: [
- "sfv"
- ]
- },
- "text/x-suse-ymp": {
- compressible: true,
- extensions: [
- "ymp"
- ]
- },
- "text/x-uuencode": {
- source: "apache",
- extensions: [
- "uu"
- ]
- },
- "text/x-vcalendar": {
- source: "apache",
- extensions: [
- "vcs"
- ]
- },
- "text/x-vcard": {
- source: "apache",
- extensions: [
- "vcf"
- ]
- },
- "text/xml": {
- source: "iana",
- compressible: true,
- extensions: [
- "xml"
- ]
- },
- "text/xml-external-parsed-entity": {
- source: "iana"
- },
- "text/yaml": {
- extensions: [
- "yaml",
- "yml"
- ]
- },
- "video/1d-interleaved-parityfec": {
- source: "iana"
- },
- "video/3gpp": {
- source: "iana",
- extensions: [
- "3gp",
- "3gpp"
- ]
- },
- "video/3gpp-tt": {
- source: "iana"
- },
- "video/3gpp2": {
- source: "iana",
- extensions: [
- "3g2"
- ]
- },
- "video/av1": {
- source: "iana"
- },
- "video/bmpeg": {
- source: "iana"
- },
- "video/bt656": {
- source: "iana"
- },
- "video/celb": {
- source: "iana"
- },
- "video/dv": {
- source: "iana"
- },
- "video/encaprtp": {
- source: "iana"
- },
- "video/flexfec": {
- source: "iana"
- },
- "video/h261": {
- source: "iana",
- extensions: [
- "h261"
- ]
- },
- "video/h263": {
- source: "iana",
- extensions: [
- "h263"
- ]
- },
- "video/h263-1998": {
- source: "iana"
- },
- "video/h263-2000": {
- source: "iana"
- },
- "video/h264": {
- source: "iana",
- extensions: [
- "h264"
- ]
- },
- "video/h264-rcdo": {
- source: "iana"
- },
- "video/h264-svc": {
- source: "iana"
- },
- "video/h265": {
- source: "iana"
- },
- "video/iso.segment": {
- source: "iana",
- extensions: [
- "m4s"
- ]
- },
- "video/jpeg": {
- source: "iana",
- extensions: [
- "jpgv"
- ]
- },
- "video/jpeg2000": {
- source: "iana"
- },
- "video/jpm": {
- source: "apache",
- extensions: [
- "jpm",
- "jpgm"
- ]
- },
- "video/mj2": {
- source: "iana",
- extensions: [
- "mj2",
- "mjp2"
- ]
- },
- "video/mp1s": {
- source: "iana"
- },
- "video/mp2p": {
- source: "iana"
- },
- "video/mp2t": {
- source: "iana",
- extensions: [
- "ts"
- ]
- },
- "video/mp4": {
- source: "iana",
- compressible: false,
- extensions: [
- "mp4",
- "mp4v",
- "mpg4"
- ]
- },
- "video/mp4v-es": {
- source: "iana"
- },
- "video/mpeg": {
- source: "iana",
- compressible: false,
- extensions: [
- "mpeg",
- "mpg",
- "mpe",
- "m1v",
- "m2v"
- ]
- },
- "video/mpeg4-generic": {
- source: "iana"
- },
- "video/mpv": {
- source: "iana"
- },
- "video/nv": {
- source: "iana"
- },
- "video/ogg": {
- source: "iana",
- compressible: false,
- extensions: [
- "ogv"
- ]
- },
- "video/parityfec": {
- source: "iana"
- },
- "video/pointer": {
- source: "iana"
- },
- "video/quicktime": {
- source: "iana",
- compressible: false,
- extensions: [
- "qt",
- "mov"
- ]
- },
- "video/raptorfec": {
- source: "iana"
- },
- "video/raw": {
- source: "iana"
- },
- "video/rtp-enc-aescm128": {
- source: "iana"
- },
- "video/rtploopback": {
- source: "iana"
- },
- "video/rtx": {
- source: "iana"
- },
- "video/scip": {
- source: "iana"
- },
- "video/smpte291": {
- source: "iana"
- },
- "video/smpte292m": {
- source: "iana"
- },
- "video/ulpfec": {
- source: "iana"
- },
- "video/vc1": {
- source: "iana"
- },
- "video/vc2": {
- source: "iana"
- },
- "video/vnd.cctv": {
- source: "iana"
- },
- "video/vnd.dece.hd": {
- source: "iana",
- extensions: [
- "uvh",
- "uvvh"
- ]
- },
- "video/vnd.dece.mobile": {
- source: "iana",
- extensions: [
- "uvm",
- "uvvm"
- ]
- },
- "video/vnd.dece.mp4": {
- source: "iana"
- },
- "video/vnd.dece.pd": {
- source: "iana",
- extensions: [
- "uvp",
- "uvvp"
- ]
- },
- "video/vnd.dece.sd": {
- source: "iana",
- extensions: [
- "uvs",
- "uvvs"
- ]
- },
- "video/vnd.dece.video": {
- source: "iana",
- extensions: [
- "uvv",
- "uvvv"
- ]
- },
- "video/vnd.directv.mpeg": {
- source: "iana"
- },
- "video/vnd.directv.mpeg-tts": {
- source: "iana"
- },
- "video/vnd.dlna.mpeg-tts": {
- source: "iana"
- },
- "video/vnd.dvb.file": {
- source: "iana",
- extensions: [
- "dvb"
- ]
- },
- "video/vnd.fvt": {
- source: "iana",
- extensions: [
- "fvt"
- ]
- },
- "video/vnd.hns.video": {
- source: "iana"
- },
- "video/vnd.iptvforum.1dparityfec-1010": {
- source: "iana"
- },
- "video/vnd.iptvforum.1dparityfec-2005": {
- source: "iana"
- },
- "video/vnd.iptvforum.2dparityfec-1010": {
- source: "iana"
- },
- "video/vnd.iptvforum.2dparityfec-2005": {
- source: "iana"
- },
- "video/vnd.iptvforum.ttsavc": {
- source: "iana"
- },
- "video/vnd.iptvforum.ttsmpeg2": {
- source: "iana"
- },
- "video/vnd.motorola.video": {
- source: "iana"
- },
- "video/vnd.motorola.videop": {
- source: "iana"
- },
- "video/vnd.mpegurl": {
- source: "iana",
- extensions: [
- "mxu",
- "m4u"
- ]
- },
- "video/vnd.ms-playready.media.pyv": {
- source: "iana",
- extensions: [
- "pyv"
- ]
- },
- "video/vnd.nokia.interleaved-multimedia": {
- source: "iana"
- },
- "video/vnd.nokia.mp4vr": {
- source: "iana"
- },
- "video/vnd.nokia.videovoip": {
- source: "iana"
- },
- "video/vnd.objectvideo": {
- source: "iana"
- },
- "video/vnd.radgamettools.bink": {
- source: "iana"
- },
- "video/vnd.radgamettools.smacker": {
- source: "iana"
- },
- "video/vnd.sealed.mpeg1": {
- source: "iana"
- },
- "video/vnd.sealed.mpeg4": {
- source: "iana"
- },
- "video/vnd.sealed.swf": {
- source: "iana"
- },
- "video/vnd.sealedmedia.softseal.mov": {
- source: "iana"
- },
- "video/vnd.uvvu.mp4": {
- source: "iana",
- extensions: [
- "uvu",
- "uvvu"
- ]
- },
- "video/vnd.vivo": {
- source: "iana",
- extensions: [
- "viv"
- ]
- },
- "video/vnd.youtube.yt": {
- source: "iana"
- },
- "video/vp8": {
- source: "iana"
- },
- "video/webm": {
- source: "apache",
- compressible: false,
- extensions: [
- "webm"
- ]
- },
- "video/x-f4v": {
- source: "apache",
- extensions: [
- "f4v"
- ]
- },
- "video/x-fli": {
- source: "apache",
- extensions: [
- "fli"
- ]
- },
- "video/x-flv": {
- source: "apache",
- compressible: false,
- extensions: [
- "flv"
- ]
- },
- "video/x-m4v": {
- source: "apache",
- extensions: [
- "m4v"
- ]
- },
- "video/x-matroska": {
- source: "apache",
- compressible: false,
- extensions: [
- "mkv",
- "mk3d",
- "mks"
- ]
- },
- "video/x-mng": {
- source: "apache",
- extensions: [
- "mng"
- ]
- },
- "video/x-ms-asf": {
- source: "apache",
- extensions: [
- "asf",
- "asx"
- ]
- },
- "video/x-ms-vob": {
- source: "apache",
- extensions: [
- "vob"
- ]
- },
- "video/x-ms-wm": {
- source: "apache",
- extensions: [
- "wm"
- ]
- },
- "video/x-ms-wmv": {
- source: "apache",
- compressible: false,
- extensions: [
- "wmv"
- ]
- },
- "video/x-ms-wmx": {
- source: "apache",
- extensions: [
- "wmx"
- ]
- },
- "video/x-ms-wvx": {
- source: "apache",
- extensions: [
- "wvx"
- ]
- },
- "video/x-msvideo": {
- source: "apache",
- extensions: [
- "avi"
- ]
- },
- "video/x-sgi-movie": {
- source: "apache",
- extensions: [
- "movie"
- ]
- },
- "video/x-smv": {
- source: "apache",
- extensions: [
- "smv"
- ]
- },
- "x-conference/x-cooltalk": {
- source: "apache",
- extensions: [
- "ice"
- ]
- },
- "x-shader/x-fragment": {
- compressible: true
- },
- "x-shader/x-vertex": {
- compressible: true
- }
- };
- /*!
- * mime-db
- * Copyright(c) 2014 Jonathan Ong
- * MIT Licensed
- */
- /**
- * Module exports.
- */
- var mimeDb = require$$0;
- /*!
- * mime-types
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- var mimeTypes = build.createCommonjsModule(function (module, exports) {
- /**
- * Module dependencies.
- * @private
- */
- var extname = path__default.extname;
- /**
- * Module variables.
- * @private
- */
- var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
- var TEXT_TYPE_REGEXP = /^text\//i;
- /**
- * Module exports.
- * @public
- */
- exports.charset = charset;
- exports.charsets = { lookup: charset };
- exports.contentType = contentType;
- exports.extension = extension;
- exports.extensions = Object.create(null);
- exports.lookup = lookup;
- exports.types = Object.create(null);
- // Populate the extensions/types maps
- populateMaps(exports.extensions, exports.types);
- /**
- * Get the default charset for a MIME type.
- *
- * @param {string} type
- * @return {boolean|string}
- */
- function charset (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
- // TODO: use media-typer
- var match = EXTRACT_TYPE_REGEXP.exec(type);
- var mime = match && mimeDb[match[1].toLowerCase()];
- if (mime && mime.charset) {
- return mime.charset
- }
- // default text/* to utf-8
- if (match && TEXT_TYPE_REGEXP.test(match[1])) {
- return 'UTF-8'
- }
- return false
- }
- /**
- * Create a full Content-Type header given a MIME type or extension.
- *
- * @param {string} str
- * @return {boolean|string}
- */
- function contentType (str) {
- // TODO: should this even be in this module?
- if (!str || typeof str !== 'string') {
- return false
- }
- var mime = str.indexOf('/') === -1
- ? exports.lookup(str)
- : str;
- if (!mime) {
- return false
- }
- // TODO: use content-type or other module
- if (mime.indexOf('charset') === -1) {
- var charset = exports.charset(mime);
- if (charset) mime += '; charset=' + charset.toLowerCase();
- }
- return mime
- }
- /**
- * Get the default extension for a MIME type.
- *
- * @param {string} type
- * @return {boolean|string}
- */
- function extension (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
- // TODO: use media-typer
- var match = EXTRACT_TYPE_REGEXP.exec(type);
- // get extensions
- var exts = match && exports.extensions[match[1].toLowerCase()];
- if (!exts || !exts.length) {
- return false
- }
- return exts[0]
- }
- /**
- * Lookup the MIME type for a file path/extension.
- *
- * @param {string} path
- * @return {boolean|string}
- */
- function lookup (path) {
- if (!path || typeof path !== 'string') {
- return false
- }
- // get the extension ("ext" or ".ext" or full path)
- var extension = extname('x.' + path)
- .toLowerCase()
- .substr(1);
- if (!extension) {
- return false
- }
- return exports.types[extension] || false
- }
- /**
- * Populate the extensions and types maps.
- * @private
- */
- function populateMaps (extensions, types) {
- // source preference (least -> most)
- var preference = ['nginx', 'apache', undefined, 'iana'];
- Object.keys(mimeDb).forEach(function forEachMimeType (type) {
- var mime = mimeDb[type];
- var exts = mime.extensions;
- if (!exts || !exts.length) {
- return
- }
- // mime -> extensions
- extensions[type] = exts;
- // extension -> mime
- for (var i = 0; i < exts.length; i++) {
- var extension = exts[i];
- if (types[extension]) {
- var from = preference.indexOf(mimeDb[types[extension]].source);
- var to = preference.indexOf(mime.source);
- if (types[extension] !== 'application/octet-stream' &&
- (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
- // skip the remapping
- continue
- }
- }
- // set the extension -> mime
- types[extension] = type;
- }
- });
- }
- });
- /*!
- * accepts
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module dependencies.
- * @private
- */
- /**
- * Module exports.
- * @public
- */
- var accepts = Accepts;
- /**
- * Create a new Accepts object for the given req.
- *
- * @param {object} req
- * @public
- */
- function Accepts (req) {
- if (!(this instanceof Accepts)) {
- return new Accepts(req)
- }
- this.headers = req.headers;
- this.negotiator = new negotiator(req);
- }
- /**
- * Check if the given `type(s)` is acceptable, returning
- * the best match when true, otherwise `undefined`, in which
- * case you should respond with 406 "Not Acceptable".
- *
- * The `type` value may be a single mime type string
- * such as "application/json", the extension name
- * such as "json" or an array `["json", "html", "text/plain"]`. When a list
- * or array is given the _best_ match, if any is returned.
- *
- * Examples:
- *
- * // Accept: text/html
- * this.types('html');
- * // => "html"
- *
- * // Accept: text/*, application/json
- * this.types('html');
- * // => "html"
- * this.types('text/html');
- * // => "text/html"
- * this.types('json', 'text');
- * // => "json"
- * this.types('application/json');
- * // => "application/json"
- *
- * // Accept: text/*, application/json
- * this.types('image/png');
- * this.types('png');
- * // => undefined
- *
- * // Accept: text/*;q=.5, application/json
- * this.types(['html', 'json']);
- * this.types('html', 'json');
- * // => "json"
- *
- * @param {String|Array} types...
- * @return {String|Array|Boolean}
- * @public
- */
- Accepts.prototype.type =
- Accepts.prototype.types = function (types_) {
- var types = types_;
- // support flattened arguments
- if (types && !Array.isArray(types)) {
- types = new Array(arguments.length);
- for (var i = 0; i < types.length; i++) {
- types[i] = arguments[i];
- }
- }
- // no types, return all requested types
- if (!types || types.length === 0) {
- return this.negotiator.mediaTypes()
- }
- // no accept header, return first given type
- if (!this.headers.accept) {
- return types[0]
- }
- var mimes = types.map(extToMime);
- var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
- var first = accepts[0];
- return first
- ? types[mimes.indexOf(first)]
- : false
- };
- /**
- * Return accepted encodings or best fit based on `encodings`.
- *
- * Given `Accept-Encoding: gzip, deflate`
- * an array sorted by quality is returned:
- *
- * ['gzip', 'deflate']
- *
- * @param {String|Array} encodings...
- * @return {String|Array}
- * @public
- */
- Accepts.prototype.encoding =
- Accepts.prototype.encodings = function (encodings_) {
- var encodings = encodings_;
- // support flattened arguments
- if (encodings && !Array.isArray(encodings)) {
- encodings = new Array(arguments.length);
- for (var i = 0; i < encodings.length; i++) {
- encodings[i] = arguments[i];
- }
- }
- // no encodings, return all requested encodings
- if (!encodings || encodings.length === 0) {
- return this.negotiator.encodings()
- }
- return this.negotiator.encodings(encodings)[0] || false
- };
- /**
- * Return accepted charsets or best fit based on `charsets`.
- *
- * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
- * an array sorted by quality is returned:
- *
- * ['utf-8', 'utf-7', 'iso-8859-1']
- *
- * @param {String|Array} charsets...
- * @return {String|Array}
- * @public
- */
- Accepts.prototype.charset =
- Accepts.prototype.charsets = function (charsets_) {
- var charsets = charsets_;
- // support flattened arguments
- if (charsets && !Array.isArray(charsets)) {
- charsets = new Array(arguments.length);
- for (var i = 0; i < charsets.length; i++) {
- charsets[i] = arguments[i];
- }
- }
- // no charsets, return all requested charsets
- if (!charsets || charsets.length === 0) {
- return this.negotiator.charsets()
- }
- return this.negotiator.charsets(charsets)[0] || false
- };
- /**
- * Return accepted languages or best fit based on `langs`.
- *
- * Given `Accept-Language: en;q=0.8, es, pt`
- * an array sorted by quality is returned:
- *
- * ['es', 'pt', 'en']
- *
- * @param {String|Array} langs...
- * @return {Array|String}
- * @public
- */
- Accepts.prototype.lang =
- Accepts.prototype.langs =
- Accepts.prototype.language =
- Accepts.prototype.languages = function (languages_) {
- var languages = languages_;
- // support flattened arguments
- if (languages && !Array.isArray(languages)) {
- languages = new Array(arguments.length);
- for (var i = 0; i < languages.length; i++) {
- languages[i] = arguments[i];
- }
- }
- // no languages, return all requested languages
- if (!languages || languages.length === 0) {
- return this.negotiator.languages()
- }
- return this.negotiator.languages(languages)[0] || false
- };
- /**
- * Convert extnames to mime.
- *
- * @param {String} type
- * @return {String}
- * @private
- */
- function extToMime (type) {
- return type.indexOf('/') === -1
- ? mimeTypes.lookup(type)
- : type
- }
- /**
- * Check if mime is valid.
- *
- * @param {String} type
- * @return {String}
- * @private
- */
- function validMime (type) {
- return typeof type === 'string'
- }
- /*!
- * bytes
- * Copyright(c) 2012-2014 TJ Holowaychuk
- * Copyright(c) 2015 Jed Watson
- * MIT Licensed
- */
- /**
- * Module exports.
- * @public
- */
- var bytes_1 = bytes;
- var format_1 = format;
- var parse_1 = parse;
- /**
- * Module variables.
- * @private
- */
- var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
- var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
- var map = {
- b: 1,
- kb: 1 << 10,
- mb: 1 << 20,
- gb: 1 << 30,
- tb: ((1 << 30) * 1024)
- };
- var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
- /**
- * Convert the given value in bytes into a string or parse to string to an integer in bytes.
- *
- * @param {string|number} value
- * @param {{
- * case: [string],
- * decimalPlaces: [number]
- * fixedDecimals: [boolean]
- * thousandsSeparator: [string]
- * unitSeparator: [string]
- * }} [options] bytes options.
- *
- * @returns {string|number|null}
- */
- function bytes(value, options) {
- if (typeof value === 'string') {
- return parse(value);
- }
- if (typeof value === 'number') {
- return format(value, options);
- }
- return null;
- }
- /**
- * Format the given value in bytes into a string.
- *
- * If the value is negative, it is kept as such. If it is a float,
- * it is rounded.
- *
- * @param {number} value
- * @param {object} [options]
- * @param {number} [options.decimalPlaces=2]
- * @param {number} [options.fixedDecimals=false]
- * @param {string} [options.thousandsSeparator=]
- * @param {string} [options.unit=]
- * @param {string} [options.unitSeparator=]
- *
- * @returns {string|null}
- * @public
- */
- function format(value, options) {
- if (!Number.isFinite(value)) {
- return null;
- }
- var mag = Math.abs(value);
- var thousandsSeparator = (options && options.thousandsSeparator) || '';
- var unitSeparator = (options && options.unitSeparator) || '';
- var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;
- var fixedDecimals = Boolean(options && options.fixedDecimals);
- var unit = (options && options.unit) || '';
- if (!unit || !map[unit.toLowerCase()]) {
- if (mag >= map.tb) {
- unit = 'TB';
- } else if (mag >= map.gb) {
- unit = 'GB';
- } else if (mag >= map.mb) {
- unit = 'MB';
- } else if (mag >= map.kb) {
- unit = 'KB';
- } else {
- unit = 'B';
- }
- }
- var val = value / map[unit.toLowerCase()];
- var str = val.toFixed(decimalPlaces);
- if (!fixedDecimals) {
- str = str.replace(formatDecimalsRegExp, '$1');
- }
- if (thousandsSeparator) {
- str = str.replace(formatThousandsRegExp, thousandsSeparator);
- }
- return str + unitSeparator + unit;
- }
- /**
- * Parse the string value into an integer in bytes.
- *
- * If no unit is given, it is assumed the value is in bytes.
- *
- * @param {number|string} val
- *
- * @returns {number|null}
- * @public
- */
- function parse(val) {
- if (typeof val === 'number' && !isNaN(val)) {
- return val;
- }
- if (typeof val !== 'string') {
- return null;
- }
- // Test if the string passed is valid
- var results = parseRegExp.exec(val);
- var floatValue;
- var unit = 'b';
- if (!results) {
- // Nothing could be extracted from the given string
- floatValue = parseInt(val, 10);
- unit = 'b';
- } else {
- // Retrieve the value and the unit
- floatValue = parseFloat(results[1]);
- unit = results[4].toLowerCase();
- }
- return Math.floor(map[unit] * floatValue);
- }
- bytes_1.format = format_1;
- bytes_1.parse = parse_1;
- /*!
- * compressible
- * Copyright(c) 2013 Jonathan Ong
- * Copyright(c) 2014 Jeremiah Senkpiel
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module dependencies.
- * @private
- */
- /**
- * Module variables.
- * @private
- */
- var COMPRESSIBLE_TYPE_REGEXP = /^text\/|\+(?:json|text|xml)$/i;
- var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
- /**
- * Module exports.
- * @public
- */
- var compressible_1 = compressible;
- /**
- * Checks if a type is compressible.
- *
- * @param {string} type
- * @return {Boolean} compressible
- * @public
- */
- function compressible (type) {
- if (!type || typeof type !== 'string') {
- return false
- }
- // strip parameters
- var match = EXTRACT_TYPE_REGEXP.exec(type);
- var mime = match && match[1].toLowerCase();
- var data = mimeDb[mime];
- // return database information
- if (data && data.compressible !== undefined) {
- return data.compressible
- }
- // fallback to regexp or unknown
- return COMPRESSIBLE_TYPE_REGEXP.test(mime) || undefined
- }
- /**
- * Helpers.
- */
- var s = 1000;
- var m = s * 60;
- var h = m * 60;
- var d = h * 24;
- var y = d * 365.25;
- /**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
- var ms = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse$1(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
- };
- /**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
- function parse$1(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
- }
- /**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
- function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
- }
- /**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
- function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
- }
- /**
- * Pluralization helper.
- */
- function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
- }
- var debug = build.createCommonjsModule(function (module, exports) {
- /**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
- exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
- exports.coerce = coerce;
- exports.disable = disable;
- exports.enable = enable;
- exports.enabled = enabled;
- exports.humanize = ms;
- /**
- * The currently active debug mode names, and names to skip.
- */
- exports.names = [];
- exports.skips = [];
- /**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
- exports.formatters = {};
- /**
- * Previous log timestamp.
- */
- var prevTime;
- /**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
- function selectColor(namespace) {
- var hash = 0, i;
- for (i in namespace) {
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
- hash |= 0; // Convert to 32bit integer
- }
- return exports.colors[Math.abs(hash) % exports.colors.length];
- }
- /**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
- function createDebug(namespace) {
- function debug() {
- // disabled?
- if (!debug.enabled) return;
- var self = debug;
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
- // turn the `arguments` into a proper Array
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- args[0] = exports.coerce(args[0]);
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %O
- args.unshift('%O');
- }
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
- // apply env-specific formatting (colors, etc.)
- exports.formatArgs.call(self, args);
- var logFn = debug.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
- debug.namespace = namespace;
- debug.enabled = exports.enabled(namespace);
- debug.useColors = exports.useColors();
- debug.color = selectColor(namespace);
- // env-specific initialization logic for debug instances
- if ('function' === typeof exports.init) {
- exports.init(debug);
- }
- return debug;
- }
- /**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
- function enable(namespaces) {
- exports.save(namespaces);
- exports.names = [];
- exports.skips = [];
- var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
- var len = split.length;
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
- }
- /**
- * Disable debug output.
- *
- * @api public
- */
- function disable() {
- exports.enable('');
- }
- /**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
- function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
- }
- /**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
- function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
- }
- });
- /**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
- var browser = build.createCommonjsModule(function (module, exports) {
- exports = module.exports = debug;
- exports.log = log;
- exports.formatArgs = formatArgs;
- exports.save = save;
- exports.load = load;
- exports.useColors = useColors;
- exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
- /**
- * Colors.
- */
- exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
- ];
- /**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
- function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
- return true;
- }
- // is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
- }
- /**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
- exports.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return '[UnexpectedJSONParseError]: ' + err.message;
- }
- };
- /**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
- function formatArgs(args) {
- var useColors = this.useColors;
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
- if (!useColors) return;
- var c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit');
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
- args.splice(lastC, 0, c);
- }
- /**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
- function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
- }
- /**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
- function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
- }
- /**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
- function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
- return r;
- }
- /**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
- exports.enable(load());
- /**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
- function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {}
- }
- });
- /**
- * Module dependencies.
- */
- var node = build.createCommonjsModule(function (module, exports) {
- /**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
- exports = module.exports = debug;
- exports.init = init;
- exports.log = log;
- exports.formatArgs = formatArgs;
- exports.save = save;
- exports.load = load;
- exports.useColors = useColors;
- /**
- * Colors.
- */
- exports.colors = [6, 2, 3, 4, 5, 1];
- /**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
- exports.inspectOpts = Object.keys(process.env).filter(function (key) {
- return /^debug_/i.test(key);
- }).reduce(function (obj, key) {
- // camel-case
- var prop = key
- .substring(6)
- .toLowerCase()
- .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
- // coerce string value into JS value
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === 'null') val = null;
- else val = Number(val);
- obj[prop] = val;
- return obj;
- }, {});
- /**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
- var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
- if (1 !== fd && 2 !== fd) {
- 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)')();
- }
- var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
- /**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
- function useColors() {
- return 'colors' in exports.inspectOpts
- ? Boolean(exports.inspectOpts.colors)
- : tty__default.isatty(fd);
- }
- /**
- * Map %o to `util.inspect()`, all on a single line.
- */
- exports.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util__default.inspect(v, this.inspectOpts)
- .split('\n').map(function(str) {
- return str.trim()
- }).join(' ');
- };
- /**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
- exports.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util__default.inspect(v, this.inspectOpts);
- };
- /**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
- function formatArgs(args) {
- var name = this.namespace;
- var useColors = this.useColors;
- if (useColors) {
- var c = this.color;
- var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
- args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
- }
- /**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
- function log() {
- return stream.write(util__default.format.apply(util__default, arguments) + '\n');
- }
- /**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
- function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
- }
- /**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
- function load() {
- return process.env.DEBUG;
- }
- /**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
- function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
- // Note stream._type is used for test-module-load-list.js
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty__default.WriteStream(fd);
- stream._type = 'tty';
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
- case 'FILE':
- var fs = fs__default;
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
- case 'PIPE':
- case 'TCP':
- var net = require$$2__default;
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
- stream._isStdio = true;
- return stream;
- }
- /**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
- function init (debug) {
- debug.inspectOpts = {};
- var keys = Object.keys(exports.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
- }
- }
- /**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
- exports.enable(load());
- });
- /**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
- var src = build.createCommonjsModule(function (module) {
- if (typeof process !== 'undefined' && process.type === 'renderer') {
- module.exports = browser;
- } else {
- module.exports = node;
- }
- });
- /*!
- * on-headers
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module exports.
- * @public
- */
- var onHeaders_1 = onHeaders;
- /**
- * Create a replacement writeHead method.
- *
- * @param {function} prevWriteHead
- * @param {function} listener
- * @private
- */
- function createWriteHead (prevWriteHead, listener) {
- var fired = false;
- // return function with core name and argument list
- return function writeHead (statusCode) {
- // set headers from arguments
- var args = setWriteHeadHeaders.apply(this, arguments);
- // fire listener
- if (!fired) {
- fired = true;
- listener.call(this);
- // pass-along an updated status code
- if (typeof args[0] === 'number' && this.statusCode !== args[0]) {
- args[0] = this.statusCode;
- args.length = 1;
- }
- }
- return prevWriteHead.apply(this, args)
- }
- }
- /**
- * Execute a listener when a response is about to write headers.
- *
- * @param {object} res
- * @return {function} listener
- * @public
- */
- function onHeaders (res, listener) {
- if (!res) {
- throw new TypeError('argument res is required')
- }
- if (typeof listener !== 'function') {
- throw new TypeError('argument listener must be a function')
- }
- res.writeHead = createWriteHead(res.writeHead, listener);
- }
- /**
- * Set headers contained in array on the response object.
- *
- * @param {object} res
- * @param {array} headers
- * @private
- */
- function setHeadersFromArray (res, headers) {
- for (var i = 0; i < headers.length; i++) {
- res.setHeader(headers[i][0], headers[i][1]);
- }
- }
- /**
- * Set headers contained in object on the response object.
- *
- * @param {object} res
- * @param {object} headers
- * @private
- */
- function setHeadersFromObject (res, headers) {
- var keys = Object.keys(headers);
- for (var i = 0; i < keys.length; i++) {
- var k = keys[i];
- if (k) res.setHeader(k, headers[k]);
- }
- }
- /**
- * Set headers and other properties on the response object.
- *
- * @param {number} statusCode
- * @private
- */
- function setWriteHeadHeaders (statusCode) {
- var length = arguments.length;
- var headerIndex = length > 1 && typeof arguments[1] === 'string'
- ? 2
- : 1;
- var headers = length >= headerIndex + 1
- ? arguments[headerIndex]
- : undefined;
- this.statusCode = statusCode;
- if (Array.isArray(headers)) {
- // handle array case
- setHeadersFromArray(this, headers);
- } else if (headers) {
- // handle object case
- setHeadersFromObject(this, headers);
- }
- // copy leading arguments
- var args = new Array(Math.min(length, headerIndex));
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
- return args
- }
- /*!
- * compression
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
- /**
- * Module dependencies.
- * @private
- */
- var Buffer = build.safeBuffer.Buffer;
- var debug$1 = src('compression');
- /**
- * Module exports.
- */
- var compression_1 = compression;
- var filter = shouldCompress;
- /**
- * Module variables.
- * @private
- */
- var cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/;
- /**
- * Compress response data with gzip / deflate.
- *
- * @param {Object} [options]
- * @return {Function} middleware
- * @public
- */
- function compression (options) {
- var opts = options || {};
- // options
- var filter = opts.filter || shouldCompress;
- var threshold = bytes_1.parse(opts.threshold);
- if (threshold == null) {
- threshold = 1024;
- }
- return function compression (req, res, next) {
- var ended = false;
- var length;
- var listeners = [];
- var stream;
- var _end = res.end;
- var _on = res.on;
- var _write = res.write;
- // flush
- res.flush = function flush () {
- if (stream) {
- stream.flush();
- }
- };
- // proxy
- res.write = function write (chunk, encoding) {
- if (ended) {
- return false
- }
- if (!this._header) {
- this._implicitHeader();
- }
- return stream
- ? stream.write(toBuffer(chunk, encoding))
- : _write.call(this, chunk, encoding)
- };
- res.end = function end (chunk, encoding) {
- if (ended) {
- return false
- }
- if (!this._header) {
- // estimate the length
- if (!this.getHeader('Content-Length')) {
- length = chunkLength(chunk, encoding);
- }
- this._implicitHeader();
- }
- if (!stream) {
- return _end.call(this, chunk, encoding)
- }
- // mark ended
- ended = true;
- // write Buffer for Node.js 0.8
- return chunk
- ? stream.end(toBuffer(chunk, encoding))
- : stream.end()
- };
- res.on = function on (type, listener) {
- if (!listeners || type !== 'drain') {
- return _on.call(this, type, listener)
- }
- if (stream) {
- return stream.on(type, listener)
- }
- // buffer listeners for future stream
- listeners.push([type, listener]);
- return this
- };
- function nocompress (msg) {
- debug$1('no compression: %s', msg);
- addListeners(res, _on, listeners);
- listeners = null;
- }
- onHeaders_1(res, function onResponseHeaders () {
- // determine if request is filtered
- if (!filter(req, res)) {
- nocompress('filtered');
- return
- }
- // determine if the entity should be transformed
- if (!shouldTransform(req, res)) {
- nocompress('no transform');
- return
- }
- // vary
- build.vary_1(res, 'Accept-Encoding');
- // content-length below threshold
- if (Number(res.getHeader('Content-Length')) < threshold || length < threshold) {
- nocompress('size below threshold');
- return
- }
- var encoding = res.getHeader('Content-Encoding') || 'identity';
- // already encoded
- if (encoding !== 'identity') {
- nocompress('already encoded');
- return
- }
- // head
- if (req.method === 'HEAD') {
- nocompress('HEAD request');
- return
- }
- // compression method
- var accept = accepts(req);
- var method = accept.encoding(['gzip', 'deflate', 'identity']);
- // we really don't prefer deflate
- if (method === 'deflate' && accept.encoding(['gzip'])) {
- method = accept.encoding(['gzip', 'identity']);
- }
- // negotiation failed
- if (!method || method === 'identity') {
- nocompress('not acceptable');
- return
- }
- // compression stream
- debug$1('%s compression', method);
- stream = method === 'gzip'
- ? zlib_1__default.createGzip(opts)
- : zlib_1__default.createDeflate(opts);
- // add buffered listeners to stream
- addListeners(stream, stream.on, listeners);
- // header fields
- res.setHeader('Content-Encoding', method);
- res.removeHeader('Content-Length');
- // compression
- stream.on('data', function onStreamData (chunk) {
- if (_write.call(res, chunk) === false) {
- stream.pause();
- }
- });
- stream.on('end', function onStreamEnd () {
- _end.call(res);
- });
- _on.call(res, 'drain', function onResponseDrain () {
- stream.resume();
- });
- });
- next();
- }
- }
- /**
- * Add bufferred listeners to stream
- * @private
- */
- function addListeners (stream, on, listeners) {
- for (var i = 0; i < listeners.length; i++) {
- on.apply(stream, listeners[i]);
- }
- }
- /**
- * Get the length of a given chunk
- */
- function chunkLength (chunk, encoding) {
- if (!chunk) {
- return 0
- }
- return !Buffer.isBuffer(chunk)
- ? Buffer.byteLength(chunk, encoding)
- : chunk.length
- }
- /**
- * Default filter function.
- * @private
- */
- function shouldCompress (req, res) {
- var type = res.getHeader('Content-Type');
- if (type === undefined || !compressible_1(type)) {
- debug$1('%s not compressible', type);
- return false
- }
- return true
- }
- /**
- * Determine if the entity should be transformed.
- * @private
- */
- function shouldTransform (req, res) {
- var cacheControl = res.getHeader('Cache-Control');
- // Don't compress for Cache-Control: no-transform
- // https://tools.ietf.org/html/rfc7234#section-5.2.2.4
- return !cacheControl ||
- !cacheControlNoTransformRegExp.test(cacheControl)
- }
- /**
- * Coerce arguments to Buffer
- * @private
- */
- function toBuffer (chunk, encoding) {
- return !Buffer.isBuffer(chunk)
- ? Buffer.from(chunk, encoding)
- : chunk
- }
- compression_1.filter = filter;
- async function serve(config, port = 5000) {
- const app = build.connect();
- app.use(compression_1());
- const distDir = path__default.resolve(config.root, config.build.outDir);
- app.use(config.base, build.sirv(distDir, {
- etag: true,
- single: true
- }));
- const server = await build.resolveHttpServer(config.server, app);
- const options = config.server || {};
- const hostname = options.host || 'localhost';
- const protocol = options.https ? 'https' : 'http';
- const logger = config.logger;
- const base = config.base;
- server.listen(port, () => {
- logger.info(build.source.cyan(`\n vite v${require('vite/package.json').version}`) +
- build.source.green(` build preview server running at:\n`));
- const interfaces = os__default.networkInterfaces();
- Object.keys(interfaces).forEach((key) => (interfaces[key] || [])
- .filter((details) => details.family === 'IPv4')
- .map((detail) => {
- return {
- type: detail.address.includes('127.0.0.1')
- ? 'Local: '
- : 'Network: ',
- host: detail.address.replace('127.0.0.1', hostname)
- };
- })
- .forEach(({ type, host }) => {
- const url = `${protocol}://${host}:${build.source.bold(port)}${base}`;
- logger.info(` > ${type} ${build.source.cyan(url)}`);
- }));
- if (options.open) {
- const path = typeof options.open === 'string' ? options.open : base;
- build.openBrowser(`${protocol}://${hostname}:${port}${path}`, true, logger);
- }
- });
- }
- const cli = cac('vite');
- /**
- * removing global flags before passing as command specific sub-configs
- */
- function cleanOptions(options) {
- const ret = { ...options };
- delete ret['--'];
- delete ret.debug;
- delete ret.d;
- delete ret.filter;
- delete ret.f;
- delete ret.config;
- delete ret.c;
- delete ret.root;
- delete ret.base;
- delete ret.r;
- delete ret.mode;
- delete ret.m;
- delete ret.logLevel;
- delete ret.l;
- delete ret.clearScreen;
- return ret;
- }
- cli
- .option('-c, --config <file>', `[string] use specified config file`)
- .option('-r, --root <path>', `[string] use specified root directory`)
- .option('--base <path>', `[string] public base path (default: /)`)
- .option('-l, --logLevel <level>', `[string] silent | error | warn | all`)
- .option('--clearScreen', `[boolean] allow/disable clear screen when logging`)
- .option('-d, --debug [feat]', `[string | boolean] show debug logs`)
- .option('-f, --filter <filter>', `[string] filter debug logs`);
- // dev
- cli
- .command('[root]') // default command
- .alias('serve')
- .option('--host <host>', `[string] specify hostname`)
- .option('--port <port>', `[number] specify port`)
- .option('--https', `[boolean] use TLS + HTTP/2`)
- .option('--open [path]', `[boolean | string] open browser on startup`)
- .option('--cors', `[boolean] enable CORS`)
- .option('--strictPort', `[boolean] exit if specified port is already in use`)
- .option('-m, --mode <mode>', `[string] set env mode`)
- .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
- .action(async (root, options) => {
- // output structure is preserved even after bundling so require()
- // is ok here
- const { createServer } = await Promise.resolve().then(function () { return require('./chunks/dep-1bdbec90.js'); }).then(function (n) { return n.index$1; });
- try {
- const server = await createServer({
- root,
- base: options.base,
- mode: options.mode,
- configFile: options.config,
- logLevel: options.logLevel,
- clearScreen: options.clearScreen,
- server: cleanOptions(options)
- });
- await server.listen();
- }
- catch (e) {
- build.createLogger(options.logLevel).error(build.source.red(`error when starting dev server:\n${e.stack}`));
- process.exit(1);
- }
- });
- // build
- cli
- .command('build [root]')
- .option('--target <target>', `[string] transpile target (default: 'modules')`)
- .option('--outDir <dir>', `[string] output directory (default: dist)`)
- .option('--assetsDir <dir>', `[string] directory under outDir to place assets in (default: _assets)`)
- .option('--assetsInlineLimit <number>', `[number] static asset base64 inline threshold in bytes (default: 4096)`)
- .option('--ssr [entry]', `[string] build specified entry for server-side rendering`)
- .option('--sourcemap', `[boolean] output source maps for build (default: false)`)
- .option('--minify [minifier]', `[boolean | "terser" | "esbuild"] enable/disable minification, ` +
- `or specify minifier to use (default: terser)`)
- .option('--manifest', `[boolean] emit build manifest json`)
- .option('--ssrManifest', `[boolean] emit ssr manifest json`)
- .option('--emptyOutDir', `[boolean] force empty outDir when it's outside of root`)
- .option('-m, --mode <mode>', `[string] set env mode`)
- .action(async (root, options) => {
- const { build: build$1 } = await Promise.resolve().then(function () { return require('./chunks/dep-1bdbec90.js'); }).then(function (n) { return n.build$1; });
- const buildOptions = cleanOptions(options);
- try {
- await build$1({
- root,
- base: options.base,
- mode: options.mode,
- configFile: options.config,
- logLevel: options.logLevel,
- clearScreen: options.clearScreen,
- build: buildOptions
- });
- }
- catch (e) {
- build.createLogger(options.logLevel).error(build.source.red(`error during build:\n${e.stack}`));
- process.exit(1);
- }
- });
- // optimize
- cli
- .command('optimize [root]')
- .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
- .action(async (root, options) => {
- const { optimizeDeps } = await Promise.resolve().then(function () { return require('./chunks/dep-1bdbec90.js'); }).then(function (n) { return n.index; });
- try {
- const config = await build.resolveConfig({
- root,
- base: options.base,
- configFile: options.config,
- logLevel: options.logLevel
- }, 'build', 'development');
- await optimizeDeps(config, options.force, true);
- }
- catch (e) {
- build.createLogger(options.logLevel).error(build.source.red(`error when optimizing deps:\n${e.stack}`));
- process.exit(1);
- }
- });
- cli
- .command('preview [root]')
- .option('--port <port>', `[number] specify port`)
- .option('--open [path]', `[boolean | string] open browser on startup`)
- .action(async (root, options) => {
- try {
- const config = await build.resolveConfig({
- root,
- base: options.base,
- configFile: options.config,
- logLevel: options.logLevel,
- server: {
- open: options.open
- }
- }, 'serve', 'development');
- await serve(config, options.port);
- }
- catch (e) {
- build.createLogger(options.logLevel).error(build.source.red(`error when starting preview server:\n${e.stack}`));
- process.exit(1);
- }
- });
- cli.help();
- cli.version(require('../../package.json').version);
- cli.parse();
|