12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828 |
- import require$$0$1, { format } from 'util';
- import { normalize as normalize$1, resolve } from 'path';
- import { readFileSync } from 'fs';
- import path$1 from 'node:path';
- import process$2 from 'node:process';
- import { fileURLToPath } from 'node:url';
- import fs$1 from 'node:fs';
- import require$$0$2 from 'os';
- import require$$0 from 'url';
- function camelCase$1(str) {
- const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();
- if (!isCamelCase) {
- str = str.toLowerCase();
- }
- if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {
- return str;
- }
- else {
- let camelcase = '';
- let nextChrUpper = false;
- const leadingHyphens = str.match(/^-+/);
- for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {
- let chr = str.charAt(i);
- if (nextChrUpper) {
- nextChrUpper = false;
- chr = chr.toUpperCase();
- }
- if (i !== 0 && (chr === '-' || chr === '_')) {
- nextChrUpper = true;
- }
- else if (chr !== '-' && chr !== '_') {
- camelcase += chr;
- }
- }
- return camelcase;
- }
- }
- function decamelize$1(str, joinString) {
- const lowercase = str.toLowerCase();
- joinString = joinString || '-';
- let notCamelcase = '';
- for (let i = 0; i < str.length; i++) {
- const chrLower = lowercase.charAt(i);
- const chrString = str.charAt(i);
- if (chrLower !== chrString && i > 0) {
- notCamelcase += `${joinString}${lowercase.charAt(i)}`;
- }
- else {
- notCamelcase += chrString;
- }
- }
- return notCamelcase;
- }
- function looksLikeNumber(x) {
- if (x === null || x === undefined)
- return false;
- if (typeof x === 'number')
- return true;
- if (/^0x[0-9a-f]+$/i.test(x))
- return true;
- if (/^0[^.]/.test(x))
- return false;
- return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
- }
- function tokenizeArgString(argString) {
- if (Array.isArray(argString)) {
- return argString.map(e => typeof e !== 'string' ? e + '' : e);
- }
- argString = argString.trim();
- let i = 0;
- let prevC = null;
- let c = null;
- let opening = null;
- const args = [];
- for (let ii = 0; ii < argString.length; ii++) {
- prevC = c;
- c = argString.charAt(ii);
- if (c === ' ' && !opening) {
- if (!(prevC === ' ')) {
- i++;
- }
- continue;
- }
- if (c === opening) {
- opening = null;
- }
- else if ((c === "'" || c === '"') && !opening) {
- opening = c;
- }
- if (!args[i])
- args[i] = '';
- args[i] += c;
- }
- return args;
- }
- var DefaultValuesForTypeKey;
- (function (DefaultValuesForTypeKey) {
- DefaultValuesForTypeKey["BOOLEAN"] = "boolean";
- DefaultValuesForTypeKey["STRING"] = "string";
- DefaultValuesForTypeKey["NUMBER"] = "number";
- DefaultValuesForTypeKey["ARRAY"] = "array";
- })(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));
- let mixin;
- class YargsParser {
- constructor(_mixin) {
- mixin = _mixin;
- }
- parse(argsInput, options) {
- const opts = Object.assign({
- alias: undefined,
- array: undefined,
- boolean: undefined,
- config: undefined,
- configObjects: undefined,
- configuration: undefined,
- coerce: undefined,
- count: undefined,
- default: undefined,
- envPrefix: undefined,
- narg: undefined,
- normalize: undefined,
- string: undefined,
- number: undefined,
- __: undefined,
- key: undefined
- }, options);
- const args = tokenizeArgString(argsInput);
- const inputIsString = typeof argsInput === 'string';
- const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));
- const configuration = Object.assign({
- 'boolean-negation': true,
- 'camel-case-expansion': true,
- 'combine-arrays': false,
- 'dot-notation': true,
- 'duplicate-arguments-array': true,
- 'flatten-duplicate-arrays': true,
- 'greedy-arrays': true,
- 'halt-at-non-option': false,
- 'nargs-eats-options': false,
- 'negation-prefix': 'no-',
- 'parse-numbers': true,
- 'parse-positional-numbers': true,
- 'populate--': false,
- 'set-placeholder-key': false,
- 'short-option-groups': true,
- 'strip-aliased': false,
- 'strip-dashed': false,
- 'unknown-options-as-args': false
- }, opts.configuration);
- const defaults = Object.assign(Object.create(null), opts.default);
- const configObjects = opts.configObjects || [];
- const envPrefix = opts.envPrefix;
- const notFlagsOption = configuration['populate--'];
- const notFlagsArgv = notFlagsOption ? '--' : '_';
- const newAliases = Object.create(null);
- const defaulted = Object.create(null);
- const __ = opts.__ || mixin.format;
- const flags = {
- aliases: Object.create(null),
- arrays: Object.create(null),
- bools: Object.create(null),
- strings: Object.create(null),
- numbers: Object.create(null),
- counts: Object.create(null),
- normalize: Object.create(null),
- configs: Object.create(null),
- nargs: Object.create(null),
- coercions: Object.create(null),
- keys: []
- };
- const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/;
- const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');
- [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {
- const key = typeof opt === 'object' ? opt.key : opt;
- const assignment = Object.keys(opt).map(function (key) {
- const arrayFlagKeys = {
- boolean: 'bools',
- string: 'strings',
- number: 'numbers'
- };
- return arrayFlagKeys[key];
- }).filter(Boolean).pop();
- if (assignment) {
- flags[assignment][key] = true;
- }
- flags.arrays[key] = true;
- flags.keys.push(key);
- });
- [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {
- flags.bools[key] = true;
- flags.keys.push(key);
- });
- [].concat(opts.string || []).filter(Boolean).forEach(function (key) {
- flags.strings[key] = true;
- flags.keys.push(key);
- });
- [].concat(opts.number || []).filter(Boolean).forEach(function (key) {
- flags.numbers[key] = true;
- flags.keys.push(key);
- });
- [].concat(opts.count || []).filter(Boolean).forEach(function (key) {
- flags.counts[key] = true;
- flags.keys.push(key);
- });
- [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {
- flags.normalize[key] = true;
- flags.keys.push(key);
- });
- if (typeof opts.narg === 'object') {
- Object.entries(opts.narg).forEach(([key, value]) => {
- if (typeof value === 'number') {
- flags.nargs[key] = value;
- flags.keys.push(key);
- }
- });
- }
- if (typeof opts.coerce === 'object') {
- Object.entries(opts.coerce).forEach(([key, value]) => {
- if (typeof value === 'function') {
- flags.coercions[key] = value;
- flags.keys.push(key);
- }
- });
- }
- if (typeof opts.config !== 'undefined') {
- if (Array.isArray(opts.config) || typeof opts.config === 'string') {
- [].concat(opts.config).filter(Boolean).forEach(function (key) {
- flags.configs[key] = true;
- });
- }
- else if (typeof opts.config === 'object') {
- Object.entries(opts.config).forEach(([key, value]) => {
- if (typeof value === 'boolean' || typeof value === 'function') {
- flags.configs[key] = value;
- }
- });
- }
- }
- extendAliases(opts.key, aliases, opts.default, flags.arrays);
- Object.keys(defaults).forEach(function (key) {
- (flags.aliases[key] || []).forEach(function (alias) {
- defaults[alias] = defaults[key];
- });
- });
- let error = null;
- checkConfiguration();
- let notFlags = [];
- const argv = Object.assign(Object.create(null), { _: [] });
- const argvReturn = {};
- for (let i = 0; i < args.length; i++) {
- const arg = args[i];
- const truncatedArg = arg.replace(/^-{3,}/, '---');
- let broken;
- let key;
- let letters;
- let m;
- let next;
- let value;
- if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {
- pushPositional(arg);
- }
- else if (truncatedArg.match(/^---+(=|$)/)) {
- pushPositional(arg);
- continue;
- }
- else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {
- m = arg.match(/^--?([^=]+)=([\s\S]*)$/);
- if (m !== null && Array.isArray(m) && m.length >= 3) {
- if (checkAllAliases(m[1], flags.arrays)) {
- i = eatArray(i, m[1], args, m[2]);
- }
- else if (checkAllAliases(m[1], flags.nargs) !== false) {
- i = eatNargs(i, m[1], args, m[2]);
- }
- else {
- setArg(m[1], m[2], true);
- }
- }
- }
- else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {
- m = arg.match(negatedBoolean);
- if (m !== null && Array.isArray(m) && m.length >= 2) {
- key = m[1];
- setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);
- }
- }
- else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {
- m = arg.match(/^--?(.+)/);
- if (m !== null && Array.isArray(m) && m.length >= 2) {
- key = m[1];
- if (checkAllAliases(key, flags.arrays)) {
- i = eatArray(i, key, args);
- }
- else if (checkAllAliases(key, flags.nargs) !== false) {
- i = eatNargs(i, key, args);
- }
- else {
- next = args[i + 1];
- if (next !== undefined && (!next.match(/^-/) ||
- next.match(negative)) &&
- !checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts)) {
- setArg(key, next);
- i++;
- }
- else if (/^(true|false)$/.test(next)) {
- setArg(key, next);
- i++;
- }
- else {
- setArg(key, defaultValue(key));
- }
- }
- }
- }
- else if (arg.match(/^-.\..+=/)) {
- m = arg.match(/^-([^=]+)=([\s\S]*)$/);
- if (m !== null && Array.isArray(m) && m.length >= 3) {
- setArg(m[1], m[2]);
- }
- }
- else if (arg.match(/^-.\..+/) && !arg.match(negative)) {
- next = args[i + 1];
- m = arg.match(/^-(.\..+)/);
- if (m !== null && Array.isArray(m) && m.length >= 2) {
- key = m[1];
- if (next !== undefined && !next.match(/^-/) &&
- !checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts)) {
- setArg(key, next);
- i++;
- }
- else {
- setArg(key, defaultValue(key));
- }
- }
- }
- else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
- letters = arg.slice(1, -1).split('');
- broken = false;
- for (let j = 0; j < letters.length; j++) {
- next = arg.slice(j + 2);
- if (letters[j + 1] && letters[j + 1] === '=') {
- value = arg.slice(j + 3);
- key = letters[j];
- if (checkAllAliases(key, flags.arrays)) {
- i = eatArray(i, key, args, value);
- }
- else if (checkAllAliases(key, flags.nargs) !== false) {
- i = eatNargs(i, key, args, value);
- }
- else {
- setArg(key, value);
- }
- broken = true;
- break;
- }
- if (next === '-') {
- setArg(letters[j], next);
- continue;
- }
- if (/[A-Za-z]/.test(letters[j]) &&
- /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) &&
- checkAllAliases(next, flags.bools) === false) {
- setArg(letters[j], next);
- broken = true;
- break;
- }
- if (letters[j + 1] && letters[j + 1].match(/\W/)) {
- setArg(letters[j], next);
- broken = true;
- break;
- }
- else {
- setArg(letters[j], defaultValue(letters[j]));
- }
- }
- key = arg.slice(-1)[0];
- if (!broken && key !== '-') {
- if (checkAllAliases(key, flags.arrays)) {
- i = eatArray(i, key, args);
- }
- else if (checkAllAliases(key, flags.nargs) !== false) {
- i = eatNargs(i, key, args);
- }
- else {
- next = args[i + 1];
- if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
- next.match(negative)) &&
- !checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts)) {
- setArg(key, next);
- i++;
- }
- else if (/^(true|false)$/.test(next)) {
- setArg(key, next);
- i++;
- }
- else {
- setArg(key, defaultValue(key));
- }
- }
- }
- }
- else if (arg.match(/^-[0-9]$/) &&
- arg.match(negative) &&
- checkAllAliases(arg.slice(1), flags.bools)) {
- key = arg.slice(1);
- setArg(key, defaultValue(key));
- }
- else if (arg === '--') {
- notFlags = args.slice(i + 1);
- break;
- }
- else if (configuration['halt-at-non-option']) {
- notFlags = args.slice(i);
- break;
- }
- else {
- pushPositional(arg);
- }
- }
- applyEnvVars(argv, true);
- applyEnvVars(argv, false);
- setConfig(argv);
- setConfigObjects();
- applyDefaultsAndAliases(argv, flags.aliases, defaults, true);
- applyCoercions(argv);
- if (configuration['set-placeholder-key'])
- setPlaceholderKeys(argv);
- Object.keys(flags.counts).forEach(function (key) {
- if (!hasKey(argv, key.split('.')))
- setArg(key, 0);
- });
- if (notFlagsOption && notFlags.length)
- argv[notFlagsArgv] = [];
- notFlags.forEach(function (key) {
- argv[notFlagsArgv].push(key);
- });
- if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {
- Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {
- delete argv[key];
- });
- }
- if (configuration['strip-aliased']) {
- [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {
- if (configuration['camel-case-expansion'] && alias.includes('-')) {
- delete argv[alias.split('.').map(prop => camelCase$1(prop)).join('.')];
- }
- delete argv[alias];
- });
- }
- function pushPositional(arg) {
- const maybeCoercedNumber = maybeCoerceNumber('_', arg);
- if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {
- argv._.push(maybeCoercedNumber);
- }
- }
- function eatNargs(i, key, args, argAfterEqualSign) {
- let ii;
- let toEat = checkAllAliases(key, flags.nargs);
- toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;
- if (toEat === 0) {
- if (!isUndefined(argAfterEqualSign)) {
- error = Error(__('Argument unexpected for: %s', key));
- }
- setArg(key, defaultValue(key));
- return i;
- }
- let available = isUndefined(argAfterEqualSign) ? 0 : 1;
- if (configuration['nargs-eats-options']) {
- if (args.length - (i + 1) + available < toEat) {
- error = Error(__('Not enough arguments following: %s', key));
- }
- available = toEat;
- }
- else {
- for (ii = i + 1; ii < args.length; ii++) {
- if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))
- available++;
- else
- break;
- }
- if (available < toEat)
- error = Error(__('Not enough arguments following: %s', key));
- }
- let consumed = Math.min(available, toEat);
- if (!isUndefined(argAfterEqualSign) && consumed > 0) {
- setArg(key, argAfterEqualSign);
- consumed--;
- }
- for (ii = i + 1; ii < (consumed + i + 1); ii++) {
- setArg(key, args[ii]);
- }
- return (i + consumed);
- }
- function eatArray(i, key, args, argAfterEqualSign) {
- let argsToSet = [];
- let next = argAfterEqualSign || args[i + 1];
- const nargsCount = checkAllAliases(key, flags.nargs);
- if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {
- argsToSet.push(true);
- }
- else if (isUndefined(next) ||
- (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {
- if (defaults[key] !== undefined) {
- const defVal = defaults[key];
- argsToSet = Array.isArray(defVal) ? defVal : [defVal];
- }
- }
- else {
- if (!isUndefined(argAfterEqualSign)) {
- argsToSet.push(processValue(key, argAfterEqualSign, true));
- }
- for (let ii = i + 1; ii < args.length; ii++) {
- if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||
- (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))
- break;
- next = args[ii];
- if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))
- break;
- i = ii;
- argsToSet.push(processValue(key, next, inputIsString));
- }
- }
- if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||
- (isNaN(nargsCount) && argsToSet.length === 0))) {
- error = Error(__('Not enough arguments following: %s', key));
- }
- setArg(key, argsToSet);
- return i;
- }
- function setArg(key, val, shouldStripQuotes = inputIsString) {
- if (/-/.test(key) && configuration['camel-case-expansion']) {
- const alias = key.split('.').map(function (prop) {
- return camelCase$1(prop);
- }).join('.');
- addNewAlias(key, alias);
- }
- const value = processValue(key, val, shouldStripQuotes);
- const splitKey = key.split('.');
- setKey(argv, splitKey, value);
- if (flags.aliases[key]) {
- flags.aliases[key].forEach(function (x) {
- const keyProperties = x.split('.');
- setKey(argv, keyProperties, value);
- });
- }
- if (splitKey.length > 1 && configuration['dot-notation']) {
- (flags.aliases[splitKey[0]] || []).forEach(function (x) {
- let keyProperties = x.split('.');
- const a = [].concat(splitKey);
- a.shift();
- keyProperties = keyProperties.concat(a);
- if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {
- setKey(argv, keyProperties, value);
- }
- });
- }
- if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
- const keys = [key].concat(flags.aliases[key] || []);
- keys.forEach(function (key) {
- Object.defineProperty(argvReturn, key, {
- enumerable: true,
- get() {
- return val;
- },
- set(value) {
- val = typeof value === 'string' ? mixin.normalize(value) : value;
- }
- });
- });
- }
- }
- function addNewAlias(key, alias) {
- if (!(flags.aliases[key] && flags.aliases[key].length)) {
- flags.aliases[key] = [alias];
- newAliases[alias] = true;
- }
- if (!(flags.aliases[alias] && flags.aliases[alias].length)) {
- addNewAlias(alias, key);
- }
- }
- function processValue(key, val, shouldStripQuotes) {
- if (shouldStripQuotes) {
- val = stripQuotes(val);
- }
- if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
- if (typeof val === 'string')
- val = val === 'true';
- }
- let value = Array.isArray(val)
- ? val.map(function (v) { return maybeCoerceNumber(key, v); })
- : maybeCoerceNumber(key, val);
- if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
- value = increment();
- }
- if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
- if (Array.isArray(val))
- value = val.map((val) => { return mixin.normalize(val); });
- else
- value = mixin.normalize(val);
- }
- return value;
- }
- function maybeCoerceNumber(key, value) {
- if (!configuration['parse-positional-numbers'] && key === '_')
- return value;
- if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {
- const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));
- if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {
- value = Number(value);
- }
- }
- return value;
- }
- function setConfig(argv) {
- const configLookup = Object.create(null);
- applyDefaultsAndAliases(configLookup, flags.aliases, defaults);
- Object.keys(flags.configs).forEach(function (configKey) {
- const configPath = argv[configKey] || configLookup[configKey];
- if (configPath) {
- try {
- let config = null;
- const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);
- const resolveConfig = flags.configs[configKey];
- if (typeof resolveConfig === 'function') {
- try {
- config = resolveConfig(resolvedConfigPath);
- }
- catch (e) {
- config = e;
- }
- if (config instanceof Error) {
- error = config;
- return;
- }
- }
- else {
- config = mixin.require(resolvedConfigPath);
- }
- setConfigObject(config);
- }
- catch (ex) {
- if (ex.name === 'PermissionDenied')
- error = ex;
- else if (argv[configKey])
- error = Error(__('Invalid JSON config file: %s', configPath));
- }
- }
- });
- }
- function setConfigObject(config, prev) {
- Object.keys(config).forEach(function (key) {
- const value = config[key];
- const fullKey = prev ? prev + '.' + key : key;
- if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {
- setConfigObject(value, fullKey);
- }
- else {
- if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {
- setArg(fullKey, value);
- }
- }
- });
- }
- function setConfigObjects() {
- if (typeof configObjects !== 'undefined') {
- configObjects.forEach(function (configObject) {
- setConfigObject(configObject);
- });
- }
- }
- function applyEnvVars(argv, configOnly) {
- if (typeof envPrefix === 'undefined')
- return;
- const prefix = typeof envPrefix === 'string' ? envPrefix : '';
- const env = mixin.env();
- Object.keys(env).forEach(function (envVar) {
- if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
- const keys = envVar.split('__').map(function (key, i) {
- if (i === 0) {
- key = key.substring(prefix.length);
- }
- return camelCase$1(key);
- });
- if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {
- setArg(keys.join('.'), env[envVar]);
- }
- }
- });
- }
- function applyCoercions(argv) {
- let coerce;
- const applied = new Set();
- Object.keys(argv).forEach(function (key) {
- if (!applied.has(key)) {
- coerce = checkAllAliases(key, flags.coercions);
- if (typeof coerce === 'function') {
- try {
- const value = maybeCoerceNumber(key, coerce(argv[key]));
- ([].concat(flags.aliases[key] || [], key)).forEach(ali => {
- applied.add(ali);
- argv[ali] = value;
- });
- }
- catch (err) {
- error = err;
- }
- }
- }
- });
- }
- function setPlaceholderKeys(argv) {
- flags.keys.forEach((key) => {
- if (~key.indexOf('.'))
- return;
- if (typeof argv[key] === 'undefined')
- argv[key] = undefined;
- });
- return argv;
- }
- function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {
- Object.keys(defaults).forEach(function (key) {
- if (!hasKey(obj, key.split('.'))) {
- setKey(obj, key.split('.'), defaults[key]);
- if (canLog)
- defaulted[key] = true;
- (aliases[key] || []).forEach(function (x) {
- if (hasKey(obj, x.split('.')))
- return;
- setKey(obj, x.split('.'), defaults[key]);
- });
- }
- });
- }
- function hasKey(obj, keys) {
- let o = obj;
- if (!configuration['dot-notation'])
- keys = [keys.join('.')];
- keys.slice(0, -1).forEach(function (key) {
- o = (o[key] || {});
- });
- const key = keys[keys.length - 1];
- if (typeof o !== 'object')
- return false;
- else
- return key in o;
- }
- function setKey(obj, keys, value) {
- let o = obj;
- if (!configuration['dot-notation'])
- keys = [keys.join('.')];
- keys.slice(0, -1).forEach(function (key) {
- key = sanitizeKey(key);
- if (typeof o === 'object' && o[key] === undefined) {
- o[key] = {};
- }
- if (typeof o[key] !== 'object' || Array.isArray(o[key])) {
- if (Array.isArray(o[key])) {
- o[key].push({});
- }
- else {
- o[key] = [o[key], {}];
- }
- o = o[key][o[key].length - 1];
- }
- else {
- o = o[key];
- }
- });
- const key = sanitizeKey(keys[keys.length - 1]);
- const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);
- const isValueArray = Array.isArray(value);
- let duplicate = configuration['duplicate-arguments-array'];
- if (!duplicate && checkAllAliases(key, flags.nargs)) {
- duplicate = true;
- if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {
- o[key] = undefined;
- }
- }
- if (value === increment()) {
- o[key] = increment(o[key]);
- }
- else if (Array.isArray(o[key])) {
- if (duplicate && isTypeArray && isValueArray) {
- o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);
- }
- else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
- o[key] = value;
- }
- else {
- o[key] = o[key].concat([value]);
- }
- }
- else if (o[key] === undefined && isTypeArray) {
- o[key] = isValueArray ? value : [value];
- }
- else if (duplicate && !(o[key] === undefined ||
- checkAllAliases(key, flags.counts) ||
- checkAllAliases(key, flags.bools))) {
- o[key] = [o[key], value];
- }
- else {
- o[key] = value;
- }
- }
- function extendAliases(...args) {
- args.forEach(function (obj) {
- Object.keys(obj || {}).forEach(function (key) {
- if (flags.aliases[key])
- return;
- flags.aliases[key] = [].concat(aliases[key] || []);
- flags.aliases[key].concat(key).forEach(function (x) {
- if (/-/.test(x) && configuration['camel-case-expansion']) {
- const c = camelCase$1(x);
- if (c !== key && flags.aliases[key].indexOf(c) === -1) {
- flags.aliases[key].push(c);
- newAliases[c] = true;
- }
- }
- });
- flags.aliases[key].concat(key).forEach(function (x) {
- if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {
- const c = decamelize$1(x, '-');
- if (c !== key && flags.aliases[key].indexOf(c) === -1) {
- flags.aliases[key].push(c);
- newAliases[c] = true;
- }
- }
- });
- flags.aliases[key].forEach(function (x) {
- flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
- return x !== y;
- }));
- });
- });
- });
- }
- function checkAllAliases(key, flag) {
- const toCheck = [].concat(flags.aliases[key] || [], key);
- const keys = Object.keys(flag);
- const setAlias = toCheck.find(key => keys.includes(key));
- return setAlias ? flag[setAlias] : false;
- }
- function hasAnyFlag(key) {
- const flagsKeys = Object.keys(flags);
- const toCheck = [].concat(flagsKeys.map(k => flags[k]));
- return toCheck.some(function (flag) {
- return Array.isArray(flag) ? flag.includes(key) : flag[key];
- });
- }
- function hasFlagsMatching(arg, ...patterns) {
- const toCheck = [].concat(...patterns);
- return toCheck.some(function (pattern) {
- const match = arg.match(pattern);
- return match && hasAnyFlag(match[1]);
- });
- }
- function hasAllShortFlags(arg) {
- if (arg.match(negative) || !arg.match(/^-[^-]+/)) {
- return false;
- }
- let hasAllFlags = true;
- let next;
- const letters = arg.slice(1).split('');
- for (let j = 0; j < letters.length; j++) {
- next = arg.slice(j + 2);
- if (!hasAnyFlag(letters[j])) {
- hasAllFlags = false;
- break;
- }
- if ((letters[j + 1] && letters[j + 1] === '=') ||
- next === '-' ||
- (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) ||
- (letters[j + 1] && letters[j + 1].match(/\W/))) {
- break;
- }
- }
- return hasAllFlags;
- }
- function isUnknownOptionAsArg(arg) {
- return configuration['unknown-options-as-args'] && isUnknownOption(arg);
- }
- function isUnknownOption(arg) {
- arg = arg.replace(/^-{3,}/, '--');
- if (arg.match(negative)) {
- return false;
- }
- if (hasAllShortFlags(arg)) {
- return false;
- }
- const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/;
- const normalFlag = /^-+([^=]+?)$/;
- const flagEndingInHyphen = /^-+([^=]+?)-$/;
- const flagEndingInDigits = /^-+([^=]+?\d+)$/;
- const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/;
- return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);
- }
- function defaultValue(key) {
- if (!checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts) &&
- `${key}` in defaults) {
- return defaults[key];
- }
- else {
- return defaultForType(guessType(key));
- }
- }
- function defaultForType(type) {
- const def = {
- [DefaultValuesForTypeKey.BOOLEAN]: true,
- [DefaultValuesForTypeKey.STRING]: '',
- [DefaultValuesForTypeKey.NUMBER]: undefined,
- [DefaultValuesForTypeKey.ARRAY]: []
- };
- return def[type];
- }
- function guessType(key) {
- let type = DefaultValuesForTypeKey.BOOLEAN;
- if (checkAllAliases(key, flags.strings))
- type = DefaultValuesForTypeKey.STRING;
- else if (checkAllAliases(key, flags.numbers))
- type = DefaultValuesForTypeKey.NUMBER;
- else if (checkAllAliases(key, flags.bools))
- type = DefaultValuesForTypeKey.BOOLEAN;
- else if (checkAllAliases(key, flags.arrays))
- type = DefaultValuesForTypeKey.ARRAY;
- return type;
- }
- function isUndefined(num) {
- return num === undefined;
- }
- function checkConfiguration() {
- Object.keys(flags.counts).find(key => {
- if (checkAllAliases(key, flags.arrays)) {
- error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));
- return true;
- }
- else if (checkAllAliases(key, flags.nargs)) {
- error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));
- return true;
- }
- return false;
- });
- }
- return {
- aliases: Object.assign({}, flags.aliases),
- argv: Object.assign(argvReturn, argv),
- configuration: configuration,
- defaulted: Object.assign({}, defaulted),
- error: error,
- newAliases: Object.assign({}, newAliases)
- };
- }
- }
- function combineAliases(aliases) {
- const aliasArrays = [];
- const combined = Object.create(null);
- let change = true;
- Object.keys(aliases).forEach(function (key) {
- aliasArrays.push([].concat(aliases[key], key));
- });
- while (change) {
- change = false;
- for (let i = 0; i < aliasArrays.length; i++) {
- for (let ii = i + 1; ii < aliasArrays.length; ii++) {
- const intersect = aliasArrays[i].filter(function (v) {
- return aliasArrays[ii].indexOf(v) !== -1;
- });
- if (intersect.length) {
- aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);
- aliasArrays.splice(ii, 1);
- change = true;
- break;
- }
- }
- }
- }
- aliasArrays.forEach(function (aliasArray) {
- aliasArray = aliasArray.filter(function (v, i, self) {
- return self.indexOf(v) === i;
- });
- const lastAlias = aliasArray.pop();
- if (lastAlias !== undefined && typeof lastAlias === 'string') {
- combined[lastAlias] = aliasArray;
- }
- });
- return combined;
- }
- function increment(orig) {
- return orig !== undefined ? orig + 1 : 1;
- }
- function sanitizeKey(key) {
- if (key === '__proto__')
- return '___proto___';
- return key;
- }
- function stripQuotes(val) {
- return (typeof val === 'string' &&
- (val[0] === "'" || val[0] === '"') &&
- val[val.length - 1] === val[0])
- ? val.substring(1, val.length - 1)
- : val;
- }
- var _a, _b, _c;
- const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)
- ? Number(process.env.YARGS_MIN_NODE_VERSION)
- : 12;
- const nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);
- if (nodeVersion) {
- const major = Number(nodeVersion.match(/^([^.]+)/)[1]);
- if (major < minNodeVersion) {
- throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
- }
- }
- const env$2 = process ? process.env : {};
- const parser = new YargsParser({
- cwd: process.cwd,
- env: () => {
- return env$2;
- },
- format,
- normalize: normalize$1,
- resolve,
- require: (path) => {
- if (typeof require !== 'undefined') {
- return require(path);
- }
- else if (path.match(/\.json$/)) {
- return JSON.parse(readFileSync(path, 'utf8'));
- }
- else {
- throw Error('only .json config files are supported in ESM');
- }
- }
- });
- const yargsParser = function Parser(args, opts) {
- const result = parser.parse(args.slice(), opts);
- return result.argv;
- };
- yargsParser.detailed = function (args, opts) {
- return parser.parse(args.slice(), opts);
- };
- yargsParser.camelCase = camelCase$1;
- yargsParser.decamelize = decamelize$1;
- yargsParser.looksLikeNumber = looksLikeNumber;
- const isObject$3 = value => typeof value === 'object' && value !== null;
- const isObjectCustom$1 = value =>
- isObject$3(value)
- && !(value instanceof RegExp)
- && !(value instanceof Error)
- && !(value instanceof Date);
- const mapObjectSkip$1 = Symbol('mapObjectSkip');
- const _mapObject = (object, mapper, options, isSeen = new WeakMap()) => {
- options = {
- deep: false,
- target: {},
- ...options,
- };
- if (isSeen.has(object)) {
- return isSeen.get(object);
- }
- isSeen.set(object, options.target);
- const {target} = options;
- delete options.target;
- const mapArray = array => array.map(element => isObjectCustom$1(element) ? _mapObject(element, mapper, options, isSeen) : element);
- if (Array.isArray(object)) {
- return mapArray(object);
- }
- for (const [key, value] of Object.entries(object)) {
- const mapResult = mapper(key, value, object);
- if (mapResult === mapObjectSkip$1) {
- continue;
- }
- let [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;
- if (newKey === '__proto__') {
- continue;
- }
- if (options.deep && shouldRecurse && isObjectCustom$1(newValue)) {
- newValue = Array.isArray(newValue)
- ? mapArray(newValue)
- : _mapObject(newValue, mapper, options, isSeen);
- }
- target[newKey] = newValue;
- }
- return target;
- };
- function mapObject$2(object, mapper, options) {
- if (!isObject$3(object)) {
- throw new TypeError(`Expected an object, got \`${object}\` (${typeof object})`);
- }
- return _mapObject(object, mapper, options);
- }
- const UPPERCASE = /[\p{Lu}]/u;
- const LOWERCASE = /[\p{Ll}]/u;
- const LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu;
- const IDENTIFIER$1 = /([\p{Alpha}\p{N}_]|$)/u;
- const SEPARATORS = /[_.\- ]+/;
- const LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);
- const SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER$1.source, 'gu');
- const NUMBERS_AND_IDENTIFIER = new RegExp('\\d+' + IDENTIFIER$1.source, 'gu');
- const preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase) => {
- let isLastCharLower = false;
- let isLastCharUpper = false;
- let isLastLastCharUpper = false;
- let isLastLastCharPreserved = false;
- for (let index = 0; index < string.length; index++) {
- const character = string[index];
- isLastLastCharPreserved = index > 2 ? string[index - 3] === '-' : true;
- if (isLastCharLower && UPPERCASE.test(character)) {
- string = string.slice(0, index) + '-' + string.slice(index);
- isLastCharLower = false;
- isLastLastCharUpper = isLastCharUpper;
- isLastCharUpper = true;
- index++;
- } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase)) {
- string = string.slice(0, index - 1) + '-' + string.slice(index - 1);
- isLastLastCharUpper = isLastCharUpper;
- isLastCharUpper = false;
- isLastCharLower = true;
- } else {
- isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;
- isLastLastCharUpper = isLastCharUpper;
- isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;
- }
- }
- return string;
- };
- const preserveConsecutiveUppercase = (input, toLowerCase) => {
- LEADING_CAPITAL.lastIndex = 0;
- return input.replaceAll(LEADING_CAPITAL, match => toLowerCase(match));
- };
- const postProcess = (input, toUpperCase) => {
- SEPARATORS_AND_IDENTIFIER.lastIndex = 0;
- NUMBERS_AND_IDENTIFIER.lastIndex = 0;
- return input
- .replaceAll(NUMBERS_AND_IDENTIFIER, (match, pattern, offset) => ['_', '-'].includes(input.charAt(offset + match.length)) ? match : toUpperCase(match))
- .replaceAll(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier));
- };
- function camelCase(input, options) {
- if (!(typeof input === 'string' || Array.isArray(input))) {
- throw new TypeError('Expected the input to be `string | string[]`');
- }
- options = {
- pascalCase: false,
- preserveConsecutiveUppercase: false,
- ...options,
- };
- if (Array.isArray(input)) {
- input = input.map(x => x.trim())
- .filter(x => x.length)
- .join('-');
- } else {
- input = input.trim();
- }
- if (input.length === 0) {
- return '';
- }
- const toLowerCase = options.locale === false
- ? string => string.toLowerCase()
- : string => string.toLocaleLowerCase(options.locale);
- const toUpperCase = options.locale === false
- ? string => string.toUpperCase()
- : string => string.toLocaleUpperCase(options.locale);
- if (input.length === 1) {
- if (SEPARATORS.test(input)) {
- return '';
- }
- return options.pascalCase ? toUpperCase(input) : toLowerCase(input);
- }
- const hasUpperCase = input !== toLowerCase(input);
- if (hasUpperCase) {
- input = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase);
- }
- input = input.replace(LEADING_SEPARATORS, '');
- input = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input);
- if (options.pascalCase) {
- input = toUpperCase(input.charAt(0)) + input.slice(1);
- }
- return postProcess(input, toUpperCase);
- }
- class QuickLRU extends Map {
- constructor(options = {}) {
- super();
- if (!(options.maxSize && options.maxSize > 0)) {
- throw new TypeError('`maxSize` must be a number greater than 0');
- }
- if (typeof options.maxAge === 'number' && options.maxAge === 0) {
- throw new TypeError('`maxAge` must be a number greater than 0');
- }
- this.maxSize = options.maxSize;
- this.maxAge = options.maxAge || Number.POSITIVE_INFINITY;
- this.onEviction = options.onEviction;
- this.cache = new Map();
- this.oldCache = new Map();
- this._size = 0;
- }
- _emitEvictions(cache) {
- if (typeof this.onEviction !== 'function') {
- return;
- }
- for (const [key, item] of cache) {
- this.onEviction(key, item.value);
- }
- }
- _deleteIfExpired(key, item) {
- if (typeof item.expiry === 'number' && item.expiry <= Date.now()) {
- if (typeof this.onEviction === 'function') {
- this.onEviction(key, item.value);
- }
- return this.delete(key);
- }
- return false;
- }
- _getOrDeleteIfExpired(key, item) {
- const deleted = this._deleteIfExpired(key, item);
- if (deleted === false) {
- return item.value;
- }
- }
- _getItemValue(key, item) {
- return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;
- }
- _peek(key, cache) {
- const item = cache.get(key);
- return this._getItemValue(key, item);
- }
- _set(key, value) {
- this.cache.set(key, value);
- this._size++;
- if (this._size >= this.maxSize) {
- this._size = 0;
- this._emitEvictions(this.oldCache);
- this.oldCache = this.cache;
- this.cache = new Map();
- }
- }
- _moveToRecent(key, item) {
- this.oldCache.delete(key);
- this._set(key, item);
- }
- * _entriesAscending() {
- for (const item of this.oldCache) {
- const [key, value] = item;
- if (!this.cache.has(key)) {
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield item;
- }
- }
- }
- for (const item of this.cache) {
- const [key, value] = item;
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield item;
- }
- }
- }
- get(key) {
- if (this.cache.has(key)) {
- const item = this.cache.get(key);
- return this._getItemValue(key, item);
- }
- if (this.oldCache.has(key)) {
- const item = this.oldCache.get(key);
- if (this._deleteIfExpired(key, item) === false) {
- this._moveToRecent(key, item);
- return item.value;
- }
- }
- }
- set(key, value, {maxAge = this.maxAge} = {}) {
- const expiry =
- typeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY ?
- Date.now() + maxAge :
- undefined;
- if (this.cache.has(key)) {
- this.cache.set(key, {
- value,
- expiry
- });
- } else {
- this._set(key, {value, expiry});
- }
- return this;
- }
- has(key) {
- if (this.cache.has(key)) {
- return !this._deleteIfExpired(key, this.cache.get(key));
- }
- if (this.oldCache.has(key)) {
- return !this._deleteIfExpired(key, this.oldCache.get(key));
- }
- return false;
- }
- peek(key) {
- if (this.cache.has(key)) {
- return this._peek(key, this.cache);
- }
- if (this.oldCache.has(key)) {
- return this._peek(key, this.oldCache);
- }
- }
- delete(key) {
- const deleted = this.cache.delete(key);
- if (deleted) {
- this._size--;
- }
- return this.oldCache.delete(key) || deleted;
- }
- clear() {
- this.cache.clear();
- this.oldCache.clear();
- this._size = 0;
- }
- resize(newSize) {
- if (!(newSize && newSize > 0)) {
- throw new TypeError('`maxSize` must be a number greater than 0');
- }
- const items = [...this._entriesAscending()];
- const removeCount = items.length - newSize;
- if (removeCount < 0) {
- this.cache = new Map(items);
- this.oldCache = new Map();
- this._size = items.length;
- } else {
- if (removeCount > 0) {
- this._emitEvictions(items.slice(0, removeCount));
- }
- this.oldCache = new Map(items.slice(removeCount));
- this.cache = new Map();
- this._size = 0;
- }
- this.maxSize = newSize;
- }
- * keys() {
- for (const [key] of this) {
- yield key;
- }
- }
- * values() {
- for (const [, value] of this) {
- yield value;
- }
- }
- * [Symbol.iterator]() {
- for (const item of this.cache) {
- const [key, value] = item;
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
- for (const item of this.oldCache) {
- const [key, value] = item;
- if (!this.cache.has(key)) {
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
- }
- }
- * entriesDescending() {
- let items = [...this.cache];
- for (let i = items.length - 1; i >= 0; --i) {
- const item = items[i];
- const [key, value] = item;
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
- items = [...this.oldCache];
- for (let i = items.length - 1; i >= 0; --i) {
- const item = items[i];
- const [key, value] = item;
- if (!this.cache.has(key)) {
- const deleted = this._deleteIfExpired(key, value);
- if (deleted === false) {
- yield [key, value.value];
- }
- }
- }
- }
- * entriesAscending() {
- for (const [key, value] of this._entriesAscending()) {
- yield [key, value.value];
- }
- }
- get size() {
- if (!this._size) {
- return this.oldCache.size;
- }
- let oldCacheSize = 0;
- for (const key of this.oldCache.keys()) {
- if (!this.cache.has(key)) {
- oldCacheSize++;
- }
- }
- return Math.min(this._size + oldCacheSize, this.maxSize);
- }
- entries() {
- return this.entriesAscending();
- }
- forEach(callbackFunction, thisArgument = this) {
- for (const [key, value] of this.entriesAscending()) {
- callbackFunction.call(thisArgument, value, key, this);
- }
- }
- get [Symbol.toStringTag]() {
- return JSON.stringify([...this.entriesAscending()]);
- }
- }
- const has$1 = (array, key) => array.some(element => {
- if (typeof element === 'string') {
- return element === key;
- }
- element.lastIndex = 0;
- return element.test(key);
- });
- const cache$2 = new QuickLRU({maxSize: 100_000});
- const isObject$2 = value =>
- typeof value === 'object'
- && value !== null
- && !(value instanceof RegExp)
- && !(value instanceof Error)
- && !(value instanceof Date);
- const transform$1 = (input, options = {}) => {
- if (!isObject$2(input)) {
- return input;
- }
- const {
- exclude,
- pascalCase = false,
- stopPaths,
- deep = false,
- preserveConsecutiveUppercase = false,
- } = options;
- const stopPathsSet = new Set(stopPaths);
- const makeMapper = parentPath => (key, value) => {
- if (deep && isObject$2(value)) {
- const path = parentPath === undefined ? key : `${parentPath}.${key}`;
- if (!stopPathsSet.has(path)) {
- value = mapObject$2(value, makeMapper(path));
- }
- }
- if (!(exclude && has$1(exclude, key))) {
- const cacheKey = pascalCase ? `${key}_` : key;
- if (cache$2.has(cacheKey)) {
- key = cache$2.get(cacheKey);
- } else {
- const returnValue = camelCase(key, {pascalCase, locale: false, preserveConsecutiveUppercase});
- if (key.length < 100) {
- cache$2.set(cacheKey, returnValue);
- }
- key = returnValue;
- }
- }
- return [key, value];
- };
- return mapObject$2(input, makeMapper(undefined));
- };
- function camelcaseKeys(input, options) {
- if (Array.isArray(input)) {
- return Object.keys(input).map(key => transform$1(input[key], options));
- }
- return transform$1(input, options);
- }
- function trimNewlines(string) {
- let start = 0;
- let end = string.length;
- while (start < end && (string[start] === '\r' || string[start] === '\n')) {
- start++;
- }
- while (end > start && (string[end - 1] === '\r' || string[end - 1] === '\n')) {
- end--;
- }
- return (start > 0 || end < string.length) ? string.slice(start, end) : string;
- }
- function getDefaultExportFromCjs (x) {
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
- }
- var minIndent = string => {
- const match = string.match(/^[ \t]*(?=\S)/gm);
- if (!match) {
- return 0;
- }
- return match.reduce((r, a) => Math.min(r, a.length), Infinity);
- };
- const minIndent$1 = getDefaultExportFromCjs(minIndent);
- function stripIndent(string) {
- const indent = minIndent$1(string);
- if (indent === 0) {
- return string;
- }
- const regex = new RegExp(`^[ \\t]{${indent}}`, 'gm');
- return string.replace(regex, '');
- }
- function indentString(string, count = 1, options = {}) {
- const {
- indent = ' ',
- includeEmptyLines = false
- } = options;
- if (typeof string !== 'string') {
- throw new TypeError(
- `Expected \`input\` to be a \`string\`, got \`${typeof string}\``
- );
- }
- if (typeof count !== 'number') {
- throw new TypeError(
- `Expected \`count\` to be a \`number\`, got \`${typeof count}\``
- );
- }
- if (count < 0) {
- throw new RangeError(
- `Expected \`count\` to be at least 0, got \`${count}\``
- );
- }
- if (typeof indent !== 'string') {
- throw new TypeError(
- `Expected \`options.indent\` to be a \`string\`, got \`${typeof indent}\``
- );
- }
- if (count === 0) {
- return string;
- }
- const regex = includeEmptyLines ? /^/gm : /^(?!\s*$)/gm;
- return string.replace(regex, indent.repeat(count));
- }
- function redent(string, count = 0, options = {}) {
- return indentString(stripIndent(string), count, options);
- }
- const debug$1 = (
- typeof process === 'object' &&
- process.env &&
- process.env.NODE_DEBUG &&
- /\bsemver\b/i.test(process.env.NODE_DEBUG)
- ) ? (...args) => console.error('SEMVER', ...args)
- : () => {};
- var debug_1 = debug$1;
- const SEMVER_SPEC_VERSION = '2.0.0';
- const MAX_LENGTH$1 = 256;
- const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER ||
- 9007199254740991;
- const MAX_SAFE_COMPONENT_LENGTH = 16;
- const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH$1 - 6;
- const RELEASE_TYPES = [
- 'major',
- 'premajor',
- 'minor',
- 'preminor',
- 'patch',
- 'prepatch',
- 'prerelease',
- ];
- var constants$1 = {
- MAX_LENGTH: MAX_LENGTH$1,
- MAX_SAFE_COMPONENT_LENGTH,
- MAX_SAFE_BUILD_LENGTH,
- MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1,
- RELEASE_TYPES,
- SEMVER_SPEC_VERSION,
- FLAG_INCLUDE_PRERELEASE: 0b001,
- FLAG_LOOSE: 0b010,
- };
- var re$1 = {exports: {}};
- (function (module, exports) {
- const {
- MAX_SAFE_COMPONENT_LENGTH,
- MAX_SAFE_BUILD_LENGTH,
- MAX_LENGTH,
- } = constants$1;
- const debug = debug_1;
- exports = module.exports = {};
- const re = exports.re = [];
- const safeRe = exports.safeRe = [];
- const src = exports.src = [];
- const t = exports.t = {};
- let R = 0;
- const LETTERDASHNUMBER = '[a-zA-Z0-9-]';
- const safeRegexReplacements = [
- ['\\s', 1],
- ['\\d', MAX_LENGTH],
- [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
- ];
- const makeSafeRegex = (value) => {
- for (const [token, max] of safeRegexReplacements) {
- value = value
- .split(`${token}*`).join(`${token}{0,${max}}`)
- .split(`${token}+`).join(`${token}{1,${max}}`);
- }
- return value
- };
- const createToken = (name, value, isGlobal) => {
- const safe = makeSafeRegex(value);
- const index = R++;
- debug(name, index, value);
- t[name] = index;
- src[index] = value;
- re[index] = new RegExp(value, isGlobal ? 'g' : undefined);
- safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined);
- };
- createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*');
- createToken('NUMERICIDENTIFIERLOOSE', '\\d+');
- createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);
- createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
- `(${src[t.NUMERICIDENTIFIER]})\\.` +
- `(${src[t.NUMERICIDENTIFIER]})`);
- createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
- `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
- `(${src[t.NUMERICIDENTIFIERLOOSE]})`);
- createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
- }|${src[t.NONNUMERICIDENTIFIER]})`);
- createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
- }|${src[t.NONNUMERICIDENTIFIER]})`);
- createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
- }(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`);
- createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
- }(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);
- createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`);
- createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
- }(?:\\.${src[t.BUILDIDENTIFIER]})*))`);
- createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
- }${src[t.PRERELEASE]}?${
- src[t.BUILD]}?`);
- createToken('FULL', `^${src[t.FULLPLAIN]}$`);
- createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
- }${src[t.PRERELEASELOOSE]}?${
- src[t.BUILD]}?`);
- createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`);
- createToken('GTLT', '((?:<|>)?=?)');
- createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);
- createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);
- createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
- `(?:${src[t.PRERELEASE]})?${
- src[t.BUILD]}?` +
- `)?)?`);
- createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
- `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
- `(?:${src[t.PRERELEASELOOSE]})?${
- src[t.BUILD]}?` +
- `)?)?`);
- createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);
- createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);
- createToken('COERCEPLAIN', `${'(^|[^\\d])' +
- '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
- `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
- `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);
- createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`);
- createToken('COERCEFULL', src[t.COERCEPLAIN] +
- `(?:${src[t.PRERELEASE]})?` +
- `(?:${src[t.BUILD]})?` +
- `(?:$|[^\\d])`);
- createToken('COERCERTL', src[t.COERCE], true);
- createToken('COERCERTLFULL', src[t.COERCEFULL], true);
- createToken('LONETILDE', '(?:~>?)');
- createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true);
- exports.tildeTrimReplace = '$1~';
- createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
- createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
- createToken('LONECARET', '(?:\\^)');
- createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true);
- exports.caretTrimReplace = '$1^';
- createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
- createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
- createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);
- createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);
- createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
- }\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
- exports.comparatorTrimReplace = '$1$2$3';
- createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
- `\\s+-\\s+` +
- `(${src[t.XRANGEPLAIN]})` +
- `\\s*$`);
- createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
- `\\s+-\\s+` +
- `(${src[t.XRANGEPLAINLOOSE]})` +
- `\\s*$`);
- createToken('STAR', '(<|>)?=?\\s*\\*');
- createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$');
- createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$');
- } (re$1, re$1.exports));
- var reExports = re$1.exports;
- const looseOption = Object.freeze({ loose: true });
- const emptyOpts = Object.freeze({ });
- const parseOptions$1 = options => {
- if (!options) {
- return emptyOpts
- }
- if (typeof options !== 'object') {
- return looseOption
- }
- return options
- };
- var parseOptions_1 = parseOptions$1;
- const numeric = /^[0-9]+$/;
- const compareIdentifiers$1 = (a, b) => {
- const anum = numeric.test(a);
- const bnum = numeric.test(b);
- if (anum && bnum) {
- a = +a;
- b = +b;
- }
- return a === b ? 0
- : (anum && !bnum) ? -1
- : (bnum && !anum) ? 1
- : a < b ? -1
- : 1
- };
- const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a);
- var identifiers = {
- compareIdentifiers: compareIdentifiers$1,
- rcompareIdentifiers,
- };
- const debug = debug_1;
- const { MAX_LENGTH, MAX_SAFE_INTEGER } = constants$1;
- const { safeRe: re, t } = reExports;
- const parseOptions = parseOptions_1;
- const { compareIdentifiers } = identifiers;
- let SemVer$1 = class SemVer {
- constructor (version, options) {
- options = parseOptions(options);
- if (version instanceof SemVer) {
- if (version.loose === !!options.loose &&
- version.includePrerelease === !!options.includePrerelease) {
- return version
- } else {
- version = version.version;
- }
- } else if (typeof version !== 'string') {
- throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`)
- }
- if (version.length > MAX_LENGTH) {
- throw new TypeError(
- `version is longer than ${MAX_LENGTH} characters`
- )
- }
- debug('SemVer', version, options);
- this.options = options;
- this.loose = !!options.loose;
- this.includePrerelease = !!options.includePrerelease;
- const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
- if (!m) {
- throw new TypeError(`Invalid Version: ${version}`)
- }
- this.raw = version;
- this.major = +m[1];
- this.minor = +m[2];
- this.patch = +m[3];
- if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
- throw new TypeError('Invalid major version')
- }
- if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
- throw new TypeError('Invalid minor version')
- }
- if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
- throw new TypeError('Invalid patch version')
- }
- if (!m[4]) {
- this.prerelease = [];
- } else {
- this.prerelease = m[4].split('.').map((id) => {
- if (/^[0-9]+$/.test(id)) {
- const num = +id;
- if (num >= 0 && num < MAX_SAFE_INTEGER) {
- return num
- }
- }
- return id
- });
- }
- this.build = m[5] ? m[5].split('.') : [];
- this.format();
- }
- format () {
- this.version = `${this.major}.${this.minor}.${this.patch}`;
- if (this.prerelease.length) {
- this.version += `-${this.prerelease.join('.')}`;
- }
- return this.version
- }
- toString () {
- return this.version
- }
- compare (other) {
- debug('SemVer.compare', this.version, this.options, other);
- if (!(other instanceof SemVer)) {
- if (typeof other === 'string' && other === this.version) {
- return 0
- }
- other = new SemVer(other, this.options);
- }
- if (other.version === this.version) {
- return 0
- }
- return this.compareMain(other) || this.comparePre(other)
- }
- compareMain (other) {
- if (!(other instanceof SemVer)) {
- other = new SemVer(other, this.options);
- }
- return (
- compareIdentifiers(this.major, other.major) ||
- compareIdentifiers(this.minor, other.minor) ||
- compareIdentifiers(this.patch, other.patch)
- )
- }
- comparePre (other) {
- if (!(other instanceof SemVer)) {
- other = new SemVer(other, this.options);
- }
- if (this.prerelease.length && !other.prerelease.length) {
- return -1
- } else if (!this.prerelease.length && other.prerelease.length) {
- return 1
- } else if (!this.prerelease.length && !other.prerelease.length) {
- return 0
- }
- let i = 0;
- do {
- const a = this.prerelease[i];
- const b = other.prerelease[i];
- debug('prerelease compare', i, a, b);
- if (a === undefined && b === undefined) {
- return 0
- } else if (b === undefined) {
- return 1
- } else if (a === undefined) {
- return -1
- } else if (a === b) {
- continue
- } else {
- return compareIdentifiers(a, b)
- }
- } while (++i)
- }
- compareBuild (other) {
- if (!(other instanceof SemVer)) {
- other = new SemVer(other, this.options);
- }
- let i = 0;
- do {
- const a = this.build[i];
- const b = other.build[i];
- debug('prerelease compare', i, a, b);
- if (a === undefined && b === undefined) {
- return 0
- } else if (b === undefined) {
- return 1
- } else if (a === undefined) {
- return -1
- } else if (a === b) {
- continue
- } else {
- return compareIdentifiers(a, b)
- }
- } while (++i)
- }
- inc (release, identifier, identifierBase) {
- switch (release) {
- case 'premajor':
- this.prerelease.length = 0;
- this.patch = 0;
- this.minor = 0;
- this.major++;
- this.inc('pre', identifier, identifierBase);
- break
- case 'preminor':
- this.prerelease.length = 0;
- this.patch = 0;
- this.minor++;
- this.inc('pre', identifier, identifierBase);
- break
- case 'prepatch':
- this.prerelease.length = 0;
- this.inc('patch', identifier, identifierBase);
- this.inc('pre', identifier, identifierBase);
- break
- case 'prerelease':
- if (this.prerelease.length === 0) {
- this.inc('patch', identifier, identifierBase);
- }
- this.inc('pre', identifier, identifierBase);
- break
- case 'major':
- if (
- this.minor !== 0 ||
- this.patch !== 0 ||
- this.prerelease.length === 0
- ) {
- this.major++;
- }
- this.minor = 0;
- this.patch = 0;
- this.prerelease = [];
- break
- case 'minor':
- if (this.patch !== 0 || this.prerelease.length === 0) {
- this.minor++;
- }
- this.patch = 0;
- this.prerelease = [];
- break
- case 'patch':
- if (this.prerelease.length === 0) {
- this.patch++;
- }
- this.prerelease = [];
- break
- case 'pre': {
- const base = Number(identifierBase) ? 1 : 0;
- if (!identifier && identifierBase === false) {
- throw new Error('invalid increment argument: identifier is empty')
- }
- if (this.prerelease.length === 0) {
- this.prerelease = [base];
- } else {
- let i = this.prerelease.length;
- while (--i >= 0) {
- if (typeof this.prerelease[i] === 'number') {
- this.prerelease[i]++;
- i = -2;
- }
- }
- if (i === -1) {
- if (identifier === this.prerelease.join('.') && identifierBase === false) {
- throw new Error('invalid increment argument: identifier already exists')
- }
- this.prerelease.push(base);
- }
- }
- if (identifier) {
- let prerelease = [identifier, base];
- if (identifierBase === false) {
- prerelease = [identifier];
- }
- if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
- if (isNaN(this.prerelease[1])) {
- this.prerelease = prerelease;
- }
- } else {
- this.prerelease = prerelease;
- }
- }
- break
- }
- default:
- throw new Error(`invalid increment argument: ${release}`)
- }
- this.raw = this.format();
- if (this.build.length) {
- this.raw += `+${this.build.join('.')}`;
- }
- return this
- }
- };
- var semver = SemVer$1;
- const SemVer = semver;
- const parse$6 = (version, options, throwErrors = false) => {
- if (version instanceof SemVer) {
- return version
- }
- try {
- return new SemVer(version, options)
- } catch (er) {
- if (!throwErrors) {
- return null
- }
- throw er
- }
- };
- var parse_1 = parse$6;
- const parse$5 = parse_1;
- const valid$1 = (version, options) => {
- const v = parse$5(version, options);
- return v ? v.version : null
- };
- var valid_1 = valid$1;
- const parse$4 = parse_1;
- const clean = (version, options) => {
- const s = parse$4(version.trim().replace(/^[=v]+/, ''), options);
- return s ? s.version : null
- };
- var clean_1 = clean;
- const require$$1$3 = [
- "0BSD",
- "AAL",
- "ADSL",
- "AFL-1.1",
- "AFL-1.2",
- "AFL-2.0",
- "AFL-2.1",
- "AFL-3.0",
- "AGPL-1.0-only",
- "AGPL-1.0-or-later",
- "AGPL-3.0-only",
- "AGPL-3.0-or-later",
- "AMDPLPA",
- "AML",
- "AMPAS",
- "ANTLR-PD",
- "ANTLR-PD-fallback",
- "APAFML",
- "APL-1.0",
- "APSL-1.0",
- "APSL-1.1",
- "APSL-1.2",
- "APSL-2.0",
- "ASWF-Digital-Assets-1.0",
- "ASWF-Digital-Assets-1.1",
- "Abstyles",
- "AdaCore-doc",
- "Adobe-2006",
- "Adobe-Glyph",
- "Adobe-Utopia",
- "Afmparse",
- "Aladdin",
- "Apache-1.0",
- "Apache-1.1",
- "Apache-2.0",
- "App-s2p",
- "Arphic-1999",
- "Artistic-1.0",
- "Artistic-1.0-Perl",
- "Artistic-1.0-cl8",
- "Artistic-2.0",
- "BSD-1-Clause",
- "BSD-2-Clause",
- "BSD-2-Clause-Patent",
- "BSD-2-Clause-Views",
- "BSD-3-Clause",
- "BSD-3-Clause-Attribution",
- "BSD-3-Clause-Clear",
- "BSD-3-Clause-HP",
- "BSD-3-Clause-LBNL",
- "BSD-3-Clause-Modification",
- "BSD-3-Clause-No-Military-License",
- "BSD-3-Clause-No-Nuclear-License",
- "BSD-3-Clause-No-Nuclear-License-2014",
- "BSD-3-Clause-No-Nuclear-Warranty",
- "BSD-3-Clause-Open-MPI",
- "BSD-3-Clause-Sun",
- "BSD-3-Clause-flex",
- "BSD-4-Clause",
- "BSD-4-Clause-Shortened",
- "BSD-4-Clause-UC",
- "BSD-4.3RENO",
- "BSD-4.3TAHOE",
- "BSD-Advertising-Acknowledgement",
- "BSD-Attribution-HPND-disclaimer",
- "BSD-Inferno-Nettverk",
- "BSD-Protection",
- "BSD-Source-Code",
- "BSD-Systemics",
- "BSL-1.0",
- "BUSL-1.1",
- "Baekmuk",
- "Bahyph",
- "Barr",
- "Beerware",
- "BitTorrent-1.0",
- "BitTorrent-1.1",
- "Bitstream-Charter",
- "Bitstream-Vera",
- "BlueOak-1.0.0",
- "Boehm-GC",
- "Borceux",
- "Brian-Gladman-3-Clause",
- "C-UDA-1.0",
- "CAL-1.0",
- "CAL-1.0-Combined-Work-Exception",
- "CATOSL-1.1",
- "CC-BY-1.0",
- "CC-BY-2.0",
- "CC-BY-2.5",
- "CC-BY-2.5-AU",
- "CC-BY-3.0",
- "CC-BY-3.0-AT",
- "CC-BY-3.0-DE",
- "CC-BY-3.0-IGO",
- "CC-BY-3.0-NL",
- "CC-BY-3.0-US",
- "CC-BY-4.0",
- "CC-BY-NC-1.0",
- "CC-BY-NC-2.0",
- "CC-BY-NC-2.5",
- "CC-BY-NC-3.0",
- "CC-BY-NC-3.0-DE",
- "CC-BY-NC-4.0",
- "CC-BY-NC-ND-1.0",
- "CC-BY-NC-ND-2.0",
- "CC-BY-NC-ND-2.5",
- "CC-BY-NC-ND-3.0",
- "CC-BY-NC-ND-3.0-DE",
- "CC-BY-NC-ND-3.0-IGO",
- "CC-BY-NC-ND-4.0",
- "CC-BY-NC-SA-1.0",
- "CC-BY-NC-SA-2.0",
- "CC-BY-NC-SA-2.0-DE",
- "CC-BY-NC-SA-2.0-FR",
- "CC-BY-NC-SA-2.0-UK",
- "CC-BY-NC-SA-2.5",
- "CC-BY-NC-SA-3.0",
- "CC-BY-NC-SA-3.0-DE",
- "CC-BY-NC-SA-3.0-IGO",
- "CC-BY-NC-SA-4.0",
- "CC-BY-ND-1.0",
- "CC-BY-ND-2.0",
- "CC-BY-ND-2.5",
- "CC-BY-ND-3.0",
- "CC-BY-ND-3.0-DE",
- "CC-BY-ND-4.0",
- "CC-BY-SA-1.0",
- "CC-BY-SA-2.0",
- "CC-BY-SA-2.0-UK",
- "CC-BY-SA-2.1-JP",
- "CC-BY-SA-2.5",
- "CC-BY-SA-3.0",
- "CC-BY-SA-3.0-AT",
- "CC-BY-SA-3.0-DE",
- "CC-BY-SA-3.0-IGO",
- "CC-BY-SA-4.0",
- "CC-PDDC",
- "CC0-1.0",
- "CDDL-1.0",
- "CDDL-1.1",
- "CDL-1.0",
- "CDLA-Permissive-1.0",
- "CDLA-Permissive-2.0",
- "CDLA-Sharing-1.0",
- "CECILL-1.0",
- "CECILL-1.1",
- "CECILL-2.0",
- "CECILL-2.1",
- "CECILL-B",
- "CECILL-C",
- "CERN-OHL-1.1",
- "CERN-OHL-1.2",
- "CERN-OHL-P-2.0",
- "CERN-OHL-S-2.0",
- "CERN-OHL-W-2.0",
- "CFITSIO",
- "CMU-Mach",
- "CNRI-Jython",
- "CNRI-Python",
- "CNRI-Python-GPL-Compatible",
- "COIL-1.0",
- "CPAL-1.0",
- "CPL-1.0",
- "CPOL-1.02",
- "CUA-OPL-1.0",
- "Caldera",
- "ClArtistic",
- "Clips",
- "Community-Spec-1.0",
- "Condor-1.1",
- "Cornell-Lossless-JPEG",
- "Cronyx",
- "Crossword",
- "CrystalStacker",
- "Cube",
- "D-FSL-1.0",
- "DL-DE-BY-2.0",
- "DL-DE-ZERO-2.0",
- "DOC",
- "DRL-1.0",
- "DSDP",
- "Dotseqn",
- "ECL-1.0",
- "ECL-2.0",
- "EFL-1.0",
- "EFL-2.0",
- "EPICS",
- "EPL-1.0",
- "EPL-2.0",
- "EUDatagrid",
- "EUPL-1.0",
- "EUPL-1.1",
- "EUPL-1.2",
- "Elastic-2.0",
- "Entessa",
- "ErlPL-1.1",
- "Eurosym",
- "FBM",
- "FDK-AAC",
- "FSFAP",
- "FSFUL",
- "FSFULLR",
- "FSFULLRWD",
- "FTL",
- "Fair",
- "Ferguson-Twofish",
- "Frameworx-1.0",
- "FreeBSD-DOC",
- "FreeImage",
- "Furuseth",
- "GD",
- "GFDL-1.1-invariants-only",
- "GFDL-1.1-invariants-or-later",
- "GFDL-1.1-no-invariants-only",
- "GFDL-1.1-no-invariants-or-later",
- "GFDL-1.1-only",
- "GFDL-1.1-or-later",
- "GFDL-1.2-invariants-only",
- "GFDL-1.2-invariants-or-later",
- "GFDL-1.2-no-invariants-only",
- "GFDL-1.2-no-invariants-or-later",
- "GFDL-1.2-only",
- "GFDL-1.2-or-later",
- "GFDL-1.3-invariants-only",
- "GFDL-1.3-invariants-or-later",
- "GFDL-1.3-no-invariants-only",
- "GFDL-1.3-no-invariants-or-later",
- "GFDL-1.3-only",
- "GFDL-1.3-or-later",
- "GL2PS",
- "GLWTPL",
- "GPL-1.0-only",
- "GPL-1.0-or-later",
- "GPL-2.0-only",
- "GPL-2.0-or-later",
- "GPL-3.0-only",
- "GPL-3.0-or-later",
- "Giftware",
- "Glide",
- "Glulxe",
- "Graphics-Gems",
- "HP-1986",
- "HP-1989",
- "HPND",
- "HPND-DEC",
- "HPND-Markus-Kuhn",
- "HPND-Pbmplus",
- "HPND-UC",
- "HPND-doc",
- "HPND-doc-sell",
- "HPND-export-US",
- "HPND-export-US-modify",
- "HPND-sell-regexpr",
- "HPND-sell-variant",
- "HPND-sell-variant-MIT-disclaimer",
- "HTMLTIDY",
- "HaskellReport",
- "Hippocratic-2.1",
- "IBM-pibs",
- "ICU",
- "IEC-Code-Components-EULA",
- "IJG",
- "IJG-short",
- "IPA",
- "IPL-1.0",
- "ISC",
- "ImageMagick",
- "Imlib2",
- "Info-ZIP",
- "Inner-Net-2.0",
- "Intel",
- "Intel-ACPI",
- "Interbase-1.0",
- "JPL-image",
- "JPNIC",
- "JSON",
- "Jam",
- "JasPer-2.0",
- "Kastrup",
- "Kazlib",
- "Knuth-CTAN",
- "LAL-1.2",
- "LAL-1.3",
- "LGPL-2.0-only",
- "LGPL-2.0-or-later",
- "LGPL-2.1-only",
- "LGPL-2.1-or-later",
- "LGPL-3.0-only",
- "LGPL-3.0-or-later",
- "LGPLLR",
- "LOOP",
- "LPL-1.0",
- "LPL-1.02",
- "LPPL-1.0",
- "LPPL-1.1",
- "LPPL-1.2",
- "LPPL-1.3a",
- "LPPL-1.3c",
- "LZMA-SDK-9.11-to-9.20",
- "LZMA-SDK-9.22",
- "Latex2e",
- "Latex2e-translated-notice",
- "Leptonica",
- "LiLiQ-P-1.1",
- "LiLiQ-R-1.1",
- "LiLiQ-Rplus-1.1",
- "Libpng",
- "Linux-OpenIB",
- "Linux-man-pages-1-para",
- "Linux-man-pages-copyleft",
- "Linux-man-pages-copyleft-2-para",
- "Linux-man-pages-copyleft-var",
- "Lucida-Bitmap-Fonts",
- "MIT",
- "MIT-0",
- "MIT-CMU",
- "MIT-Festival",
- "MIT-Modern-Variant",
- "MIT-Wu",
- "MIT-advertising",
- "MIT-enna",
- "MIT-feh",
- "MIT-open-group",
- "MIT-testregex",
- "MITNFA",
- "MMIXware",
- "MPEG-SSG",
- "MPL-1.0",
- "MPL-1.1",
- "MPL-2.0",
- "MPL-2.0-no-copyleft-exception",
- "MS-LPL",
- "MS-PL",
- "MS-RL",
- "MTLL",
- "MakeIndex",
- "Martin-Birgmeier",
- "McPhee-slideshow",
- "Minpack",
- "MirOS",
- "Motosoto",
- "MulanPSL-1.0",
- "MulanPSL-2.0",
- "Multics",
- "Mup",
- "NAIST-2003",
- "NASA-1.3",
- "NBPL-1.0",
- "NCGL-UK-2.0",
- "NCSA",
- "NGPL",
- "NICTA-1.0",
- "NIST-PD",
- "NIST-PD-fallback",
- "NIST-Software",
- "NLOD-1.0",
- "NLOD-2.0",
- "NLPL",
- "NOSL",
- "NPL-1.0",
- "NPL-1.1",
- "NPOSL-3.0",
- "NRL",
- "NTP",
- "NTP-0",
- "Naumen",
- "Net-SNMP",
- "NetCDF",
- "Newsletr",
- "Nokia",
- "Noweb",
- "O-UDA-1.0",
- "OCCT-PL",
- "OCLC-2.0",
- "ODC-By-1.0",
- "ODbL-1.0",
- "OFFIS",
- "OFL-1.0",
- "OFL-1.0-RFN",
- "OFL-1.0-no-RFN",
- "OFL-1.1",
- "OFL-1.1-RFN",
- "OFL-1.1-no-RFN",
- "OGC-1.0",
- "OGDL-Taiwan-1.0",
- "OGL-Canada-2.0",
- "OGL-UK-1.0",
- "OGL-UK-2.0",
- "OGL-UK-3.0",
- "OGTSL",
- "OLDAP-1.1",
- "OLDAP-1.2",
- "OLDAP-1.3",
- "OLDAP-1.4",
- "OLDAP-2.0",
- "OLDAP-2.0.1",
- "OLDAP-2.1",
- "OLDAP-2.2",
- "OLDAP-2.2.1",
- "OLDAP-2.2.2",
- "OLDAP-2.3",
- "OLDAP-2.4",
- "OLDAP-2.5",
- "OLDAP-2.6",
- "OLDAP-2.7",
- "OLDAP-2.8",
- "OLFL-1.3",
- "OML",
- "OPL-1.0",
- "OPL-UK-3.0",
- "OPUBL-1.0",
- "OSET-PL-2.1",
- "OSL-1.0",
- "OSL-1.1",
- "OSL-2.0",
- "OSL-2.1",
- "OSL-3.0",
- "OpenPBS-2.3",
- "OpenSSL",
- "PADL",
- "PDDL-1.0",
- "PHP-3.0",
- "PHP-3.01",
- "PSF-2.0",
- "Parity-6.0.0",
- "Parity-7.0.0",
- "Plexus",
- "PolyForm-Noncommercial-1.0.0",
- "PolyForm-Small-Business-1.0.0",
- "PostgreSQL",
- "Python-2.0",
- "Python-2.0.1",
- "QPL-1.0",
- "QPL-1.0-INRIA-2004",
- "Qhull",
- "RHeCos-1.1",
- "RPL-1.1",
- "RPL-1.5",
- "RPSL-1.0",
- "RSA-MD",
- "RSCPL",
- "Rdisc",
- "Ruby",
- "SAX-PD",
- "SCEA",
- "SGI-B-1.0",
- "SGI-B-1.1",
- "SGI-B-2.0",
- "SGI-OpenGL",
- "SGP4",
- "SHL-0.5",
- "SHL-0.51",
- "SISSL",
- "SISSL-1.2",
- "SL",
- "SMLNJ",
- "SMPPL",
- "SNIA",
- "SPL-1.0",
- "SSH-OpenSSH",
- "SSH-short",
- "SSPL-1.0",
- "SWL",
- "Saxpath",
- "SchemeReport",
- "Sendmail",
- "Sendmail-8.23",
- "SimPL-2.0",
- "Sleepycat",
- "Soundex",
- "Spencer-86",
- "Spencer-94",
- "Spencer-99",
- "SugarCRM-1.1.3",
- "SunPro",
- "Symlinks",
- "TAPR-OHL-1.0",
- "TCL",
- "TCP-wrappers",
- "TMate",
- "TORQUE-1.1",
- "TOSL",
- "TPDL",
- "TPL-1.0",
- "TTWL",
- "TTYP0",
- "TU-Berlin-1.0",
- "TU-Berlin-2.0",
- "TermReadKey",
- "UCAR",
- "UCL-1.0",
- "UPL-1.0",
- "URT-RLE",
- "Unicode-DFS-2015",
- "Unicode-DFS-2016",
- "Unicode-TOU",
- "UnixCrypt",
- "Unlicense",
- "VOSTROM",
- "VSL-1.0",
- "Vim",
- "W3C",
- "W3C-19980720",
- "W3C-20150513",
- "WTFPL",
- "Watcom-1.0",
- "Widget-Workshop",
- "Wsuipa",
- "X11",
- "X11-distribute-modifications-variant",
- "XFree86-1.1",
- "XSkat",
- "Xdebug-1.03",
- "Xerox",
- "Xfig",
- "Xnet",
- "YPL-1.0",
- "YPL-1.1",
- "ZPL-1.1",
- "ZPL-2.0",
- "ZPL-2.1",
- "Zed",
- "Zeeff",
- "Zend-2.0",
- "Zimbra-1.3",
- "Zimbra-1.4",
- "Zlib",
- "blessing",
- "bzip2-1.0.6",
- "check-cvs",
- "checkmk",
- "copyleft-next-0.3.0",
- "copyleft-next-0.3.1",
- "curl",
- "diffmark",
- "dtoa",
- "dvipdfm",
- "eGenix",
- "etalab-2.0",
- "fwlw",
- "gSOAP-1.3b",
- "gnuplot",
- "iMatix",
- "libpng-2.0",
- "libselinux-1.0",
- "libtiff",
- "libutil-David-Nugent",
- "lsof",
- "magaz",
- "metamail",
- "mpi-permissive",
- "mpich2",
- "mplus",
- "pnmstitch",
- "psfrag",
- "psutils",
- "python-ldap",
- "snprintf",
- "ssh-keyscan",
- "swrule",
- "ulem",
- "w3m",
- "xinetd",
- "xlock",
- "xpp",
- "zlib-acknowledgement"
- ];
- const require$$1$2 = [
- "AGPL-1.0",
- "AGPL-3.0",
- "BSD-2-Clause-FreeBSD",
- "BSD-2-Clause-NetBSD",
- "GFDL-1.1",
- "GFDL-1.2",
- "GFDL-1.3",
- "GPL-1.0",
- "GPL-1.0+",
- "GPL-2.0",
- "GPL-2.0+",
- "GPL-2.0-with-GCC-exception",
- "GPL-2.0-with-autoconf-exception",
- "GPL-2.0-with-bison-exception",
- "GPL-2.0-with-classpath-exception",
- "GPL-2.0-with-font-exception",
- "GPL-3.0",
- "GPL-3.0+",
- "GPL-3.0-with-GCC-exception",
- "GPL-3.0-with-autoconf-exception",
- "LGPL-2.0",
- "LGPL-2.0+",
- "LGPL-2.1",
- "LGPL-2.1+",
- "LGPL-3.0",
- "LGPL-3.0+",
- "Nunit",
- "StandardML-NJ",
- "bzip2-1.0.5",
- "eCos-2.0",
- "wxWindows"
- ];
- const require$$2 = [
- "389-exception",
- "Asterisk-exception",
- "Autoconf-exception-2.0",
- "Autoconf-exception-3.0",
- "Autoconf-exception-generic",
- "Autoconf-exception-generic-3.0",
- "Autoconf-exception-macro",
- "Bison-exception-2.2",
- "Bootloader-exception",
- "Classpath-exception-2.0",
- "CLISP-exception-2.0",
- "cryptsetup-OpenSSL-exception",
- "DigiRule-FOSS-exception",
- "eCos-exception-2.0",
- "Fawkes-Runtime-exception",
- "FLTK-exception",
- "Font-exception-2.0",
- "freertos-exception-2.0",
- "GCC-exception-2.0",
- "GCC-exception-2.0-note",
- "GCC-exception-3.1",
- "GNAT-exception",
- "GNU-compiler-exception",
- "gnu-javamail-exception",
- "GPL-3.0-interface-exception",
- "GPL-3.0-linking-exception",
- "GPL-3.0-linking-source-exception",
- "GPL-CC-1.0",
- "GStreamer-exception-2005",
- "GStreamer-exception-2008",
- "i2p-gpl-java-exception",
- "KiCad-libraries-exception",
- "LGPL-3.0-linking-exception",
- "libpri-OpenH323-exception",
- "Libtool-exception",
- "Linux-syscall-note",
- "LLGPL",
- "LLVM-exception",
- "LZMA-exception",
- "mif-exception",
- "OCaml-LGPL-linking-exception",
- "OCCT-exception-1.0",
- "OpenJDK-assembly-exception-1.0",
- "openvpn-openssl-exception",
- "PS-or-PDF-font-exception-20170817",
- "QPL-1.0-INRIA-2004-exception",
- "Qt-GPL-exception-1.0",
- "Qt-LGPL-exception-1.1",
- "Qwt-exception-1.0",
- "SANE-exception",
- "SHL-2.0",
- "SHL-2.1",
- "stunnel-exception",
- "SWI-exception",
- "Swift-exception",
- "Texinfo-exception",
- "u-boot-exception-2.0",
- "UBDL-exception",
- "Universal-FOSS-exception-1.0",
- "vsftpd-openssl-exception",
- "WxWindows-exception-3.1",
- "x11vnc-openssl-exception"
- ];
- var licenses = []
- .concat(require$$1$3)
- .concat(require$$1$2);
- var exceptions = require$$2;
- var scan$1 = function (source) {
- var index = 0;
- function hasMore () {
- return index < source.length
- }
- function read (value) {
- if (value instanceof RegExp) {
- var chars = source.slice(index);
- var match = chars.match(value);
- if (match) {
- index += match[0].length;
- return match[0]
- }
- } else {
- if (source.indexOf(value, index) === index) {
- index += value.length;
- return value
- }
- }
- }
- function skipWhitespace () {
- read(/[ ]*/);
- }
- function operator () {
- var string;
- var possibilities = ['WITH', 'AND', 'OR', '(', ')', ':', '+'];
- for (var i = 0; i < possibilities.length; i++) {
- string = read(possibilities[i]);
- if (string) {
- break
- }
- }
- if (string === '+' && index > 1 && source[index - 2] === ' ') {
- throw new Error('Space before `+`')
- }
- return string && {
- type: 'OPERATOR',
- string: string
- }
- }
- function idstring () {
- return read(/[A-Za-z0-9-.]+/)
- }
- function expectIdstring () {
- var string = idstring();
- if (!string) {
- throw new Error('Expected idstring at offset ' + index)
- }
- return string
- }
- function documentRef () {
- if (read('DocumentRef-')) {
- var string = expectIdstring();
- return { type: 'DOCUMENTREF', string: string }
- }
- }
- function licenseRef () {
- if (read('LicenseRef-')) {
- var string = expectIdstring();
- return { type: 'LICENSEREF', string: string }
- }
- }
- function identifier () {
- var begin = index;
- var string = idstring();
- if (licenses.indexOf(string) !== -1) {
- return {
- type: 'LICENSE',
- string: string
- }
- } else if (exceptions.indexOf(string) !== -1) {
- return {
- type: 'EXCEPTION',
- string: string
- }
- }
- index = begin;
- }
- function parseToken () {
- return (
- operator() ||
- documentRef() ||
- licenseRef() ||
- identifier()
- )
- }
- var tokens = [];
- while (hasMore()) {
- skipWhitespace();
- if (!hasMore()) {
- break
- }
- var token = parseToken();
- if (!token) {
- throw new Error('Unexpected `' + source[index] +
- '` at offset ' + index)
- }
- tokens.push(token);
- }
- return tokens
- };
- var parse$3 = function (tokens) {
- var index = 0;
- function hasMore () {
- return index < tokens.length
- }
- function token () {
- return hasMore() ? tokens[index] : null
- }
- function next () {
- if (!hasMore()) {
- throw new Error()
- }
- index++;
- }
- function parseOperator (operator) {
- var t = token();
- if (t && t.type === 'OPERATOR' && operator === t.string) {
- next();
- return t.string
- }
- }
- function parseWith () {
- if (parseOperator('WITH')) {
- var t = token();
- if (t && t.type === 'EXCEPTION') {
- next();
- return t.string
- }
- throw new Error('Expected exception after `WITH`')
- }
- }
- function parseLicenseRef () {
- var begin = index;
- var string = '';
- var t = token();
- if (t.type === 'DOCUMENTREF') {
- next();
- string += 'DocumentRef-' + t.string + ':';
- if (!parseOperator(':')) {
- throw new Error('Expected `:` after `DocumentRef-...`')
- }
- }
- t = token();
- if (t.type === 'LICENSEREF') {
- next();
- string += 'LicenseRef-' + t.string;
- return { license: string }
- }
- index = begin;
- }
- function parseLicense () {
- var t = token();
- if (t && t.type === 'LICENSE') {
- next();
- var node = { license: t.string };
- if (parseOperator('+')) {
- node.plus = true;
- }
- var exception = parseWith();
- if (exception) {
- node.exception = exception;
- }
- return node
- }
- }
- function parseParenthesizedExpression () {
- var left = parseOperator('(');
- if (!left) {
- return
- }
- var expr = parseExpression();
- if (!parseOperator(')')) {
- throw new Error('Expected `)`')
- }
- return expr
- }
- function parseAtom () {
- return (
- parseParenthesizedExpression() ||
- parseLicenseRef() ||
- parseLicense()
- )
- }
- function makeBinaryOpParser (operator, nextParser) {
- return function parseBinaryOp () {
- var left = nextParser();
- if (!left) {
- return
- }
- if (!parseOperator(operator)) {
- return left
- }
- var right = parseBinaryOp();
- if (!right) {
- throw new Error('Expected expression')
- }
- return {
- left: left,
- conjunction: operator.toLowerCase(),
- right: right
- }
- }
- }
- var parseAnd = makeBinaryOpParser('AND', parseAtom);
- var parseExpression = makeBinaryOpParser('OR', parseAnd);
- var node = parseExpression();
- if (!node || hasMore()) {
- throw new Error('Syntax error')
- }
- return node
- };
- var scan = scan$1;
- var parse$2 = parse$3;
- var spdxExpressionParse = function (source) {
- return parse$2(scan(source))
- };
- var parse$1 = spdxExpressionParse;
- var spdxLicenseIds = require$$1$3;
- function valid (string) {
- try {
- parse$1(string);
- return true
- } catch (error) {
- return false
- }
- }
- function sortTranspositions(a, b) {
- var length = b[0].length - a[0].length;
- if (length !== 0) return length
- return a[0].toUpperCase().localeCompare(b[0].toUpperCase())
- }
- var transpositions = [
- ['APGL', 'AGPL'],
- ['Gpl', 'GPL'],
- ['GLP', 'GPL'],
- ['APL', 'Apache'],
- ['ISD', 'ISC'],
- ['GLP', 'GPL'],
- ['IST', 'ISC'],
- ['Claude', 'Clause'],
- [' or later', '+'],
- [' International', ''],
- ['GNU', 'GPL'],
- ['GUN', 'GPL'],
- ['+', ''],
- ['GNU GPL', 'GPL'],
- ['GNU LGPL', 'LGPL'],
- ['GNU/GPL', 'GPL'],
- ['GNU GLP', 'GPL'],
- ['GNU LESSER GENERAL PUBLIC LICENSE', 'LGPL'],
- ['GNU Lesser General Public License', 'LGPL'],
- ['GNU LESSER GENERAL PUBLIC LICENSE', 'LGPL-2.1'],
- ['GNU Lesser General Public License', 'LGPL-2.1'],
- ['LESSER GENERAL PUBLIC LICENSE', 'LGPL'],
- ['Lesser General Public License', 'LGPL'],
- ['LESSER GENERAL PUBLIC LICENSE', 'LGPL-2.1'],
- ['Lesser General Public License', 'LGPL-2.1'],
- ['GNU General Public License', 'GPL'],
- ['Gnu public license', 'GPL'],
- ['GNU Public License', 'GPL'],
- ['GNU GENERAL PUBLIC LICENSE', 'GPL'],
- ['MTI', 'MIT'],
- ['Mozilla Public License', 'MPL'],
- ['Universal Permissive License', 'UPL'],
- ['WTH', 'WTF'],
- ['WTFGPL', 'WTFPL'],
- ['-License', '']
- ].sort(sortTranspositions);
- var TRANSPOSED = 0;
- var CORRECT = 1;
- var transforms = [
- function (argument) {
- return argument.toUpperCase()
- },
- function (argument) {
- return argument.trim()
- },
- function (argument) {
- return argument.replace(/\./g, '')
- },
- function (argument) {
- return argument.replace(/\s+/g, '')
- },
- function (argument) {
- return argument.replace(/\s+/g, '-')
- },
- function (argument) {
- return argument.replace('v', '-')
- },
- function (argument) {
- return argument.replace(/,?\s*(\d)/, '-$1')
- },
- function (argument) {
- return argument.replace(/,?\s*(\d)/, '-$1.0')
- },
- function (argument) {
- return argument
- .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2')
- },
- function (argument) {
- return argument
- .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0')
- },
- function (argument) {
- return argument[0].toUpperCase() + argument.slice(1)
- },
- function (argument) {
- return argument.replace('/', '-')
- },
- function (argument) {
- return argument
- .replace(/\s*V\s*(\d)/, '-$1')
- .replace(/(\d)$/, '$1.0')
- },
- function (argument) {
- if (argument.indexOf('3.0') !== -1) {
- return argument + '-or-later'
- } else {
- return argument + '-only'
- }
- },
- function (argument) {
- return argument + 'only'
- },
- function (argument) {
- return argument.replace(/(\d)$/, '-$1.0')
- },
- function (argument) {
- return argument.replace(/(-| )?(\d)$/, '-$2-Clause')
- },
- function (argument) {
- return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause')
- },
- function (argument) {
- return argument.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i, 'BSD-3-Clause')
- },
- function (argument) {
- return argument.replace(/\bSimplified(-| )?BSD((-| )License)?/i, 'BSD-2-Clause')
- },
- function (argument) {
- return argument.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i, 'BSD-2-Clause-$1BSD')
- },
- function (argument) {
- return argument.replace(/\bClear(-| )?BSD((-| )License)?/i, 'BSD-3-Clause-Clear')
- },
- function (argument) {
- return argument.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i, 'BSD-4-Clause')
- },
- function (argument) {
- return 'CC-' + argument
- },
- function (argument) {
- return 'CC-' + argument + '-4.0'
- },
- function (argument) {
- return argument
- .replace('Attribution', 'BY')
- .replace('NonCommercial', 'NC')
- .replace('NoDerivatives', 'ND')
- .replace(/ (\d)/, '-$1')
- .replace(/ ?International/, '')
- },
- function (argument) {
- return 'CC-' +
- argument
- .replace('Attribution', 'BY')
- .replace('NonCommercial', 'NC')
- .replace('NoDerivatives', 'ND')
- .replace(/ (\d)/, '-$1')
- .replace(/ ?International/, '') +
- '-4.0'
- }
- ];
- var licensesWithVersions = spdxLicenseIds
- .map(function (id) {
- var match = /^(.*)-\d+\.\d+$/.exec(id);
- return match
- ? [match[0], match[1]]
- : [id, null]
- })
- .reduce(function (objectMap, item) {
- var key = item[1];
- objectMap[key] = objectMap[key] || [];
- objectMap[key].push(item[0]);
- return objectMap
- }, {});
- var licensesWithOneVersion = Object.keys(licensesWithVersions)
- .map(function makeEntries (key) {
- return [key, licensesWithVersions[key]]
- })
- .filter(function identifySoleVersions (item) {
- return (
- item[1].length === 1 &&
- item[0] !== null &&
- item[0] !== 'APL'
- )
- })
- .map(function createLastResorts (item) {
- return [item[0], item[1][0]]
- });
- licensesWithVersions = undefined;
- var lastResorts = [
- ['UNLI', 'Unlicense'],
- ['WTF', 'WTFPL'],
- ['2 CLAUSE', 'BSD-2-Clause'],
- ['2-CLAUSE', 'BSD-2-Clause'],
- ['3 CLAUSE', 'BSD-3-Clause'],
- ['3-CLAUSE', 'BSD-3-Clause'],
- ['AFFERO', 'AGPL-3.0-or-later'],
- ['AGPL', 'AGPL-3.0-or-later'],
- ['APACHE', 'Apache-2.0'],
- ['ARTISTIC', 'Artistic-2.0'],
- ['Affero', 'AGPL-3.0-or-later'],
- ['BEER', 'Beerware'],
- ['BOOST', 'BSL-1.0'],
- ['BSD', 'BSD-2-Clause'],
- ['CDDL', 'CDDL-1.1'],
- ['ECLIPSE', 'EPL-1.0'],
- ['FUCK', 'WTFPL'],
- ['GNU', 'GPL-3.0-or-later'],
- ['LGPL', 'LGPL-3.0-or-later'],
- ['GPLV1', 'GPL-1.0-only'],
- ['GPL-1', 'GPL-1.0-only'],
- ['GPLV2', 'GPL-2.0-only'],
- ['GPL-2', 'GPL-2.0-only'],
- ['GPL', 'GPL-3.0-or-later'],
- ['MIT +NO-FALSE-ATTRIBS', 'MITNFA'],
- ['MIT', 'MIT'],
- ['MPL', 'MPL-2.0'],
- ['X11', 'X11'],
- ['ZLIB', 'Zlib']
- ].concat(licensesWithOneVersion).sort(sortTranspositions);
- var SUBSTRING = 0;
- var IDENTIFIER = 1;
- var validTransformation = function (identifier) {
- for (var i = 0; i < transforms.length; i++) {
- var transformed = transforms[i](identifier).trim();
- if (transformed !== identifier && valid(transformed)) {
- return transformed
- }
- }
- return null
- };
- var validLastResort = function (identifier) {
- var upperCased = identifier.toUpperCase();
- for (var i = 0; i < lastResorts.length; i++) {
- var lastResort = lastResorts[i];
- if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) {
- return lastResort[IDENTIFIER]
- }
- }
- return null
- };
- var anyCorrection = function (identifier, check) {
- for (var i = 0; i < transpositions.length; i++) {
- var transposition = transpositions[i];
- var transposed = transposition[TRANSPOSED];
- if (identifier.indexOf(transposed) > -1) {
- var corrected = identifier.replace(
- transposed,
- transposition[CORRECT]
- );
- var checked = check(corrected);
- if (checked !== null) {
- return checked
- }
- }
- }
- return null
- };
- var spdxCorrect = function (identifier, options) {
- options = options || {};
- var upgrade = options.upgrade === undefined ? true : !!options.upgrade;
- function postprocess (value) {
- return upgrade ? upgradeGPLs(value) : value
- }
- var validArugment = (
- typeof identifier === 'string' &&
- identifier.trim().length !== 0
- );
- if (!validArugment) {
- throw Error('Invalid argument. Expected non-empty string.')
- }
- identifier = identifier.trim();
- if (valid(identifier)) {
- return postprocess(identifier)
- }
- var noPlus = identifier.replace(/\+$/, '').trim();
- if (valid(noPlus)) {
- return postprocess(noPlus)
- }
- var transformed = validTransformation(identifier);
- if (transformed !== null) {
- return postprocess(transformed)
- }
- transformed = anyCorrection(identifier, function (argument) {
- if (valid(argument)) {
- return argument
- }
- return validTransformation(argument)
- });
- if (transformed !== null) {
- return postprocess(transformed)
- }
- transformed = validLastResort(identifier);
- if (transformed !== null) {
- return postprocess(transformed)
- }
- transformed = anyCorrection(identifier, validLastResort);
- if (transformed !== null) {
- return postprocess(transformed)
- }
- return null
- };
- function upgradeGPLs (value) {
- if ([
- 'GPL-1.0', 'LGPL-1.0', 'AGPL-1.0',
- 'GPL-2.0', 'LGPL-2.0', 'AGPL-2.0',
- 'LGPL-2.1'
- ].indexOf(value) !== -1) {
- return value + '-only'
- } else if ([
- 'GPL-1.0+', 'GPL-2.0+', 'GPL-3.0+',
- 'LGPL-2.0+', 'LGPL-2.1+', 'LGPL-3.0+',
- 'AGPL-1.0+', 'AGPL-3.0+'
- ].indexOf(value) !== -1) {
- return value.replace(/\+$/, '-or-later')
- } else if (['GPL-3.0', 'LGPL-3.0', 'AGPL-3.0'].indexOf(value) !== -1) {
- return value + '-or-later'
- } else {
- return value
- }
- }
- var parse = spdxExpressionParse;
- var correct = spdxCorrect;
- var genericWarning = (
- 'license should be ' +
- 'a valid SPDX license expression (without "LicenseRef"), ' +
- '"UNLICENSED", or ' +
- '"SEE LICENSE IN <filename>"'
- );
- var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/;
- function startsWith(prefix, string) {
- return string.slice(0, prefix.length) === prefix;
- }
- function usesLicenseRef(ast) {
- if (ast.hasOwnProperty('license')) {
- var license = ast.license;
- return (
- startsWith('LicenseRef', license) ||
- startsWith('DocumentRef', license)
- );
- } else {
- return (
- usesLicenseRef(ast.left) ||
- usesLicenseRef(ast.right)
- );
- }
- }
- var validateNpmPackageLicense = function(argument) {
- var ast;
- try {
- ast = parse(argument);
- } catch (e) {
- var match;
- if (
- argument === 'UNLICENSED' ||
- argument === 'UNLICENCED'
- ) {
- return {
- validForOldPackages: true,
- validForNewPackages: true,
- unlicensed: true
- };
- } else if (match = fileReferenceRE.exec(argument)) {
- return {
- validForOldPackages: true,
- validForNewPackages: true,
- inFile: match[1]
- };
- } else {
- var result = {
- validForOldPackages: false,
- validForNewPackages: false,
- warnings: [genericWarning]
- };
- if (argument.trim().length !== 0) {
- var corrected = correct(argument);
- if (corrected) {
- result.warnings.push(
- 'license is similar to the valid expression "' + corrected + '"'
- );
- }
- }
- return result;
- }
- }
- if (usesLicenseRef(ast)) {
- return {
- validForNewPackages: false,
- validForOldPackages: false,
- spdx: true,
- warnings: [genericWarning]
- };
- } else {
- return {
- validForNewPackages: true,
- validForOldPackages: true,
- spdx: true
- };
- }
- };
- var commonjs = {};
- Object.defineProperty(commonjs, "__esModule", { value: true });
- commonjs.LRUCache = void 0;
- const perf = typeof performance === 'object' &&
- performance &&
- typeof performance.now === 'function'
- ? performance
- : Date;
- const warned = new Set();
- const PROCESS = (typeof process === 'object' && !!process ? process : {});
- const emitWarning = (msg, type, code, fn) => {
- typeof PROCESS.emitWarning === 'function'
- ? PROCESS.emitWarning(msg, type, code, fn)
- : console.error(`[${code}] ${type}: ${msg}`);
- };
- let AC = globalThis.AbortController;
- let AS = globalThis.AbortSignal;
- if (typeof AC === 'undefined') {
- AS = class AbortSignal {
- onabort;
- _onabort = [];
- reason;
- aborted = false;
- addEventListener(_, fn) {
- this._onabort.push(fn);
- }
- };
- AC = class AbortController {
- constructor() {
- warnACPolyfill();
- }
- signal = new AS();
- abort(reason) {
- if (this.signal.aborted)
- return;
- this.signal.reason = reason;
- this.signal.aborted = true;
- for (const fn of this.signal._onabort) {
- fn(reason);
- }
- this.signal.onabort?.(reason);
- }
- };
- let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';
- const warnACPolyfill = () => {
- if (!printACPolyfillWarning)
- return;
- printACPolyfillWarning = false;
- emitWarning('AbortController is not defined. If using lru-cache in ' +
- 'node 14, load an AbortController polyfill from the ' +
- '`node-abort-controller` package. A minimal polyfill is ' +
- 'provided for use by LRUCache.fetch(), but it should not be ' +
- 'relied upon in other contexts (eg, passing it to other APIs that ' +
- 'use AbortController/AbortSignal might have undesirable effects). ' +
- 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);
- };
- }
- const shouldWarn = (code) => !warned.has(code);
- const isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
- const getUintArray = (max) => !isPosInt(max)
- ? null
- : max <= Math.pow(2, 8)
- ? Uint8Array
- : max <= Math.pow(2, 16)
- ? Uint16Array
- : max <= Math.pow(2, 32)
- ? Uint32Array
- : max <= Number.MAX_SAFE_INTEGER
- ? ZeroArray
- : null;
- class ZeroArray extends Array {
- constructor(size) {
- super(size);
- this.fill(0);
- }
- }
- class Stack {
- heap;
- length;
- static #constructing = false;
- static create(max) {
- const HeapCls = getUintArray(max);
- if (!HeapCls)
- return [];
- Stack.#constructing = true;
- const s = new Stack(max, HeapCls);
- Stack.#constructing = false;
- return s;
- }
- constructor(max, HeapCls) {
- if (!Stack.#constructing) {
- throw new TypeError('instantiate Stack using Stack.create(n)');
- }
- this.heap = new HeapCls(max);
- this.length = 0;
- }
- push(n) {
- this.heap[this.length++] = n;
- }
- pop() {
- return this.heap[--this.length];
- }
- }
- let LRUCache$1 = class LRUCache {
- #max;
- #maxSize;
- #dispose;
- #disposeAfter;
- #fetchMethod;
- ttl;
- ttlResolution;
- ttlAutopurge;
- updateAgeOnGet;
- updateAgeOnHas;
- allowStale;
- noDisposeOnSet;
- noUpdateTTL;
- maxEntrySize;
- sizeCalculation;
- noDeleteOnFetchRejection;
- noDeleteOnStaleGet;
- allowStaleOnFetchAbort;
- allowStaleOnFetchRejection;
- ignoreFetchAbort;
- #size;
- #calculatedSize;
- #keyMap;
- #keyList;
- #valList;
- #next;
- #prev;
- #head;
- #tail;
- #free;
- #disposed;
- #sizes;
- #starts;
- #ttls;
- #hasDispose;
- #hasFetchMethod;
- #hasDisposeAfter;
- static unsafeExposeInternals(c) {
- return {
- starts: c.#starts,
- ttls: c.#ttls,
- sizes: c.#sizes,
- keyMap: c.#keyMap,
- keyList: c.#keyList,
- valList: c.#valList,
- next: c.#next,
- prev: c.#prev,
- get head() {
- return c.#head;
- },
- get tail() {
- return c.#tail;
- },
- free: c.#free,
- isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
- backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),
- moveToTail: (index) => c.#moveToTail(index),
- indexes: (options) => c.#indexes(options),
- rindexes: (options) => c.#rindexes(options),
- isStale: (index) => c.#isStale(index),
- };
- }
- get max() {
- return this.#max;
- }
- get maxSize() {
- return this.#maxSize;
- }
- get calculatedSize() {
- return this.#calculatedSize;
- }
- get size() {
- return this.#size;
- }
- get fetchMethod() {
- return this.#fetchMethod;
- }
- get dispose() {
- return this.#dispose;
- }
- get disposeAfter() {
- return this.#disposeAfter;
- }
- constructor(options) {
- const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;
- if (max !== 0 && !isPosInt(max)) {
- throw new TypeError('max option must be a nonnegative integer');
- }
- const UintArray = max ? getUintArray(max) : Array;
- if (!UintArray) {
- throw new Error('invalid max value: ' + max);
- }
- this.#max = max;
- this.#maxSize = maxSize;
- this.maxEntrySize = maxEntrySize || this.#maxSize;
- this.sizeCalculation = sizeCalculation;
- if (this.sizeCalculation) {
- if (!this.#maxSize && !this.maxEntrySize) {
- throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');
- }
- if (typeof this.sizeCalculation !== 'function') {
- throw new TypeError('sizeCalculation set to non-function');
- }
- }
- if (fetchMethod !== undefined &&
- typeof fetchMethod !== 'function') {
- throw new TypeError('fetchMethod must be a function if specified');
- }
- this.#fetchMethod = fetchMethod;
- this.#hasFetchMethod = !!fetchMethod;
- this.#keyMap = new Map();
- this.#keyList = new Array(max).fill(undefined);
- this.#valList = new Array(max).fill(undefined);
- this.#next = new UintArray(max);
- this.#prev = new UintArray(max);
- this.#head = 0;
- this.#tail = 0;
- this.#free = Stack.create(max);
- this.#size = 0;
- this.#calculatedSize = 0;
- if (typeof dispose === 'function') {
- this.#dispose = dispose;
- }
- if (typeof disposeAfter === 'function') {
- this.#disposeAfter = disposeAfter;
- this.#disposed = [];
- }
- else {
- this.#disposeAfter = undefined;
- this.#disposed = undefined;
- }
- this.#hasDispose = !!this.#dispose;
- this.#hasDisposeAfter = !!this.#disposeAfter;
- this.noDisposeOnSet = !!noDisposeOnSet;
- this.noUpdateTTL = !!noUpdateTTL;
- this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
- this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
- this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
- this.ignoreFetchAbort = !!ignoreFetchAbort;
- if (this.maxEntrySize !== 0) {
- if (this.#maxSize !== 0) {
- if (!isPosInt(this.#maxSize)) {
- throw new TypeError('maxSize must be a positive integer if specified');
- }
- }
- if (!isPosInt(this.maxEntrySize)) {
- throw new TypeError('maxEntrySize must be a positive integer if specified');
- }
- this.#initializeSizeTracking();
- }
- this.allowStale = !!allowStale;
- this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
- this.updateAgeOnGet = !!updateAgeOnGet;
- this.updateAgeOnHas = !!updateAgeOnHas;
- this.ttlResolution =
- isPosInt(ttlResolution) || ttlResolution === 0
- ? ttlResolution
- : 1;
- this.ttlAutopurge = !!ttlAutopurge;
- this.ttl = ttl || 0;
- if (this.ttl) {
- if (!isPosInt(this.ttl)) {
- throw new TypeError('ttl must be a positive integer if specified');
- }
- this.#initializeTTLTracking();
- }
- if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
- throw new TypeError('At least one of max, maxSize, or ttl is required');
- }
- if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
- const code = 'LRU_CACHE_UNBOUNDED';
- if (shouldWarn(code)) {
- warned.add(code);
- const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +
- 'result in unbounded memory consumption.';
- emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);
- }
- }
- }
- getRemainingTTL(key) {
- return this.#keyMap.has(key) ? Infinity : 0;
- }
- #initializeTTLTracking() {
- const ttls = new ZeroArray(this.#max);
- const starts = new ZeroArray(this.#max);
- this.#ttls = ttls;
- this.#starts = starts;
- this.#setItemTTL = (index, ttl, start = perf.now()) => {
- starts[index] = ttl !== 0 ? start : 0;
- ttls[index] = ttl;
- if (ttl !== 0 && this.ttlAutopurge) {
- const t = setTimeout(() => {
- if (this.#isStale(index)) {
- this.delete(this.#keyList[index]);
- }
- }, ttl + 1);
- if (t.unref) {
- t.unref();
- }
- }
- };
- this.#updateItemAge = index => {
- starts[index] = ttls[index] !== 0 ? perf.now() : 0;
- };
- this.#statusTTL = (status, index) => {
- if (ttls[index]) {
- const ttl = ttls[index];
- const start = starts[index];
- if (!ttl || !start)
- return;
- status.ttl = ttl;
- status.start = start;
- status.now = cachedNow || getNow();
- const age = status.now - start;
- status.remainingTTL = ttl - age;
- }
- };
- let cachedNow = 0;
- const getNow = () => {
- const n = perf.now();
- if (this.ttlResolution > 0) {
- cachedNow = n;
- const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);
- if (t.unref) {
- t.unref();
- }
- }
- return n;
- };
- this.getRemainingTTL = key => {
- const index = this.#keyMap.get(key);
- if (index === undefined) {
- return 0;
- }
- const ttl = ttls[index];
- const start = starts[index];
- if (!ttl || !start) {
- return Infinity;
- }
- const age = (cachedNow || getNow()) - start;
- return ttl - age;
- };
- this.#isStale = index => {
- const s = starts[index];
- const t = ttls[index];
- return !!t && !!s && (cachedNow || getNow()) - s > t;
- };
- }
- #updateItemAge = () => { };
- #statusTTL = () => { };
- #setItemTTL = () => { };
- #isStale = () => false;
- #initializeSizeTracking() {
- const sizes = new ZeroArray(this.#max);
- this.#calculatedSize = 0;
- this.#sizes = sizes;
- this.#removeItemSize = index => {
- this.#calculatedSize -= sizes[index];
- sizes[index] = 0;
- };
- this.#requireSize = (k, v, size, sizeCalculation) => {
- if (this.#isBackgroundFetch(v)) {
- return 0;
- }
- if (!isPosInt(size)) {
- if (sizeCalculation) {
- if (typeof sizeCalculation !== 'function') {
- throw new TypeError('sizeCalculation must be a function');
- }
- size = sizeCalculation(v, k);
- if (!isPosInt(size)) {
- throw new TypeError('sizeCalculation return invalid (expect positive integer)');
- }
- }
- else {
- throw new TypeError('invalid size value (must be positive integer). ' +
- 'When maxSize or maxEntrySize is used, sizeCalculation ' +
- 'or size must be set.');
- }
- }
- return size;
- };
- this.#addItemSize = (index, size, status) => {
- sizes[index] = size;
- if (this.#maxSize) {
- const maxSize = this.#maxSize - sizes[index];
- while (this.#calculatedSize > maxSize) {
- this.#evict(true);
- }
- }
- this.#calculatedSize += sizes[index];
- if (status) {
- status.entrySize = size;
- status.totalCalculatedSize = this.#calculatedSize;
- }
- };
- }
- #removeItemSize = _i => { };
- #addItemSize = (_i, _s, _st) => { };
- #requireSize = (_k, _v, size, sizeCalculation) => {
- if (size || sizeCalculation) {
- throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');
- }
- return 0;
- };
- *#indexes({ allowStale = this.allowStale } = {}) {
- if (this.#size) {
- for (let i = this.#tail; true;) {
- if (!this.#isValidIndex(i)) {
- break;
- }
- if (allowStale || !this.#isStale(i)) {
- yield i;
- }
- if (i === this.#head) {
- break;
- }
- else {
- i = this.#prev[i];
- }
- }
- }
- }
- *#rindexes({ allowStale = this.allowStale } = {}) {
- if (this.#size) {
- for (let i = this.#head; true;) {
- if (!this.#isValidIndex(i)) {
- break;
- }
- if (allowStale || !this.#isStale(i)) {
- yield i;
- }
- if (i === this.#tail) {
- break;
- }
- else {
- i = this.#next[i];
- }
- }
- }
- }
- #isValidIndex(index) {
- return (index !== undefined &&
- this.#keyMap.get(this.#keyList[index]) === index);
- }
- *entries() {
- for (const i of this.#indexes()) {
- if (this.#valList[i] !== undefined &&
- this.#keyList[i] !== undefined &&
- !this.#isBackgroundFetch(this.#valList[i])) {
- yield [this.#keyList[i], this.#valList[i]];
- }
- }
- }
- *rentries() {
- for (const i of this.#rindexes()) {
- if (this.#valList[i] !== undefined &&
- this.#keyList[i] !== undefined &&
- !this.#isBackgroundFetch(this.#valList[i])) {
- yield [this.#keyList[i], this.#valList[i]];
- }
- }
- }
- *keys() {
- for (const i of this.#indexes()) {
- const k = this.#keyList[i];
- if (k !== undefined &&
- !this.#isBackgroundFetch(this.#valList[i])) {
- yield k;
- }
- }
- }
- *rkeys() {
- for (const i of this.#rindexes()) {
- const k = this.#keyList[i];
- if (k !== undefined &&
- !this.#isBackgroundFetch(this.#valList[i])) {
- yield k;
- }
- }
- }
- *values() {
- for (const i of this.#indexes()) {
- const v = this.#valList[i];
- if (v !== undefined &&
- !this.#isBackgroundFetch(this.#valList[i])) {
- yield this.#valList[i];
- }
- }
- }
- *rvalues() {
- for (const i of this.#rindexes()) {
- const v = this.#valList[i];
- if (v !== undefined &&
- !this.#isBackgroundFetch(this.#valList[i])) {
- yield this.#valList[i];
- }
- }
- }
- [Symbol.iterator]() {
- return this.entries();
- }
- [Symbol.toStringTag] = 'LRUCache';
- find(fn, getOptions = {}) {
- for (const i of this.#indexes()) {
- const v = this.#valList[i];
- const value = this.#isBackgroundFetch(v)
- ? v.__staleWhileFetching
- : v;
- if (value === undefined)
- continue;
- if (fn(value, this.#keyList[i], this)) {
- return this.get(this.#keyList[i], getOptions);
- }
- }
- }
- forEach(fn, thisp = this) {
- for (const i of this.#indexes()) {
- const v = this.#valList[i];
- const value = this.#isBackgroundFetch(v)
- ? v.__staleWhileFetching
- : v;
- if (value === undefined)
- continue;
- fn.call(thisp, value, this.#keyList[i], this);
- }
- }
- rforEach(fn, thisp = this) {
- for (const i of this.#rindexes()) {
- const v = this.#valList[i];
- const value = this.#isBackgroundFetch(v)
- ? v.__staleWhileFetching
- : v;
- if (value === undefined)
- continue;
- fn.call(thisp, value, this.#keyList[i], this);
- }
- }
- purgeStale() {
- let deleted = false;
- for (const i of this.#rindexes({ allowStale: true })) {
- if (this.#isStale(i)) {
- this.delete(this.#keyList[i]);
- deleted = true;
- }
- }
- return deleted;
- }
- info(key) {
- const i = this.#keyMap.get(key);
- if (i === undefined)
- return undefined;
- const v = this.#valList[i];
- const value = this.#isBackgroundFetch(v)
- ? v.__staleWhileFetching
- : v;
- if (value === undefined)
- return undefined;
- const entry = { value };
- if (this.#ttls && this.#starts) {
- const ttl = this.#ttls[i];
- const start = this.#starts[i];
- if (ttl && start) {
- const remain = ttl - (perf.now() - start);
- entry.ttl = remain;
- entry.start = Date.now();
- }
- }
- if (this.#sizes) {
- entry.size = this.#sizes[i];
- }
- return entry;
- }
- dump() {
- const arr = [];
- for (const i of this.#indexes({ allowStale: true })) {
- const key = this.#keyList[i];
- const v = this.#valList[i];
- const value = this.#isBackgroundFetch(v)
- ? v.__staleWhileFetching
- : v;
- if (value === undefined || key === undefined)
- continue;
- const entry = { value };
- if (this.#ttls && this.#starts) {
- entry.ttl = this.#ttls[i];
- const age = perf.now() - this.#starts[i];
- entry.start = Math.floor(Date.now() - age);
- }
- if (this.#sizes) {
- entry.size = this.#sizes[i];
- }
- arr.unshift([key, entry]);
- }
- return arr;
- }
- load(arr) {
- this.clear();
- for (const [key, entry] of arr) {
- if (entry.start) {
- const age = Date.now() - entry.start;
- entry.start = perf.now() - age;
- }
- this.set(key, entry.value, entry);
- }
- }
- set(k, v, setOptions = {}) {
- if (v === undefined) {
- this.delete(k);
- return this;
- }
- const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;
- let { noUpdateTTL = this.noUpdateTTL } = setOptions;
- const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
- if (this.maxEntrySize && size > this.maxEntrySize) {
- if (status) {
- status.set = 'miss';
- status.maxEntrySizeExceeded = true;
- }
- this.delete(k);
- return this;
- }
- let index = this.#size === 0 ? undefined : this.#keyMap.get(k);
- if (index === undefined) {
- index = (this.#size === 0
- ? this.#tail
- : this.#free.length !== 0
- ? this.#free.pop()
- : this.#size === this.#max
- ? this.#evict(false)
- : this.#size);
- this.#keyList[index] = k;
- this.#valList[index] = v;
- this.#keyMap.set(k, index);
- this.#next[this.#tail] = index;
- this.#prev[index] = this.#tail;
- this.#tail = index;
- this.#size++;
- this.#addItemSize(index, size, status);
- if (status)
- status.set = 'add';
- noUpdateTTL = false;
- }
- else {
- this.#moveToTail(index);
- const oldVal = this.#valList[index];
- if (v !== oldVal) {
- if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
- oldVal.__abortController.abort(new Error('replaced'));
- const { __staleWhileFetching: s } = oldVal;
- if (s !== undefined && !noDisposeOnSet) {
- if (this.#hasDispose) {
- this.#dispose?.(s, k, 'set');
- }
- if (this.#hasDisposeAfter) {
- this.#disposed?.push([s, k, 'set']);
- }
- }
- }
- else if (!noDisposeOnSet) {
- if (this.#hasDispose) {
- this.#dispose?.(oldVal, k, 'set');
- }
- if (this.#hasDisposeAfter) {
- this.#disposed?.push([oldVal, k, 'set']);
- }
- }
- this.#removeItemSize(index);
- this.#addItemSize(index, size, status);
- this.#valList[index] = v;
- if (status) {
- status.set = 'replace';
- const oldValue = oldVal && this.#isBackgroundFetch(oldVal)
- ? oldVal.__staleWhileFetching
- : oldVal;
- if (oldValue !== undefined)
- status.oldValue = oldValue;
- }
- }
- else if (status) {
- status.set = 'update';
- }
- }
- if (ttl !== 0 && !this.#ttls) {
- this.#initializeTTLTracking();
- }
- if (this.#ttls) {
- if (!noUpdateTTL) {
- this.#setItemTTL(index, ttl, start);
- }
- if (status)
- this.#statusTTL(status, index);
- }
- if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
- const dt = this.#disposed;
- let task;
- while ((task = dt?.shift())) {
- this.#disposeAfter?.(...task);
- }
- }
- return this;
- }
- pop() {
- try {
- while (this.#size) {
- const val = this.#valList[this.#head];
- this.#evict(true);
- if (this.#isBackgroundFetch(val)) {
- if (val.__staleWhileFetching) {
- return val.__staleWhileFetching;
- }
- }
- else if (val !== undefined) {
- return val;
- }
- }
- }
- finally {
- if (this.#hasDisposeAfter && this.#disposed) {
- const dt = this.#disposed;
- let task;
- while ((task = dt?.shift())) {
- this.#disposeAfter?.(...task);
- }
- }
- }
- }
- #evict(free) {
- const head = this.#head;
- const k = this.#keyList[head];
- const v = this.#valList[head];
- if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
- v.__abortController.abort(new Error('evicted'));
- }
- else if (this.#hasDispose || this.#hasDisposeAfter) {
- if (this.#hasDispose) {
- this.#dispose?.(v, k, 'evict');
- }
- if (this.#hasDisposeAfter) {
- this.#disposed?.push([v, k, 'evict']);
- }
- }
- this.#removeItemSize(head);
- if (free) {
- this.#keyList[head] = undefined;
- this.#valList[head] = undefined;
- this.#free.push(head);
- }
- if (this.#size === 1) {
- this.#head = this.#tail = 0;
- this.#free.length = 0;
- }
- else {
- this.#head = this.#next[head];
- }
- this.#keyMap.delete(k);
- this.#size--;
- return head;
- }
- has(k, hasOptions = {}) {
- const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
- const index = this.#keyMap.get(k);
- if (index !== undefined) {
- const v = this.#valList[index];
- if (this.#isBackgroundFetch(v) &&
- v.__staleWhileFetching === undefined) {
- return false;
- }
- if (!this.#isStale(index)) {
- if (updateAgeOnHas) {
- this.#updateItemAge(index);
- }
- if (status) {
- status.has = 'hit';
- this.#statusTTL(status, index);
- }
- return true;
- }
- else if (status) {
- status.has = 'stale';
- this.#statusTTL(status, index);
- }
- }
- else if (status) {
- status.has = 'miss';
- }
- return false;
- }
- peek(k, peekOptions = {}) {
- const { allowStale = this.allowStale } = peekOptions;
- const index = this.#keyMap.get(k);
- if (index === undefined ||
- (!allowStale && this.#isStale(index))) {
- return;
- }
- const v = this.#valList[index];
- return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
- }
- #backgroundFetch(k, index, options, context) {
- const v = index === undefined ? undefined : this.#valList[index];
- if (this.#isBackgroundFetch(v)) {
- return v;
- }
- const ac = new AC();
- const { signal } = options;
- signal?.addEventListener('abort', () => ac.abort(signal.reason), {
- signal: ac.signal,
- });
- const fetchOpts = {
- signal: ac.signal,
- options,
- context,
- };
- const cb = (v, updateCache = false) => {
- const { aborted } = ac.signal;
- const ignoreAbort = options.ignoreFetchAbort && v !== undefined;
- if (options.status) {
- if (aborted && !updateCache) {
- options.status.fetchAborted = true;
- options.status.fetchError = ac.signal.reason;
- if (ignoreAbort)
- options.status.fetchAbortIgnored = true;
- }
- else {
- options.status.fetchResolved = true;
- }
- }
- if (aborted && !ignoreAbort && !updateCache) {
- return fetchFail(ac.signal.reason);
- }
- const bf = p;
- if (this.#valList[index] === p) {
- if (v === undefined) {
- if (bf.__staleWhileFetching) {
- this.#valList[index] = bf.__staleWhileFetching;
- }
- else {
- this.delete(k);
- }
- }
- else {
- if (options.status)
- options.status.fetchUpdated = true;
- this.set(k, v, fetchOpts.options);
- }
- }
- return v;
- };
- const eb = (er) => {
- if (options.status) {
- options.status.fetchRejected = true;
- options.status.fetchError = er;
- }
- return fetchFail(er);
- };
- const fetchFail = (er) => {
- const { aborted } = ac.signal;
- const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;
- const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;
- const noDelete = allowStale || options.noDeleteOnFetchRejection;
- const bf = p;
- if (this.#valList[index] === p) {
- const del = !noDelete || bf.__staleWhileFetching === undefined;
- if (del) {
- this.delete(k);
- }
- else if (!allowStaleAborted) {
- this.#valList[index] = bf.__staleWhileFetching;
- }
- }
- if (allowStale) {
- if (options.status && bf.__staleWhileFetching !== undefined) {
- options.status.returnedStale = true;
- }
- return bf.__staleWhileFetching;
- }
- else if (bf.__returned === bf) {
- throw er;
- }
- };
- const pcall = (res, rej) => {
- const fmp = this.#fetchMethod?.(k, v, fetchOpts);
- if (fmp && fmp instanceof Promise) {
- fmp.then(v => res(v === undefined ? undefined : v), rej);
- }
- ac.signal.addEventListener('abort', () => {
- if (!options.ignoreFetchAbort ||
- options.allowStaleOnFetchAbort) {
- res(undefined);
- if (options.allowStaleOnFetchAbort) {
- res = v => cb(v, true);
- }
- }
- });
- };
- if (options.status)
- options.status.fetchDispatched = true;
- const p = new Promise(pcall).then(cb, eb);
- const bf = Object.assign(p, {
- __abortController: ac,
- __staleWhileFetching: v,
- __returned: undefined,
- });
- if (index === undefined) {
- this.set(k, bf, { ...fetchOpts.options, status: undefined });
- index = this.#keyMap.get(k);
- }
- else {
- this.#valList[index] = bf;
- }
- return bf;
- }
- #isBackgroundFetch(p) {
- if (!this.#hasFetchMethod)
- return false;
- const b = p;
- return (!!b &&
- b instanceof Promise &&
- b.hasOwnProperty('__staleWhileFetching') &&
- b.__abortController instanceof AC);
- }
- async fetch(k, fetchOptions = {}) {
- const {
- allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet,
- ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL,
- noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;
- if (!this.#hasFetchMethod) {
- if (status)
- status.fetch = 'get';
- return this.get(k, {
- allowStale,
- updateAgeOnGet,
- noDeleteOnStaleGet,
- status,
- });
- }
- const options = {
- allowStale,
- updateAgeOnGet,
- noDeleteOnStaleGet,
- ttl,
- noDisposeOnSet,
- size,
- sizeCalculation,
- noUpdateTTL,
- noDeleteOnFetchRejection,
- allowStaleOnFetchRejection,
- allowStaleOnFetchAbort,
- ignoreFetchAbort,
- status,
- signal,
- };
- let index = this.#keyMap.get(k);
- if (index === undefined) {
- if (status)
- status.fetch = 'miss';
- const p = this.#backgroundFetch(k, index, options, context);
- return (p.__returned = p);
- }
- else {
- const v = this.#valList[index];
- if (this.#isBackgroundFetch(v)) {
- const stale = allowStale && v.__staleWhileFetching !== undefined;
- if (status) {
- status.fetch = 'inflight';
- if (stale)
- status.returnedStale = true;
- }
- return stale ? v.__staleWhileFetching : (v.__returned = v);
- }
- const isStale = this.#isStale(index);
- if (!forceRefresh && !isStale) {
- if (status)
- status.fetch = 'hit';
- this.#moveToTail(index);
- if (updateAgeOnGet) {
- this.#updateItemAge(index);
- }
- if (status)
- this.#statusTTL(status, index);
- return v;
- }
- const p = this.#backgroundFetch(k, index, options, context);
- const hasStale = p.__staleWhileFetching !== undefined;
- const staleVal = hasStale && allowStale;
- if (status) {
- status.fetch = isStale ? 'stale' : 'refresh';
- if (staleVal && isStale)
- status.returnedStale = true;
- }
- return staleVal ? p.__staleWhileFetching : (p.__returned = p);
- }
- }
- get(k, getOptions = {}) {
- const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;
- const index = this.#keyMap.get(k);
- if (index !== undefined) {
- const value = this.#valList[index];
- const fetching = this.#isBackgroundFetch(value);
- if (status)
- this.#statusTTL(status, index);
- if (this.#isStale(index)) {
- if (status)
- status.get = 'stale';
- if (!fetching) {
- if (!noDeleteOnStaleGet) {
- this.delete(k);
- }
- if (status && allowStale)
- status.returnedStale = true;
- return allowStale ? value : undefined;
- }
- else {
- if (status &&
- allowStale &&
- value.__staleWhileFetching !== undefined) {
- status.returnedStale = true;
- }
- return allowStale ? value.__staleWhileFetching : undefined;
- }
- }
- else {
- if (status)
- status.get = 'hit';
- if (fetching) {
- return value.__staleWhileFetching;
- }
- this.#moveToTail(index);
- if (updateAgeOnGet) {
- this.#updateItemAge(index);
- }
- return value;
- }
- }
- else if (status) {
- status.get = 'miss';
- }
- }
- #connect(p, n) {
- this.#prev[n] = p;
- this.#next[p] = n;
- }
- #moveToTail(index) {
- if (index !== this.#tail) {
- if (index === this.#head) {
- this.#head = this.#next[index];
- }
- else {
- this.#connect(this.#prev[index], this.#next[index]);
- }
- this.#connect(this.#tail, index);
- this.#tail = index;
- }
- }
- delete(k) {
- let deleted = false;
- if (this.#size !== 0) {
- const index = this.#keyMap.get(k);
- if (index !== undefined) {
- deleted = true;
- if (this.#size === 1) {
- this.clear();
- }
- else {
- this.#removeItemSize(index);
- const v = this.#valList[index];
- if (this.#isBackgroundFetch(v)) {
- v.__abortController.abort(new Error('deleted'));
- }
- else if (this.#hasDispose || this.#hasDisposeAfter) {
- if (this.#hasDispose) {
- this.#dispose?.(v, k, 'delete');
- }
- if (this.#hasDisposeAfter) {
- this.#disposed?.push([v, k, 'delete']);
- }
- }
- this.#keyMap.delete(k);
- this.#keyList[index] = undefined;
- this.#valList[index] = undefined;
- if (index === this.#tail) {
- this.#tail = this.#prev[index];
- }
- else if (index === this.#head) {
- this.#head = this.#next[index];
- }
- else {
- const pi = this.#prev[index];
- this.#next[pi] = this.#next[index];
- const ni = this.#next[index];
- this.#prev[ni] = this.#prev[index];
- }
- this.#size--;
- this.#free.push(index);
- }
- }
- }
- if (this.#hasDisposeAfter && this.#disposed?.length) {
- const dt = this.#disposed;
- let task;
- while ((task = dt?.shift())) {
- this.#disposeAfter?.(...task);
- }
- }
- return deleted;
- }
- clear() {
- for (const index of this.#rindexes({ allowStale: true })) {
- const v = this.#valList[index];
- if (this.#isBackgroundFetch(v)) {
- v.__abortController.abort(new Error('deleted'));
- }
- else {
- const k = this.#keyList[index];
- if (this.#hasDispose) {
- this.#dispose?.(v, k, 'delete');
- }
- if (this.#hasDisposeAfter) {
- this.#disposed?.push([v, k, 'delete']);
- }
- }
- }
- this.#keyMap.clear();
- this.#valList.fill(undefined);
- this.#keyList.fill(undefined);
- if (this.#ttls && this.#starts) {
- this.#ttls.fill(0);
- this.#starts.fill(0);
- }
- if (this.#sizes) {
- this.#sizes.fill(0);
- }
- this.#head = 0;
- this.#tail = 0;
- this.#free.length = 0;
- this.#calculatedSize = 0;
- this.#size = 0;
- if (this.#hasDisposeAfter && this.#disposed) {
- const dt = this.#disposed;
- let task;
- while ((task = dt?.shift())) {
- this.#disposeAfter?.(...task);
- }
- }
- }
- };
- commonjs.LRUCache = LRUCache$1;
- const maybeJoin = (...args) => args.every(arg => arg) ? args.join('') : '';
- const maybeEncode = (arg) => arg ? encodeURIComponent(arg) : '';
- const formatHashFragment = (f) => f.toLowerCase().replace(/^\W+|\/|\W+$/g, '').replace(/\W+/g, '-');
- const defaults = {
- sshtemplate: ({ domain, user, project, committish }) =>
- `git@${domain}:${user}/${project}.git${maybeJoin('#', committish)}`,
- sshurltemplate: ({ domain, user, project, committish }) =>
- `git+ssh://git@${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
- edittemplate: ({ domain, user, project, committish, editpath, path }) =>
- `https://${domain}/${user}/${project}${maybeJoin('/', editpath, '/', maybeEncode(committish || 'HEAD'), '/', path)}`,
- browsetemplate: ({ domain, user, project, committish, treepath }) =>
- `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish))}`,
- browsetreetemplate: ({ domain, user, project, committish, treepath, path, fragment, hashformat }) =>
- `https://${domain}/${user}/${project}/${treepath}/${maybeEncode(committish || 'HEAD')}/${path}${maybeJoin('#', hashformat(fragment || ''))}`,
- browseblobtemplate: ({ domain, user, project, committish, blobpath, path, fragment, hashformat }) =>
- `https://${domain}/${user}/${project}/${blobpath}/${maybeEncode(committish || 'HEAD')}/${path}${maybeJoin('#', hashformat(fragment || ''))}`,
- docstemplate: ({ domain, user, project, treepath, committish }) =>
- `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish))}#readme`,
- httpstemplate: ({ auth, domain, user, project, committish }) =>
- `git+https://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
- filetemplate: ({ domain, user, project, committish, path }) =>
- `https://${domain}/${user}/${project}/raw/${maybeEncode(committish || 'HEAD')}/${path}`,
- shortcuttemplate: ({ type, user, project, committish }) =>
- `${type}:${user}/${project}${maybeJoin('#', committish)}`,
- pathtemplate: ({ user, project, committish }) =>
- `${user}/${project}${maybeJoin('#', committish)}`,
- bugstemplate: ({ domain, user, project }) =>
- `https://${domain}/${user}/${project}/issues`,
- hashformat: formatHashFragment,
- };
- const hosts$1 = {};
- hosts$1.github = {
- protocols: ['git:', 'http:', 'git+ssh:', 'git+https:', 'ssh:', 'https:'],
- domain: 'github.com',
- treepath: 'tree',
- blobpath: 'blob',
- editpath: 'edit',
- filetemplate: ({ auth, user, project, committish, path }) =>
- `https://${maybeJoin(auth, '@')}raw.githubusercontent.com/${user}/${project}/${maybeEncode(committish || 'HEAD')}/${path}`,
- gittemplate: ({ auth, domain, user, project, committish }) =>
- `git://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
- tarballtemplate: ({ domain, user, project, committish }) =>
- `https://codeload.${domain}/${user}/${project}/tar.gz/${maybeEncode(committish || 'HEAD')}`,
- extract: (url) => {
- let [, user, project, type, committish] = url.pathname.split('/', 5);
- if (type && type !== 'tree') {
- return
- }
- if (!type) {
- committish = url.hash.slice(1);
- }
- if (project && project.endsWith('.git')) {
- project = project.slice(0, -4);
- }
- if (!user || !project) {
- return
- }
- return { user, project, committish }
- },
- };
- hosts$1.bitbucket = {
- protocols: ['git+ssh:', 'git+https:', 'ssh:', 'https:'],
- domain: 'bitbucket.org',
- treepath: 'src',
- blobpath: 'src',
- editpath: '?mode=edit',
- edittemplate: ({ domain, user, project, committish, treepath, path, editpath }) =>
- `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish || 'HEAD'), '/', path, editpath)}`,
- tarballtemplate: ({ domain, user, project, committish }) =>
- `https://${domain}/${user}/${project}/get/${maybeEncode(committish || 'HEAD')}.tar.gz`,
- extract: (url) => {
- let [, user, project, aux] = url.pathname.split('/', 4);
- if (['get'].includes(aux)) {
- return
- }
- if (project && project.endsWith('.git')) {
- project = project.slice(0, -4);
- }
- if (!user || !project) {
- return
- }
- return { user, project, committish: url.hash.slice(1) }
- },
- };
- hosts$1.gitlab = {
- protocols: ['git+ssh:', 'git+https:', 'ssh:', 'https:'],
- domain: 'gitlab.com',
- treepath: 'tree',
- blobpath: 'tree',
- editpath: '-/edit',
- httpstemplate: ({ auth, domain, user, project, committish }) =>
- `git+https://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
- tarballtemplate: ({ domain, user, project, committish }) =>
- `https://${domain}/${user}/${project}/repository/archive.tar.gz?ref=${maybeEncode(committish || 'HEAD')}`,
- extract: (url) => {
- const path = url.pathname.slice(1);
- if (path.includes('/-/') || path.includes('/archive.tar.gz')) {
- return
- }
- const segments = path.split('/');
- let project = segments.pop();
- if (project.endsWith('.git')) {
- project = project.slice(0, -4);
- }
- const user = segments.join('/');
- if (!user || !project) {
- return
- }
- return { user, project, committish: url.hash.slice(1) }
- },
- };
- hosts$1.gist = {
- protocols: ['git:', 'git+ssh:', 'git+https:', 'ssh:', 'https:'],
- domain: 'gist.github.com',
- editpath: 'edit',
- sshtemplate: ({ domain, project, committish }) =>
- `git@${domain}:${project}.git${maybeJoin('#', committish)}`,
- sshurltemplate: ({ domain, project, committish }) =>
- `git+ssh://git@${domain}/${project}.git${maybeJoin('#', committish)}`,
- edittemplate: ({ domain, user, project, committish, editpath }) =>
- `https://${domain}/${user}/${project}${maybeJoin('/', maybeEncode(committish))}/${editpath}`,
- browsetemplate: ({ domain, project, committish }) =>
- `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}`,
- browsetreetemplate: ({ domain, project, committish, path, hashformat }) =>
- `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}${maybeJoin('#', hashformat(path))}`,
- browseblobtemplate: ({ domain, project, committish, path, hashformat }) =>
- `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}${maybeJoin('#', hashformat(path))}`,
- docstemplate: ({ domain, project, committish }) =>
- `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}`,
- httpstemplate: ({ domain, project, committish }) =>
- `git+https://${domain}/${project}.git${maybeJoin('#', committish)}`,
- filetemplate: ({ user, project, committish, path }) =>
- `https://gist.githubusercontent.com/${user}/${project}/raw${maybeJoin('/', maybeEncode(committish))}/${path}`,
- shortcuttemplate: ({ type, project, committish }) =>
- `${type}:${project}${maybeJoin('#', committish)}`,
- pathtemplate: ({ project, committish }) =>
- `${project}${maybeJoin('#', committish)}`,
- bugstemplate: ({ domain, project }) =>
- `https://${domain}/${project}`,
- gittemplate: ({ domain, project, committish }) =>
- `git://${domain}/${project}.git${maybeJoin('#', committish)}`,
- tarballtemplate: ({ project, committish }) =>
- `https://codeload.github.com/gist/${project}/tar.gz/${maybeEncode(committish || 'HEAD')}`,
- extract: (url) => {
- let [, user, project, aux] = url.pathname.split('/', 4);
- if (aux === 'raw') {
- return
- }
- if (!project) {
- if (!user) {
- return
- }
- project = user;
- user = null;
- }
- if (project.endsWith('.git')) {
- project = project.slice(0, -4);
- }
- return { user, project, committish: url.hash.slice(1) }
- },
- hashformat: function (fragment) {
- return fragment && 'file-' + formatHashFragment(fragment)
- },
- };
- hosts$1.sourcehut = {
- protocols: ['git+ssh:', 'https:'],
- domain: 'git.sr.ht',
- treepath: 'tree',
- blobpath: 'tree',
- filetemplate: ({ domain, user, project, committish, path }) =>
- `https://${domain}/${user}/${project}/blob/${maybeEncode(committish) || 'HEAD'}/${path}`,
- httpstemplate: ({ domain, user, project, committish }) =>
- `https://${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
- tarballtemplate: ({ domain, user, project, committish }) =>
- `https://${domain}/${user}/${project}/archive/${maybeEncode(committish) || 'HEAD'}.tar.gz`,
- bugstemplate: ({ user, project }) => null,
- extract: (url) => {
- let [, user, project, aux] = url.pathname.split('/', 4);
- if (['archive'].includes(aux)) {
- return
- }
- if (project && project.endsWith('.git')) {
- project = project.slice(0, -4);
- }
- if (!user || !project) {
- return
- }
- return { user, project, committish: url.hash.slice(1) }
- },
- };
- for (const [name, host] of Object.entries(hosts$1)) {
- hosts$1[name] = Object.assign({}, defaults, host);
- }
- var hosts_1 = hosts$1;
- const url$2 = require$$0;
- const lastIndexOfBefore = (str, char, beforeChar) => {
- const startPosition = str.indexOf(beforeChar);
- return str.lastIndexOf(char, startPosition > -1 ? startPosition : Infinity)
- };
- const safeUrl = (u) => {
- try {
- return new url$2.URL(u)
- } catch {
- }
- };
- const correctProtocol = (arg, protocols) => {
- const firstColon = arg.indexOf(':');
- const proto = arg.slice(0, firstColon + 1);
- if (Object.prototype.hasOwnProperty.call(protocols, proto)) {
- return arg
- }
- const firstAt = arg.indexOf('@');
- if (firstAt > -1) {
- if (firstAt > firstColon) {
- return `git+ssh://${arg}`
- } else {
- return arg
- }
- }
- const doubleSlash = arg.indexOf('//');
- if (doubleSlash === firstColon + 1) {
- return arg
- }
- return `${arg.slice(0, firstColon + 1)}//${arg.slice(firstColon + 1)}`
- };
- const correctUrl = (giturl) => {
- const firstAt = lastIndexOfBefore(giturl, '@', '#');
- const lastColonBeforeHash = lastIndexOfBefore(giturl, ':', '#');
- if (lastColonBeforeHash > firstAt) {
- giturl = giturl.slice(0, lastColonBeforeHash) + '/' + giturl.slice(lastColonBeforeHash + 1);
- }
- if (lastIndexOfBefore(giturl, ':', '#') === -1 && giturl.indexOf('//') === -1) {
- giturl = `git+ssh://${giturl}`;
- }
- return giturl
- };
- var parseUrl$2 = (giturl, protocols) => {
- const withProtocol = protocols ? correctProtocol(giturl, protocols) : giturl;
- return safeUrl(withProtocol) || safeUrl(correctUrl(withProtocol))
- };
- const parseUrl$1 = parseUrl$2;
- const isGitHubShorthand = (arg) => {
- const firstHash = arg.indexOf('#');
- const firstSlash = arg.indexOf('/');
- const secondSlash = arg.indexOf('/', firstSlash + 1);
- const firstColon = arg.indexOf(':');
- const firstSpace = /\s/.exec(arg);
- const firstAt = arg.indexOf('@');
- const spaceOnlyAfterHash = !firstSpace || (firstHash > -1 && firstSpace.index > firstHash);
- const atOnlyAfterHash = firstAt === -1 || (firstHash > -1 && firstAt > firstHash);
- const colonOnlyAfterHash = firstColon === -1 || (firstHash > -1 && firstColon > firstHash);
- const secondSlashOnlyAfterHash = secondSlash === -1 || (firstHash > -1 && secondSlash > firstHash);
- const hasSlash = firstSlash > 0;
- const doesNotEndWithSlash = firstHash > -1 ? arg[firstHash - 1] !== '/' : !arg.endsWith('/');
- const doesNotStartWithDot = !arg.startsWith('.');
- return spaceOnlyAfterHash && hasSlash && doesNotEndWithSlash &&
- doesNotStartWithDot && atOnlyAfterHash && colonOnlyAfterHash &&
- secondSlashOnlyAfterHash
- };
- var fromUrl$1 = (giturl, opts, { gitHosts, protocols }) => {
- if (!giturl) {
- return
- }
- const correctedUrl = isGitHubShorthand(giturl) ? `github:${giturl}` : giturl;
- const parsed = parseUrl$1(correctedUrl, protocols);
- if (!parsed) {
- return
- }
- const gitHostShortcut = gitHosts.byShortcut[parsed.protocol];
- const gitHostDomain = gitHosts.byDomain[parsed.hostname.startsWith('www.')
- ? parsed.hostname.slice(4)
- : parsed.hostname];
- const gitHostName = gitHostShortcut || gitHostDomain;
- if (!gitHostName) {
- return
- }
- const gitHostInfo = gitHosts[gitHostShortcut || gitHostDomain];
- let auth = null;
- if (protocols[parsed.protocol]?.auth && (parsed.username || parsed.password)) {
- auth = `${parsed.username}${parsed.password ? ':' + parsed.password : ''}`;
- }
- let committish = null;
- let user = null;
- let project = null;
- let defaultRepresentation = null;
- try {
- if (gitHostShortcut) {
- let pathname = parsed.pathname.startsWith('/') ? parsed.pathname.slice(1) : parsed.pathname;
- const firstAt = pathname.indexOf('@');
- if (firstAt > -1) {
- pathname = pathname.slice(firstAt + 1);
- }
- const lastSlash = pathname.lastIndexOf('/');
- if (lastSlash > -1) {
- user = decodeURIComponent(pathname.slice(0, lastSlash));
- if (!user) {
- user = null;
- }
- project = decodeURIComponent(pathname.slice(lastSlash + 1));
- } else {
- project = decodeURIComponent(pathname);
- }
- if (project.endsWith('.git')) {
- project = project.slice(0, -4);
- }
- if (parsed.hash) {
- committish = decodeURIComponent(parsed.hash.slice(1));
- }
- defaultRepresentation = 'shortcut';
- } else {
- if (!gitHostInfo.protocols.includes(parsed.protocol)) {
- return
- }
- const segments = gitHostInfo.extract(parsed);
- if (!segments) {
- return
- }
- user = segments.user && decodeURIComponent(segments.user);
- project = decodeURIComponent(segments.project);
- committish = decodeURIComponent(segments.committish);
- defaultRepresentation = protocols[parsed.protocol]?.name || parsed.protocol.slice(0, -1);
- }
- } catch (err) {
- if (err instanceof URIError) {
- return
- } else {
- throw err
- }
- }
- return [gitHostName, user, auth, project, committish, defaultRepresentation, opts]
- };
- const { LRUCache } = commonjs;
- const hosts = hosts_1;
- const fromUrl = fromUrl$1;
- const parseUrl = parseUrl$2;
- const cache$1 = new LRUCache({ max: 1000 });
- class GitHost {
- constructor (type, user, auth, project, committish, defaultRepresentation, opts = {}) {
- Object.assign(this, GitHost.#gitHosts[type], {
- type,
- user,
- auth,
- project,
- committish,
- default: defaultRepresentation,
- opts,
- });
- }
- static #gitHosts = { byShortcut: {}, byDomain: {} }
- static #protocols = {
- 'git+ssh:': { name: 'sshurl' },
- 'ssh:': { name: 'sshurl' },
- 'git+https:': { name: 'https', auth: true },
- 'git:': { auth: true },
- 'http:': { auth: true },
- 'https:': { auth: true },
- 'git+http:': { auth: true },
- }
- static addHost (name, host) {
- GitHost.#gitHosts[name] = host;
- GitHost.#gitHosts.byDomain[host.domain] = name;
- GitHost.#gitHosts.byShortcut[`${name}:`] = name;
- GitHost.#protocols[`${name}:`] = { name };
- }
- static fromUrl (giturl, opts) {
- if (typeof giturl !== 'string') {
- return
- }
- const key = giturl + JSON.stringify(opts || {});
- if (!cache$1.has(key)) {
- const hostArgs = fromUrl(giturl, opts, {
- gitHosts: GitHost.#gitHosts,
- protocols: GitHost.#protocols,
- });
- cache$1.set(key, hostArgs ? new GitHost(...hostArgs) : undefined);
- }
- return cache$1.get(key)
- }
- static parseUrl (url) {
- return parseUrl(url)
- }
- #fill (template, opts) {
- if (typeof template !== 'function') {
- return null
- }
- const options = { ...this, ...this.opts, ...opts };
- if (!options.path) {
- options.path = '';
- }
- if (options.path.startsWith('/')) {
- options.path = options.path.slice(1);
- }
- if (options.noCommittish) {
- options.committish = null;
- }
- const result = template(options);
- return options.noGitPlus && result.startsWith('git+') ? result.slice(4) : result
- }
- hash () {
- return this.committish ? `#${this.committish}` : ''
- }
- ssh (opts) {
- return this.#fill(this.sshtemplate, opts)
- }
- sshurl (opts) {
- return this.#fill(this.sshurltemplate, opts)
- }
- browse (path, ...args) {
- if (typeof path !== 'string') {
- return this.#fill(this.browsetemplate, path)
- }
- if (typeof args[0] !== 'string') {
- return this.#fill(this.browsetreetemplate, { ...args[0], path })
- }
- return this.#fill(this.browsetreetemplate, { ...args[1], fragment: args[0], path })
- }
- browseFile (path, ...args) {
- if (typeof args[0] !== 'string') {
- return this.#fill(this.browseblobtemplate, { ...args[0], path })
- }
- return this.#fill(this.browseblobtemplate, { ...args[1], fragment: args[0], path })
- }
- docs (opts) {
- return this.#fill(this.docstemplate, opts)
- }
- bugs (opts) {
- return this.#fill(this.bugstemplate, opts)
- }
- https (opts) {
- return this.#fill(this.httpstemplate, opts)
- }
- git (opts) {
- return this.#fill(this.gittemplate, opts)
- }
- shortcut (opts) {
- return this.#fill(this.shortcuttemplate, opts)
- }
- path (opts) {
- return this.#fill(this.pathtemplate, opts)
- }
- tarball (opts) {
- return this.#fill(this.tarballtemplate, { ...opts, noCommittish: false })
- }
- file (path, opts) {
- return this.#fill(this.filetemplate, { ...opts, path })
- }
- edit (path, opts) {
- return this.#fill(this.edittemplate, { ...opts, path })
- }
- getDefaultRepresentation () {
- return this.default
- }
- toString (opts) {
- if (this.default && typeof this[this.default] === 'function') {
- return this[this.default](opts)
- }
- return this.sshurl(opts)
- }
- }
- for (const [name, host] of Object.entries(hosts)) {
- GitHost.addHost(name, host);
- }
- var lib$3 = GitHost;
- var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
- var toStr = Object.prototype.toString;
- var max = Math.max;
- var funcType = '[object Function]';
- var concatty = function concatty(a, b) {
- var arr = [];
- for (var i = 0; i < a.length; i += 1) {
- arr[i] = a[i];
- }
- for (var j = 0; j < b.length; j += 1) {
- arr[j + a.length] = b[j];
- }
- return arr;
- };
- var slicy = function slicy(arrLike, offset) {
- var arr = [];
- for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
- arr[j] = arrLike[i];
- }
- return arr;
- };
- var joiny = function (arr, joiner) {
- var str = '';
- for (var i = 0; i < arr.length; i += 1) {
- str += arr[i];
- if (i + 1 < arr.length) {
- str += joiner;
- }
- }
- return str;
- };
- var implementation$1 = function bind(that) {
- var target = this;
- if (typeof target !== 'function' || toStr.apply(target) !== funcType) {
- throw new TypeError(ERROR_MESSAGE + target);
- }
- var args = slicy(arguments, 1);
- var bound;
- var binder = function () {
- if (this instanceof bound) {
- var result = target.apply(
- this,
- concatty(args, arguments)
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
- }
- return target.apply(
- that,
- concatty(args, arguments)
- );
- };
- var boundLength = max(0, target.length - args.length);
- var boundArgs = [];
- for (var i = 0; i < boundLength; i++) {
- boundArgs[i] = '$' + i;
- }
- bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);
- if (target.prototype) {
- var Empty = function Empty() {};
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
- var implementation = implementation$1;
- var functionBind = Function.prototype.bind || implementation;
- var call = Function.prototype.call;
- var $hasOwn = Object.prototype.hasOwnProperty;
- var bind = functionBind;
- var hasown = bind.call(call, $hasOwn);
- var assert = true;
- var async_hooks = ">= 8";
- var buffer_ieee754 = ">= 0.5 && < 0.9.7";
- var buffer = true;
- var child_process = true;
- var cluster = ">= 0.5";
- var console$1 = true;
- var constants = true;
- var crypto = true;
- var _debug_agent = ">= 1 && < 8";
- var _debugger = "< 8";
- var dgram = true;
- var diagnostics_channel = [
- ">= 14.17 && < 15",
- ">= 15.1"
- ];
- var dns = true;
- var domain = ">= 0.7.12";
- var events = true;
- var freelist = "< 6";
- var fs = true;
- var _http_agent = ">= 0.11.1";
- var _http_client = ">= 0.11.1";
- var _http_common = ">= 0.11.1";
- var _http_incoming = ">= 0.11.1";
- var _http_outgoing = ">= 0.11.1";
- var _http_server = ">= 0.11.1";
- var http = true;
- var http2 = ">= 8.8";
- var https = true;
- var inspector = ">= 8";
- var _linklist = "< 8";
- var module = true;
- var net = true;
- var os$2 = true;
- var path = true;
- var perf_hooks = ">= 8.5";
- var process$1 = ">= 1";
- var punycode = ">= 0.5";
- var querystring = true;
- var readline = true;
- var repl = true;
- var smalloc = ">= 0.11.5 && < 3";
- var _stream_duplex = ">= 0.9.4";
- var _stream_transform = ">= 0.9.4";
- var _stream_wrap = ">= 1.4.1";
- var _stream_passthrough = ">= 0.9.4";
- var _stream_readable = ">= 0.9.4";
- var _stream_writable = ">= 0.9.4";
- var stream = true;
- var string_decoder = true;
- var sys = [
- ">= 0.4 && < 0.7",
- ">= 0.8"
- ];
- var timers = true;
- var _tls_common = ">= 0.11.13";
- var _tls_legacy = ">= 0.11.3 && < 10";
- var _tls_wrap = ">= 0.11.3";
- var tls = true;
- var trace_events = ">= 10";
- var tty = true;
- var url$1 = true;
- var util$1 = true;
- var v8 = ">= 1";
- var vm = true;
- var wasi = [
- ">= 13.4 && < 13.5",
- ">= 18.17 && < 19",
- ">= 20"
- ];
- var worker_threads = ">= 11.7";
- var zlib = ">= 0.5";
- const require$$1$1 = {
- assert: assert,
- "node:assert": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "assert/strict": ">= 15",
- "node:assert/strict": ">= 16",
- async_hooks: async_hooks,
- "node:async_hooks": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- buffer_ieee754: buffer_ieee754,
- buffer: buffer,
- "node:buffer": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- child_process: child_process,
- "node:child_process": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- cluster: cluster,
- "node:cluster": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- console: console$1,
- "node:console": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- constants: constants,
- "node:constants": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- crypto: crypto,
- "node:crypto": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _debug_agent: _debug_agent,
- _debugger: _debugger,
- dgram: dgram,
- "node:dgram": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- diagnostics_channel: diagnostics_channel,
- "node:diagnostics_channel": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- dns: dns,
- "node:dns": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "dns/promises": ">= 15",
- "node:dns/promises": ">= 16",
- domain: domain,
- "node:domain": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- events: events,
- "node:events": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- freelist: freelist,
- fs: fs,
- "node:fs": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "fs/promises": [
- ">= 10 && < 10.1",
- ">= 14"
- ],
- "node:fs/promises": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _http_agent: _http_agent,
- "node:_http_agent": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _http_client: _http_client,
- "node:_http_client": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _http_common: _http_common,
- "node:_http_common": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _http_incoming: _http_incoming,
- "node:_http_incoming": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _http_outgoing: _http_outgoing,
- "node:_http_outgoing": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _http_server: _http_server,
- "node:_http_server": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- http: http,
- "node:http": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- http2: http2,
- "node:http2": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- https: https,
- "node:https": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- inspector: inspector,
- "node:inspector": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "inspector/promises": [
- ">= 19"
- ],
- "node:inspector/promises": [
- ">= 19"
- ],
- _linklist: _linklist,
- module: module,
- "node:module": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- net: net,
- "node:net": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "node-inspect/lib/_inspect": ">= 7.6 && < 12",
- "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12",
- "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12",
- os: os$2,
- "node:os": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- path: path,
- "node:path": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "path/posix": ">= 15.3",
- "node:path/posix": ">= 16",
- "path/win32": ">= 15.3",
- "node:path/win32": ">= 16",
- perf_hooks: perf_hooks,
- "node:perf_hooks": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- process: process$1,
- "node:process": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- punycode: punycode,
- "node:punycode": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- querystring: querystring,
- "node:querystring": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- readline: readline,
- "node:readline": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "readline/promises": ">= 17",
- "node:readline/promises": ">= 17",
- repl: repl,
- "node:repl": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- smalloc: smalloc,
- _stream_duplex: _stream_duplex,
- "node:_stream_duplex": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _stream_transform: _stream_transform,
- "node:_stream_transform": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _stream_wrap: _stream_wrap,
- "node:_stream_wrap": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _stream_passthrough: _stream_passthrough,
- "node:_stream_passthrough": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _stream_readable: _stream_readable,
- "node:_stream_readable": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _stream_writable: _stream_writable,
- "node:_stream_writable": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- stream: stream,
- "node:stream": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "stream/consumers": ">= 16.7",
- "node:stream/consumers": ">= 16.7",
- "stream/promises": ">= 15",
- "node:stream/promises": ">= 16",
- "stream/web": ">= 16.5",
- "node:stream/web": ">= 16.5",
- string_decoder: string_decoder,
- "node:string_decoder": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- sys: sys,
- "node:sys": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "test/reporters": ">= 19.9 && < 20.2",
- "node:test/reporters": [
- ">= 18.17 && < 19",
- ">= 19.9",
- ">= 20"
- ],
- "node:test": [
- ">= 16.17 && < 17",
- ">= 18"
- ],
- timers: timers,
- "node:timers": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "timers/promises": ">= 15",
- "node:timers/promises": ">= 16",
- _tls_common: _tls_common,
- "node:_tls_common": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- _tls_legacy: _tls_legacy,
- _tls_wrap: _tls_wrap,
- "node:_tls_wrap": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- tls: tls,
- "node:tls": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- trace_events: trace_events,
- "node:trace_events": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- tty: tty,
- "node:tty": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- url: url$1,
- "node:url": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- util: util$1,
- "node:util": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- "util/types": ">= 15.3",
- "node:util/types": ">= 16",
- "v8/tools/arguments": ">= 10 && < 12",
- "v8/tools/codemap": [
- ">= 4.4 && < 5",
- ">= 5.2 && < 12"
- ],
- "v8/tools/consarray": [
- ">= 4.4 && < 5",
- ">= 5.2 && < 12"
- ],
- "v8/tools/csvparser": [
- ">= 4.4 && < 5",
- ">= 5.2 && < 12"
- ],
- "v8/tools/logreader": [
- ">= 4.4 && < 5",
- ">= 5.2 && < 12"
- ],
- "v8/tools/profile_view": [
- ">= 4.4 && < 5",
- ">= 5.2 && < 12"
- ],
- "v8/tools/splaytree": [
- ">= 4.4 && < 5",
- ">= 5.2 && < 12"
- ],
- v8: v8,
- "node:v8": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- vm: vm,
- "node:vm": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- wasi: wasi,
- "node:wasi": [
- ">= 18.17 && < 19",
- ">= 20"
- ],
- worker_threads: worker_threads,
- "node:worker_threads": [
- ">= 14.18 && < 15",
- ">= 16"
- ],
- zlib: zlib,
- "node:zlib": [
- ">= 14.18 && < 15",
- ">= 16"
- ]
- };
- var hasOwn = hasown;
- function specifierIncluded(current, specifier) {
- var nodeParts = current.split('.');
- var parts = specifier.split(' ');
- var op = parts.length > 1 ? parts[0] : '=';
- var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.');
- for (var i = 0; i < 3; ++i) {
- var cur = parseInt(nodeParts[i] || 0, 10);
- var ver = parseInt(versionParts[i] || 0, 10);
- if (cur === ver) {
- continue;
- }
- if (op === '<') {
- return cur < ver;
- }
- if (op === '>=') {
- return cur >= ver;
- }
- return false;
- }
- return op === '>=';
- }
- function matchesRange(current, range) {
- var specifiers = range.split(/ ?&& ?/);
- if (specifiers.length === 0) {
- return false;
- }
- for (var i = 0; i < specifiers.length; ++i) {
- if (!specifierIncluded(current, specifiers[i])) {
- return false;
- }
- }
- return true;
- }
- function versionIncluded(nodeVersion, specifierValue) {
- if (typeof specifierValue === 'boolean') {
- return specifierValue;
- }
- var current = typeof nodeVersion === 'undefined'
- ? process.versions && process.versions.node
- : nodeVersion;
- if (typeof current !== 'string') {
- throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required');
- }
- if (specifierValue && typeof specifierValue === 'object') {
- for (var i = 0; i < specifierValue.length; ++i) {
- if (matchesRange(current, specifierValue[i])) {
- return true;
- }
- }
- return false;
- }
- return matchesRange(current, specifierValue);
- }
- var data = require$$1$1;
- var isCoreModule = function isCore(x, nodeVersion) {
- return hasOwn(data, x) && versionIncluded(nodeVersion, data[x]);
- };
- var extract_description = extractDescription$1;
- function extractDescription$1 (d) {
- if (!d) {
- return
- }
- if (d === 'ERROR: No README data found!') {
- return
- }
- d = d.trim().split('\n');
- let s = 0;
- while (d[s] && d[s].trim().match(/^(#|$)/)) {
- s++;
- }
- const l = d.length;
- let e = s + 1;
- while (e < l && d[e].trim()) {
- e++;
- }
- return d.slice(s, e).join(' ').trim()
- }
- var topLevel = {
- dependancies: "dependencies",
- dependecies: "dependencies",
- depdenencies: "dependencies",
- devEependencies: "devDependencies",
- depends: "dependencies",
- "dev-dependencies": "devDependencies",
- devDependences: "devDependencies",
- devDepenencies: "devDependencies",
- devdependencies: "devDependencies",
- repostitory: "repository",
- repo: "repository",
- prefereGlobal: "preferGlobal",
- hompage: "homepage",
- hampage: "homepage",
- autohr: "author",
- autor: "author",
- contributers: "contributors",
- publicationConfig: "publishConfig",
- script: "scripts"
- };
- var bugs = {
- web: "url",
- name: "url"
- };
- var script = {
- server: "start",
- tests: "test"
- };
- const require$$7 = {
- topLevel: topLevel,
- bugs: bugs,
- script: script
- };
- var isValidSemver = valid_1;
- var cleanSemver = clean_1;
- var validateLicense = validateNpmPackageLicense;
- var hostedGitInfo = lib$3;
- var isBuiltinModule = isCoreModule;
- var depTypes = ['dependencies', 'devDependencies', 'optionalDependencies'];
- var extractDescription = extract_description;
- var url = require$$0;
- var typos = require$$7;
- var isEmail = str => str.includes('@') && (str.indexOf('@') < str.lastIndexOf('.'));
- var fixer$1 = {
- warn: function () {},
- fixRepositoryField: function (data) {
- if (data.repositories) {
- this.warn('repositories');
- data.repository = data.repositories[0];
- }
- if (!data.repository) {
- return this.warn('missingRepository')
- }
- if (typeof data.repository === 'string') {
- data.repository = {
- type: 'git',
- url: data.repository,
- };
- }
- var r = data.repository.url || '';
- if (r) {
- var hosted = hostedGitInfo.fromUrl(r);
- if (hosted) {
- r = data.repository.url
- = hosted.getDefaultRepresentation() === 'shortcut' ? hosted.https() : hosted.toString();
- }
- }
- if (r.match(/github.com\/[^/]+\/[^/]+\.git\.git$/)) {
- this.warn('brokenGitUrl', r);
- }
- },
- fixTypos: function (data) {
- Object.keys(typos.topLevel).forEach(function (d) {
- if (Object.prototype.hasOwnProperty.call(data, d)) {
- this.warn('typo', d, typos.topLevel[d]);
- }
- }, this);
- },
- fixScriptsField: function (data) {
- if (!data.scripts) {
- return
- }
- if (typeof data.scripts !== 'object') {
- this.warn('nonObjectScripts');
- delete data.scripts;
- return
- }
- Object.keys(data.scripts).forEach(function (k) {
- if (typeof data.scripts[k] !== 'string') {
- this.warn('nonStringScript');
- delete data.scripts[k];
- } else if (typos.script[k] && !data.scripts[typos.script[k]]) {
- this.warn('typo', k, typos.script[k], 'scripts');
- }
- }, this);
- },
- fixFilesField: function (data) {
- var files = data.files;
- if (files && !Array.isArray(files)) {
- this.warn('nonArrayFiles');
- delete data.files;
- } else if (data.files) {
- data.files = data.files.filter(function (file) {
- if (!file || typeof file !== 'string') {
- this.warn('invalidFilename', file);
- return false
- } else {
- return true
- }
- }, this);
- }
- },
- fixBinField: function (data) {
- if (!data.bin) {
- return
- }
- if (typeof data.bin === 'string') {
- var b = {};
- var match;
- if (match = data.name.match(/^@[^/]+[/](.*)$/)) {
- b[match[1]] = data.bin;
- } else {
- b[data.name] = data.bin;
- }
- data.bin = b;
- }
- },
- fixManField: function (data) {
- if (!data.man) {
- return
- }
- if (typeof data.man === 'string') {
- data.man = [data.man];
- }
- },
- fixBundleDependenciesField: function (data) {
- var bdd = 'bundledDependencies';
- var bd = 'bundleDependencies';
- if (data[bdd] && !data[bd]) {
- data[bd] = data[bdd];
- delete data[bdd];
- }
- if (data[bd] && !Array.isArray(data[bd])) {
- this.warn('nonArrayBundleDependencies');
- delete data[bd];
- } else if (data[bd]) {
- data[bd] = data[bd].filter(function (filtered) {
- if (!filtered || typeof filtered !== 'string') {
- this.warn('nonStringBundleDependency', filtered);
- return false
- } else {
- if (!data.dependencies) {
- data.dependencies = {};
- }
- if (!Object.prototype.hasOwnProperty.call(data.dependencies, filtered)) {
- this.warn('nonDependencyBundleDependency', filtered);
- data.dependencies[filtered] = '*';
- }
- return true
- }
- }, this);
- }
- },
- fixDependencies: function (data, strict) {
- objectifyDeps(data, this.warn);
- addOptionalDepsToDeps(data, this.warn);
- this.fixBundleDependenciesField(data)
- ;['dependencies', 'devDependencies'].forEach(function (deps) {
- if (!(deps in data)) {
- return
- }
- if (!data[deps] || typeof data[deps] !== 'object') {
- this.warn('nonObjectDependencies', deps);
- delete data[deps];
- return
- }
- Object.keys(data[deps]).forEach(function (d) {
- var r = data[deps][d];
- if (typeof r !== 'string') {
- this.warn('nonStringDependency', d, JSON.stringify(r));
- delete data[deps][d];
- }
- var hosted = hostedGitInfo.fromUrl(data[deps][d]);
- if (hosted) {
- data[deps][d] = hosted.toString();
- }
- }, this);
- }, this);
- },
- fixModulesField: function (data) {
- if (data.modules) {
- this.warn('deprecatedModules');
- delete data.modules;
- }
- },
- fixKeywordsField: function (data) {
- if (typeof data.keywords === 'string') {
- data.keywords = data.keywords.split(/,\s+/);
- }
- if (data.keywords && !Array.isArray(data.keywords)) {
- delete data.keywords;
- this.warn('nonArrayKeywords');
- } else if (data.keywords) {
- data.keywords = data.keywords.filter(function (kw) {
- if (typeof kw !== 'string' || !kw) {
- this.warn('nonStringKeyword');
- return false
- } else {
- return true
- }
- }, this);
- }
- },
- fixVersionField: function (data, strict) {
- var loose = !strict;
- if (!data.version) {
- data.version = '';
- return true
- }
- if (!isValidSemver(data.version, loose)) {
- throw new Error('Invalid version: "' + data.version + '"')
- }
- data.version = cleanSemver(data.version, loose);
- return true
- },
- fixPeople: function (data) {
- modifyPeople(data, unParsePerson);
- modifyPeople(data, parsePerson);
- },
- fixNameField: function (data, options) {
- if (typeof options === 'boolean') {
- options = { strict: options };
- } else if (typeof options === 'undefined') {
- options = {};
- }
- var strict = options.strict;
- if (!data.name && !strict) {
- data.name = '';
- return
- }
- if (typeof data.name !== 'string') {
- throw new Error('name field must be a string.')
- }
- if (!strict) {
- data.name = data.name.trim();
- }
- ensureValidName(data.name, strict, options.allowLegacyCase);
- if (isBuiltinModule(data.name)) {
- this.warn('conflictingName', data.name);
- }
- },
- fixDescriptionField: function (data) {
- if (data.description && typeof data.description !== 'string') {
- this.warn('nonStringDescription');
- delete data.description;
- }
- if (data.readme && !data.description) {
- data.description = extractDescription(data.readme);
- }
- if (data.description === undefined) {
- delete data.description;
- }
- if (!data.description) {
- this.warn('missingDescription');
- }
- },
- fixReadmeField: function (data) {
- if (!data.readme) {
- this.warn('missingReadme');
- data.readme = 'ERROR: No README data found!';
- }
- },
- fixBugsField: function (data) {
- if (!data.bugs && data.repository && data.repository.url) {
- var hosted = hostedGitInfo.fromUrl(data.repository.url);
- if (hosted && hosted.bugs()) {
- data.bugs = { url: hosted.bugs() };
- }
- } else if (data.bugs) {
- if (typeof data.bugs === 'string') {
- if (isEmail(data.bugs)) {
- data.bugs = { email: data.bugs };
- } else if (url.parse(data.bugs).protocol) {
- data.bugs = { url: data.bugs };
- } else {
- this.warn('nonEmailUrlBugsString');
- }
- } else {
- bugsTypos(data.bugs, this.warn);
- var oldBugs = data.bugs;
- data.bugs = {};
- if (oldBugs.url) {
- if (typeof (oldBugs.url) === 'string' && url.parse(oldBugs.url).protocol) {
- data.bugs.url = oldBugs.url;
- } else {
- this.warn('nonUrlBugsUrlField');
- }
- }
- if (oldBugs.email) {
- if (typeof (oldBugs.email) === 'string' && isEmail(oldBugs.email)) {
- data.bugs.email = oldBugs.email;
- } else {
- this.warn('nonEmailBugsEmailField');
- }
- }
- }
- if (!data.bugs.email && !data.bugs.url) {
- delete data.bugs;
- this.warn('emptyNormalizedBugs');
- }
- }
- },
- fixHomepageField: function (data) {
- if (!data.homepage && data.repository && data.repository.url) {
- var hosted = hostedGitInfo.fromUrl(data.repository.url);
- if (hosted && hosted.docs()) {
- data.homepage = hosted.docs();
- }
- }
- if (!data.homepage) {
- return
- }
- if (typeof data.homepage !== 'string') {
- this.warn('nonUrlHomepage');
- return delete data.homepage
- }
- if (!url.parse(data.homepage).protocol) {
- data.homepage = 'http://' + data.homepage;
- }
- },
- fixLicenseField: function (data) {
- const license = data.license || data.licence;
- if (!license) {
- return this.warn('missingLicense')
- }
- if (
- typeof (license) !== 'string' ||
- license.length < 1 ||
- license.trim() === ''
- ) {
- return this.warn('invalidLicense')
- }
- if (!validateLicense(license).validForNewPackages) {
- return this.warn('invalidLicense')
- }
- },
- };
- function isValidScopedPackageName (spec) {
- if (spec.charAt(0) !== '@') {
- return false
- }
- var rest = spec.slice(1).split('/');
- if (rest.length !== 2) {
- return false
- }
- return rest[0] && rest[1] &&
- rest[0] === encodeURIComponent(rest[0]) &&
- rest[1] === encodeURIComponent(rest[1])
- }
- function isCorrectlyEncodedName (spec) {
- return !spec.match(/[/@\s+%:]/) &&
- spec === encodeURIComponent(spec)
- }
- function ensureValidName (name, strict, allowLegacyCase) {
- if (name.charAt(0) === '.' ||
- !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) ||
- (strict && (!allowLegacyCase) && name !== name.toLowerCase()) ||
- name.toLowerCase() === 'node_modules' ||
- name.toLowerCase() === 'favicon.ico') {
- throw new Error('Invalid name: ' + JSON.stringify(name))
- }
- }
- function modifyPeople (data, fn) {
- if (data.author) {
- data.author = fn(data.author);
- }['maintainers', 'contributors'].forEach(function (set) {
- if (!Array.isArray(data[set])) {
- return
- }
- data[set] = data[set].map(fn);
- });
- return data
- }
- function unParsePerson (person) {
- if (typeof person === 'string') {
- return person
- }
- var name = person.name || '';
- var u = person.url || person.web;
- var wrappedUrl = u ? (' (' + u + ')') : '';
- var e = person.email || person.mail;
- var wrappedEmail = e ? (' <' + e + '>') : '';
- return name + wrappedEmail + wrappedUrl
- }
- function parsePerson (person) {
- if (typeof person !== 'string') {
- return person
- }
- var matchedName = person.match(/^([^(<]+)/);
- var matchedUrl = person.match(/\(([^()]+)\)/);
- var matchedEmail = person.match(/<([^<>]+)>/);
- var obj = {};
- if (matchedName && matchedName[0].trim()) {
- obj.name = matchedName[0].trim();
- }
- if (matchedEmail) {
- obj.email = matchedEmail[1];
- }
- if (matchedUrl) {
- obj.url = matchedUrl[1];
- }
- return obj
- }
- function addOptionalDepsToDeps (data, warn) {
- var o = data.optionalDependencies;
- if (!o) {
- return
- }
- var d = data.dependencies || {};
- Object.keys(o).forEach(function (k) {
- d[k] = o[k];
- });
- data.dependencies = d;
- }
- function depObjectify (deps, type, warn) {
- if (!deps) {
- return {}
- }
- if (typeof deps === 'string') {
- deps = deps.trim().split(/[\n\r\s\t ,]+/);
- }
- if (!Array.isArray(deps)) {
- return deps
- }
- warn('deprecatedArrayDependencies', type);
- var o = {};
- deps.filter(function (d) {
- return typeof d === 'string'
- }).forEach(function (d) {
- d = d.trim().split(/(:?[@\s><=])/);
- var dn = d.shift();
- var dv = d.join('');
- dv = dv.trim();
- dv = dv.replace(/^@/, '');
- o[dn] = dv;
- });
- return o
- }
- function objectifyDeps (data, warn) {
- depTypes.forEach(function (type) {
- if (!data[type]) {
- return
- }
- data[type] = depObjectify(data[type], type, warn);
- });
- }
- function bugsTypos (bugs, warn) {
- if (!bugs) {
- return
- }
- Object.keys(bugs).forEach(function (k) {
- if (typos.bugs[k]) {
- warn('typo', k, typos.bugs[k], 'bugs');
- bugs[typos.bugs[k]] = bugs[k];
- delete bugs[k];
- }
- });
- }
- var repositories = "'repositories' (plural) Not supported. Please pick one as the 'repository' field";
- var missingRepository = "No repository field.";
- var brokenGitUrl = "Probably broken git url: %s";
- var nonObjectScripts = "scripts must be an object";
- var nonStringScript = "script values must be string commands";
- var nonArrayFiles = "Invalid 'files' member";
- var invalidFilename = "Invalid filename in 'files' list: %s";
- var nonArrayBundleDependencies = "Invalid 'bundleDependencies' list. Must be array of package names";
- var nonStringBundleDependency = "Invalid bundleDependencies member: %s";
- var nonDependencyBundleDependency = "Non-dependency in bundleDependencies: %s";
- var nonObjectDependencies = "%s field must be an object";
- var nonStringDependency = "Invalid dependency: %s %s";
- var deprecatedArrayDependencies = "specifying %s as array is deprecated";
- var deprecatedModules = "modules field is deprecated";
- var nonArrayKeywords = "keywords should be an array of strings";
- var nonStringKeyword = "keywords should be an array of strings";
- var conflictingName = "%s is also the name of a node core module.";
- var nonStringDescription = "'description' field should be a string";
- var missingDescription = "No description";
- var missingReadme = "No README data";
- var missingLicense = "No license field.";
- var nonEmailUrlBugsString = "Bug string field must be url, email, or {email,url}";
- var nonUrlBugsUrlField = "bugs.url field must be a string url. Deleted.";
- var nonEmailBugsEmailField = "bugs.email field must be a string email. Deleted.";
- var emptyNormalizedBugs = "Normalized value of bugs field is an empty object. Deleted.";
- var nonUrlHomepage = "homepage field must be a string url. Deleted.";
- var invalidLicense = "license should be a valid SPDX license expression";
- var typo = "%s should probably be %s.";
- const require$$1 = {
- repositories: repositories,
- missingRepository: missingRepository,
- brokenGitUrl: brokenGitUrl,
- nonObjectScripts: nonObjectScripts,
- nonStringScript: nonStringScript,
- nonArrayFiles: nonArrayFiles,
- invalidFilename: invalidFilename,
- nonArrayBundleDependencies: nonArrayBundleDependencies,
- nonStringBundleDependency: nonStringBundleDependency,
- nonDependencyBundleDependency: nonDependencyBundleDependency,
- nonObjectDependencies: nonObjectDependencies,
- nonStringDependency: nonStringDependency,
- deprecatedArrayDependencies: deprecatedArrayDependencies,
- deprecatedModules: deprecatedModules,
- nonArrayKeywords: nonArrayKeywords,
- nonStringKeyword: nonStringKeyword,
- conflictingName: conflictingName,
- nonStringDescription: nonStringDescription,
- missingDescription: missingDescription,
- missingReadme: missingReadme,
- missingLicense: missingLicense,
- nonEmailUrlBugsString: nonEmailUrlBugsString,
- nonUrlBugsUrlField: nonUrlBugsUrlField,
- nonEmailBugsEmailField: nonEmailBugsEmailField,
- emptyNormalizedBugs: emptyNormalizedBugs,
- nonUrlHomepage: nonUrlHomepage,
- invalidLicense: invalidLicense,
- typo: typo
- };
- var util = require$$0$1;
- var messages = require$$1;
- var make_warning = function () {
- var args = Array.prototype.slice.call(arguments, 0);
- var warningName = args.shift();
- if (warningName === 'typo') {
- return makeTypoWarning.apply(null, args)
- } else {
- var msgTemplate = messages[warningName] ? messages[warningName] : warningName + ": '%s'";
- args.unshift(msgTemplate);
- return util.format.apply(null, args)
- }
- };
- function makeTypoWarning (providedName, probableName, field) {
- if (field) {
- providedName = field + "['" + providedName + "']";
- probableName = field + "['" + probableName + "']";
- }
- return util.format(messages.typo, providedName, probableName)
- }
- var normalize_1 = normalize;
- var fixer = fixer$1;
- normalize.fixer = fixer;
- var makeWarning = make_warning;
- var fieldsToFix = ['name', 'version', 'description', 'repository', 'modules', 'scripts',
- 'files', 'bin', 'man', 'bugs', 'keywords', 'readme', 'homepage', 'license'];
- var otherThingsToFix = ['dependencies', 'people', 'typos'];
- var thingsToFix = fieldsToFix.map(function (fieldName) {
- return ucFirst(fieldName) + 'Field'
- });
- thingsToFix = thingsToFix.concat(otherThingsToFix);
- function normalize (data, warn, strict) {
- if (warn === true) {
- warn = null;
- strict = true;
- }
- if (!strict) {
- strict = false;
- }
- if (!warn || data.private) {
- warn = function (msg) { };
- }
- if (data.scripts &&
- data.scripts.install === 'node-gyp rebuild' &&
- !data.scripts.preinstall) {
- data.gypfile = true;
- }
- fixer.warn = function () {
- warn(makeWarning.apply(null, arguments));
- };
- thingsToFix.forEach(function (thingName) {
- fixer['fix' + ucFirst(thingName)](data, strict);
- });
- data._id = data.name + '@' + data.version;
- }
- function ucFirst (string) {
- return string.charAt(0).toUpperCase() + string.slice(1)
- }
- const normalizePackageData = getDefaultExportFromCjs(normalize_1);
- const toPath$1 = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
- function findUpSync(name, {
- cwd = process$2.cwd(),
- type = 'file',
- stopAt,
- } = {}) {
- let directory = path$1.resolve(toPath$1(cwd) ?? '');
- const {root} = path$1.parse(directory);
- stopAt = path$1.resolve(directory, toPath$1(stopAt) ?? root);
- while (directory && directory !== stopAt && directory !== root) {
- const filePath = path$1.isAbsolute(name) ? name : path$1.join(directory, name);
- try {
- const stats = fs$1.statSync(filePath, {throwIfNoEntry: false});
- if ((type === 'file' && stats?.isFile()) || (type === 'directory' && stats?.isDirectory())) {
- return filePath;
- }
- } catch {}
- directory = path$1.dirname(directory);
- }
- }
- var lib$2 = {};
- var lib$1 = {};
- var jsTokens = {};
- Object.defineProperty(jsTokens, "__esModule", {
- value: true
- });
- jsTokens.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;
- jsTokens.matchToToken = function(match) {
- var token = {type: "invalid", value: match[0], closed: undefined};
- if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]);
- else if (match[ 5]) token.type = "comment";
- else if (match[ 6]) token.type = "comment", token.closed = !!match[7];
- else if (match[ 8]) token.type = "regex";
- else if (match[ 9]) token.type = "number";
- else if (match[10]) token.type = "name";
- else if (match[11]) token.type = "punctuator";
- else if (match[12]) token.type = "whitespace";
- return token
- };
- var lib = {};
- var identifier = {};
- Object.defineProperty(identifier, "__esModule", {
- value: true
- });
- identifier.isIdentifierChar = isIdentifierChar;
- identifier.isIdentifierName = isIdentifierName;
- identifier.isIdentifierStart = isIdentifierStart;
- let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
- let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
- const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
- const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
- nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
- const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
- const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
- function isInAstralSet(code, set) {
- let pos = 0x10000;
- for (let i = 0, length = set.length; i < length; i += 2) {
- pos += set[i];
- if (pos > code) return false;
- pos += set[i + 1];
- if (pos >= code) return true;
- }
- return false;
- }
- function isIdentifierStart(code) {
- if (code < 65) return code === 36;
- if (code <= 90) return true;
- if (code < 97) return code === 95;
- if (code <= 122) return true;
- if (code <= 0xffff) {
- return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
- }
- return isInAstralSet(code, astralIdentifierStartCodes);
- }
- function isIdentifierChar(code) {
- if (code < 48) return code === 36;
- if (code < 58) return true;
- if (code < 65) return false;
- if (code <= 90) return true;
- if (code < 97) return code === 95;
- if (code <= 122) return true;
- if (code <= 0xffff) {
- return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
- }
- return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
- }
- function isIdentifierName(name) {
- let isFirst = true;
- for (let i = 0; i < name.length; i++) {
- let cp = name.charCodeAt(i);
- if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
- const trail = name.charCodeAt(++i);
- if ((trail & 0xfc00) === 0xdc00) {
- cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
- }
- }
- if (isFirst) {
- isFirst = false;
- if (!isIdentifierStart(cp)) {
- return false;
- }
- } else if (!isIdentifierChar(cp)) {
- return false;
- }
- }
- return !isFirst;
- }
- var keyword = {};
- Object.defineProperty(keyword, "__esModule", {
- value: true
- });
- keyword.isKeyword = isKeyword;
- keyword.isReservedWord = isReservedWord;
- keyword.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
- keyword.isStrictBindReservedWord = isStrictBindReservedWord;
- keyword.isStrictReservedWord = isStrictReservedWord;
- const reservedWords = {
- keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
- strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
- strictBind: ["eval", "arguments"]
- };
- const keywords = new Set(reservedWords.keyword);
- const reservedWordsStrictSet = new Set(reservedWords.strict);
- const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
- function isReservedWord(word, inModule) {
- return inModule && word === "await" || word === "enum";
- }
- function isStrictReservedWord(word, inModule) {
- return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
- }
- function isStrictBindOnlyReservedWord(word) {
- return reservedWordsStrictBindSet.has(word);
- }
- function isStrictBindReservedWord(word, inModule) {
- return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
- }
- function isKeyword(word) {
- return keywords.has(word);
- }
- (function (exports) {
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- Object.defineProperty(exports, "isIdentifierChar", {
- enumerable: true,
- get: function () {
- return _identifier.isIdentifierChar;
- }
- });
- Object.defineProperty(exports, "isIdentifierName", {
- enumerable: true,
- get: function () {
- return _identifier.isIdentifierName;
- }
- });
- Object.defineProperty(exports, "isIdentifierStart", {
- enumerable: true,
- get: function () {
- return _identifier.isIdentifierStart;
- }
- });
- Object.defineProperty(exports, "isKeyword", {
- enumerable: true,
- get: function () {
- return _keyword.isKeyword;
- }
- });
- Object.defineProperty(exports, "isReservedWord", {
- enumerable: true,
- get: function () {
- return _keyword.isReservedWord;
- }
- });
- Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
- enumerable: true,
- get: function () {
- return _keyword.isStrictBindOnlyReservedWord;
- }
- });
- Object.defineProperty(exports, "isStrictBindReservedWord", {
- enumerable: true,
- get: function () {
- return _keyword.isStrictBindReservedWord;
- }
- });
- Object.defineProperty(exports, "isStrictReservedWord", {
- enumerable: true,
- get: function () {
- return _keyword.isStrictReservedWord;
- }
- });
- var _identifier = identifier;
- var _keyword = keyword;
- } (lib));
- var chalk$1 = {exports: {}};
- var matchOperatorsRe$1 = /[|\\{}()[\]^$+*?.]/g;
- var escapeStringRegexp$1 = function (str) {
- if (typeof str !== 'string') {
- throw new TypeError('Expected a string');
- }
- return str.replace(matchOperatorsRe$1, '\\$&');
- };
- var ansiStyles$1 = {exports: {}};
- var conversions$2 = {exports: {}};
- var colorName = {
"aliceblue": [240, 248, 255],
"antiquewhite": [250, 235, 215],
"aqua": [0, 255, 255],
"aquamarine": [127, 255, 212],
"azure": [240, 255, 255],
"beige": [245, 245, 220],
"bisque": [255, 228, 196],
"black": [0, 0, 0],
"blanchedalmond": [255, 235, 205],
"blue": [0, 0, 255],
"blueviolet": [138, 43, 226],
"brown": [165, 42, 42],
"burlywood": [222, 184, 135],
"cadetblue": [95, 158, 160],
"chartreuse": [127, 255, 0],
"chocolate": [210, 105, 30],
"coral": [255, 127, 80],
"cornflowerblue": [100, 149, 237],
"cornsilk": [255, 248, 220],
"crimson": [220, 20, 60],
"cyan": [0, 255, 255],
"darkblue": [0, 0, 139],
"darkcyan": [0, 139, 139],
"darkgoldenrod": [184, 134, 11],
"darkgray": [169, 169, 169],
"darkgreen": [0, 100, 0],
"darkgrey": [169, 169, 169],
"darkkhaki": [189, 183, 107],
"darkmagenta": [139, 0, 139],
"darkolivegreen": [85, 107, 47],
"darkorange": [255, 140, 0],
"darkorchid": [153, 50, 204],
"darkred": [139, 0, 0],
"darksalmon": [233, 150, 122],
"darkseagreen": [143, 188, 143],
"darkslateblue": [72, 61, 139],
"darkslategray": [47, 79, 79],
"darkslategrey": [47, 79, 79],
"darkturquoise": [0, 206, 209],
"darkviolet": [148, 0, 211],
"deeppink": [255, 20, 147],
"deepskyblue": [0, 191, 255],
"dimgray": [105, 105, 105],
"dimgrey": [105, 105, 105],
"dodgerblue": [30, 144, 255],
"firebrick": [178, 34, 34],
"floralwhite": [255, 250, 240],
"forestgreen": [34, 139, 34],
"fuchsia": [255, 0, 255],
"gainsboro": [220, 220, 220],
"ghostwhite": [248, 248, 255],
"gold": [255, 215, 0],
"goldenrod": [218, 165, 32],
"gray": [128, 128, 128],
"green": [0, 128, 0],
"greenyellow": [173, 255, 47],
"grey": [128, 128, 128],
"honeydew": [240, 255, 240],
"hotpink": [255, 105, 180],
"indianred": [205, 92, 92],
"indigo": [75, 0, 130],
"ivory": [255, 255, 240],
"khaki": [240, 230, 140],
"lavender": [230, 230, 250],
"lavenderblush": [255, 240, 245],
"lawngreen": [124, 252, 0],
"lemonchiffon": [255, 250, 205],
"lightblue": [173, 216, 230],
"lightcoral": [240, 128, 128],
"lightcyan": [224, 255, 255],
"lightgoldenrodyellow": [250, 250, 210],
"lightgray": [211, 211, 211],
"lightgreen": [144, 238, 144],
"lightgrey": [211, 211, 211],
"lightpink": [255, 182, 193],
"lightsalmon": [255, 160, 122],
"lightseagreen": [32, 178, 170],
"lightskyblue": [135, 206, 250],
"lightslategray": [119, 136, 153],
"lightslategrey": [119, 136, 153],
"lightsteelblue": [176, 196, 222],
"lightyellow": [255, 255, 224],
"lime": [0, 255, 0],
"limegreen": [50, 205, 50],
"linen": [250, 240, 230],
"magenta": [255, 0, 255],
"maroon": [128, 0, 0],
"mediumaquamarine": [102, 205, 170],
"mediumblue": [0, 0, 205],
"mediumorchid": [186, 85, 211],
"mediumpurple": [147, 112, 219],
"mediumseagreen": [60, 179, 113],
"mediumslateblue": [123, 104, 238],
"mediumspringgreen": [0, 250, 154],
"mediumturquoise": [72, 209, 204],
"mediumvioletred": [199, 21, 133],
"midnightblue": [25, 25, 112],
"mintcream": [245, 255, 250],
"mistyrose": [255, 228, 225],
"moccasin": [255, 228, 181],
"navajowhite": [255, 222, 173],
"navy": [0, 0, 128],
"oldlace": [253, 245, 230],
"olive": [128, 128, 0],
"olivedrab": [107, 142, 35],
"orange": [255, 165, 0],
"orangered": [255, 69, 0],
"orchid": [218, 112, 214],
"palegoldenrod": [238, 232, 170],
"palegreen": [152, 251, 152],
"paleturquoise": [175, 238, 238],
"palevioletred": [219, 112, 147],
"papayawhip": [255, 239, 213],
"peachpuff": [255, 218, 185],
"peru": [205, 133, 63],
"pink": [255, 192, 203],
"plum": [221, 160, 221],
"powderblue": [176, 224, 230],
"purple": [128, 0, 128],
"rebeccapurple": [102, 51, 153],
"red": [255, 0, 0],
"rosybrown": [188, 143, 143],
"royalblue": [65, 105, 225],
"saddlebrown": [139, 69, 19],
"salmon": [250, 128, 114],
"sandybrown": [244, 164, 96],
"seagreen": [46, 139, 87],
"seashell": [255, 245, 238],
"sienna": [160, 82, 45],
"silver": [192, 192, 192],
"skyblue": [135, 206, 235],
"slateblue": [106, 90, 205],
"slategray": [112, 128, 144],
"slategrey": [112, 128, 144],
"snow": [255, 250, 250],
"springgreen": [0, 255, 127],
"steelblue": [70, 130, 180],
"tan": [210, 180, 140],
"teal": [0, 128, 128],
"thistle": [216, 191, 216],
"tomato": [255, 99, 71],
"turquoise": [64, 224, 208],
"violet": [238, 130, 238],
"wheat": [245, 222, 179],
"white": [255, 255, 255],
"whitesmoke": [245, 245, 245],
"yellow": [255, 255, 0],
"yellowgreen": [154, 205, 50]
};
- var cssKeywords = colorName;
- var reverseKeywords = {};
- for (var key in cssKeywords) {
- if (cssKeywords.hasOwnProperty(key)) {
- reverseKeywords[cssKeywords[key]] = key;
- }
- }
- var convert$1 = conversions$2.exports = {
- rgb: {channels: 3, labels: 'rgb'},
- hsl: {channels: 3, labels: 'hsl'},
- hsv: {channels: 3, labels: 'hsv'},
- hwb: {channels: 3, labels: 'hwb'},
- cmyk: {channels: 4, labels: 'cmyk'},
- xyz: {channels: 3, labels: 'xyz'},
- lab: {channels: 3, labels: 'lab'},
- lch: {channels: 3, labels: 'lch'},
- hex: {channels: 1, labels: ['hex']},
- keyword: {channels: 1, labels: ['keyword']},
- ansi16: {channels: 1, labels: ['ansi16']},
- ansi256: {channels: 1, labels: ['ansi256']},
- hcg: {channels: 3, labels: ['h', 'c', 'g']},
- apple: {channels: 3, labels: ['r16', 'g16', 'b16']},
- gray: {channels: 1, labels: ['gray']}
- };
- for (var model in convert$1) {
- if (convert$1.hasOwnProperty(model)) {
- if (!('channels' in convert$1[model])) {
- throw new Error('missing channels property: ' + model);
- }
- if (!('labels' in convert$1[model])) {
- throw new Error('missing channel labels property: ' + model);
- }
- if (convert$1[model].labels.length !== convert$1[model].channels) {
- throw new Error('channel and label counts mismatch: ' + model);
- }
- var channels = convert$1[model].channels;
- var labels = convert$1[model].labels;
- delete convert$1[model].channels;
- delete convert$1[model].labels;
- Object.defineProperty(convert$1[model], 'channels', {value: channels});
- Object.defineProperty(convert$1[model], 'labels', {value: labels});
- }
- }
- convert$1.rgb.hsl = function (rgb) {
- var r = rgb[0] / 255;
- var g = rgb[1] / 255;
- var b = rgb[2] / 255;
- var min = Math.min(r, g, b);
- var max = Math.max(r, g, b);
- var delta = max - min;
- var h;
- var s;
- var l;
- if (max === min) {
- h = 0;
- } else if (r === max) {
- h = (g - b) / delta;
- } else if (g === max) {
- h = 2 + (b - r) / delta;
- } else if (b === max) {
- h = 4 + (r - g) / delta;
- }
- h = Math.min(h * 60, 360);
- if (h < 0) {
- h += 360;
- }
- l = (min + max) / 2;
- if (max === min) {
- s = 0;
- } else if (l <= 0.5) {
- s = delta / (max + min);
- } else {
- s = delta / (2 - max - min);
- }
- return [h, s * 100, l * 100];
- };
- convert$1.rgb.hsv = function (rgb) {
- var rdif;
- var gdif;
- var bdif;
- var h;
- var s;
- var r = rgb[0] / 255;
- var g = rgb[1] / 255;
- var b = rgb[2] / 255;
- var v = Math.max(r, g, b);
- var diff = v - Math.min(r, g, b);
- var diffc = function (c) {
- return (v - c) / 6 / diff + 1 / 2;
- };
- if (diff === 0) {
- h = s = 0;
- } else {
- s = diff / v;
- rdif = diffc(r);
- gdif = diffc(g);
- bdif = diffc(b);
- if (r === v) {
- h = bdif - gdif;
- } else if (g === v) {
- h = (1 / 3) + rdif - bdif;
- } else if (b === v) {
- h = (2 / 3) + gdif - rdif;
- }
- if (h < 0) {
- h += 1;
- } else if (h > 1) {
- h -= 1;
- }
- }
- return [
- h * 360,
- s * 100,
- v * 100
- ];
- };
- convert$1.rgb.hwb = function (rgb) {
- var r = rgb[0];
- var g = rgb[1];
- var b = rgb[2];
- var h = convert$1.rgb.hsl(rgb)[0];
- var w = 1 / 255 * Math.min(r, Math.min(g, b));
- b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
- return [h, w * 100, b * 100];
- };
- convert$1.rgb.cmyk = function (rgb) {
- var r = rgb[0] / 255;
- var g = rgb[1] / 255;
- var b = rgb[2] / 255;
- var c;
- var m;
- var y;
- var k;
- k = Math.min(1 - r, 1 - g, 1 - b);
- c = (1 - r - k) / (1 - k) || 0;
- m = (1 - g - k) / (1 - k) || 0;
- y = (1 - b - k) / (1 - k) || 0;
- return [c * 100, m * 100, y * 100, k * 100];
- };
- function comparativeDistance(x, y) {
- return (
- Math.pow(x[0] - y[0], 2) +
- Math.pow(x[1] - y[1], 2) +
- Math.pow(x[2] - y[2], 2)
- );
- }
- convert$1.rgb.keyword = function (rgb) {
- var reversed = reverseKeywords[rgb];
- if (reversed) {
- return reversed;
- }
- var currentClosestDistance = Infinity;
- var currentClosestKeyword;
- for (var keyword in cssKeywords) {
- if (cssKeywords.hasOwnProperty(keyword)) {
- var value = cssKeywords[keyword];
- var distance = comparativeDistance(rgb, value);
- if (distance < currentClosestDistance) {
- currentClosestDistance = distance;
- currentClosestKeyword = keyword;
- }
- }
- }
- return currentClosestKeyword;
- };
- convert$1.keyword.rgb = function (keyword) {
- return cssKeywords[keyword];
- };
- convert$1.rgb.xyz = function (rgb) {
- var r = rgb[0] / 255;
- var g = rgb[1] / 255;
- var b = rgb[2] / 255;
- r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
- g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
- b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
- var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
- var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
- var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
- return [x * 100, y * 100, z * 100];
- };
- convert$1.rgb.lab = function (rgb) {
- var xyz = convert$1.rgb.xyz(rgb);
- var x = xyz[0];
- var y = xyz[1];
- var z = xyz[2];
- var l;
- var a;
- var b;
- x /= 95.047;
- y /= 100;
- z /= 108.883;
- x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
- y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
- z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
- l = (116 * y) - 16;
- a = 500 * (x - y);
- b = 200 * (y - z);
- return [l, a, b];
- };
- convert$1.hsl.rgb = function (hsl) {
- var h = hsl[0] / 360;
- var s = hsl[1] / 100;
- var l = hsl[2] / 100;
- var t1;
- var t2;
- var t3;
- var rgb;
- var val;
- if (s === 0) {
- val = l * 255;
- return [val, val, val];
- }
- if (l < 0.5) {
- t2 = l * (1 + s);
- } else {
- t2 = l + s - l * s;
- }
- t1 = 2 * l - t2;
- rgb = [0, 0, 0];
- for (var i = 0; i < 3; i++) {
- t3 = h + 1 / 3 * -(i - 1);
- if (t3 < 0) {
- t3++;
- }
- if (t3 > 1) {
- t3--;
- }
- if (6 * t3 < 1) {
- val = t1 + (t2 - t1) * 6 * t3;
- } else if (2 * t3 < 1) {
- val = t2;
- } else if (3 * t3 < 2) {
- val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
- } else {
- val = t1;
- }
- rgb[i] = val * 255;
- }
- return rgb;
- };
- convert$1.hsl.hsv = function (hsl) {
- var h = hsl[0];
- var s = hsl[1] / 100;
- var l = hsl[2] / 100;
- var smin = s;
- var lmin = Math.max(l, 0.01);
- var sv;
- var v;
- l *= 2;
- s *= (l <= 1) ? l : 2 - l;
- smin *= lmin <= 1 ? lmin : 2 - lmin;
- v = (l + s) / 2;
- sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
- return [h, sv * 100, v * 100];
- };
- convert$1.hsv.rgb = function (hsv) {
- var h = hsv[0] / 60;
- var s = hsv[1] / 100;
- var v = hsv[2] / 100;
- var hi = Math.floor(h) % 6;
- var f = h - Math.floor(h);
- var p = 255 * v * (1 - s);
- var q = 255 * v * (1 - (s * f));
- var t = 255 * v * (1 - (s * (1 - f)));
- v *= 255;
- switch (hi) {
- case 0:
- return [v, t, p];
- case 1:
- return [q, v, p];
- case 2:
- return [p, v, t];
- case 3:
- return [p, q, v];
- case 4:
- return [t, p, v];
- case 5:
- return [v, p, q];
- }
- };
- convert$1.hsv.hsl = function (hsv) {
- var h = hsv[0];
- var s = hsv[1] / 100;
- var v = hsv[2] / 100;
- var vmin = Math.max(v, 0.01);
- var lmin;
- var sl;
- var l;
- l = (2 - s) * v;
- lmin = (2 - s) * vmin;
- sl = s * vmin;
- sl /= (lmin <= 1) ? lmin : 2 - lmin;
- sl = sl || 0;
- l /= 2;
- return [h, sl * 100, l * 100];
- };
- convert$1.hwb.rgb = function (hwb) {
- var h = hwb[0] / 360;
- var wh = hwb[1] / 100;
- var bl = hwb[2] / 100;
- var ratio = wh + bl;
- var i;
- var v;
- var f;
- var n;
- if (ratio > 1) {
- wh /= ratio;
- bl /= ratio;
- }
- i = Math.floor(6 * h);
- v = 1 - bl;
- f = 6 * h - i;
- if ((i & 0x01) !== 0) {
- f = 1 - f;
- }
- n = wh + f * (v - wh);
- var r;
- var g;
- var b;
- switch (i) {
- default:
- case 6:
- case 0: r = v; g = n; b = wh; break;
- case 1: r = n; g = v; b = wh; break;
- case 2: r = wh; g = v; b = n; break;
- case 3: r = wh; g = n; b = v; break;
- case 4: r = n; g = wh; b = v; break;
- case 5: r = v; g = wh; b = n; break;
- }
- return [r * 255, g * 255, b * 255];
- };
- convert$1.cmyk.rgb = function (cmyk) {
- var c = cmyk[0] / 100;
- var m = cmyk[1] / 100;
- var y = cmyk[2] / 100;
- var k = cmyk[3] / 100;
- var r;
- var g;
- var b;
- r = 1 - Math.min(1, c * (1 - k) + k);
- g = 1 - Math.min(1, m * (1 - k) + k);
- b = 1 - Math.min(1, y * (1 - k) + k);
- return [r * 255, g * 255, b * 255];
- };
- convert$1.xyz.rgb = function (xyz) {
- var x = xyz[0] / 100;
- var y = xyz[1] / 100;
- var z = xyz[2] / 100;
- var r;
- var g;
- var b;
- r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
- g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
- b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
- r = r > 0.0031308
- ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
- : r * 12.92;
- g = g > 0.0031308
- ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
- : g * 12.92;
- b = b > 0.0031308
- ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
- : b * 12.92;
- r = Math.min(Math.max(0, r), 1);
- g = Math.min(Math.max(0, g), 1);
- b = Math.min(Math.max(0, b), 1);
- return [r * 255, g * 255, b * 255];
- };
- convert$1.xyz.lab = function (xyz) {
- var x = xyz[0];
- var y = xyz[1];
- var z = xyz[2];
- var l;
- var a;
- var b;
- x /= 95.047;
- y /= 100;
- z /= 108.883;
- x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
- y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
- z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
- l = (116 * y) - 16;
- a = 500 * (x - y);
- b = 200 * (y - z);
- return [l, a, b];
- };
- convert$1.lab.xyz = function (lab) {
- var l = lab[0];
- var a = lab[1];
- var b = lab[2];
- var x;
- var y;
- var z;
- y = (l + 16) / 116;
- x = a / 500 + y;
- z = y - b / 200;
- var y2 = Math.pow(y, 3);
- var x2 = Math.pow(x, 3);
- var z2 = Math.pow(z, 3);
- y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
- x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
- z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
- x *= 95.047;
- y *= 100;
- z *= 108.883;
- return [x, y, z];
- };
- convert$1.lab.lch = function (lab) {
- var l = lab[0];
- var a = lab[1];
- var b = lab[2];
- var hr;
- var h;
- var c;
- hr = Math.atan2(b, a);
- h = hr * 360 / 2 / Math.PI;
- if (h < 0) {
- h += 360;
- }
- c = Math.sqrt(a * a + b * b);
- return [l, c, h];
- };
- convert$1.lch.lab = function (lch) {
- var l = lch[0];
- var c = lch[1];
- var h = lch[2];
- var a;
- var b;
- var hr;
- hr = h / 360 * 2 * Math.PI;
- a = c * Math.cos(hr);
- b = c * Math.sin(hr);
- return [l, a, b];
- };
- convert$1.rgb.ansi16 = function (args) {
- var r = args[0];
- var g = args[1];
- var b = args[2];
- var value = 1 in arguments ? arguments[1] : convert$1.rgb.hsv(args)[2];
- value = Math.round(value / 50);
- if (value === 0) {
- return 30;
- }
- var ansi = 30
- + ((Math.round(b / 255) << 2)
- | (Math.round(g / 255) << 1)
- | Math.round(r / 255));
- if (value === 2) {
- ansi += 60;
- }
- return ansi;
- };
- convert$1.hsv.ansi16 = function (args) {
- return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]);
- };
- convert$1.rgb.ansi256 = function (args) {
- var r = args[0];
- var g = args[1];
- var b = args[2];
- if (r === g && g === b) {
- if (r < 8) {
- return 16;
- }
- if (r > 248) {
- return 231;
- }
- return Math.round(((r - 8) / 247) * 24) + 232;
- }
- var ansi = 16
- + (36 * Math.round(r / 255 * 5))
- + (6 * Math.round(g / 255 * 5))
- + Math.round(b / 255 * 5);
- return ansi;
- };
- convert$1.ansi16.rgb = function (args) {
- var color = args % 10;
- if (color === 0 || color === 7) {
- if (args > 50) {
- color += 3.5;
- }
- color = color / 10.5 * 255;
- return [color, color, color];
- }
- var mult = (~~(args > 50) + 1) * 0.5;
- var r = ((color & 1) * mult) * 255;
- var g = (((color >> 1) & 1) * mult) * 255;
- var b = (((color >> 2) & 1) * mult) * 255;
- return [r, g, b];
- };
- convert$1.ansi256.rgb = function (args) {
- if (args >= 232) {
- var c = (args - 232) * 10 + 8;
- return [c, c, c];
- }
- args -= 16;
- var rem;
- var r = Math.floor(args / 36) / 5 * 255;
- var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
- var b = (rem % 6) / 5 * 255;
- return [r, g, b];
- };
- convert$1.rgb.hex = function (args) {
- var integer = ((Math.round(args[0]) & 0xFF) << 16)
- + ((Math.round(args[1]) & 0xFF) << 8)
- + (Math.round(args[2]) & 0xFF);
- var string = integer.toString(16).toUpperCase();
- return '000000'.substring(string.length) + string;
- };
- convert$1.hex.rgb = function (args) {
- var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
- if (!match) {
- return [0, 0, 0];
- }
- var colorString = match[0];
- if (match[0].length === 3) {
- colorString = colorString.split('').map(function (char) {
- return char + char;
- }).join('');
- }
- var integer = parseInt(colorString, 16);
- var r = (integer >> 16) & 0xFF;
- var g = (integer >> 8) & 0xFF;
- var b = integer & 0xFF;
- return [r, g, b];
- };
- convert$1.rgb.hcg = function (rgb) {
- var r = rgb[0] / 255;
- var g = rgb[1] / 255;
- var b = rgb[2] / 255;
- var max = Math.max(Math.max(r, g), b);
- var min = Math.min(Math.min(r, g), b);
- var chroma = (max - min);
- var grayscale;
- var hue;
- if (chroma < 1) {
- grayscale = min / (1 - chroma);
- } else {
- grayscale = 0;
- }
- if (chroma <= 0) {
- hue = 0;
- } else
- if (max === r) {
- hue = ((g - b) / chroma) % 6;
- } else
- if (max === g) {
- hue = 2 + (b - r) / chroma;
- } else {
- hue = 4 + (r - g) / chroma + 4;
- }
- hue /= 6;
- hue %= 1;
- return [hue * 360, chroma * 100, grayscale * 100];
- };
- convert$1.hsl.hcg = function (hsl) {
- var s = hsl[1] / 100;
- var l = hsl[2] / 100;
- var c = 1;
- var f = 0;
- if (l < 0.5) {
- c = 2.0 * s * l;
- } else {
- c = 2.0 * s * (1.0 - l);
- }
- if (c < 1.0) {
- f = (l - 0.5 * c) / (1.0 - c);
- }
- return [hsl[0], c * 100, f * 100];
- };
- convert$1.hsv.hcg = function (hsv) {
- var s = hsv[1] / 100;
- var v = hsv[2] / 100;
- var c = s * v;
- var f = 0;
- if (c < 1.0) {
- f = (v - c) / (1 - c);
- }
- return [hsv[0], c * 100, f * 100];
- };
- convert$1.hcg.rgb = function (hcg) {
- var h = hcg[0] / 360;
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- if (c === 0.0) {
- return [g * 255, g * 255, g * 255];
- }
- var pure = [0, 0, 0];
- var hi = (h % 1) * 6;
- var v = hi % 1;
- var w = 1 - v;
- var mg = 0;
- switch (Math.floor(hi)) {
- case 0:
- pure[0] = 1; pure[1] = v; pure[2] = 0; break;
- case 1:
- pure[0] = w; pure[1] = 1; pure[2] = 0; break;
- case 2:
- pure[0] = 0; pure[1] = 1; pure[2] = v; break;
- case 3:
- pure[0] = 0; pure[1] = w; pure[2] = 1; break;
- case 4:
- pure[0] = v; pure[1] = 0; pure[2] = 1; break;
- default:
- pure[0] = 1; pure[1] = 0; pure[2] = w;
- }
- mg = (1.0 - c) * g;
- return [
- (c * pure[0] + mg) * 255,
- (c * pure[1] + mg) * 255,
- (c * pure[2] + mg) * 255
- ];
- };
- convert$1.hcg.hsv = function (hcg) {
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- var v = c + g * (1.0 - c);
- var f = 0;
- if (v > 0.0) {
- f = c / v;
- }
- return [hcg[0], f * 100, v * 100];
- };
- convert$1.hcg.hsl = function (hcg) {
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- var l = g * (1.0 - c) + 0.5 * c;
- var s = 0;
- if (l > 0.0 && l < 0.5) {
- s = c / (2 * l);
- } else
- if (l >= 0.5 && l < 1.0) {
- s = c / (2 * (1 - l));
- }
- return [hcg[0], s * 100, l * 100];
- };
- convert$1.hcg.hwb = function (hcg) {
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- var v = c + g * (1.0 - c);
- return [hcg[0], (v - c) * 100, (1 - v) * 100];
- };
- convert$1.hwb.hcg = function (hwb) {
- var w = hwb[1] / 100;
- var b = hwb[2] / 100;
- var v = 1 - b;
- var c = v - w;
- var g = 0;
- if (c < 1) {
- g = (v - c) / (1 - c);
- }
- return [hwb[0], c * 100, g * 100];
- };
- convert$1.apple.rgb = function (apple) {
- return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
- };
- convert$1.rgb.apple = function (rgb) {
- return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
- };
- convert$1.gray.rgb = function (args) {
- return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
- };
- convert$1.gray.hsl = convert$1.gray.hsv = function (args) {
- return [0, 0, args[0]];
- };
- convert$1.gray.hwb = function (gray) {
- return [0, 100, gray[0]];
- };
- convert$1.gray.cmyk = function (gray) {
- return [0, 0, 0, gray[0]];
- };
- convert$1.gray.lab = function (gray) {
- return [gray[0], 0, 0];
- };
- convert$1.gray.hex = function (gray) {
- var val = Math.round(gray[0] / 100 * 255) & 0xFF;
- var integer = (val << 16) + (val << 8) + val;
- var string = integer.toString(16).toUpperCase();
- return '000000'.substring(string.length) + string;
- };
- convert$1.rgb.gray = function (rgb) {
- var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
- return [val / 255 * 100];
- };
- var conversionsExports = conversions$2.exports;
- var conversions$1 = conversionsExports;
- function buildGraph() {
- var graph = {};
- var models = Object.keys(conversions$1);
- for (var len = models.length, i = 0; i < len; i++) {
- graph[models[i]] = {
- distance: -1,
- parent: null
- };
- }
- return graph;
- }
- function deriveBFS(fromModel) {
- var graph = buildGraph();
- var queue = [fromModel];
- graph[fromModel].distance = 0;
- while (queue.length) {
- var current = queue.pop();
- var adjacents = Object.keys(conversions$1[current]);
- for (var len = adjacents.length, i = 0; i < len; i++) {
- var adjacent = adjacents[i];
- var node = graph[adjacent];
- if (node.distance === -1) {
- node.distance = graph[current].distance + 1;
- node.parent = current;
- queue.unshift(adjacent);
- }
- }
- }
- return graph;
- }
- function link(from, to) {
- return function (args) {
- return to(from(args));
- };
- }
- function wrapConversion(toModel, graph) {
- var path = [graph[toModel].parent, toModel];
- var fn = conversions$1[graph[toModel].parent][toModel];
- var cur = graph[toModel].parent;
- while (graph[cur].parent) {
- path.unshift(graph[cur].parent);
- fn = link(conversions$1[graph[cur].parent][cur], fn);
- cur = graph[cur].parent;
- }
- fn.conversion = path;
- return fn;
- }
- var route$1 = function (fromModel) {
- var graph = deriveBFS(fromModel);
- var conversion = {};
- var models = Object.keys(graph);
- for (var len = models.length, i = 0; i < len; i++) {
- var toModel = models[i];
- var node = graph[toModel];
- if (node.parent === null) {
- continue;
- }
- conversion[toModel] = wrapConversion(toModel, graph);
- }
- return conversion;
- };
- var conversions = conversionsExports;
- var route = route$1;
- var convert = {};
- var models = Object.keys(conversions);
- function wrapRaw(fn) {
- var wrappedFn = function (args) {
- if (args === undefined || args === null) {
- return args;
- }
- if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- }
- return fn(args);
- };
- if ('conversion' in fn) {
- wrappedFn.conversion = fn.conversion;
- }
- return wrappedFn;
- }
- function wrapRounded(fn) {
- var wrappedFn = function (args) {
- if (args === undefined || args === null) {
- return args;
- }
- if (arguments.length > 1) {
- args = Array.prototype.slice.call(arguments);
- }
- var result = fn(args);
- if (typeof result === 'object') {
- for (var len = result.length, i = 0; i < len; i++) {
- result[i] = Math.round(result[i]);
- }
- }
- return result;
- };
- if ('conversion' in fn) {
- wrappedFn.conversion = fn.conversion;
- }
- return wrappedFn;
- }
- models.forEach(function (fromModel) {
- convert[fromModel] = {};
- Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
- Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
- var routes = route(fromModel);
- var routeModels = Object.keys(routes);
- routeModels.forEach(function (toModel) {
- var fn = routes[toModel];
- convert[fromModel][toModel] = wrapRounded(fn);
- convert[fromModel][toModel].raw = wrapRaw(fn);
- });
- });
- var colorConvert = convert;
- ansiStyles$1.exports;
- (function (module) {
- const colorConvert$1 = colorConvert;
- const wrapAnsi16 = (fn, offset) => function () {
- const code = fn.apply(colorConvert$1, arguments);
- return `\u001B[${code + offset}m`;
- };
- const wrapAnsi256 = (fn, offset) => function () {
- const code = fn.apply(colorConvert$1, arguments);
- return `\u001B[${38 + offset};5;${code}m`;
- };
- const wrapAnsi16m = (fn, offset) => function () {
- const rgb = fn.apply(colorConvert$1, arguments);
- return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
- };
- function assembleStyles() {
- const codes = new Map();
- const styles = {
- modifier: {
- reset: [0, 0],
- bold: [1, 22],
- dim: [2, 22],
- italic: [3, 23],
- underline: [4, 24],
- inverse: [7, 27],
- hidden: [8, 28],
- strikethrough: [9, 29]
- },
- color: {
- black: [30, 39],
- red: [31, 39],
- green: [32, 39],
- yellow: [33, 39],
- blue: [34, 39],
- magenta: [35, 39],
- cyan: [36, 39],
- white: [37, 39],
- gray: [90, 39],
- redBright: [91, 39],
- greenBright: [92, 39],
- yellowBright: [93, 39],
- blueBright: [94, 39],
- magentaBright: [95, 39],
- cyanBright: [96, 39],
- whiteBright: [97, 39]
- },
- bgColor: {
- bgBlack: [40, 49],
- bgRed: [41, 49],
- bgGreen: [42, 49],
- bgYellow: [43, 49],
- bgBlue: [44, 49],
- bgMagenta: [45, 49],
- bgCyan: [46, 49],
- bgWhite: [47, 49],
- bgBlackBright: [100, 49],
- bgRedBright: [101, 49],
- bgGreenBright: [102, 49],
- bgYellowBright: [103, 49],
- bgBlueBright: [104, 49],
- bgMagentaBright: [105, 49],
- bgCyanBright: [106, 49],
- bgWhiteBright: [107, 49]
- }
- };
- styles.color.grey = styles.color.gray;
- for (const groupName of Object.keys(styles)) {
- const group = styles[groupName];
- for (const styleName of Object.keys(group)) {
- const style = group[styleName];
- styles[styleName] = {
- open: `\u001B[${style[0]}m`,
- close: `\u001B[${style[1]}m`
- };
- group[styleName] = styles[styleName];
- codes.set(style[0], style[1]);
- }
- Object.defineProperty(styles, groupName, {
- value: group,
- enumerable: false
- });
- Object.defineProperty(styles, 'codes', {
- value: codes,
- enumerable: false
- });
- }
- const ansi2ansi = n => n;
- const rgb2rgb = (r, g, b) => [r, g, b];
- styles.color.close = '\u001B[39m';
- styles.bgColor.close = '\u001B[49m';
- styles.color.ansi = {
- ansi: wrapAnsi16(ansi2ansi, 0)
- };
- styles.color.ansi256 = {
- ansi256: wrapAnsi256(ansi2ansi, 0)
- };
- styles.color.ansi16m = {
- rgb: wrapAnsi16m(rgb2rgb, 0)
- };
- styles.bgColor.ansi = {
- ansi: wrapAnsi16(ansi2ansi, 10)
- };
- styles.bgColor.ansi256 = {
- ansi256: wrapAnsi256(ansi2ansi, 10)
- };
- styles.bgColor.ansi16m = {
- rgb: wrapAnsi16m(rgb2rgb, 10)
- };
- for (let key of Object.keys(colorConvert$1)) {
- if (typeof colorConvert$1[key] !== 'object') {
- continue;
- }
- const suite = colorConvert$1[key];
- if (key === 'ansi16') {
- key = 'ansi';
- }
- if ('ansi16' in suite) {
- styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
- styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
- }
- if ('ansi256' in suite) {
- styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
- styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
- }
- if ('rgb' in suite) {
- styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
- styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
- }
- }
- return styles;
- }
- Object.defineProperty(module, 'exports', {
- enumerable: true,
- get: assembleStyles
- });
- } (ansiStyles$1));
- var ansiStylesExports$1 = ansiStyles$1.exports;
- var hasFlag$3 = (flag, argv) => {
- argv = argv || process.argv;
- const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
- const pos = argv.indexOf(prefix + flag);
- const terminatorPos = argv.indexOf('--');
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
- };
- const os$1 = require$$0$2;
- const hasFlag$2 = hasFlag$3;
- const env$1 = process.env;
- let forceColor$1;
- if (hasFlag$2('no-color') ||
- hasFlag$2('no-colors') ||
- hasFlag$2('color=false')) {
- forceColor$1 = false;
- } else if (hasFlag$2('color') ||
- hasFlag$2('colors') ||
- hasFlag$2('color=true') ||
- hasFlag$2('color=always')) {
- forceColor$1 = true;
- }
- if ('FORCE_COLOR' in env$1) {
- forceColor$1 = env$1.FORCE_COLOR.length === 0 || parseInt(env$1.FORCE_COLOR, 10) !== 0;
- }
- function translateLevel$1(level) {
- if (level === 0) {
- return false;
- }
- return {
- level,
- hasBasic: true,
- has256: level >= 2,
- has16m: level >= 3
- };
- }
- function supportsColor$1(stream) {
- if (forceColor$1 === false) {
- return 0;
- }
- if (hasFlag$2('color=16m') ||
- hasFlag$2('color=full') ||
- hasFlag$2('color=truecolor')) {
- return 3;
- }
- if (hasFlag$2('color=256')) {
- return 2;
- }
- if (stream && !stream.isTTY && forceColor$1 !== true) {
- return 0;
- }
- const min = forceColor$1 ? 1 : 0;
- if (process.platform === 'win32') {
- const osRelease = os$1.release().split('.');
- if (
- Number(process.versions.node.split('.')[0]) >= 8 &&
- Number(osRelease[0]) >= 10 &&
- Number(osRelease[2]) >= 10586
- ) {
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
- }
- return 1;
- }
- if ('CI' in env$1) {
- if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$1) || env$1.CI_NAME === 'codeship') {
- return 1;
- }
- return min;
- }
- if ('TEAMCITY_VERSION' in env$1) {
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0;
- }
- if (env$1.COLORTERM === 'truecolor') {
- return 3;
- }
- if ('TERM_PROGRAM' in env$1) {
- const version = parseInt((env$1.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
- switch (env$1.TERM_PROGRAM) {
- case 'iTerm.app':
- return version >= 3 ? 3 : 2;
- case 'Apple_Terminal':
- return 2;
- }
- }
- if (/-256(color)?$/i.test(env$1.TERM)) {
- return 2;
- }
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) {
- return 1;
- }
- if ('COLORTERM' in env$1) {
- return 1;
- }
- if (env$1.TERM === 'dumb') {
- return min;
- }
- return min;
- }
- function getSupportLevel$1(stream) {
- const level = supportsColor$1(stream);
- return translateLevel$1(level);
- }
- var supportsColor_1$1 = {
- supportsColor: getSupportLevel$1,
- stdout: getSupportLevel$1(process.stdout),
- stderr: getSupportLevel$1(process.stderr)
- };
- const TEMPLATE_REGEX$1 = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
- const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
- const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
- const ESCAPE_REGEX$1 = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
- const ESCAPES$1 = new Map([
- ['n', '\n'],
- ['r', '\r'],
- ['t', '\t'],
- ['b', '\b'],
- ['f', '\f'],
- ['v', '\v'],
- ['0', '\0'],
- ['\\', '\\'],
- ['e', '\u001B'],
- ['a', '\u0007']
- ]);
- function unescape$1(c) {
- if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
- return String.fromCharCode(parseInt(c.slice(1), 16));
- }
- return ESCAPES$1.get(c) || c;
- }
- function parseArguments$1(name, args) {
- const results = [];
- const chunks = args.trim().split(/\s*,\s*/g);
- let matches;
- for (const chunk of chunks) {
- if (!isNaN(chunk)) {
- results.push(Number(chunk));
- } else if ((matches = chunk.match(STRING_REGEX$1))) {
- results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, chr) => escape ? unescape$1(escape) : chr));
- } else {
- throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
- }
- }
- return results;
- }
- function parseStyle$1(style) {
- STYLE_REGEX$1.lastIndex = 0;
- const results = [];
- let matches;
- while ((matches = STYLE_REGEX$1.exec(style)) !== null) {
- const name = matches[1];
- if (matches[2]) {
- const args = parseArguments$1(name, matches[2]);
- results.push([name].concat(args));
- } else {
- results.push([name]);
- }
- }
- return results;
- }
- function buildStyle$1(chalk, styles) {
- const enabled = {};
- for (const layer of styles) {
- for (const style of layer.styles) {
- enabled[style[0]] = layer.inverse ? null : style.slice(1);
- }
- }
- let current = chalk;
- for (const styleName of Object.keys(enabled)) {
- if (Array.isArray(enabled[styleName])) {
- if (!(styleName in current)) {
- throw new Error(`Unknown Chalk style: ${styleName}`);
- }
- if (enabled[styleName].length > 0) {
- current = current[styleName].apply(current, enabled[styleName]);
- } else {
- current = current[styleName];
- }
- }
- }
- return current;
- }
- var templates$1 = (chalk, tmp) => {
- const styles = [];
- const chunks = [];
- let chunk = [];
- tmp.replace(TEMPLATE_REGEX$1, (m, escapeChar, inverse, style, close, chr) => {
- if (escapeChar) {
- chunk.push(unescape$1(escapeChar));
- } else if (style) {
- const str = chunk.join('');
- chunk = [];
- chunks.push(styles.length === 0 ? str : buildStyle$1(chalk, styles)(str));
- styles.push({inverse, styles: parseStyle$1(style)});
- } else if (close) {
- if (styles.length === 0) {
- throw new Error('Found extraneous } in Chalk template literal');
- }
- chunks.push(buildStyle$1(chalk, styles)(chunk.join('')));
- chunk = [];
- styles.pop();
- } else {
- chunk.push(chr);
- }
- });
- chunks.push(chunk.join(''));
- if (styles.length > 0) {
- const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
- throw new Error(errMsg);
- }
- return chunks.join('');
- };
- (function (module) {
- const escapeStringRegexp = escapeStringRegexp$1;
- const ansiStyles = ansiStylesExports$1;
- const stdoutColor = supportsColor_1$1.stdout;
- const template = templates$1;
- const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
- const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
- const skipModels = new Set(['gray']);
- const styles = Object.create(null);
- function applyOptions(obj, options) {
- options = options || {};
- const scLevel = stdoutColor ? stdoutColor.level : 0;
- obj.level = options.level === undefined ? scLevel : options.level;
- obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
- }
- function Chalk(options) {
- if (!this || !(this instanceof Chalk) || this.template) {
- const chalk = {};
- applyOptions(chalk, options);
- chalk.template = function () {
- const args = [].slice.call(arguments);
- return chalkTag.apply(null, [chalk.template].concat(args));
- };
- Object.setPrototypeOf(chalk, Chalk.prototype);
- Object.setPrototypeOf(chalk.template, chalk);
- chalk.template.constructor = Chalk;
- return chalk.template;
- }
- applyOptions(this, options);
- }
- if (isSimpleWindowsTerm) {
- ansiStyles.blue.open = '\u001B[94m';
- }
- for (const key of Object.keys(ansiStyles)) {
- ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
- styles[key] = {
- get() {
- const codes = ansiStyles[key];
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
- }
- };
- }
- styles.visible = {
- get() {
- return build.call(this, this._styles || [], true, 'visible');
- }
- };
- ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
- for (const model of Object.keys(ansiStyles.color.ansi)) {
- if (skipModels.has(model)) {
- continue;
- }
- styles[model] = {
- get() {
- const level = this.level;
- return function () {
- const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
- const codes = {
- open,
- close: ansiStyles.color.close,
- closeRe: ansiStyles.color.closeRe
- };
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
- };
- }
- };
- }
- ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
- for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
- if (skipModels.has(model)) {
- continue;
- }
- const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
- styles[bgModel] = {
- get() {
- const level = this.level;
- return function () {
- const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
- const codes = {
- open,
- close: ansiStyles.bgColor.close,
- closeRe: ansiStyles.bgColor.closeRe
- };
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
- };
- }
- };
- }
- const proto = Object.defineProperties(() => {}, styles);
- function build(_styles, _empty, key) {
- const builder = function () {
- return applyStyle.apply(builder, arguments);
- };
- builder._styles = _styles;
- builder._empty = _empty;
- const self = this;
- Object.defineProperty(builder, 'level', {
- enumerable: true,
- get() {
- return self.level;
- },
- set(level) {
- self.level = level;
- }
- });
- Object.defineProperty(builder, 'enabled', {
- enumerable: true,
- get() {
- return self.enabled;
- },
- set(enabled) {
- self.enabled = enabled;
- }
- });
- builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
- builder.__proto__ = proto;
- return builder;
- }
- function applyStyle() {
- const args = arguments;
- const argsLen = args.length;
- let str = String(arguments[0]);
- if (argsLen === 0) {
- return '';
- }
- if (argsLen > 1) {
- for (let a = 1; a < argsLen; a++) {
- str += ' ' + args[a];
- }
- }
- if (!this.enabled || this.level <= 0 || !str) {
- return this._empty ? '' : str;
- }
- const originalDim = ansiStyles.dim.open;
- if (isSimpleWindowsTerm && this.hasGrey) {
- ansiStyles.dim.open = '';
- }
- for (const code of this._styles.slice().reverse()) {
- str = code.open + str.replace(code.closeRe, code.open) + code.close;
- str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
- }
- ansiStyles.dim.open = originalDim;
- return str;
- }
- function chalkTag(chalk, strings) {
- if (!Array.isArray(strings)) {
- return [].slice.call(arguments, 1).join(' ');
- }
- const args = [].slice.call(arguments, 2);
- const parts = [strings.raw[0]];
- for (let i = 1; i < strings.length; i++) {
- parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
- parts.push(String(strings.raw[i]));
- }
- return template(chalk, parts.join(''));
- }
- Object.defineProperties(Chalk.prototype, styles);
- module.exports = Chalk();
- module.exports.supportsColor = stdoutColor;
- module.exports.default = module.exports;
- } (chalk$1));
- var chalkExports$1 = chalk$1.exports;
- Object.defineProperty(lib$1, "__esModule", {
- value: true
- });
- lib$1.default = highlight;
- lib$1.shouldHighlight = shouldHighlight;
- var _jsTokens = jsTokens;
- var _helperValidatorIdentifier = lib;
- var _chalk$1 = _interopRequireWildcard$1(chalkExports$1, true);
- function _getRequireWildcardCache$1(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache$1 = function (e) { return e ? t : r; })(e); }
- function _interopRequireWildcard$1(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache$1(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
- const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
- function getDefs$1(chalk) {
- return {
- keyword: chalk.cyan,
- capitalized: chalk.yellow,
- jsxIdentifier: chalk.yellow,
- punctuator: chalk.yellow,
- number: chalk.magenta,
- string: chalk.green,
- regex: chalk.magenta,
- comment: chalk.grey,
- invalid: chalk.white.bgRed.bold
- };
- }
- const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
- const BRACKET = /^[()[\]{}]$/;
- let tokenize;
- {
- const JSX_TAG = /^[a-z][\w-]*$/i;
- const getTokenType = function (token, offset, text) {
- if (token.type === "name") {
- if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) {
- return "keyword";
- }
- if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) == "</")) {
- return "jsxIdentifier";
- }
- if (token.value[0] !== token.value[0].toLowerCase()) {
- return "capitalized";
- }
- }
- if (token.type === "punctuator" && BRACKET.test(token.value)) {
- return "bracket";
- }
- if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
- return "punctuator";
- }
- return token.type;
- };
- tokenize = function* (text) {
- let match;
- while (match = _jsTokens.default.exec(text)) {
- const token = _jsTokens.matchToToken(match);
- yield {
- type: getTokenType(token, match.index, text),
- value: token.value
- };
- }
- };
- }
- function highlightTokens(defs, text) {
- let highlighted = "";
- for (const {
- type,
- value
- } of tokenize(text)) {
- const colorize = defs[type];
- if (colorize) {
- highlighted += value.split(NEWLINE$1).map(str => colorize(str)).join("\n");
- } else {
- highlighted += value;
- }
- }
- return highlighted;
- }
- function shouldHighlight(options) {
- return _chalk$1.default.level > 0 || options.forceColor;
- }
- let chalkWithForcedColor$1 = undefined;
- function getChalk$1(forceColor) {
- if (forceColor) {
- var _chalkWithForcedColor;
- (_chalkWithForcedColor = chalkWithForcedColor$1) != null ? _chalkWithForcedColor : chalkWithForcedColor$1 = new _chalk$1.default.constructor({
- enabled: true,
- level: 1
- });
- return chalkWithForcedColor$1;
- }
- return _chalk$1.default;
- }
- {
- lib$1.getChalk = options => getChalk$1(options.forceColor);
- }
- function highlight(code, options = {}) {
- if (code !== "" && shouldHighlight(options)) {
- const defs = getDefs$1(getChalk$1(options.forceColor));
- return highlightTokens(defs, code);
- } else {
- return code;
- }
- }
- var chalk = {exports: {}};
- var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
- var escapeStringRegexp = function (str) {
- if (typeof str !== 'string') {
- throw new TypeError('Expected a string');
- }
- return str.replace(matchOperatorsRe, '\\$&');
- };
- var ansiStyles = {exports: {}};
- ansiStyles.exports;
- (function (module) {
- const colorConvert$1 = colorConvert;
- const wrapAnsi16 = (fn, offset) => function () {
- const code = fn.apply(colorConvert$1, arguments);
- return `\u001B[${code + offset}m`;
- };
- const wrapAnsi256 = (fn, offset) => function () {
- const code = fn.apply(colorConvert$1, arguments);
- return `\u001B[${38 + offset};5;${code}m`;
- };
- const wrapAnsi16m = (fn, offset) => function () {
- const rgb = fn.apply(colorConvert$1, arguments);
- return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
- };
- function assembleStyles() {
- const codes = new Map();
- const styles = {
- modifier: {
- reset: [0, 0],
- bold: [1, 22],
- dim: [2, 22],
- italic: [3, 23],
- underline: [4, 24],
- inverse: [7, 27],
- hidden: [8, 28],
- strikethrough: [9, 29]
- },
- color: {
- black: [30, 39],
- red: [31, 39],
- green: [32, 39],
- yellow: [33, 39],
- blue: [34, 39],
- magenta: [35, 39],
- cyan: [36, 39],
- white: [37, 39],
- gray: [90, 39],
- redBright: [91, 39],
- greenBright: [92, 39],
- yellowBright: [93, 39],
- blueBright: [94, 39],
- magentaBright: [95, 39],
- cyanBright: [96, 39],
- whiteBright: [97, 39]
- },
- bgColor: {
- bgBlack: [40, 49],
- bgRed: [41, 49],
- bgGreen: [42, 49],
- bgYellow: [43, 49],
- bgBlue: [44, 49],
- bgMagenta: [45, 49],
- bgCyan: [46, 49],
- bgWhite: [47, 49],
- bgBlackBright: [100, 49],
- bgRedBright: [101, 49],
- bgGreenBright: [102, 49],
- bgYellowBright: [103, 49],
- bgBlueBright: [104, 49],
- bgMagentaBright: [105, 49],
- bgCyanBright: [106, 49],
- bgWhiteBright: [107, 49]
- }
- };
- styles.color.grey = styles.color.gray;
- for (const groupName of Object.keys(styles)) {
- const group = styles[groupName];
- for (const styleName of Object.keys(group)) {
- const style = group[styleName];
- styles[styleName] = {
- open: `\u001B[${style[0]}m`,
- close: `\u001B[${style[1]}m`
- };
- group[styleName] = styles[styleName];
- codes.set(style[0], style[1]);
- }
- Object.defineProperty(styles, groupName, {
- value: group,
- enumerable: false
- });
- Object.defineProperty(styles, 'codes', {
- value: codes,
- enumerable: false
- });
- }
- const ansi2ansi = n => n;
- const rgb2rgb = (r, g, b) => [r, g, b];
- styles.color.close = '\u001B[39m';
- styles.bgColor.close = '\u001B[49m';
- styles.color.ansi = {
- ansi: wrapAnsi16(ansi2ansi, 0)
- };
- styles.color.ansi256 = {
- ansi256: wrapAnsi256(ansi2ansi, 0)
- };
- styles.color.ansi16m = {
- rgb: wrapAnsi16m(rgb2rgb, 0)
- };
- styles.bgColor.ansi = {
- ansi: wrapAnsi16(ansi2ansi, 10)
- };
- styles.bgColor.ansi256 = {
- ansi256: wrapAnsi256(ansi2ansi, 10)
- };
- styles.bgColor.ansi16m = {
- rgb: wrapAnsi16m(rgb2rgb, 10)
- };
- for (let key of Object.keys(colorConvert$1)) {
- if (typeof colorConvert$1[key] !== 'object') {
- continue;
- }
- const suite = colorConvert$1[key];
- if (key === 'ansi16') {
- key = 'ansi';
- }
- if ('ansi16' in suite) {
- styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
- styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
- }
- if ('ansi256' in suite) {
- styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
- styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
- }
- if ('rgb' in suite) {
- styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
- styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
- }
- }
- return styles;
- }
- Object.defineProperty(module, 'exports', {
- enumerable: true,
- get: assembleStyles
- });
- } (ansiStyles));
- var ansiStylesExports = ansiStyles.exports;
- var hasFlag$1 = (flag, argv) => {
- argv = argv || process.argv;
- const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
- const pos = argv.indexOf(prefix + flag);
- const terminatorPos = argv.indexOf('--');
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
- };
- const os = require$$0$2;
- const hasFlag = hasFlag$1;
- const env = process.env;
- let forceColor;
- if (hasFlag('no-color') ||
- hasFlag('no-colors') ||
- hasFlag('color=false')) {
- forceColor = false;
- } else if (hasFlag('color') ||
- hasFlag('colors') ||
- hasFlag('color=true') ||
- hasFlag('color=always')) {
- forceColor = true;
- }
- if ('FORCE_COLOR' in env) {
- forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
- }
- function translateLevel(level) {
- if (level === 0) {
- return false;
- }
- return {
- level,
- hasBasic: true,
- has256: level >= 2,
- has16m: level >= 3
- };
- }
- function supportsColor(stream) {
- if (forceColor === false) {
- return 0;
- }
- if (hasFlag('color=16m') ||
- hasFlag('color=full') ||
- hasFlag('color=truecolor')) {
- return 3;
- }
- if (hasFlag('color=256')) {
- return 2;
- }
- if (stream && !stream.isTTY && forceColor !== true) {
- return 0;
- }
- const min = forceColor ? 1 : 0;
- if (process.platform === 'win32') {
- const osRelease = os.release().split('.');
- if (
- Number(process.versions.node.split('.')[0]) >= 8 &&
- Number(osRelease[0]) >= 10 &&
- Number(osRelease[2]) >= 10586
- ) {
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
- }
- return 1;
- }
- if ('CI' in env) {
- if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
- return 1;
- }
- return min;
- }
- if ('TEAMCITY_VERSION' in env) {
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
- }
- if (env.COLORTERM === 'truecolor') {
- return 3;
- }
- if ('TERM_PROGRAM' in env) {
- const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
- switch (env.TERM_PROGRAM) {
- case 'iTerm.app':
- return version >= 3 ? 3 : 2;
- case 'Apple_Terminal':
- return 2;
- }
- }
- if (/-256(color)?$/i.test(env.TERM)) {
- return 2;
- }
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
- return 1;
- }
- if ('COLORTERM' in env) {
- return 1;
- }
- if (env.TERM === 'dumb') {
- return min;
- }
- return min;
- }
- function getSupportLevel(stream) {
- const level = supportsColor(stream);
- return translateLevel(level);
- }
- var supportsColor_1 = {
- supportsColor: getSupportLevel,
- stdout: getSupportLevel(process.stdout),
- stderr: getSupportLevel(process.stderr)
- };
- const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
- const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
- const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
- const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
- const ESCAPES = new Map([
- ['n', '\n'],
- ['r', '\r'],
- ['t', '\t'],
- ['b', '\b'],
- ['f', '\f'],
- ['v', '\v'],
- ['0', '\0'],
- ['\\', '\\'],
- ['e', '\u001B'],
- ['a', '\u0007']
- ]);
- function unescape(c) {
- if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
- return String.fromCharCode(parseInt(c.slice(1), 16));
- }
- return ESCAPES.get(c) || c;
- }
- function parseArguments(name, args) {
- const results = [];
- const chunks = args.trim().split(/\s*,\s*/g);
- let matches;
- for (const chunk of chunks) {
- if (!isNaN(chunk)) {
- results.push(Number(chunk));
- } else if ((matches = chunk.match(STRING_REGEX))) {
- results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));
- } else {
- throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
- }
- }
- return results;
- }
- function parseStyle(style) {
- STYLE_REGEX.lastIndex = 0;
- const results = [];
- let matches;
- while ((matches = STYLE_REGEX.exec(style)) !== null) {
- const name = matches[1];
- if (matches[2]) {
- const args = parseArguments(name, matches[2]);
- results.push([name].concat(args));
- } else {
- results.push([name]);
- }
- }
- return results;
- }
- function buildStyle(chalk, styles) {
- const enabled = {};
- for (const layer of styles) {
- for (const style of layer.styles) {
- enabled[style[0]] = layer.inverse ? null : style.slice(1);
- }
- }
- let current = chalk;
- for (const styleName of Object.keys(enabled)) {
- if (Array.isArray(enabled[styleName])) {
- if (!(styleName in current)) {
- throw new Error(`Unknown Chalk style: ${styleName}`);
- }
- if (enabled[styleName].length > 0) {
- current = current[styleName].apply(current, enabled[styleName]);
- } else {
- current = current[styleName];
- }
- }
- }
- return current;
- }
- var templates = (chalk, tmp) => {
- const styles = [];
- const chunks = [];
- let chunk = [];
- tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {
- if (escapeChar) {
- chunk.push(unescape(escapeChar));
- } else if (style) {
- const str = chunk.join('');
- chunk = [];
- chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));
- styles.push({inverse, styles: parseStyle(style)});
- } else if (close) {
- if (styles.length === 0) {
- throw new Error('Found extraneous } in Chalk template literal');
- }
- chunks.push(buildStyle(chalk, styles)(chunk.join('')));
- chunk = [];
- styles.pop();
- } else {
- chunk.push(chr);
- }
- });
- chunks.push(chunk.join(''));
- if (styles.length > 0) {
- const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
- throw new Error(errMsg);
- }
- return chunks.join('');
- };
- (function (module) {
- const escapeStringRegexp$1 = escapeStringRegexp;
- const ansiStyles = ansiStylesExports;
- const stdoutColor = supportsColor_1.stdout;
- const template = templates;
- const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
- const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
- const skipModels = new Set(['gray']);
- const styles = Object.create(null);
- function applyOptions(obj, options) {
- options = options || {};
- const scLevel = stdoutColor ? stdoutColor.level : 0;
- obj.level = options.level === undefined ? scLevel : options.level;
- obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
- }
- function Chalk(options) {
- if (!this || !(this instanceof Chalk) || this.template) {
- const chalk = {};
- applyOptions(chalk, options);
- chalk.template = function () {
- const args = [].slice.call(arguments);
- return chalkTag.apply(null, [chalk.template].concat(args));
- };
- Object.setPrototypeOf(chalk, Chalk.prototype);
- Object.setPrototypeOf(chalk.template, chalk);
- chalk.template.constructor = Chalk;
- return chalk.template;
- }
- applyOptions(this, options);
- }
- if (isSimpleWindowsTerm) {
- ansiStyles.blue.open = '\u001B[94m';
- }
- for (const key of Object.keys(ansiStyles)) {
- ansiStyles[key].closeRe = new RegExp(escapeStringRegexp$1(ansiStyles[key].close), 'g');
- styles[key] = {
- get() {
- const codes = ansiStyles[key];
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
- }
- };
- }
- styles.visible = {
- get() {
- return build.call(this, this._styles || [], true, 'visible');
- }
- };
- ansiStyles.color.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles.color.close), 'g');
- for (const model of Object.keys(ansiStyles.color.ansi)) {
- if (skipModels.has(model)) {
- continue;
- }
- styles[model] = {
- get() {
- const level = this.level;
- return function () {
- const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
- const codes = {
- open,
- close: ansiStyles.color.close,
- closeRe: ansiStyles.color.closeRe
- };
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
- };
- }
- };
- }
- ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles.bgColor.close), 'g');
- for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
- if (skipModels.has(model)) {
- continue;
- }
- const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
- styles[bgModel] = {
- get() {
- const level = this.level;
- return function () {
- const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
- const codes = {
- open,
- close: ansiStyles.bgColor.close,
- closeRe: ansiStyles.bgColor.closeRe
- };
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
- };
- }
- };
- }
- const proto = Object.defineProperties(() => {}, styles);
- function build(_styles, _empty, key) {
- const builder = function () {
- return applyStyle.apply(builder, arguments);
- };
- builder._styles = _styles;
- builder._empty = _empty;
- const self = this;
- Object.defineProperty(builder, 'level', {
- enumerable: true,
- get() {
- return self.level;
- },
- set(level) {
- self.level = level;
- }
- });
- Object.defineProperty(builder, 'enabled', {
- enumerable: true,
- get() {
- return self.enabled;
- },
- set(enabled) {
- self.enabled = enabled;
- }
- });
- builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
- builder.__proto__ = proto;
- return builder;
- }
- function applyStyle() {
- const args = arguments;
- const argsLen = args.length;
- let str = String(arguments[0]);
- if (argsLen === 0) {
- return '';
- }
- if (argsLen > 1) {
- for (let a = 1; a < argsLen; a++) {
- str += ' ' + args[a];
- }
- }
- if (!this.enabled || this.level <= 0 || !str) {
- return this._empty ? '' : str;
- }
- const originalDim = ansiStyles.dim.open;
- if (isSimpleWindowsTerm && this.hasGrey) {
- ansiStyles.dim.open = '';
- }
- for (const code of this._styles.slice().reverse()) {
- str = code.open + str.replace(code.closeRe, code.open) + code.close;
- str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
- }
- ansiStyles.dim.open = originalDim;
- return str;
- }
- function chalkTag(chalk, strings) {
- if (!Array.isArray(strings)) {
- return [].slice.call(arguments, 1).join(' ');
- }
- const args = [].slice.call(arguments, 2);
- const parts = [strings.raw[0]];
- for (let i = 1; i < strings.length; i++) {
- parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
- parts.push(String(strings.raw[i]));
- }
- return template(chalk, parts.join(''));
- }
- Object.defineProperties(Chalk.prototype, styles);
- module.exports = Chalk();
- module.exports.supportsColor = stdoutColor;
- module.exports.default = module.exports;
- } (chalk));
- var chalkExports = chalk.exports;
- Object.defineProperty(lib$2, "__esModule", {
- value: true
- });
- var codeFrameColumns_1 = lib$2.codeFrameColumns = codeFrameColumns;
- lib$2.default = _default;
- var _highlight = lib$1;
- var _chalk = _interopRequireWildcard(chalkExports, true);
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
- let chalkWithForcedColor = undefined;
- function getChalk(forceColor) {
- if (forceColor) {
- var _chalkWithForcedColor;
- (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new _chalk.default.constructor({
- enabled: true,
- level: 1
- });
- return chalkWithForcedColor;
- }
- return _chalk.default;
- }
- let deprecationWarningShown = false;
- function getDefs(chalk) {
- return {
- gutter: chalk.grey,
- marker: chalk.red.bold,
- message: chalk.red.bold
- };
- }
- const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
- function getMarkerLines(loc, source, opts) {
- const startLoc = Object.assign({
- column: 0,
- line: -1
- }, loc.start);
- const endLoc = Object.assign({}, startLoc, loc.end);
- const {
- linesAbove = 2,
- linesBelow = 3
- } = opts || {};
- const startLine = startLoc.line;
- const startColumn = startLoc.column;
- const endLine = endLoc.line;
- const endColumn = endLoc.column;
- let start = Math.max(startLine - (linesAbove + 1), 0);
- let end = Math.min(source.length, endLine + linesBelow);
- if (startLine === -1) {
- start = 0;
- }
- if (endLine === -1) {
- end = source.length;
- }
- const lineDiff = endLine - startLine;
- const markerLines = {};
- if (lineDiff) {
- for (let i = 0; i <= lineDiff; i++) {
- const lineNumber = i + startLine;
- if (!startColumn) {
- markerLines[lineNumber] = true;
- } else if (i === 0) {
- const sourceLength = source[lineNumber - 1].length;
- markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
- } else if (i === lineDiff) {
- markerLines[lineNumber] = [0, endColumn];
- } else {
- const sourceLength = source[lineNumber - i].length;
- markerLines[lineNumber] = [0, sourceLength];
- }
- }
- } else {
- if (startColumn === endColumn) {
- if (startColumn) {
- markerLines[startLine] = [startColumn, 0];
- } else {
- markerLines[startLine] = true;
- }
- } else {
- markerLines[startLine] = [startColumn, endColumn - startColumn];
- }
- }
- return {
- start,
- end,
- markerLines
- };
- }
- function codeFrameColumns(rawLines, loc, opts = {}) {
- const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts);
- const chalk = getChalk(opts.forceColor);
- const defs = getDefs(chalk);
- const maybeHighlight = (chalkFn, string) => {
- return highlighted ? chalkFn(string) : string;
- };
- const lines = rawLines.split(NEWLINE);
- const {
- start,
- end,
- markerLines
- } = getMarkerLines(loc, lines, opts);
- const hasColumns = loc.start && typeof loc.start.column === "number";
- const numberMaxWidth = String(end).length;
- const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines;
- let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
- const number = start + 1 + index;
- const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
- const gutter = ` ${paddedNumber} |`;
- const hasMarker = markerLines[number];
- const lastMarkerLine = !markerLines[number + 1];
- if (hasMarker) {
- let markerLine = "";
- if (Array.isArray(hasMarker)) {
- const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
- const numberOfMarkers = hasMarker[1] || 1;
- markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join("");
- if (lastMarkerLine && opts.message) {
- markerLine += " " + maybeHighlight(defs.message, opts.message);
- }
- }
- return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
- } else {
- return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`;
- }
- }).join("\n");
- if (opts.message && !hasColumns) {
- frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
- }
- if (highlighted) {
- return chalk.reset(frame);
- } else {
- return frame;
- }
- }
- function _default(rawLines, lineNumber, colNumber, opts = {}) {
- if (!deprecationWarningShown) {
- deprecationWarningShown = true;
- const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
- if (process.emitWarning) {
- process.emitWarning(message, "DeprecationWarning");
- } else {
- const deprecationError = new Error(message);
- deprecationError.name = "DeprecationWarning";
- console.warn(new Error(message));
- }
- }
- colNumber = Math.max(colNumber, 0);
- const location = {
- start: {
- column: colNumber,
- line: lineNumber
- }
- };
- return codeFrameColumns(rawLines, location, opts);
- }
- const safeLastIndexOf = (string, searchString, index) =>
- index < 0 ? -1 : string.lastIndexOf(searchString, index);
- function getPosition(text, textIndex) {
- const lineBreakBefore = safeLastIndexOf(text, '\n', textIndex - 1);
- const column = textIndex - lineBreakBefore - 1;
- let line = 0;
- for (
- let index = lineBreakBefore;
- index >= 0;
- index = safeLastIndexOf(text, '\n', index - 1)
- ) {
- line++;
- }
- return {line, column};
- }
- function indexToLineColumn(text, textIndex, {oneBased = false} = {}) {
- if (textIndex < 0 || (textIndex >= text.length && text.length > 0)) {
- throw new RangeError('Index out of bounds');
- }
- const position = getPosition(text, textIndex);
- return oneBased ? {line: position.line + 1, column: position.column + 1} : position;
- }
- const getCodePoint = character => `\\u{${character.codePointAt(0).toString(16)}}`;
- class JSONError extends Error {
- name = 'JSONError';
- fileName;
- codeFrame;
- rawCodeFrame;
- #message;
- constructor(message) {
- super();
- this.#message = message;
- Error.captureStackTrace?.(this, JSONError);
- }
- get message() {
- const {fileName, codeFrame} = this;
- return `${this.#message}${fileName ? ` in ${fileName}` : ''}${codeFrame ? `\n\n${codeFrame}\n` : ''}`;
- }
- set message(message) {
- this.#message = message;
- }
- }
- const generateCodeFrame = (string, location, highlightCode = true) =>
- codeFrameColumns_1(string, {start: location}, {highlightCode});
- const getErrorLocation = (string, message) => {
- const match = message.match(/in JSON at position (?<index>\d+)(?: \(line (?<line>\d+) column (?<column>\d+)\))?$/);
- if (!match) {
- return;
- }
- let {index, line, column} = match.groups;
- if (line && column) {
- return {line: Number(line), column: Number(column)};
- }
- index = Number(index);
- if (index === string.length) {
- const {line, column} = indexToLineColumn(string, string.length - 1, {oneBased: true});
- return {line, column: column + 1};
- }
- return indexToLineColumn(string, index, {oneBased: true});
- };
- const addCodePointToUnexpectedToken = message => message.replace(
- /(?<=^Unexpected token )(?<quote>')?(.)\k<quote>/,
- (_, _quote, token) => `"${token}"(${getCodePoint(token)})`,
- );
- function parseJson(string, reviver, fileName) {
- if (typeof reviver === 'string') {
- fileName = reviver;
- reviver = undefined;
- }
- let message;
- try {
- return JSON.parse(string, reviver);
- } catch (error) {
- message = error.message;
- }
- let location;
- if (string) {
- location = getErrorLocation(string, message);
- message = addCodePointToUnexpectedToken(message);
- } else {
- message += ' while parsing empty string';
- }
- const jsonError = new JSONError(message);
- jsonError.fileName = fileName;
- if (location) {
- jsonError.codeFrame = generateCodeFrame(string, location);
- jsonError.rawCodeFrame = generateCodeFrame(string, location, /* highlightCode */ false);
- }
- throw jsonError;
- }
- function toPath(urlOrPath) {
- return urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
- }
- const getPackagePath = cwd => path$1.resolve(toPath(cwd) ?? '.', 'package.json');
- const _readPackage = (file, normalize) => {
- const json = typeof file === 'string'
- ? parseJson(file)
- : file;
- if (normalize) {
- normalizePackageData(json);
- }
- return json;
- };
- function readPackageSync({cwd, normalize = true} = {}) {
- const packageFile = fs$1.readFileSync(getPackagePath(cwd), 'utf8');
- return _readPackage(packageFile, normalize);
- }
- function readPackageUpSync(options) {
- const filePath = findUpSync('package.json', options);
- if (!filePath) {
- return;
- }
- return {
- packageJson: readPackageSync({...options, cwd: path$1.dirname(filePath)}),
- path: filePath,
- };
- }
- const handlePreserveConsecutiveUppercase = (decamelized, separator) => {
- // Lowercase all single uppercase characters. As we
- // want to preserve uppercase sequences, we cannot
- // simply lowercase the separated string at the end.
- // `data_For_USACounties` → `data_for_USACounties`
- decamelized = decamelized.replace(
- /((?<![\p{Uppercase_Letter}\d])[\p{Uppercase_Letter}\d](?![\p{Uppercase_Letter}\d]))/gu,
- $0 => $0.toLowerCase(),
- );
- // Remaining uppercase sequences will be separated from lowercase sequences.
- // `data_For_USACounties` → `data_for_USA_counties`
- return decamelized.replace(
- /(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,
- (_, $1, $2) => $1 + separator + $2.toLowerCase(),
- );
- };
- function decamelize(
- text,
- {
- separator = '_',
- preserveConsecutiveUppercase = false,
- } = {},
- ) {
- if (!(typeof text === 'string' && typeof separator === 'string')) {
- throw new TypeError(
- 'The `text` and `separator` arguments should be of type `string`',
- );
- }
- // Checking the second character is done later on. Therefore process shorter strings here.
- if (text.length < 2) {
- return preserveConsecutiveUppercase ? text : text.toLowerCase();
- }
- const replacement = `$1${separator}$2`;
- // Split lowercase sequences followed by uppercase character.
- // `dataForUSACounties` → `data_For_USACounties`
- // `myURLstring → `my_URLstring`
- const decamelized = text.replace(
- /([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu,
- replacement,
- );
- if (preserveConsecutiveUppercase) {
- return handlePreserveConsecutiveUppercase(decamelized, separator);
- }
- // Split multiple uppercase characters followed by one or more lowercase characters.
- // `my_URLstring` → `my_ur_lstring`
- return decamelized
- .replace(
- /(\p{Uppercase_Letter})(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,
- replacement,
- )
- .toLowerCase();
- }
- var minimistOptions = {exports: {}};
- var toString$1 = Object.prototype.toString;
- var isPlainObj = function (x) {
- var prototype;
- return toString$1.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));
- };
- var arrify$1 = function (val) {
- if (val === null || val === undefined) {
- return [];
- }
- return Array.isArray(val) ? val : [val];
- };
- var toString = Object.prototype.toString;
- var kindOf$1 = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
- if (isGeneratorObj(val)) {
- return 'generator';
- }
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
- };
- function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
- }
- function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
- }
- function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
- }
- function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
- }
- function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
- }
- function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
- }
- function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
- }
- function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
- }
- /**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
- function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
- }
- const isPlainObject = isPlainObj;
- const arrify = arrify$1;
- const kindOf = kindOf$1;
- const push = (obj, prop, value) => {
- if (!obj[prop]) {
- obj[prop] = [];
- }
- obj[prop].push(value);
- };
- const insert = (obj, prop, key, value) => {
- if (!obj[prop]) {
- obj[prop] = {};
- }
- obj[prop][key] = value;
- };
- const prettyPrint = output => {
- return Array.isArray(output) ?
- `[${output.map(prettyPrint).join(', ')}]` :
- kindOf(output) === 'string' ? JSON.stringify(output) : output;
- };
- const resolveType = value => {
- if (Array.isArray(value) && value.length > 0) {
- const [element] = value;
- return `${kindOf(element)}-array`;
- }
- return kindOf(value);
- };
- const normalizeExpectedType = (type, defaultValue) => {
- const inferredType = type === 'array' ? 'string-array' : type;
- if (arrayTypes.includes(inferredType) && Array.isArray(defaultValue) && defaultValue.length === 0) {
- return 'array';
- }
- return inferredType;
- };
- const passthroughOptions = ['stopEarly', 'unknown', '--'];
- const primitiveTypes = ['string', 'boolean', 'number'];
- const arrayTypes = primitiveTypes.map(t => `${t}-array`);
- const availableTypes = [...primitiveTypes, 'array', ...arrayTypes];
- const buildOptions = options => {
- options = options || {};
- const result = {};
- passthroughOptions.forEach(key => {
- if (options[key]) {
- result[key] = options[key];
- }
- });
- Object.keys(options).forEach(key => {
- let value = options[key];
- if (key === 'arguments') {
- key = '_';
- }
- // If short form is used
- // convert it to long form
- // e.g. { 'name': 'string' }
- if (typeof value === 'string') {
- value = {type: value};
- }
- if (isPlainObject(value)) {
- const props = value;
- const {type} = props;
- if (type) {
- if (!availableTypes.includes(type)) {
- throw new TypeError(`Expected type of "${key}" to be one of ${prettyPrint(availableTypes)}, got ${prettyPrint(type)}`);
- }
- if (arrayTypes.includes(type)) {
- const [elementType] = type.split('-');
- push(result, 'array', {key, [elementType]: true});
- } else {
- push(result, type, key);
- }
- }
- if ({}.hasOwnProperty.call(props, 'default')) {
- const {default: defaultValue} = props;
- const defaultType = resolveType(defaultValue);
- const expectedType = normalizeExpectedType(type, defaultValue);
- if (expectedType && expectedType !== defaultType) {
- throw new TypeError(`Expected "${key}" default value to be of type "${expectedType}", got ${prettyPrint(defaultType)}`);
- }
- insert(result, 'default', key, defaultValue);
- }
- arrify(props.alias).forEach(alias => {
- insert(result, 'alias', alias, key);
- });
- }
- });
- return result;
- };
- minimistOptions.exports = buildOptions;
- minimistOptions.exports.default = buildOptions;
- var minimistOptionsExports = minimistOptions.exports;
- const constructParserOptions = /*@__PURE__*/getDefaultExportFromCjs(minimistOptionsExports);
- var mapObj = {exports: {}};
- const isObject$1 = value => typeof value === 'object' && value !== null;
- const mapObjectSkip = Symbol('skip');
- // Customized for this use-case
- const isObjectCustom = value =>
- isObject$1(value) &&
- !(value instanceof RegExp) &&
- !(value instanceof Error) &&
- !(value instanceof Date);
- const mapObject = (object, mapper, options, isSeen = new WeakMap()) => {
- options = {
- deep: false,
- target: {},
- ...options
- };
- if (isSeen.has(object)) {
- return isSeen.get(object);
- }
- isSeen.set(object, options.target);
- const {target} = options;
- delete options.target;
- const mapArray = array => array.map(element => isObjectCustom(element) ? mapObject(element, mapper, options, isSeen) : element);
- if (Array.isArray(object)) {
- return mapArray(object);
- }
- for (const [key, value] of Object.entries(object)) {
- const mapResult = mapper(key, value, object);
- if (mapResult === mapObjectSkip) {
- continue;
- }
- let [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;
- // Drop `__proto__` keys.
- if (newKey === '__proto__') {
- continue;
- }
- if (options.deep && shouldRecurse && isObjectCustom(newValue)) {
- newValue = Array.isArray(newValue) ?
- mapArray(newValue) :
- mapObject(newValue, mapper, options, isSeen);
- }
- target[newKey] = newValue;
- }
- return target;
- };
- mapObj.exports = (object, mapper, options) => {
- if (!isObject$1(object)) {
- throw new TypeError(`Expected an object, got \`${object}\` (${typeof object})`);
- }
- return mapObject(object, mapper, options);
- };
- mapObj.exports.mapObjectSkip = mapObjectSkip;
- var mapObjExports = mapObj.exports;
- const mapObject$1 = /*@__PURE__*/getDefaultExportFromCjs(mapObjExports);
- const has = (array, key) => array.some(element => {
- if (typeof element === 'string') {
- return element === key;
- }
- element.lastIndex = 0;
- return element.test(key);
- });
- const cache = new QuickLRU({maxSize: 100_000});
- // Reproduces behavior from `map-obj`.
- const isObject = value =>
- typeof value === 'object'
- && value !== null
- && !(value instanceof RegExp)
- && !(value instanceof Error)
- && !(value instanceof Date);
- const transform = (input, options = {}) => {
- if (!isObject(input)) {
- return input;
- }
- const {
- separator = '_',
- exclude,
- deep = false,
- } = options;
- const makeMapper = parentPath => (key, value) => {
- if (deep && isObject(value)) {
- value = mapObject$1(value, makeMapper());
- }
- if (!(exclude && has(exclude, key))) {
- const cacheKey = `${separator}${key}`;
- if (cache.has(cacheKey)) {
- key = cache.get(cacheKey);
- } else {
- const returnValue = decamelize(key, {separator});
- if (key.length < 100) { // Prevent abuse
- cache.set(cacheKey, returnValue);
- }
- key = returnValue;
- }
- }
- return [key, value];
- };
- return mapObject$1(input, makeMapper());
- };
- function decamelizeKeys(input, options) {
- if (Array.isArray(input)) {
- return Object.keys(input).map(key => transform(input[key], options));
- }
- return transform(input, options);
- }
- export { readPackageUpSync as a, constructParserOptions as b, camelcaseKeys as c, decamelizeKeys as d, decamelize as e, normalizePackageData as n, redent as r, trimNewlines as t, yargsParser as y };
|