12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978 |
- "use strict";
- // dist/_third-party.js.cjs.js
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {
- exports: {}
- }).exports, mod), mod.exports;
- };
- var require_resolve_from = __commonJS({
- "node_modules/import-fresh/node_modules/resolve-from/index.js"(exports2, module2) {
- "use strict";
- var path = require("path");
- var Module = require("module");
- var fs = require("fs");
- var resolveFrom = (fromDir, moduleId, silent) => {
- if (typeof fromDir !== "string") {
- throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
- }
- if (typeof moduleId !== "string") {
- throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
- }
- try {
- fromDir = fs.realpathSync(fromDir);
- } catch (err) {
- if (err.code === "ENOENT") {
- fromDir = path.resolve(fromDir);
- } else if (silent) {
- return null;
- } else {
- throw err;
- }
- }
- const fromFile = path.join(fromDir, "noop.js");
- const resolveFileName = () => Module._resolveFilename(moduleId, {
- id: fromFile,
- filename: fromFile,
- paths: Module._nodeModulePaths(fromDir)
- });
- if (silent) {
- try {
- return resolveFileName();
- } catch (err) {
- return null;
- }
- }
- return resolveFileName();
- };
- module2.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
- module2.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
- }
- });
- var require_parent_module = __commonJS({
- "scripts/build/shims/parent-module.cjs"(exports2, module2) {
- "use strict";
- module2.exports = (file) => file;
- }
- });
- var require_import_fresh = __commonJS({
- "node_modules/import-fresh/index.js"(exports2, module2) {
- "use strict";
- var path = require("path");
- var resolveFrom = require_resolve_from();
- var parentModule = require_parent_module();
- module2.exports = (moduleId) => {
- if (typeof moduleId !== "string") {
- throw new TypeError("Expected a string");
- }
- const parentPath = parentModule(__filename);
- const cwd = parentPath ? path.dirname(parentPath) : __dirname;
- const filePath = resolveFrom(cwd, moduleId);
- const oldModule = require.cache[filePath];
- if (oldModule && oldModule.parent) {
- let i = oldModule.parent.children.length;
- while (i--) {
- if (oldModule.parent.children[i].id === filePath) {
- oldModule.parent.children.splice(i, 1);
- }
- }
- }
- delete require.cache[filePath];
- const parent = require.cache[parentPath];
- return parent === void 0 ? require(filePath) : parent.require(filePath);
- };
- }
- });
- var require_is_arrayish = __commonJS({
- "node_modules/is-arrayish/index.js"(exports2, module2) {
- "use strict";
- module2.exports = function isArrayish(obj) {
- if (!obj) {
- return false;
- }
- return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && obj.splice instanceof Function;
- };
- }
- });
- var require_error_ex = __commonJS({
- "node_modules/error-ex/index.js"(exports2, module2) {
- "use strict";
- var util = require("util");
- var isArrayish = require_is_arrayish();
- var errorEx = function errorEx2(name, properties) {
- if (!name || name.constructor !== String) {
- properties = name || {};
- name = Error.name;
- }
- var errorExError = function ErrorEXError(message) {
- if (!this) {
- return new ErrorEXError(message);
- }
- message = message instanceof Error ? message.message : message || this.message;
- Error.call(this, message);
- Error.captureStackTrace(this, errorExError);
- this.name = name;
- Object.defineProperty(this, "message", {
- configurable: true,
- enumerable: false,
- get: function() {
- var newMessage = message.split(/\r?\n/g);
- for (var key in properties) {
- if (!properties.hasOwnProperty(key)) {
- continue;
- }
- var modifier = properties[key];
- if ("message" in modifier) {
- newMessage = modifier.message(this[key], newMessage) || newMessage;
- if (!isArrayish(newMessage)) {
- newMessage = [newMessage];
- }
- }
- }
- return newMessage.join("\n");
- },
- set: function(v) {
- message = v;
- }
- });
- var overwrittenStack = null;
- var stackDescriptor = Object.getOwnPropertyDescriptor(this, "stack");
- var stackGetter = stackDescriptor.get;
- var stackValue = stackDescriptor.value;
- delete stackDescriptor.value;
- delete stackDescriptor.writable;
- stackDescriptor.set = function(newstack) {
- overwrittenStack = newstack;
- };
- stackDescriptor.get = function() {
- var stack = (overwrittenStack || (stackGetter ? stackGetter.call(this) : stackValue)).split(/\r?\n+/g);
- if (!overwrittenStack) {
- stack[0] = this.name + ": " + this.message;
- }
- var lineCount = 1;
- for (var key in properties) {
- if (!properties.hasOwnProperty(key)) {
- continue;
- }
- var modifier = properties[key];
- if ("line" in modifier) {
- var line = modifier.line(this[key]);
- if (line) {
- stack.splice(lineCount++, 0, " " + line);
- }
- }
- if ("stack" in modifier) {
- modifier.stack(this[key], stack);
- }
- }
- return stack.join("\n");
- };
- Object.defineProperty(this, "stack", stackDescriptor);
- };
- if (Object.setPrototypeOf) {
- Object.setPrototypeOf(errorExError.prototype, Error.prototype);
- Object.setPrototypeOf(errorExError, Error);
- } else {
- util.inherits(errorExError, Error);
- }
- return errorExError;
- };
- errorEx.append = function(str, def) {
- return {
- message: function(v, message) {
- v = v || def;
- if (v) {
- message[0] += " " + str.replace("%s", v.toString());
- }
- return message;
- }
- };
- };
- errorEx.line = function(str, def) {
- return {
- line: function(v) {
- v = v || def;
- if (v) {
- return str.replace("%s", v.toString());
- }
- return null;
- }
- };
- };
- module2.exports = errorEx;
- }
- });
- var require_json_parse_even_better_errors = __commonJS({
- "node_modules/json-parse-even-better-errors/index.js"(exports2, module2) {
- "use strict";
- var hexify = (char) => {
- const h = char.charCodeAt(0).toString(16).toUpperCase();
- return "0x" + (h.length % 2 ? "0" : "") + h;
- };
- var parseError = (e, txt, context) => {
- if (!txt) {
- return {
- message: e.message + " while parsing empty string",
- position: 0
- };
- }
- const badToken = e.message.match(/^Unexpected token (.) .*position\s+(\d+)/i);
- const errIdx = badToken ? +badToken[2] : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 : null;
- const msg = badToken ? e.message.replace(/^Unexpected token ./, `Unexpected token ${JSON.stringify(badToken[1])} (${hexify(badToken[1])})`) : e.message;
- if (errIdx !== null && errIdx !== void 0) {
- const start = errIdx <= context ? 0 : errIdx - context;
- const end = errIdx + context >= txt.length ? txt.length : errIdx + context;
- const slice = (start === 0 ? "" : "...") + txt.slice(start, end) + (end === txt.length ? "" : "...");
- const near = txt === slice ? "" : "near ";
- return {
- message: msg + ` while parsing ${near}${JSON.stringify(slice)}`,
- position: errIdx
- };
- } else {
- return {
- message: msg + ` while parsing '${txt.slice(0, context * 2)}'`,
- position: 0
- };
- }
- };
- var JSONParseError = class extends SyntaxError {
- constructor(er, txt, context, caller) {
- context = context || 20;
- const metadata = parseError(er, txt, context);
- super(metadata.message);
- Object.assign(this, metadata);
- this.code = "EJSONPARSE";
- this.systemError = er;
- Error.captureStackTrace(this, caller || this.constructor);
- }
- get name() {
- return this.constructor.name;
- }
- set name(n) {
- }
- get [Symbol.toStringTag]() {
- return this.constructor.name;
- }
- };
- var kIndent = Symbol.for("indent");
- var kNewline = Symbol.for("newline");
- var formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/;
- var emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/;
- var parseJson = (txt, reviver, context) => {
- const parseText = stripBOM(txt);
- context = context || 20;
- try {
- const [, newline = "\n", indent = " "] = parseText.match(emptyRE) || parseText.match(formatRE) || [, "", ""];
- const result = JSON.parse(parseText, reviver);
- if (result && typeof result === "object") {
- result[kNewline] = newline;
- result[kIndent] = indent;
- }
- return result;
- } catch (e) {
- if (typeof txt !== "string" && !Buffer.isBuffer(txt)) {
- const isEmptyArray = Array.isArray(txt) && txt.length === 0;
- throw Object.assign(new TypeError(`Cannot parse ${isEmptyArray ? "an empty array" : String(txt)}`), {
- code: "EJSONPARSE",
- systemError: e
- });
- }
- throw new JSONParseError(e, parseText, context, parseJson);
- }
- };
- var stripBOM = (txt) => String(txt).replace(/^\uFEFF/, "");
- module2.exports = parseJson;
- parseJson.JSONParseError = JSONParseError;
- parseJson.noExceptions = (txt, reviver) => {
- try {
- return JSON.parse(stripBOM(txt), reviver);
- } catch (e) {
- }
- };
- }
- });
- var require_build = __commonJS({
- "node_modules/parse-json/node_modules/lines-and-columns/build/index.js"(exports2) {
- "use strict";
- exports2.__esModule = true;
- exports2.LinesAndColumns = void 0;
- var LF = "\n";
- var CR = "\r";
- var LinesAndColumns = function() {
- function LinesAndColumns2(string) {
- this.string = string;
- var offsets = [0];
- for (var offset = 0; offset < string.length; ) {
- switch (string[offset]) {
- case LF:
- offset += LF.length;
- offsets.push(offset);
- break;
- case CR:
- offset += CR.length;
- if (string[offset] === LF) {
- offset += LF.length;
- }
- offsets.push(offset);
- break;
- default:
- offset++;
- break;
- }
- }
- this.offsets = offsets;
- }
- LinesAndColumns2.prototype.locationForIndex = function(index) {
- if (index < 0 || index > this.string.length) {
- return null;
- }
- var line = 0;
- var offsets = this.offsets;
- while (offsets[line + 1] <= index) {
- line++;
- }
- var column = index - offsets[line];
- return {
- line,
- column
- };
- };
- LinesAndColumns2.prototype.indexForLocation = function(location) {
- var line = location.line, column = location.column;
- if (line < 0 || line >= this.offsets.length) {
- return null;
- }
- if (column < 0 || column > this.lengthOfLine(line)) {
- return null;
- }
- return this.offsets[line] + column;
- };
- LinesAndColumns2.prototype.lengthOfLine = function(line) {
- var offset = this.offsets[line];
- var nextOffset = line === this.offsets.length - 1 ? this.string.length : this.offsets[line + 1];
- return nextOffset - offset;
- };
- return LinesAndColumns2;
- }();
- exports2.LinesAndColumns = LinesAndColumns;
- exports2["default"] = LinesAndColumns;
- }
- });
- var require_js_tokens = __commonJS({
- "node_modules/js-tokens/index.js"(exports2) {
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.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;
- exports2.matchToToken = function(match) {
- var token = {
- type: "invalid",
- value: match[0],
- closed: void 0
- };
- 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 require_identifier = __commonJS({
- "node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.isIdentifierChar = isIdentifierChar;
- exports2.isIdentifierName = isIdentifierName;
- exports2.isIdentifierStart = isIdentifierStart;
- var 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";
- var 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\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\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";
- var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
- var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
- nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
- var 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, 3104, 541, 1507, 4938, 6, 4191];
- var 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 = 65536;
- 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 <= 65535) {
- return code >= 170 && 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 <= 65535) {
- return code >= 170 && 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 & 64512) === 55296 && i + 1 < name.length) {
- const trail = name.charCodeAt(++i);
- if ((trail & 64512) === 56320) {
- cp = 65536 + ((cp & 1023) << 10) + (trail & 1023);
- }
- }
- if (isFirst) {
- isFirst = false;
- if (!isIdentifierStart(cp)) {
- return false;
- }
- } else if (!isIdentifierChar(cp)) {
- return false;
- }
- }
- return !isFirst;
- }
- }
- });
- var require_keyword = __commonJS({
- "node_modules/@babel/helper-validator-identifier/lib/keyword.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.isKeyword = isKeyword;
- exports2.isReservedWord = isReservedWord;
- exports2.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
- exports2.isStrictBindReservedWord = isStrictBindReservedWord;
- exports2.isStrictReservedWord = isStrictReservedWord;
- var 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"]
- };
- var keywords = new Set(reservedWords.keyword);
- var reservedWordsStrictSet = new Set(reservedWords.strict);
- var 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);
- }
- }
- });
- var require_lib = __commonJS({
- "node_modules/@babel/helper-validator-identifier/lib/index.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- Object.defineProperty(exports2, "isIdentifierChar", {
- enumerable: true,
- get: function() {
- return _identifier.isIdentifierChar;
- }
- });
- Object.defineProperty(exports2, "isIdentifierName", {
- enumerable: true,
- get: function() {
- return _identifier.isIdentifierName;
- }
- });
- Object.defineProperty(exports2, "isIdentifierStart", {
- enumerable: true,
- get: function() {
- return _identifier.isIdentifierStart;
- }
- });
- Object.defineProperty(exports2, "isKeyword", {
- enumerable: true,
- get: function() {
- return _keyword.isKeyword;
- }
- });
- Object.defineProperty(exports2, "isReservedWord", {
- enumerable: true,
- get: function() {
- return _keyword.isReservedWord;
- }
- });
- Object.defineProperty(exports2, "isStrictBindOnlyReservedWord", {
- enumerable: true,
- get: function() {
- return _keyword.isStrictBindOnlyReservedWord;
- }
- });
- Object.defineProperty(exports2, "isStrictBindReservedWord", {
- enumerable: true,
- get: function() {
- return _keyword.isStrictBindReservedWord;
- }
- });
- Object.defineProperty(exports2, "isStrictReservedWord", {
- enumerable: true,
- get: function() {
- return _keyword.isStrictReservedWord;
- }
- });
- var _identifier = require_identifier();
- var _keyword = require_keyword();
- }
- });
- var require_escape_string_regexp = __commonJS({
- "node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js"(exports2, module2) {
- "use strict";
- var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
- module2.exports = function(str) {
- if (typeof str !== "string") {
- throw new TypeError("Expected a string");
- }
- return str.replace(matchOperatorsRe, "\\$&");
- };
- }
- });
- var require_color_name = __commonJS({
- "node_modules/color-name/index.js"(exports2, module2) {
- "use strict";
- module2.exports = {
- "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 require_conversions = __commonJS({
- "node_modules/color-convert/conversions.js"(exports2, module2) {
- var cssKeywords = require_color_name();
- var reverseKeywords = {};
- for (key in cssKeywords) {
- if (cssKeywords.hasOwnProperty(key)) {
- reverseKeywords[cssKeywords[key]] = key;
- }
- }
- var key;
- var convert = module2.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 (model in convert) {
- if (convert.hasOwnProperty(model)) {
- if (!("channels" in convert[model])) {
- throw new Error("missing channels property: " + model);
- }
- if (!("labels" in convert[model])) {
- throw new Error("missing channel labels property: " + model);
- }
- if (convert[model].labels.length !== convert[model].channels) {
- throw new Error("channel and label counts mismatch: " + model);
- }
- channels = convert[model].channels;
- labels = convert[model].labels;
- delete convert[model].channels;
- delete convert[model].labels;
- Object.defineProperty(convert[model], "channels", {
- value: channels
- });
- Object.defineProperty(convert[model], "labels", {
- value: labels
- });
- }
- }
- var channels;
- var labels;
- var model;
- convert.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.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.rgb.hwb = function(rgb) {
- var r = rgb[0];
- var g = rgb[1];
- var b = rgb[2];
- var h = convert.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.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.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.keyword.rgb = function(keyword) {
- return cssKeywords[keyword];
- };
- convert.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.rgb.lab = function(rgb) {
- var xyz = convert.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 > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
- y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
- z = z > 8856e-6 ? 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.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.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.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.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.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 & 1) !== 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.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.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.204 + z * 1.057;
- r = r > 31308e-7 ? 1.055 * Math.pow(r, 1 / 2.4) - 0.055 : r * 12.92;
- g = g > 31308e-7 ? 1.055 * Math.pow(g, 1 / 2.4) - 0.055 : g * 12.92;
- b = b > 31308e-7 ? 1.055 * Math.pow(b, 1 / 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.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 > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
- y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
- z = z > 8856e-6 ? 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.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 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;
- x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;
- z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787;
- x *= 95.047;
- y *= 100;
- z *= 108.883;
- return [x, y, z];
- };
- convert.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.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.rgb.ansi16 = function(args) {
- var r = args[0];
- var g = args[1];
- var b = args[2];
- var value = 1 in arguments ? arguments[1] : convert.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.hsv.ansi16 = function(args) {
- return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
- };
- convert.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.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.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.rgb.hex = function(args) {
- var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);
- var string = integer.toString(16).toUpperCase();
- return "000000".substring(string.length) + string;
- };
- convert.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 & 255;
- var g = integer >> 8 & 255;
- var b = integer & 255;
- return [r, g, b];
- };
- convert.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.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 * s * l;
- } else {
- c = 2 * s * (1 - l);
- }
- if (c < 1) {
- f = (l - 0.5 * c) / (1 - c);
- }
- return [hsl[0], c * 100, f * 100];
- };
- convert.hsv.hcg = function(hsv) {
- var s = hsv[1] / 100;
- var v = hsv[2] / 100;
- var c = s * v;
- var f = 0;
- if (c < 1) {
- f = (v - c) / (1 - c);
- }
- return [hsv[0], c * 100, f * 100];
- };
- convert.hcg.rgb = function(hcg) {
- var h = hcg[0] / 360;
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- if (c === 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 - c) * g;
- return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];
- };
- convert.hcg.hsv = function(hcg) {
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- var v = c + g * (1 - c);
- var f = 0;
- if (v > 0) {
- f = c / v;
- }
- return [hcg[0], f * 100, v * 100];
- };
- convert.hcg.hsl = function(hcg) {
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- var l = g * (1 - c) + 0.5 * c;
- var s = 0;
- if (l > 0 && l < 0.5) {
- s = c / (2 * l);
- } else if (l >= 0.5 && l < 1) {
- s = c / (2 * (1 - l));
- }
- return [hcg[0], s * 100, l * 100];
- };
- convert.hcg.hwb = function(hcg) {
- var c = hcg[1] / 100;
- var g = hcg[2] / 100;
- var v = c + g * (1 - c);
- return [hcg[0], (v - c) * 100, (1 - v) * 100];
- };
- convert.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.apple.rgb = function(apple) {
- return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
- };
- convert.rgb.apple = function(rgb) {
- return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
- };
- convert.gray.rgb = function(args) {
- return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
- };
- convert.gray.hsl = convert.gray.hsv = function(args) {
- return [0, 0, args[0]];
- };
- convert.gray.hwb = function(gray) {
- return [0, 100, gray[0]];
- };
- convert.gray.cmyk = function(gray) {
- return [0, 0, 0, gray[0]];
- };
- convert.gray.lab = function(gray) {
- return [gray[0], 0, 0];
- };
- convert.gray.hex = function(gray) {
- var val = Math.round(gray[0] / 100 * 255) & 255;
- var integer = (val << 16) + (val << 8) + val;
- var string = integer.toString(16).toUpperCase();
- return "000000".substring(string.length) + string;
- };
- convert.rgb.gray = function(rgb) {
- var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
- return [val / 255 * 100];
- };
- }
- });
- var require_route = __commonJS({
- "node_modules/color-convert/route.js"(exports2, module2) {
- var conversions = require_conversions();
- function buildGraph() {
- var graph = {};
- var models = Object.keys(conversions);
- 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[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[graph[toModel].parent][toModel];
- var cur = graph[toModel].parent;
- while (graph[cur].parent) {
- path.unshift(graph[cur].parent);
- fn = link(conversions[graph[cur].parent][cur], fn);
- cur = graph[cur].parent;
- }
- fn.conversion = path;
- return fn;
- }
- module2.exports = 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 require_color_convert = __commonJS({
- "node_modules/color-convert/index.js"(exports2, module2) {
- var conversions = require_conversions();
- var route = require_route();
- var convert = {};
- var models = Object.keys(conversions);
- function wrapRaw(fn) {
- var wrappedFn = function(args) {
- if (args === void 0 || 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 === void 0 || 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);
- });
- });
- module2.exports = convert;
- }
- });
- var require_ansi_styles = __commonJS({
- "node_modules/ansi-styles/index.js"(exports2, module2) {
- "use strict";
- var colorConvert = require_color_convert();
- var wrapAnsi16 = (fn, offset) => function() {
- const code = fn.apply(colorConvert, arguments);
- return `\x1B[${code + offset}m`;
- };
- var wrapAnsi256 = (fn, offset) => function() {
- const code = fn.apply(colorConvert, arguments);
- return `\x1B[${38 + offset};5;${code}m`;
- };
- var wrapAnsi16m = (fn, offset) => function() {
- const rgb = fn.apply(colorConvert, arguments);
- return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
- };
- function assembleStyles() {
- const codes = /* @__PURE__ */ 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: `\x1B[${style[0]}m`,
- close: `\x1B[${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 = "\x1B[39m";
- styles.bgColor.close = "\x1B[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)) {
- if (typeof colorConvert[key] !== "object") {
- continue;
- }
- const suite = colorConvert[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(module2, "exports", {
- enumerable: true,
- get: assembleStyles
- });
- }
- });
- var require_has_flag = __commonJS({
- "node_modules/@babel/highlight/node_modules/has-flag/index.js"(exports2, module2) {
- "use strict";
- module2.exports = (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);
- };
- }
- });
- var require_supports_color = __commonJS({
- "node_modules/@babel/highlight/node_modules/supports-color/index.js"(exports2, module2) {
- "use strict";
- var os = require("os");
- var hasFlag = require_has_flag();
- var env = process.env;
- var 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);
- }
- module2.exports = {
- supportsColor: getSupportLevel,
- stdout: getSupportLevel(process.stdout),
- stderr: getSupportLevel(process.stderr)
- };
- }
- });
- var require_templates = __commonJS({
- "node_modules/@babel/highlight/node_modules/chalk/templates.js"(exports2, module2) {
- "use strict";
- var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
- var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
- var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
- var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
- var ESCAPES = /* @__PURE__ */ new Map([["n", "\n"], ["r", "\r"], ["t", " "], ["b", "\b"], ["f", "\f"], ["v", "\v"], ["0", "\0"], ["\\", "\\"], ["e", "\x1B"], ["a", "\x07"]]);
- 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;
- }
- module2.exports = (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("");
- };
- }
- });
- var require_chalk = __commonJS({
- "node_modules/@babel/highlight/node_modules/chalk/index.js"(exports2, module2) {
- "use strict";
- var escapeStringRegexp = require_escape_string_regexp();
- var ansiStyles = require_ansi_styles();
- var stdoutColor = require_supports_color().stdout;
- var template = require_templates();
- var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm");
- var levelMapping = ["ansi", "ansi", "ansi256", "ansi16m"];
- var skipModels = /* @__PURE__ */ new Set(["gray"]);
- var styles = /* @__PURE__ */ Object.create(null);
- function applyOptions(obj, options) {
- options = options || {};
- const scLevel = stdoutColor ? stdoutColor.level : 0;
- obj.level = options.level === void 0 ? 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 = "\x1B[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);
- };
- }
- };
- }
- var 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);
- module2.exports = Chalk();
- module2.exports.supportsColor = stdoutColor;
- module2.exports.default = module2.exports;
- }
- });
- var require_lib2 = __commonJS({
- "node_modules/@babel/highlight/lib/index.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.default = highlight;
- exports2.getChalk = getChalk;
- exports2.shouldHighlight = shouldHighlight;
- var _jsTokens = require_js_tokens();
- var _helperValidatorIdentifier = require_lib();
- var _chalk = require_chalk();
- var sometimesKeywords = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]);
- function getDefs(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
- };
- }
- var NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
- var BRACKET = /^[()[\]{}]$/;
- var 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).map((str) => colorize(str)).join("\n");
- } else {
- highlighted += value;
- }
- }
- return highlighted;
- }
- function shouldHighlight(options) {
- return !!_chalk.supportsColor || options.forceColor;
- }
- function getChalk(options) {
- return options.forceColor ? new _chalk.constructor({
- enabled: true,
- level: 1
- }) : _chalk;
- }
- function highlight(code, options = {}) {
- if (code !== "" && shouldHighlight(options)) {
- const chalk = getChalk(options);
- const defs = getDefs(chalk);
- return highlightTokens(defs, code);
- } else {
- return code;
- }
- }
- }
- });
- var require_lib3 = __commonJS({
- "node_modules/@babel/code-frame/lib/index.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.codeFrameColumns = codeFrameColumns;
- exports2.default = _default;
- var _highlight = require_lib2();
- var deprecationWarningShown = false;
- function getDefs(chalk) {
- return {
- gutter: chalk.grey,
- marker: chalk.red.bold,
- message: chalk.red.bold
- };
- }
- var 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 = (0, _highlight.getChalk)(opts);
- 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}
- ${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);
- }
- }
- });
- var require_parse_json = __commonJS({
- "node_modules/parse-json/index.js"(exports2, module2) {
- "use strict";
- var errorEx = require_error_ex();
- var fallback = require_json_parse_even_better_errors();
- var {
- default: LinesAndColumns
- } = require_build();
- var {
- codeFrameColumns
- } = require_lib3();
- var JSONError = errorEx("JSONError", {
- fileName: errorEx.append("in %s"),
- codeFrame: errorEx.append("\n\n%s\n")
- });
- var parseJson = (string, reviver, filename) => {
- if (typeof reviver === "string") {
- filename = reviver;
- reviver = null;
- }
- try {
- try {
- return JSON.parse(string, reviver);
- } catch (error) {
- fallback(string, reviver);
- throw error;
- }
- } catch (error) {
- error.message = error.message.replace(/\n/g, "");
- const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/);
- const jsonError = new JSONError(error);
- if (filename) {
- jsonError.fileName = filename;
- }
- if (indexMatch && indexMatch.length > 0) {
- const lines = new LinesAndColumns(string);
- const index = Number(indexMatch[1]);
- const location = lines.locationForIndex(index);
- const codeFrame = codeFrameColumns(string, {
- start: {
- line: location.line + 1,
- column: location.column + 1
- }
- }, {
- highlightCode: true
- });
- jsonError.codeFrame = codeFrame;
- }
- throw jsonError;
- }
- };
- parseJson.JSONError = JSONError;
- module2.exports = parseJson;
- }
- });
- var require_PlainValue_ec8e588e = __commonJS({
- "node_modules/yaml/dist/PlainValue-ec8e588e.js"(exports2) {
- "use strict";
- var Char = {
- ANCHOR: "&",
- COMMENT: "#",
- TAG: "!",
- DIRECTIVES_END: "-",
- DOCUMENT_END: "."
- };
- var Type = {
- ALIAS: "ALIAS",
- BLANK_LINE: "BLANK_LINE",
- BLOCK_FOLDED: "BLOCK_FOLDED",
- BLOCK_LITERAL: "BLOCK_LITERAL",
- COMMENT: "COMMENT",
- DIRECTIVE: "DIRECTIVE",
- DOCUMENT: "DOCUMENT",
- FLOW_MAP: "FLOW_MAP",
- FLOW_SEQ: "FLOW_SEQ",
- MAP: "MAP",
- MAP_KEY: "MAP_KEY",
- MAP_VALUE: "MAP_VALUE",
- PLAIN: "PLAIN",
- QUOTE_DOUBLE: "QUOTE_DOUBLE",
- QUOTE_SINGLE: "QUOTE_SINGLE",
- SEQ: "SEQ",
- SEQ_ITEM: "SEQ_ITEM"
- };
- var defaultTagPrefix = "tag:yaml.org,2002:";
- var defaultTags = {
- MAP: "tag:yaml.org,2002:map",
- SEQ: "tag:yaml.org,2002:seq",
- STR: "tag:yaml.org,2002:str"
- };
- function findLineStarts(src) {
- const ls = [0];
- let offset = src.indexOf("\n");
- while (offset !== -1) {
- offset += 1;
- ls.push(offset);
- offset = src.indexOf("\n", offset);
- }
- return ls;
- }
- function getSrcInfo(cst) {
- let lineStarts, src;
- if (typeof cst === "string") {
- lineStarts = findLineStarts(cst);
- src = cst;
- } else {
- if (Array.isArray(cst))
- cst = cst[0];
- if (cst && cst.context) {
- if (!cst.lineStarts)
- cst.lineStarts = findLineStarts(cst.context.src);
- lineStarts = cst.lineStarts;
- src = cst.context.src;
- }
- }
- return {
- lineStarts,
- src
- };
- }
- function getLinePos(offset, cst) {
- if (typeof offset !== "number" || offset < 0)
- return null;
- const {
- lineStarts,
- src
- } = getSrcInfo(cst);
- if (!lineStarts || !src || offset > src.length)
- return null;
- for (let i = 0; i < lineStarts.length; ++i) {
- const start = lineStarts[i];
- if (offset < start) {
- return {
- line: i,
- col: offset - lineStarts[i - 1] + 1
- };
- }
- if (offset === start)
- return {
- line: i + 1,
- col: 1
- };
- }
- const line = lineStarts.length;
- return {
- line,
- col: offset - lineStarts[line - 1] + 1
- };
- }
- function getLine(line, cst) {
- const {
- lineStarts,
- src
- } = getSrcInfo(cst);
- if (!lineStarts || !(line >= 1) || line > lineStarts.length)
- return null;
- const start = lineStarts[line - 1];
- let end = lineStarts[line];
- while (end && end > start && src[end - 1] === "\n")
- --end;
- return src.slice(start, end);
- }
- function getPrettyContext({
- start,
- end
- }, cst, maxWidth = 80) {
- let src = getLine(start.line, cst);
- if (!src)
- return null;
- let {
- col
- } = start;
- if (src.length > maxWidth) {
- if (col <= maxWidth - 10) {
- src = src.substr(0, maxWidth - 1) + "\u2026";
- } else {
- const halfWidth = Math.round(maxWidth / 2);
- if (src.length > col + halfWidth)
- src = src.substr(0, col + halfWidth - 1) + "\u2026";
- col -= src.length - maxWidth;
- src = "\u2026" + src.substr(1 - maxWidth);
- }
- }
- let errLen = 1;
- let errEnd = "";
- if (end) {
- if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {
- errLen = end.col - start.col;
- } else {
- errLen = Math.min(src.length + 1, maxWidth) - col;
- errEnd = "\u2026";
- }
- }
- const offset = col > 1 ? " ".repeat(col - 1) : "";
- const err = "^".repeat(errLen);
- return `${src}
- ${offset}${err}${errEnd}`;
- }
- var Range = class {
- static copy(orig) {
- return new Range(orig.start, orig.end);
- }
- constructor(start, end) {
- this.start = start;
- this.end = end || start;
- }
- isEmpty() {
- return typeof this.start !== "number" || !this.end || this.end <= this.start;
- }
- setOrigRange(cr, offset) {
- const {
- start,
- end
- } = this;
- if (cr.length === 0 || end <= cr[0]) {
- this.origStart = start;
- this.origEnd = end;
- return offset;
- }
- let i = offset;
- while (i < cr.length) {
- if (cr[i] > start)
- break;
- else
- ++i;
- }
- this.origStart = start + i;
- const nextOffset = i;
- while (i < cr.length) {
- if (cr[i] >= end)
- break;
- else
- ++i;
- }
- this.origEnd = end + i;
- return nextOffset;
- }
- };
- var Node = class {
- static addStringTerminator(src, offset, str) {
- if (str[str.length - 1] === "\n")
- return str;
- const next = Node.endOfWhiteSpace(src, offset);
- return next >= src.length || src[next] === "\n" ? str + "\n" : str;
- }
- static atDocumentBoundary(src, offset, sep) {
- const ch0 = src[offset];
- if (!ch0)
- return true;
- const prev = src[offset - 1];
- if (prev && prev !== "\n")
- return false;
- if (sep) {
- if (ch0 !== sep)
- return false;
- } else {
- if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END)
- return false;
- }
- const ch1 = src[offset + 1];
- const ch2 = src[offset + 2];
- if (ch1 !== ch0 || ch2 !== ch0)
- return false;
- const ch3 = src[offset + 3];
- return !ch3 || ch3 === "\n" || ch3 === " " || ch3 === " ";
- }
- static endOfIdentifier(src, offset) {
- let ch = src[offset];
- const isVerbatim = ch === "<";
- const notOk = isVerbatim ? ["\n", " ", " ", ">"] : ["\n", " ", " ", "[", "]", "{", "}", ","];
- while (ch && notOk.indexOf(ch) === -1)
- ch = src[offset += 1];
- if (isVerbatim && ch === ">")
- offset += 1;
- return offset;
- }
- static endOfIndent(src, offset) {
- let ch = src[offset];
- while (ch === " ")
- ch = src[offset += 1];
- return offset;
- }
- static endOfLine(src, offset) {
- let ch = src[offset];
- while (ch && ch !== "\n")
- ch = src[offset += 1];
- return offset;
- }
- static endOfWhiteSpace(src, offset) {
- let ch = src[offset];
- while (ch === " " || ch === " ")
- ch = src[offset += 1];
- return offset;
- }
- static startOfLine(src, offset) {
- let ch = src[offset - 1];
- if (ch === "\n")
- return offset;
- while (ch && ch !== "\n")
- ch = src[offset -= 1];
- return offset + 1;
- }
- static endOfBlockIndent(src, indent, lineStart) {
- const inEnd = Node.endOfIndent(src, lineStart);
- if (inEnd > lineStart + indent) {
- return inEnd;
- } else {
- const wsEnd = Node.endOfWhiteSpace(src, inEnd);
- const ch = src[wsEnd];
- if (!ch || ch === "\n")
- return wsEnd;
- }
- return null;
- }
- static atBlank(src, offset, endAsBlank) {
- const ch = src[offset];
- return ch === "\n" || ch === " " || ch === " " || endAsBlank && !ch;
- }
- static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {
- if (!ch || indentDiff < 0)
- return false;
- if (indentDiff > 0)
- return true;
- return indicatorAsIndent && ch === "-";
- }
- static normalizeOffset(src, offset) {
- const ch = src[offset];
- return !ch ? offset : ch !== "\n" && src[offset - 1] === "\n" ? offset - 1 : Node.endOfWhiteSpace(src, offset);
- }
- static foldNewline(src, offset, indent) {
- let inCount = 0;
- let error = false;
- let fold = "";
- let ch = src[offset + 1];
- while (ch === " " || ch === " " || ch === "\n") {
- switch (ch) {
- case "\n":
- inCount = 0;
- offset += 1;
- fold += "\n";
- break;
- case " ":
- if (inCount <= indent)
- error = true;
- offset = Node.endOfWhiteSpace(src, offset + 2) - 1;
- break;
- case " ":
- inCount += 1;
- offset += 1;
- break;
- }
- ch = src[offset + 1];
- }
- if (!fold)
- fold = " ";
- if (ch && inCount <= indent)
- error = true;
- return {
- fold,
- offset,
- error
- };
- }
- constructor(type, props, context) {
- Object.defineProperty(this, "context", {
- value: context || null,
- writable: true
- });
- this.error = null;
- this.range = null;
- this.valueRange = null;
- this.props = props || [];
- this.type = type;
- this.value = null;
- }
- getPropValue(idx, key, skipKey) {
- if (!this.context)
- return null;
- const {
- src
- } = this.context;
- const prop = this.props[idx];
- return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;
- }
- get anchor() {
- for (let i = 0; i < this.props.length; ++i) {
- const anchor = this.getPropValue(i, Char.ANCHOR, true);
- if (anchor != null)
- return anchor;
- }
- return null;
- }
- get comment() {
- const comments = [];
- for (let i = 0; i < this.props.length; ++i) {
- const comment = this.getPropValue(i, Char.COMMENT, true);
- if (comment != null)
- comments.push(comment);
- }
- return comments.length > 0 ? comments.join("\n") : null;
- }
- commentHasRequiredWhitespace(start) {
- const {
- src
- } = this.context;
- if (this.header && start === this.header.end)
- return false;
- if (!this.valueRange)
- return false;
- const {
- end
- } = this.valueRange;
- return start !== end || Node.atBlank(src, end - 1);
- }
- get hasComment() {
- if (this.context) {
- const {
- src
- } = this.context;
- for (let i = 0; i < this.props.length; ++i) {
- if (src[this.props[i].start] === Char.COMMENT)
- return true;
- }
- }
- return false;
- }
- get hasProps() {
- if (this.context) {
- const {
- src
- } = this.context;
- for (let i = 0; i < this.props.length; ++i) {
- if (src[this.props[i].start] !== Char.COMMENT)
- return true;
- }
- }
- return false;
- }
- get includesTrailingLines() {
- return false;
- }
- get jsonLike() {
- const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];
- return jsonLikeTypes.indexOf(this.type) !== -1;
- }
- get rangeAsLinePos() {
- if (!this.range || !this.context)
- return void 0;
- const start = getLinePos(this.range.start, this.context.root);
- if (!start)
- return void 0;
- const end = getLinePos(this.range.end, this.context.root);
- return {
- start,
- end
- };
- }
- get rawValue() {
- if (!this.valueRange || !this.context)
- return null;
- const {
- start,
- end
- } = this.valueRange;
- return this.context.src.slice(start, end);
- }
- get tag() {
- for (let i = 0; i < this.props.length; ++i) {
- const tag = this.getPropValue(i, Char.TAG, false);
- if (tag != null) {
- if (tag[1] === "<") {
- return {
- verbatim: tag.slice(2, -1)
- };
- } else {
- const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);
- return {
- handle,
- suffix
- };
- }
- }
- }
- return null;
- }
- get valueRangeContainsNewline() {
- if (!this.valueRange || !this.context)
- return false;
- const {
- start,
- end
- } = this.valueRange;
- const {
- src
- } = this.context;
- for (let i = start; i < end; ++i) {
- if (src[i] === "\n")
- return true;
- }
- return false;
- }
- parseComment(start) {
- const {
- src
- } = this.context;
- if (src[start] === Char.COMMENT) {
- const end = Node.endOfLine(src, start + 1);
- const commentRange = new Range(start, end);
- this.props.push(commentRange);
- return end;
- }
- return start;
- }
- setOrigRanges(cr, offset) {
- if (this.range)
- offset = this.range.setOrigRange(cr, offset);
- if (this.valueRange)
- this.valueRange.setOrigRange(cr, offset);
- this.props.forEach((prop) => prop.setOrigRange(cr, offset));
- return offset;
- }
- toString() {
- const {
- context: {
- src
- },
- range,
- value
- } = this;
- if (value != null)
- return value;
- const str = src.slice(range.start, range.end);
- return Node.addStringTerminator(src, range.end, str);
- }
- };
- var YAMLError = class extends Error {
- constructor(name, source, message) {
- if (!message || !(source instanceof Node))
- throw new Error(`Invalid arguments for new ${name}`);
- super();
- this.name = name;
- this.message = message;
- this.source = source;
- }
- makePretty() {
- if (!this.source)
- return;
- this.nodeType = this.source.type;
- const cst = this.source.context && this.source.context.root;
- if (typeof this.offset === "number") {
- this.range = new Range(this.offset, this.offset + 1);
- const start = cst && getLinePos(this.offset, cst);
- if (start) {
- const end = {
- line: start.line,
- col: start.col + 1
- };
- this.linePos = {
- start,
- end
- };
- }
- delete this.offset;
- } else {
- this.range = this.source.range;
- this.linePos = this.source.rangeAsLinePos;
- }
- if (this.linePos) {
- const {
- line,
- col
- } = this.linePos.start;
- this.message += ` at line ${line}, column ${col}`;
- const ctx = cst && getPrettyContext(this.linePos, cst);
- if (ctx)
- this.message += `:
- ${ctx}
- `;
- }
- delete this.source;
- }
- };
- var YAMLReferenceError = class extends YAMLError {
- constructor(source, message) {
- super("YAMLReferenceError", source, message);
- }
- };
- var YAMLSemanticError = class extends YAMLError {
- constructor(source, message) {
- super("YAMLSemanticError", source, message);
- }
- };
- var YAMLSyntaxError = class extends YAMLError {
- constructor(source, message) {
- super("YAMLSyntaxError", source, message);
- }
- };
- var YAMLWarning = class extends YAMLError {
- constructor(source, message) {
- super("YAMLWarning", source, message);
- }
- };
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
- }
- var PlainValue = class extends Node {
- static endOfLine(src, start, inFlow) {
- let ch = src[start];
- let offset = start;
- while (ch && ch !== "\n") {
- if (inFlow && (ch === "[" || ch === "]" || ch === "{" || ch === "}" || ch === ","))
- break;
- const next = src[offset + 1];
- if (ch === ":" && (!next || next === "\n" || next === " " || next === " " || inFlow && next === ","))
- break;
- if ((ch === " " || ch === " ") && next === "#")
- break;
- offset += 1;
- ch = next;
- }
- return offset;
- }
- get strValue() {
- if (!this.valueRange || !this.context)
- return null;
- let {
- start,
- end
- } = this.valueRange;
- const {
- src
- } = this.context;
- let ch = src[end - 1];
- while (start < end && (ch === "\n" || ch === " " || ch === " "))
- ch = src[--end - 1];
- let str = "";
- for (let i = start; i < end; ++i) {
- const ch2 = src[i];
- if (ch2 === "\n") {
- const {
- fold,
- offset
- } = Node.foldNewline(src, i, -1);
- str += fold;
- i = offset;
- } else if (ch2 === " " || ch2 === " ") {
- const wsStart = i;
- let next = src[i + 1];
- while (i < end && (next === " " || next === " ")) {
- i += 1;
- next = src[i + 1];
- }
- if (next !== "\n")
- str += i > wsStart ? src.slice(wsStart, i + 1) : ch2;
- } else {
- str += ch2;
- }
- }
- const ch0 = src[start];
- switch (ch0) {
- case " ": {
- const msg = "Plain value cannot start with a tab character";
- const errors = [new YAMLSemanticError(this, msg)];
- return {
- errors,
- str
- };
- }
- case "@":
- case "`": {
- const msg = `Plain value cannot start with reserved character ${ch0}`;
- const errors = [new YAMLSemanticError(this, msg)];
- return {
- errors,
- str
- };
- }
- default:
- return str;
- }
- }
- parseBlockValue(start) {
- const {
- indent,
- inFlow,
- src
- } = this.context;
- let offset = start;
- let valueEnd = start;
- for (let ch = src[offset]; ch === "\n"; ch = src[offset]) {
- if (Node.atDocumentBoundary(src, offset + 1))
- break;
- const end = Node.endOfBlockIndent(src, indent, offset + 1);
- if (end === null || src[end] === "#")
- break;
- if (src[end] === "\n") {
- offset = end;
- } else {
- valueEnd = PlainValue.endOfLine(src, end, inFlow);
- offset = valueEnd;
- }
- }
- if (this.valueRange.isEmpty())
- this.valueRange.start = start;
- this.valueRange.end = valueEnd;
- return valueEnd;
- }
- parse(context, start) {
- this.context = context;
- const {
- inFlow,
- src
- } = context;
- let offset = start;
- const ch = src[offset];
- if (ch && ch !== "#" && ch !== "\n") {
- offset = PlainValue.endOfLine(src, start, inFlow);
- }
- this.valueRange = new Range(start, offset);
- offset = Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- if (!this.hasComment || this.valueRange.isEmpty()) {
- offset = this.parseBlockValue(offset);
- }
- return offset;
- }
- };
- exports2.Char = Char;
- exports2.Node = Node;
- exports2.PlainValue = PlainValue;
- exports2.Range = Range;
- exports2.Type = Type;
- exports2.YAMLError = YAMLError;
- exports2.YAMLReferenceError = YAMLReferenceError;
- exports2.YAMLSemanticError = YAMLSemanticError;
- exports2.YAMLSyntaxError = YAMLSyntaxError;
- exports2.YAMLWarning = YAMLWarning;
- exports2._defineProperty = _defineProperty;
- exports2.defaultTagPrefix = defaultTagPrefix;
- exports2.defaultTags = defaultTags;
- }
- });
- var require_parse_cst = __commonJS({
- "node_modules/yaml/dist/parse-cst.js"(exports2) {
- "use strict";
- var PlainValue = require_PlainValue_ec8e588e();
- var BlankLine = class extends PlainValue.Node {
- constructor() {
- super(PlainValue.Type.BLANK_LINE);
- }
- get includesTrailingLines() {
- return true;
- }
- parse(context, start) {
- this.context = context;
- this.range = new PlainValue.Range(start, start + 1);
- return start + 1;
- }
- };
- var CollectionItem = class extends PlainValue.Node {
- constructor(type, props) {
- super(type, props);
- this.node = null;
- }
- get includesTrailingLines() {
- return !!this.node && this.node.includesTrailingLines;
- }
- parse(context, start) {
- this.context = context;
- const {
- parseNode,
- src
- } = context;
- let {
- atLineStart,
- lineStart
- } = context;
- if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM)
- this.error = new PlainValue.YAMLSemanticError(this, "Sequence items must not have preceding content on the same line");
- const indent = atLineStart ? start - lineStart : context.indent;
- let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);
- let ch = src[offset];
- const inlineComment = ch === "#";
- const comments = [];
- let blankLine = null;
- while (ch === "\n" || ch === "#") {
- if (ch === "#") {
- const end2 = PlainValue.Node.endOfLine(src, offset + 1);
- comments.push(new PlainValue.Range(offset, end2));
- offset = end2;
- } else {
- atLineStart = true;
- lineStart = offset + 1;
- const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);
- if (src[wsEnd] === "\n" && comments.length === 0) {
- blankLine = new BlankLine();
- lineStart = blankLine.parse({
- src
- }, lineStart);
- }
- offset = PlainValue.Node.endOfIndent(src, lineStart);
- }
- ch = src[offset];
- }
- if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) {
- this.node = parseNode({
- atLineStart,
- inCollection: false,
- indent,
- lineStart,
- parent: this
- }, offset);
- } else if (ch && lineStart > start + 1) {
- offset = lineStart - 1;
- }
- if (this.node) {
- if (blankLine) {
- const items = context.parent.items || context.parent.contents;
- if (items)
- items.push(blankLine);
- }
- if (comments.length)
- Array.prototype.push.apply(this.props, comments);
- offset = this.node.range.end;
- } else {
- if (inlineComment) {
- const c = comments[0];
- this.props.push(c);
- offset = c.end;
- } else {
- offset = PlainValue.Node.endOfLine(src, start + 1);
- }
- }
- const end = this.node ? this.node.valueRange.end : offset;
- this.valueRange = new PlainValue.Range(start, end);
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- return this.node ? this.node.setOrigRanges(cr, offset) : offset;
- }
- toString() {
- const {
- context: {
- src
- },
- node,
- range,
- value
- } = this;
- if (value != null)
- return value;
- const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);
- return PlainValue.Node.addStringTerminator(src, range.end, str);
- }
- };
- var Comment = class extends PlainValue.Node {
- constructor() {
- super(PlainValue.Type.COMMENT);
- }
- parse(context, start) {
- this.context = context;
- const offset = this.parseComment(start);
- this.range = new PlainValue.Range(start, offset);
- return offset;
- }
- };
- function grabCollectionEndComments(node) {
- let cnode = node;
- while (cnode instanceof CollectionItem)
- cnode = cnode.node;
- if (!(cnode instanceof Collection))
- return null;
- const len = cnode.items.length;
- let ci = -1;
- for (let i = len - 1; i >= 0; --i) {
- const n = cnode.items[i];
- if (n.type === PlainValue.Type.COMMENT) {
- const {
- indent,
- lineStart
- } = n.context;
- if (indent > 0 && n.range.start >= lineStart + indent)
- break;
- ci = i;
- } else if (n.type === PlainValue.Type.BLANK_LINE)
- ci = i;
- else
- break;
- }
- if (ci === -1)
- return null;
- const ca = cnode.items.splice(ci, len - ci);
- const prevEnd = ca[0].range.start;
- while (true) {
- cnode.range.end = prevEnd;
- if (cnode.valueRange && cnode.valueRange.end > prevEnd)
- cnode.valueRange.end = prevEnd;
- if (cnode === node)
- break;
- cnode = cnode.context.parent;
- }
- return ca;
- }
- var Collection = class extends PlainValue.Node {
- static nextContentHasIndent(src, offset, indent) {
- const lineStart = PlainValue.Node.endOfLine(src, offset) + 1;
- offset = PlainValue.Node.endOfWhiteSpace(src, lineStart);
- const ch = src[offset];
- if (!ch)
- return false;
- if (offset >= lineStart + indent)
- return true;
- if (ch !== "#" && ch !== "\n")
- return false;
- return Collection.nextContentHasIndent(src, offset, indent);
- }
- constructor(firstItem) {
- super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP);
- for (let i = firstItem.props.length - 1; i >= 0; --i) {
- if (firstItem.props[i].start < firstItem.context.lineStart) {
- this.props = firstItem.props.slice(0, i + 1);
- firstItem.props = firstItem.props.slice(i + 1);
- const itemRange = firstItem.props[0] || firstItem.valueRange;
- firstItem.range.start = itemRange.start;
- break;
- }
- }
- this.items = [firstItem];
- const ec = grabCollectionEndComments(firstItem);
- if (ec)
- Array.prototype.push.apply(this.items, ec);
- }
- get includesTrailingLines() {
- return this.items.length > 0;
- }
- parse(context, start) {
- this.context = context;
- const {
- parseNode,
- src
- } = context;
- let lineStart = PlainValue.Node.startOfLine(src, start);
- const firstItem = this.items[0];
- firstItem.context.parent = this;
- this.valueRange = PlainValue.Range.copy(firstItem.valueRange);
- const indent = firstItem.range.start - firstItem.context.lineStart;
- let offset = start;
- offset = PlainValue.Node.normalizeOffset(src, offset);
- let ch = src[offset];
- let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset;
- let prevIncludesTrailingLines = false;
- while (ch) {
- while (ch === "\n" || ch === "#") {
- if (atLineStart && ch === "\n" && !prevIncludesTrailingLines) {
- const blankLine = new BlankLine();
- offset = blankLine.parse({
- src
- }, offset);
- this.valueRange.end = offset;
- if (offset >= src.length) {
- ch = null;
- break;
- }
- this.items.push(blankLine);
- offset -= 1;
- } else if (ch === "#") {
- if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) {
- return offset;
- }
- const comment = new Comment();
- offset = comment.parse({
- indent,
- lineStart,
- src
- }, offset);
- this.items.push(comment);
- this.valueRange.end = offset;
- if (offset >= src.length) {
- ch = null;
- break;
- }
- }
- lineStart = offset + 1;
- offset = PlainValue.Node.endOfIndent(src, lineStart);
- if (PlainValue.Node.atBlank(src, offset)) {
- const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset);
- const next = src[wsEnd];
- if (!next || next === "\n" || next === "#") {
- offset = wsEnd;
- }
- }
- ch = src[offset];
- atLineStart = true;
- }
- if (!ch) {
- break;
- }
- if (offset !== lineStart + indent && (atLineStart || ch !== ":")) {
- if (offset < lineStart + indent) {
- if (lineStart > start)
- offset = lineStart;
- break;
- } else if (!this.error) {
- const msg = "All collection items must start at the same column";
- this.error = new PlainValue.YAMLSyntaxError(this, msg);
- }
- }
- if (firstItem.type === PlainValue.Type.SEQ_ITEM) {
- if (ch !== "-") {
- if (lineStart > start)
- offset = lineStart;
- break;
- }
- } else if (ch === "-" && !this.error) {
- const next = src[offset + 1];
- if (!next || next === "\n" || next === " " || next === " ") {
- const msg = "A collection cannot be both a mapping and a sequence";
- this.error = new PlainValue.YAMLSyntaxError(this, msg);
- }
- }
- const node = parseNode({
- atLineStart,
- inCollection: true,
- indent,
- lineStart,
- parent: this
- }, offset);
- if (!node)
- return offset;
- this.items.push(node);
- this.valueRange.end = node.valueRange.end;
- offset = PlainValue.Node.normalizeOffset(src, node.range.end);
- ch = src[offset];
- atLineStart = false;
- prevIncludesTrailingLines = node.includesTrailingLines;
- if (ch) {
- let ls = offset - 1;
- let prev = src[ls];
- while (prev === " " || prev === " ")
- prev = src[--ls];
- if (prev === "\n") {
- lineStart = ls + 1;
- atLineStart = true;
- }
- }
- const ec = grabCollectionEndComments(node);
- if (ec)
- Array.prototype.push.apply(this.items, ec);
- }
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- this.items.forEach((node) => {
- offset = node.setOrigRanges(cr, offset);
- });
- return offset;
- }
- toString() {
- const {
- context: {
- src
- },
- items,
- range,
- value
- } = this;
- if (value != null)
- return value;
- let str = src.slice(range.start, items[0].range.start) + String(items[0]);
- for (let i = 1; i < items.length; ++i) {
- const item = items[i];
- const {
- atLineStart,
- indent
- } = item.context;
- if (atLineStart)
- for (let i2 = 0; i2 < indent; ++i2)
- str += " ";
- str += String(item);
- }
- return PlainValue.Node.addStringTerminator(src, range.end, str);
- }
- };
- var Directive = class extends PlainValue.Node {
- constructor() {
- super(PlainValue.Type.DIRECTIVE);
- this.name = null;
- }
- get parameters() {
- const raw = this.rawValue;
- return raw ? raw.trim().split(/[ \t]+/) : [];
- }
- parseName(start) {
- const {
- src
- } = this.context;
- let offset = start;
- let ch = src[offset];
- while (ch && ch !== "\n" && ch !== " " && ch !== " ")
- ch = src[offset += 1];
- this.name = src.slice(start, offset);
- return offset;
- }
- parseParameters(start) {
- const {
- src
- } = this.context;
- let offset = start;
- let ch = src[offset];
- while (ch && ch !== "\n" && ch !== "#")
- ch = src[offset += 1];
- this.valueRange = new PlainValue.Range(start, offset);
- return offset;
- }
- parse(context, start) {
- this.context = context;
- let offset = this.parseName(start + 1);
- offset = this.parseParameters(offset);
- offset = this.parseComment(offset);
- this.range = new PlainValue.Range(start, offset);
- return offset;
- }
- };
- var Document = class extends PlainValue.Node {
- static startCommentOrEndBlankLine(src, start) {
- const offset = PlainValue.Node.endOfWhiteSpace(src, start);
- const ch = src[offset];
- return ch === "#" || ch === "\n" ? offset : start;
- }
- constructor() {
- super(PlainValue.Type.DOCUMENT);
- this.directives = null;
- this.contents = null;
- this.directivesEndMarker = null;
- this.documentEndMarker = null;
- }
- parseDirectives(start) {
- const {
- src
- } = this.context;
- this.directives = [];
- let atLineStart = true;
- let hasDirectives = false;
- let offset = start;
- while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) {
- offset = Document.startCommentOrEndBlankLine(src, offset);
- switch (src[offset]) {
- case "\n":
- if (atLineStart) {
- const blankLine = new BlankLine();
- offset = blankLine.parse({
- src
- }, offset);
- if (offset < src.length) {
- this.directives.push(blankLine);
- }
- } else {
- offset += 1;
- atLineStart = true;
- }
- break;
- case "#":
- {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.directives.push(comment);
- atLineStart = false;
- }
- break;
- case "%":
- {
- const directive = new Directive();
- offset = directive.parse({
- parent: this,
- src
- }, offset);
- this.directives.push(directive);
- hasDirectives = true;
- atLineStart = false;
- }
- break;
- default:
- if (hasDirectives) {
- this.error = new PlainValue.YAMLSemanticError(this, "Missing directives-end indicator line");
- } else if (this.directives.length > 0) {
- this.contents = this.directives;
- this.directives = [];
- }
- return offset;
- }
- }
- if (src[offset]) {
- this.directivesEndMarker = new PlainValue.Range(offset, offset + 3);
- return offset + 3;
- }
- if (hasDirectives) {
- this.error = new PlainValue.YAMLSemanticError(this, "Missing directives-end indicator line");
- } else if (this.directives.length > 0) {
- this.contents = this.directives;
- this.directives = [];
- }
- return offset;
- }
- parseContents(start) {
- const {
- parseNode,
- src
- } = this.context;
- if (!this.contents)
- this.contents = [];
- let lineStart = start;
- while (src[lineStart - 1] === "-")
- lineStart -= 1;
- let offset = PlainValue.Node.endOfWhiteSpace(src, start);
- let atLineStart = lineStart === start;
- this.valueRange = new PlainValue.Range(offset);
- while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) {
- switch (src[offset]) {
- case "\n":
- if (atLineStart) {
- const blankLine = new BlankLine();
- offset = blankLine.parse({
- src
- }, offset);
- if (offset < src.length) {
- this.contents.push(blankLine);
- }
- } else {
- offset += 1;
- atLineStart = true;
- }
- lineStart = offset;
- break;
- case "#":
- {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.contents.push(comment);
- atLineStart = false;
- }
- break;
- default: {
- const iEnd = PlainValue.Node.endOfIndent(src, offset);
- const context = {
- atLineStart,
- indent: -1,
- inFlow: false,
- inCollection: false,
- lineStart,
- parent: this
- };
- const node = parseNode(context, iEnd);
- if (!node)
- return this.valueRange.end = iEnd;
- this.contents.push(node);
- offset = node.range.end;
- atLineStart = false;
- const ec = grabCollectionEndComments(node);
- if (ec)
- Array.prototype.push.apply(this.contents, ec);
- }
- }
- offset = Document.startCommentOrEndBlankLine(src, offset);
- }
- this.valueRange.end = offset;
- if (src[offset]) {
- this.documentEndMarker = new PlainValue.Range(offset, offset + 3);
- offset += 3;
- if (src[offset]) {
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- if (src[offset] === "#") {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.contents.push(comment);
- }
- switch (src[offset]) {
- case "\n":
- offset += 1;
- break;
- case void 0:
- break;
- default:
- this.error = new PlainValue.YAMLSyntaxError(this, "Document end marker line cannot have a non-comment suffix");
- }
- }
- }
- return offset;
- }
- parse(context, start) {
- context.root = this;
- this.context = context;
- const {
- src
- } = context;
- let offset = src.charCodeAt(start) === 65279 ? start + 1 : start;
- offset = this.parseDirectives(offset);
- offset = this.parseContents(offset);
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- this.directives.forEach((node) => {
- offset = node.setOrigRanges(cr, offset);
- });
- if (this.directivesEndMarker)
- offset = this.directivesEndMarker.setOrigRange(cr, offset);
- this.contents.forEach((node) => {
- offset = node.setOrigRanges(cr, offset);
- });
- if (this.documentEndMarker)
- offset = this.documentEndMarker.setOrigRange(cr, offset);
- return offset;
- }
- toString() {
- const {
- contents,
- directives,
- value
- } = this;
- if (value != null)
- return value;
- let str = directives.join("");
- if (contents.length > 0) {
- if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT)
- str += "---\n";
- str += contents.join("");
- }
- if (str[str.length - 1] !== "\n")
- str += "\n";
- return str;
- }
- };
- var Alias = class extends PlainValue.Node {
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = PlainValue.Node.endOfIdentifier(src, start + 1);
- this.valueRange = new PlainValue.Range(start + 1, offset);
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- return offset;
- }
- };
- var Chomp = {
- CLIP: "CLIP",
- KEEP: "KEEP",
- STRIP: "STRIP"
- };
- var BlockValue = class extends PlainValue.Node {
- constructor(type, props) {
- super(type, props);
- this.blockIndent = null;
- this.chomping = Chomp.CLIP;
- this.header = null;
- }
- get includesTrailingLines() {
- return this.chomping === Chomp.KEEP;
- }
- get strValue() {
- if (!this.valueRange || !this.context)
- return null;
- let {
- start,
- end
- } = this.valueRange;
- const {
- indent,
- src
- } = this.context;
- if (this.valueRange.isEmpty())
- return "";
- let lastNewLine = null;
- let ch = src[end - 1];
- while (ch === "\n" || ch === " " || ch === " ") {
- end -= 1;
- if (end <= start) {
- if (this.chomping === Chomp.KEEP)
- break;
- else
- return "";
- }
- if (ch === "\n")
- lastNewLine = end;
- ch = src[end - 1];
- }
- let keepStart = end + 1;
- if (lastNewLine) {
- if (this.chomping === Chomp.KEEP) {
- keepStart = lastNewLine;
- end = this.valueRange.end;
- } else {
- end = lastNewLine;
- }
- }
- const bi = indent + this.blockIndent;
- const folded = this.type === PlainValue.Type.BLOCK_FOLDED;
- let atStart = true;
- let str = "";
- let sep = "";
- let prevMoreIndented = false;
- for (let i = start; i < end; ++i) {
- for (let j = 0; j < bi; ++j) {
- if (src[i] !== " ")
- break;
- i += 1;
- }
- const ch2 = src[i];
- if (ch2 === "\n") {
- if (sep === "\n")
- str += "\n";
- else
- sep = "\n";
- } else {
- const lineEnd = PlainValue.Node.endOfLine(src, i);
- const line = src.slice(i, lineEnd);
- i = lineEnd;
- if (folded && (ch2 === " " || ch2 === " ") && i < keepStart) {
- if (sep === " ")
- sep = "\n";
- else if (!prevMoreIndented && !atStart && sep === "\n")
- sep = "\n\n";
- str += sep + line;
- sep = lineEnd < end && src[lineEnd] || "";
- prevMoreIndented = true;
- } else {
- str += sep + line;
- sep = folded && i < keepStart ? " " : "\n";
- prevMoreIndented = false;
- }
- if (atStart && line !== "")
- atStart = false;
- }
- }
- return this.chomping === Chomp.STRIP ? str : str + "\n";
- }
- parseBlockHeader(start) {
- const {
- src
- } = this.context;
- let offset = start + 1;
- let bi = "";
- while (true) {
- const ch = src[offset];
- switch (ch) {
- case "-":
- this.chomping = Chomp.STRIP;
- break;
- case "+":
- this.chomping = Chomp.KEEP;
- break;
- case "0":
- case "1":
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- bi += ch;
- break;
- default:
- this.blockIndent = Number(bi) || null;
- this.header = new PlainValue.Range(start, offset);
- return offset;
- }
- offset += 1;
- }
- }
- parseBlockValue(start) {
- const {
- indent,
- src
- } = this.context;
- const explicit = !!this.blockIndent;
- let offset = start;
- let valueEnd = start;
- let minBlockIndent = 1;
- for (let ch = src[offset]; ch === "\n"; ch = src[offset]) {
- offset += 1;
- if (PlainValue.Node.atDocumentBoundary(src, offset))
- break;
- const end = PlainValue.Node.endOfBlockIndent(src, indent, offset);
- if (end === null)
- break;
- const ch2 = src[end];
- const lineIndent = end - (offset + indent);
- if (!this.blockIndent) {
- if (src[end] !== "\n") {
- if (lineIndent < minBlockIndent) {
- const msg = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator";
- this.error = new PlainValue.YAMLSemanticError(this, msg);
- }
- this.blockIndent = lineIndent;
- } else if (lineIndent > minBlockIndent) {
- minBlockIndent = lineIndent;
- }
- } else if (ch2 && ch2 !== "\n" && lineIndent < this.blockIndent) {
- if (src[end] === "#")
- break;
- if (!this.error) {
- const src2 = explicit ? "explicit indentation indicator" : "first line";
- const msg = `Block scalars must not be less indented than their ${src2}`;
- this.error = new PlainValue.YAMLSemanticError(this, msg);
- }
- }
- if (src[end] === "\n") {
- offset = end;
- } else {
- offset = valueEnd = PlainValue.Node.endOfLine(src, end);
- }
- }
- if (this.chomping !== Chomp.KEEP) {
- offset = src[valueEnd] ? valueEnd + 1 : valueEnd;
- }
- this.valueRange = new PlainValue.Range(start + 1, offset);
- return offset;
- }
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = this.parseBlockHeader(start);
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- offset = this.parseBlockValue(offset);
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- return this.header ? this.header.setOrigRange(cr, offset) : offset;
- }
- };
- var FlowCollection = class extends PlainValue.Node {
- constructor(type, props) {
- super(type, props);
- this.items = null;
- }
- prevNodeIsJsonLike(idx = this.items.length) {
- const node = this.items[idx - 1];
- return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));
- }
- parse(context, start) {
- this.context = context;
- const {
- parseNode,
- src
- } = context;
- let {
- indent,
- lineStart
- } = context;
- let char = src[start];
- this.items = [{
- char,
- offset: start
- }];
- let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);
- char = src[offset];
- while (char && char !== "]" && char !== "}") {
- switch (char) {
- case "\n":
- {
- lineStart = offset + 1;
- const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);
- if (src[wsEnd] === "\n") {
- const blankLine = new BlankLine();
- lineStart = blankLine.parse({
- src
- }, lineStart);
- this.items.push(blankLine);
- }
- offset = PlainValue.Node.endOfIndent(src, lineStart);
- if (offset <= lineStart + indent) {
- char = src[offset];
- if (offset < lineStart + indent || char !== "]" && char !== "}") {
- const msg = "Insufficient indentation in flow collection";
- this.error = new PlainValue.YAMLSemanticError(this, msg);
- }
- }
- }
- break;
- case ",":
- {
- this.items.push({
- char,
- offset
- });
- offset += 1;
- }
- break;
- case "#":
- {
- const comment = new Comment();
- offset = comment.parse({
- src
- }, offset);
- this.items.push(comment);
- }
- break;
- case "?":
- case ":": {
- const next = src[offset + 1];
- if (next === "\n" || next === " " || next === " " || next === "," || char === ":" && this.prevNodeIsJsonLike()) {
- this.items.push({
- char,
- offset
- });
- offset += 1;
- break;
- }
- }
- default: {
- const node = parseNode({
- atLineStart: false,
- inCollection: false,
- inFlow: true,
- indent: -1,
- lineStart,
- parent: this
- }, offset);
- if (!node) {
- this.valueRange = new PlainValue.Range(start, offset);
- return offset;
- }
- this.items.push(node);
- offset = PlainValue.Node.normalizeOffset(src, node.range.end);
- }
- }
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- char = src[offset];
- }
- this.valueRange = new PlainValue.Range(start, offset + 1);
- if (char) {
- this.items.push({
- char,
- offset
- });
- offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1);
- offset = this.parseComment(offset);
- }
- return offset;
- }
- setOrigRanges(cr, offset) {
- offset = super.setOrigRanges(cr, offset);
- this.items.forEach((node) => {
- if (node instanceof PlainValue.Node) {
- offset = node.setOrigRanges(cr, offset);
- } else if (cr.length === 0) {
- node.origOffset = node.offset;
- } else {
- let i = offset;
- while (i < cr.length) {
- if (cr[i] > node.offset)
- break;
- else
- ++i;
- }
- node.origOffset = node.offset + i;
- offset = i;
- }
- });
- return offset;
- }
- toString() {
- const {
- context: {
- src
- },
- items,
- range,
- value
- } = this;
- if (value != null)
- return value;
- const nodes = items.filter((item) => item instanceof PlainValue.Node);
- let str = "";
- let prevEnd = range.start;
- nodes.forEach((node) => {
- const prefix = src.slice(prevEnd, node.range.start);
- prevEnd = node.range.end;
- str += prefix + String(node);
- if (str[str.length - 1] === "\n" && src[prevEnd - 1] !== "\n" && src[prevEnd] === "\n") {
- prevEnd += 1;
- }
- });
- str += src.slice(prevEnd, range.end);
- return PlainValue.Node.addStringTerminator(src, range.end, str);
- }
- };
- var QuoteDouble = class extends PlainValue.Node {
- static endOfQuote(src, offset) {
- let ch = src[offset];
- while (ch && ch !== '"') {
- offset += ch === "\\" ? 2 : 1;
- ch = src[offset];
- }
- return offset + 1;
- }
- get strValue() {
- if (!this.valueRange || !this.context)
- return null;
- const errors = [];
- const {
- start,
- end
- } = this.valueRange;
- const {
- indent,
- src
- } = this.context;
- if (src[end - 1] !== '"')
- errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing "quote'));
- let str = "";
- for (let i = start + 1; i < end - 1; ++i) {
- const ch = src[i];
- if (ch === "\n") {
- if (PlainValue.Node.atDocumentBoundary(src, i + 1))
- errors.push(new PlainValue.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values"));
- const {
- fold,
- offset,
- error
- } = PlainValue.Node.foldNewline(src, i, indent);
- str += fold;
- i = offset;
- if (error)
- errors.push(new PlainValue.YAMLSemanticError(this, "Multi-line double-quoted string needs to be sufficiently indented"));
- } else if (ch === "\\") {
- i += 1;
- switch (src[i]) {
- case "0":
- str += "\0";
- break;
- case "a":
- str += "\x07";
- break;
- case "b":
- str += "\b";
- break;
- case "e":
- str += "\x1B";
- break;
- case "f":
- str += "\f";
- break;
- case "n":
- str += "\n";
- break;
- case "r":
- str += "\r";
- break;
- case "t":
- str += " ";
- break;
- case "v":
- str += "\v";
- break;
- case "N":
- str += "\x85";
- break;
- case "_":
- str += "\xA0";
- break;
- case "L":
- str += "\u2028";
- break;
- case "P":
- str += "\u2029";
- break;
- case " ":
- str += " ";
- break;
- case '"':
- str += '"';
- break;
- case "/":
- str += "/";
- break;
- case "\\":
- str += "\\";
- break;
- case " ":
- str += " ";
- break;
- case "x":
- str += this.parseCharCode(i + 1, 2, errors);
- i += 2;
- break;
- case "u":
- str += this.parseCharCode(i + 1, 4, errors);
- i += 4;
- break;
- case "U":
- str += this.parseCharCode(i + 1, 8, errors);
- i += 8;
- break;
- case "\n":
- while (src[i + 1] === " " || src[i + 1] === " ")
- i += 1;
- break;
- default:
- errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));
- str += "\\" + src[i];
- }
- } else if (ch === " " || ch === " ") {
- const wsStart = i;
- let next = src[i + 1];
- while (next === " " || next === " ") {
- i += 1;
- next = src[i + 1];
- }
- if (next !== "\n")
- str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
- } else {
- str += ch;
- }
- }
- return errors.length > 0 ? {
- errors,
- str
- } : str;
- }
- parseCharCode(offset, length, errors) {
- const {
- src
- } = this.context;
- const cc = src.substr(offset, length);
- const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
- const code = ok ? parseInt(cc, 16) : NaN;
- if (isNaN(code)) {
- errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));
- return src.substr(offset - 2, length + 2);
- }
- return String.fromCodePoint(code);
- }
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = QuoteDouble.endOfQuote(src, start + 1);
- this.valueRange = new PlainValue.Range(start, offset);
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- return offset;
- }
- };
- var QuoteSingle = class extends PlainValue.Node {
- static endOfQuote(src, offset) {
- let ch = src[offset];
- while (ch) {
- if (ch === "'") {
- if (src[offset + 1] !== "'")
- break;
- ch = src[offset += 2];
- } else {
- ch = src[offset += 1];
- }
- }
- return offset + 1;
- }
- get strValue() {
- if (!this.valueRange || !this.context)
- return null;
- const errors = [];
- const {
- start,
- end
- } = this.valueRange;
- const {
- indent,
- src
- } = this.context;
- if (src[end - 1] !== "'")
- errors.push(new PlainValue.YAMLSyntaxError(this, "Missing closing 'quote"));
- let str = "";
- for (let i = start + 1; i < end - 1; ++i) {
- const ch = src[i];
- if (ch === "\n") {
- if (PlainValue.Node.atDocumentBoundary(src, i + 1))
- errors.push(new PlainValue.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values"));
- const {
- fold,
- offset,
- error
- } = PlainValue.Node.foldNewline(src, i, indent);
- str += fold;
- i = offset;
- if (error)
- errors.push(new PlainValue.YAMLSemanticError(this, "Multi-line single-quoted string needs to be sufficiently indented"));
- } else if (ch === "'") {
- str += ch;
- i += 1;
- if (src[i] !== "'")
- errors.push(new PlainValue.YAMLSyntaxError(this, "Unescaped single quote? This should not happen."));
- } else if (ch === " " || ch === " ") {
- const wsStart = i;
- let next = src[i + 1];
- while (next === " " || next === " ") {
- i += 1;
- next = src[i + 1];
- }
- if (next !== "\n")
- str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
- } else {
- str += ch;
- }
- }
- return errors.length > 0 ? {
- errors,
- str
- } : str;
- }
- parse(context, start) {
- this.context = context;
- const {
- src
- } = context;
- let offset = QuoteSingle.endOfQuote(src, start + 1);
- this.valueRange = new PlainValue.Range(start, offset);
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- offset = this.parseComment(offset);
- return offset;
- }
- };
- function createNewNode(type, props) {
- switch (type) {
- case PlainValue.Type.ALIAS:
- return new Alias(type, props);
- case PlainValue.Type.BLOCK_FOLDED:
- case PlainValue.Type.BLOCK_LITERAL:
- return new BlockValue(type, props);
- case PlainValue.Type.FLOW_MAP:
- case PlainValue.Type.FLOW_SEQ:
- return new FlowCollection(type, props);
- case PlainValue.Type.MAP_KEY:
- case PlainValue.Type.MAP_VALUE:
- case PlainValue.Type.SEQ_ITEM:
- return new CollectionItem(type, props);
- case PlainValue.Type.COMMENT:
- case PlainValue.Type.PLAIN:
- return new PlainValue.PlainValue(type, props);
- case PlainValue.Type.QUOTE_DOUBLE:
- return new QuoteDouble(type, props);
- case PlainValue.Type.QUOTE_SINGLE:
- return new QuoteSingle(type, props);
- default:
- return null;
- }
- }
- var ParseContext = class {
- static parseType(src, offset, inFlow) {
- switch (src[offset]) {
- case "*":
- return PlainValue.Type.ALIAS;
- case ">":
- return PlainValue.Type.BLOCK_FOLDED;
- case "|":
- return PlainValue.Type.BLOCK_LITERAL;
- case "{":
- return PlainValue.Type.FLOW_MAP;
- case "[":
- return PlainValue.Type.FLOW_SEQ;
- case "?":
- return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN;
- case ":":
- return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN;
- case "-":
- return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN;
- case '"':
- return PlainValue.Type.QUOTE_DOUBLE;
- case "'":
- return PlainValue.Type.QUOTE_SINGLE;
- default:
- return PlainValue.Type.PLAIN;
- }
- }
- constructor(orig = {}, {
- atLineStart,
- inCollection,
- inFlow,
- indent,
- lineStart,
- parent
- } = {}) {
- PlainValue._defineProperty(this, "parseNode", (overlay, start) => {
- if (PlainValue.Node.atDocumentBoundary(this.src, start))
- return null;
- const context = new ParseContext(this, overlay);
- const {
- props,
- type,
- valueStart
- } = context.parseProps(start);
- const node = createNewNode(type, props);
- let offset = node.parse(context, valueStart);
- node.range = new PlainValue.Range(start, offset);
- if (offset <= start) {
- node.error = new Error(`Node#parse consumed no characters`);
- node.error.parseEnd = offset;
- node.error.source = node;
- node.range.end = start + 1;
- }
- if (context.nodeStartsCollection(node)) {
- if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) {
- node.error = new PlainValue.YAMLSyntaxError(node, "Block collection must not have preceding content here (e.g. directives-end indicator)");
- }
- const collection = new Collection(node);
- offset = collection.parse(new ParseContext(context), offset);
- collection.range = new PlainValue.Range(start, offset);
- return collection;
- }
- return node;
- });
- this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;
- this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;
- this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;
- this.indent = indent != null ? indent : orig.indent;
- this.lineStart = lineStart != null ? lineStart : orig.lineStart;
- this.parent = parent != null ? parent : orig.parent || {};
- this.root = orig.root;
- this.src = orig.src;
- }
- nodeStartsCollection(node) {
- const {
- inCollection,
- inFlow,
- src
- } = this;
- if (inCollection || inFlow)
- return false;
- if (node instanceof CollectionItem)
- return true;
- let offset = node.range.end;
- if (src[offset] === "\n" || src[offset - 1] === "\n")
- return false;
- offset = PlainValue.Node.endOfWhiteSpace(src, offset);
- return src[offset] === ":";
- }
- parseProps(offset) {
- const {
- inFlow,
- parent,
- src
- } = this;
- const props = [];
- let lineHasProps = false;
- offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset);
- let ch = src[offset];
- while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === "\n") {
- if (ch === "\n") {
- let inEnd = offset;
- let lineStart;
- do {
- lineStart = inEnd + 1;
- inEnd = PlainValue.Node.endOfIndent(src, lineStart);
- } while (src[inEnd] === "\n");
- const indentDiff = inEnd - (lineStart + this.indent);
- const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart;
- if (src[inEnd] !== "#" && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent))
- break;
- this.atLineStart = true;
- this.lineStart = lineStart;
- lineHasProps = false;
- offset = inEnd;
- } else if (ch === PlainValue.Char.COMMENT) {
- const end = PlainValue.Node.endOfLine(src, offset + 1);
- props.push(new PlainValue.Range(offset, end));
- offset = end;
- } else {
- let end = PlainValue.Node.endOfIdentifier(src, offset + 1);
- if (ch === PlainValue.Char.TAG && src[end] === "," && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) {
- end = PlainValue.Node.endOfIdentifier(src, end + 5);
- }
- props.push(new PlainValue.Range(offset, end));
- lineHasProps = true;
- offset = PlainValue.Node.endOfWhiteSpace(src, end);
- }
- ch = src[offset];
- }
- if (lineHasProps && ch === ":" && PlainValue.Node.atBlank(src, offset + 1, true))
- offset -= 1;
- const type = ParseContext.parseType(src, offset, inFlow);
- return {
- props,
- type,
- valueStart: offset
- };
- }
- };
- function parse(src) {
- const cr = [];
- if (src.indexOf("\r") !== -1) {
- src = src.replace(/\r\n?/g, (match, offset2) => {
- if (match.length > 1)
- cr.push(offset2);
- return "\n";
- });
- }
- const documents = [];
- let offset = 0;
- do {
- const doc = new Document();
- const context = new ParseContext({
- src
- });
- offset = doc.parse(context, offset);
- documents.push(doc);
- } while (offset < src.length);
- documents.setOrigRanges = () => {
- if (cr.length === 0)
- return false;
- for (let i = 1; i < cr.length; ++i)
- cr[i] -= i;
- let crOffset = 0;
- for (let i = 0; i < documents.length; ++i) {
- crOffset = documents[i].setOrigRanges(cr, crOffset);
- }
- cr.splice(0, cr.length);
- return true;
- };
- documents.toString = () => documents.join("...\n");
- return documents;
- }
- exports2.parse = parse;
- }
- });
- var require_resolveSeq_d03cb037 = __commonJS({
- "node_modules/yaml/dist/resolveSeq-d03cb037.js"(exports2) {
- "use strict";
- var PlainValue = require_PlainValue_ec8e588e();
- function addCommentBefore(str, indent, comment) {
- if (!comment)
- return str;
- const cc = comment.replace(/[\s\S]^/gm, `$&${indent}#`);
- return `#${cc}
- ${indent}${str}`;
- }
- function addComment(str, indent, comment) {
- return !comment ? str : comment.indexOf("\n") === -1 ? `${str} #${comment}` : `${str}
- ` + comment.replace(/^/gm, `${indent || ""}#`);
- }
- var Node = class {
- };
- function toJSON(value, arg, ctx) {
- if (Array.isArray(value))
- return value.map((v, i) => toJSON(v, String(i), ctx));
- if (value && typeof value.toJSON === "function") {
- const anchor = ctx && ctx.anchors && ctx.anchors.get(value);
- if (anchor)
- ctx.onCreate = (res2) => {
- anchor.res = res2;
- delete ctx.onCreate;
- };
- const res = value.toJSON(arg, ctx);
- if (anchor && ctx.onCreate)
- ctx.onCreate(res);
- return res;
- }
- if ((!ctx || !ctx.keep) && typeof value === "bigint")
- return Number(value);
- return value;
- }
- var Scalar = class extends Node {
- constructor(value) {
- super();
- this.value = value;
- }
- toJSON(arg, ctx) {
- return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx);
- }
- toString() {
- return String(this.value);
- }
- };
- function collectionFromPath(schema, path, value) {
- let v = value;
- for (let i = path.length - 1; i >= 0; --i) {
- const k = path[i];
- if (Number.isInteger(k) && k >= 0) {
- const a = [];
- a[k] = v;
- v = a;
- } else {
- const o = {};
- Object.defineProperty(o, k, {
- value: v,
- writable: true,
- enumerable: true,
- configurable: true
- });
- v = o;
- }
- }
- return schema.createNode(v, false);
- }
- var isEmptyPath = (path) => path == null || typeof path === "object" && path[Symbol.iterator]().next().done;
- var Collection = class extends Node {
- constructor(schema) {
- super();
- PlainValue._defineProperty(this, "items", []);
- this.schema = schema;
- }
- addIn(path, value) {
- if (isEmptyPath(path))
- this.add(value);
- else {
- const [key, ...rest] = path;
- const node = this.get(key, true);
- if (node instanceof Collection)
- node.addIn(rest, value);
- else if (node === void 0 && this.schema)
- this.set(key, collectionFromPath(this.schema, rest, value));
- else
- throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
- }
- }
- deleteIn([key, ...rest]) {
- if (rest.length === 0)
- return this.delete(key);
- const node = this.get(key, true);
- if (node instanceof Collection)
- return node.deleteIn(rest);
- else
- throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
- }
- getIn([key, ...rest], keepScalar) {
- const node = this.get(key, true);
- if (rest.length === 0)
- return !keepScalar && node instanceof Scalar ? node.value : node;
- else
- return node instanceof Collection ? node.getIn(rest, keepScalar) : void 0;
- }
- hasAllNullValues() {
- return this.items.every((node) => {
- if (!node || node.type !== "PAIR")
- return false;
- const n = node.value;
- return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag;
- });
- }
- hasIn([key, ...rest]) {
- if (rest.length === 0)
- return this.has(key);
- const node = this.get(key, true);
- return node instanceof Collection ? node.hasIn(rest) : false;
- }
- setIn([key, ...rest], value) {
- if (rest.length === 0) {
- this.set(key, value);
- } else {
- const node = this.get(key, true);
- if (node instanceof Collection)
- node.setIn(rest, value);
- else if (node === void 0 && this.schema)
- this.set(key, collectionFromPath(this.schema, rest, value));
- else
- throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
- }
- }
- toJSON() {
- return null;
- }
- toString(ctx, {
- blockItem,
- flowChars,
- isMap,
- itemIndent
- }, onComment, onChompKeep) {
- const {
- indent,
- indentStep,
- stringify
- } = ctx;
- const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow;
- if (inFlow)
- itemIndent += indentStep;
- const allNullValues = isMap && this.hasAllNullValues();
- ctx = Object.assign({}, ctx, {
- allNullValues,
- indent: itemIndent,
- inFlow,
- type: null
- });
- let chompKeep = false;
- let hasItemWithNewLine = false;
- const nodes = this.items.reduce((nodes2, item, i) => {
- let comment;
- if (item) {
- if (!chompKeep && item.spaceBefore)
- nodes2.push({
- type: "comment",
- str: ""
- });
- if (item.commentBefore)
- item.commentBefore.match(/^.*$/gm).forEach((line) => {
- nodes2.push({
- type: "comment",
- str: `#${line}`
- });
- });
- if (item.comment)
- comment = item.comment;
- if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment)))
- hasItemWithNewLine = true;
- }
- chompKeep = false;
- let str2 = stringify(item, ctx, () => comment = null, () => chompKeep = true);
- if (inFlow && !hasItemWithNewLine && str2.includes("\n"))
- hasItemWithNewLine = true;
- if (inFlow && i < this.items.length - 1)
- str2 += ",";
- str2 = addComment(str2, itemIndent, comment);
- if (chompKeep && (comment || inFlow))
- chompKeep = false;
- nodes2.push({
- type: "item",
- str: str2
- });
- return nodes2;
- }, []);
- let str;
- if (nodes.length === 0) {
- str = flowChars.start + flowChars.end;
- } else if (inFlow) {
- const {
- start,
- end
- } = flowChars;
- const strings = nodes.map((n) => n.str);
- if (hasItemWithNewLine || strings.reduce((sum, str2) => sum + str2.length + 2, 2) > Collection.maxFlowStringSingleLineLength) {
- str = start;
- for (const s of strings) {
- str += s ? `
- ${indentStep}${indent}${s}` : "\n";
- }
- str += `
- ${indent}${end}`;
- } else {
- str = `${start} ${strings.join(" ")} ${end}`;
- }
- } else {
- const strings = nodes.map(blockItem);
- str = strings.shift();
- for (const s of strings)
- str += s ? `
- ${indent}${s}` : "\n";
- }
- if (this.comment) {
- str += "\n" + this.comment.replace(/^/gm, `${indent}#`);
- if (onComment)
- onComment();
- } else if (chompKeep && onChompKeep)
- onChompKeep();
- return str;
- }
- };
- PlainValue._defineProperty(Collection, "maxFlowStringSingleLineLength", 60);
- function asItemIndex(key) {
- let idx = key instanceof Scalar ? key.value : key;
- if (idx && typeof idx === "string")
- idx = Number(idx);
- return Number.isInteger(idx) && idx >= 0 ? idx : null;
- }
- var YAMLSeq = class extends Collection {
- add(value) {
- this.items.push(value);
- }
- delete(key) {
- const idx = asItemIndex(key);
- if (typeof idx !== "number")
- return false;
- const del = this.items.splice(idx, 1);
- return del.length > 0;
- }
- get(key, keepScalar) {
- const idx = asItemIndex(key);
- if (typeof idx !== "number")
- return void 0;
- const it = this.items[idx];
- return !keepScalar && it instanceof Scalar ? it.value : it;
- }
- has(key) {
- const idx = asItemIndex(key);
- return typeof idx === "number" && idx < this.items.length;
- }
- set(key, value) {
- const idx = asItemIndex(key);
- if (typeof idx !== "number")
- throw new Error(`Expected a valid index, not ${key}.`);
- this.items[idx] = value;
- }
- toJSON(_, ctx) {
- const seq = [];
- if (ctx && ctx.onCreate)
- ctx.onCreate(seq);
- let i = 0;
- for (const item of this.items)
- seq.push(toJSON(item, String(i++), ctx));
- return seq;
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx)
- return JSON.stringify(this);
- return super.toString(ctx, {
- blockItem: (n) => n.type === "comment" ? n.str : `- ${n.str}`,
- flowChars: {
- start: "[",
- end: "]"
- },
- isMap: false,
- itemIndent: (ctx.indent || "") + " "
- }, onComment, onChompKeep);
- }
- };
- var stringifyKey = (key, jsKey, ctx) => {
- if (jsKey === null)
- return "";
- if (typeof jsKey !== "object")
- return String(jsKey);
- if (key instanceof Node && ctx && ctx.doc)
- return key.toString({
- anchors: /* @__PURE__ */ Object.create(null),
- doc: ctx.doc,
- indent: "",
- indentStep: ctx.indentStep,
- inFlow: true,
- inStringifyKey: true,
- stringify: ctx.stringify
- });
- return JSON.stringify(jsKey);
- };
- var Pair = class extends Node {
- constructor(key, value = null) {
- super();
- this.key = key;
- this.value = value;
- this.type = Pair.Type.PAIR;
- }
- get commentBefore() {
- return this.key instanceof Node ? this.key.commentBefore : void 0;
- }
- set commentBefore(cb) {
- if (this.key == null)
- this.key = new Scalar(null);
- if (this.key instanceof Node)
- this.key.commentBefore = cb;
- else {
- const msg = "Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.";
- throw new Error(msg);
- }
- }
- addToJSMap(ctx, map) {
- const key = toJSON(this.key, "", ctx);
- if (map instanceof Map) {
- const value = toJSON(this.value, key, ctx);
- map.set(key, value);
- } else if (map instanceof Set) {
- map.add(key);
- } else {
- const stringKey = stringifyKey(this.key, key, ctx);
- const value = toJSON(this.value, stringKey, ctx);
- if (stringKey in map)
- Object.defineProperty(map, stringKey, {
- value,
- writable: true,
- enumerable: true,
- configurable: true
- });
- else
- map[stringKey] = value;
- }
- return map;
- }
- toJSON(_, ctx) {
- const pair = ctx && ctx.mapAsMap ? /* @__PURE__ */ new Map() : {};
- return this.addToJSMap(ctx, pair);
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx || !ctx.doc)
- return JSON.stringify(this);
- const {
- indent: indentSize,
- indentSeq,
- simpleKeys
- } = ctx.doc.options;
- let {
- key,
- value
- } = this;
- let keyComment = key instanceof Node && key.comment;
- if (simpleKeys) {
- if (keyComment) {
- throw new Error("With simple keys, key nodes cannot have comments");
- }
- if (key instanceof Collection) {
- const msg = "With simple keys, collection cannot be used as a key value";
- throw new Error(msg);
- }
- }
- let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === "object"));
- const {
- doc,
- indent,
- indentStep,
- stringify
- } = ctx;
- ctx = Object.assign({}, ctx, {
- implicitKey: !explicitKey,
- indent: indent + indentStep
- });
- let chompKeep = false;
- let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true);
- str = addComment(str, ctx.indent, keyComment);
- if (!explicitKey && str.length > 1024) {
- if (simpleKeys)
- throw new Error("With simple keys, single line scalar must not span more than 1024 characters");
- explicitKey = true;
- }
- if (ctx.allNullValues && !simpleKeys) {
- if (this.comment) {
- str = addComment(str, ctx.indent, this.comment);
- if (onComment)
- onComment();
- } else if (chompKeep && !keyComment && onChompKeep)
- onChompKeep();
- return ctx.inFlow && !explicitKey ? str : `? ${str}`;
- }
- str = explicitKey ? `? ${str}
- ${indent}:` : `${str}:`;
- if (this.comment) {
- str = addComment(str, ctx.indent, this.comment);
- if (onComment)
- onComment();
- }
- let vcb = "";
- let valueComment = null;
- if (value instanceof Node) {
- if (value.spaceBefore)
- vcb = "\n";
- if (value.commentBefore) {
- const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`);
- vcb += `
- ${cs}`;
- }
- valueComment = value.comment;
- } else if (value && typeof value === "object") {
- value = doc.schema.createNode(value, true);
- }
- ctx.implicitKey = false;
- if (!explicitKey && !this.comment && value instanceof Scalar)
- ctx.indentAtStart = str.length + 1;
- chompKeep = false;
- if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {
- ctx.indent = ctx.indent.substr(2);
- }
- const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true);
- let ws = " ";
- if (vcb || this.comment) {
- ws = `${vcb}
- ${ctx.indent}`;
- } else if (!explicitKey && value instanceof Collection) {
- const flow = valueStr[0] === "[" || valueStr[0] === "{";
- if (!flow || valueStr.includes("\n"))
- ws = `
- ${ctx.indent}`;
- } else if (valueStr[0] === "\n")
- ws = "";
- if (chompKeep && !valueComment && onChompKeep)
- onChompKeep();
- return addComment(str + ws + valueStr, ctx.indent, valueComment);
- }
- };
- PlainValue._defineProperty(Pair, "Type", {
- PAIR: "PAIR",
- MERGE_PAIR: "MERGE_PAIR"
- });
- var getAliasCount = (node, anchors) => {
- if (node instanceof Alias) {
- const anchor = anchors.get(node.source);
- return anchor.count * anchor.aliasCount;
- } else if (node instanceof Collection) {
- let count = 0;
- for (const item of node.items) {
- const c = getAliasCount(item, anchors);
- if (c > count)
- count = c;
- }
- return count;
- } else if (node instanceof Pair) {
- const kc = getAliasCount(node.key, anchors);
- const vc = getAliasCount(node.value, anchors);
- return Math.max(kc, vc);
- }
- return 1;
- };
- var Alias = class extends Node {
- static stringify({
- range,
- source
- }, {
- anchors,
- doc,
- implicitKey,
- inStringifyKey
- }) {
- let anchor = Object.keys(anchors).find((a) => anchors[a] === source);
- if (!anchor && inStringifyKey)
- anchor = doc.anchors.getName(source) || doc.anchors.newName();
- if (anchor)
- return `*${anchor}${implicitKey ? " " : ""}`;
- const msg = doc.anchors.getName(source) ? "Alias node must be after source node" : "Source node not found for alias node";
- throw new Error(`${msg} [${range}]`);
- }
- constructor(source) {
- super();
- this.source = source;
- this.type = PlainValue.Type.ALIAS;
- }
- set tag(t) {
- throw new Error("Alias nodes cannot have tags");
- }
- toJSON(arg, ctx) {
- if (!ctx)
- return toJSON(this.source, arg, ctx);
- const {
- anchors,
- maxAliasCount
- } = ctx;
- const anchor = anchors.get(this.source);
- if (!anchor || anchor.res === void 0) {
- const msg = "This should not happen: Alias anchor was not resolved?";
- if (this.cstNode)
- throw new PlainValue.YAMLReferenceError(this.cstNode, msg);
- else
- throw new ReferenceError(msg);
- }
- if (maxAliasCount >= 0) {
- anchor.count += 1;
- if (anchor.aliasCount === 0)
- anchor.aliasCount = getAliasCount(this.source, anchors);
- if (anchor.count * anchor.aliasCount > maxAliasCount) {
- const msg = "Excessive alias count indicates a resource exhaustion attack";
- if (this.cstNode)
- throw new PlainValue.YAMLReferenceError(this.cstNode, msg);
- else
- throw new ReferenceError(msg);
- }
- }
- return anchor.res;
- }
- toString(ctx) {
- return Alias.stringify(this, ctx);
- }
- };
- PlainValue._defineProperty(Alias, "default", true);
- function findPair(items, key) {
- const k = key instanceof Scalar ? key.value : key;
- for (const it of items) {
- if (it instanceof Pair) {
- if (it.key === key || it.key === k)
- return it;
- if (it.key && it.key.value === k)
- return it;
- }
- }
- return void 0;
- }
- var YAMLMap = class extends Collection {
- add(pair, overwrite) {
- if (!pair)
- pair = new Pair(pair);
- else if (!(pair instanceof Pair))
- pair = new Pair(pair.key || pair, pair.value);
- const prev = findPair(this.items, pair.key);
- const sortEntries = this.schema && this.schema.sortMapEntries;
- if (prev) {
- if (overwrite)
- prev.value = pair.value;
- else
- throw new Error(`Key ${pair.key} already set`);
- } else if (sortEntries) {
- const i = this.items.findIndex((item) => sortEntries(pair, item) < 0);
- if (i === -1)
- this.items.push(pair);
- else
- this.items.splice(i, 0, pair);
- } else {
- this.items.push(pair);
- }
- }
- delete(key) {
- const it = findPair(this.items, key);
- if (!it)
- return false;
- const del = this.items.splice(this.items.indexOf(it), 1);
- return del.length > 0;
- }
- get(key, keepScalar) {
- const it = findPair(this.items, key);
- const node = it && it.value;
- return !keepScalar && node instanceof Scalar ? node.value : node;
- }
- has(key) {
- return !!findPair(this.items, key);
- }
- set(key, value) {
- this.add(new Pair(key, value), true);
- }
- toJSON(_, ctx, Type) {
- const map = Type ? new Type() : ctx && ctx.mapAsMap ? /* @__PURE__ */ new Map() : {};
- if (ctx && ctx.onCreate)
- ctx.onCreate(map);
- for (const item of this.items)
- item.addToJSMap(ctx, map);
- return map;
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx)
- return JSON.stringify(this);
- for (const item of this.items) {
- if (!(item instanceof Pair))
- throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);
- }
- return super.toString(ctx, {
- blockItem: (n) => n.str,
- flowChars: {
- start: "{",
- end: "}"
- },
- isMap: true,
- itemIndent: ctx.indent || ""
- }, onComment, onChompKeep);
- }
- };
- var MERGE_KEY = "<<";
- var Merge = class extends Pair {
- constructor(pair) {
- if (pair instanceof Pair) {
- let seq = pair.value;
- if (!(seq instanceof YAMLSeq)) {
- seq = new YAMLSeq();
- seq.items.push(pair.value);
- seq.range = pair.value.range;
- }
- super(pair.key, seq);
- this.range = pair.range;
- } else {
- super(new Scalar(MERGE_KEY), new YAMLSeq());
- }
- this.type = Pair.Type.MERGE_PAIR;
- }
- addToJSMap(ctx, map) {
- for (const {
- source
- } of this.value.items) {
- if (!(source instanceof YAMLMap))
- throw new Error("Merge sources must be maps");
- const srcMap = source.toJSON(null, ctx, Map);
- for (const [key, value] of srcMap) {
- if (map instanceof Map) {
- if (!map.has(key))
- map.set(key, value);
- } else if (map instanceof Set) {
- map.add(key);
- } else if (!Object.prototype.hasOwnProperty.call(map, key)) {
- Object.defineProperty(map, key, {
- value,
- writable: true,
- enumerable: true,
- configurable: true
- });
- }
- }
- }
- return map;
- }
- toString(ctx, onComment) {
- const seq = this.value;
- if (seq.items.length > 1)
- return super.toString(ctx, onComment);
- this.value = seq.items[0];
- const str = super.toString(ctx, onComment);
- this.value = seq;
- return str;
- }
- };
- var binaryOptions = {
- defaultType: PlainValue.Type.BLOCK_LITERAL,
- lineWidth: 76
- };
- var boolOptions = {
- trueStr: "true",
- falseStr: "false"
- };
- var intOptions = {
- asBigInt: false
- };
- var nullOptions = {
- nullStr: "null"
- };
- var strOptions = {
- defaultType: PlainValue.Type.PLAIN,
- doubleQuoted: {
- jsonEncoding: false,
- minMultiLineLength: 40
- },
- fold: {
- lineWidth: 80,
- minContentWidth: 20
- }
- };
- function resolveScalar(str, tags, scalarFallback) {
- for (const {
- format,
- test,
- resolve
- } of tags) {
- if (test) {
- const match = str.match(test);
- if (match) {
- let res = resolve.apply(null, match);
- if (!(res instanceof Scalar))
- res = new Scalar(res);
- if (format)
- res.format = format;
- return res;
- }
- }
- }
- if (scalarFallback)
- str = scalarFallback(str);
- return new Scalar(str);
- }
- var FOLD_FLOW = "flow";
- var FOLD_BLOCK = "block";
- var FOLD_QUOTED = "quoted";
- var consumeMoreIndentedLines = (text, i) => {
- let ch = text[i + 1];
- while (ch === " " || ch === " ") {
- do {
- ch = text[i += 1];
- } while (ch && ch !== "\n");
- ch = text[i + 1];
- }
- return i;
- };
- function foldFlowLines(text, indent, mode, {
- indentAtStart,
- lineWidth = 80,
- minContentWidth = 20,
- onFold,
- onOverflow
- }) {
- if (!lineWidth || lineWidth < 0)
- return text;
- const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);
- if (text.length <= endStep)
- return text;
- const folds = [];
- const escapedFolds = {};
- let end = lineWidth - indent.length;
- if (typeof indentAtStart === "number") {
- if (indentAtStart > lineWidth - Math.max(2, minContentWidth))
- folds.push(0);
- else
- end = lineWidth - indentAtStart;
- }
- let split = void 0;
- let prev = void 0;
- let overflow = false;
- let i = -1;
- let escStart = -1;
- let escEnd = -1;
- if (mode === FOLD_BLOCK) {
- i = consumeMoreIndentedLines(text, i);
- if (i !== -1)
- end = i + endStep;
- }
- for (let ch; ch = text[i += 1]; ) {
- if (mode === FOLD_QUOTED && ch === "\\") {
- escStart = i;
- switch (text[i + 1]) {
- case "x":
- i += 3;
- break;
- case "u":
- i += 5;
- break;
- case "U":
- i += 9;
- break;
- default:
- i += 1;
- }
- escEnd = i;
- }
- if (ch === "\n") {
- if (mode === FOLD_BLOCK)
- i = consumeMoreIndentedLines(text, i);
- end = i + endStep;
- split = void 0;
- } else {
- if (ch === " " && prev && prev !== " " && prev !== "\n" && prev !== " ") {
- const next = text[i + 1];
- if (next && next !== " " && next !== "\n" && next !== " ")
- split = i;
- }
- if (i >= end) {
- if (split) {
- folds.push(split);
- end = split + endStep;
- split = void 0;
- } else if (mode === FOLD_QUOTED) {
- while (prev === " " || prev === " ") {
- prev = ch;
- ch = text[i += 1];
- overflow = true;
- }
- const j = i > escEnd + 1 ? i - 2 : escStart - 1;
- if (escapedFolds[j])
- return text;
- folds.push(j);
- escapedFolds[j] = true;
- end = j + endStep;
- split = void 0;
- } else {
- overflow = true;
- }
- }
- }
- prev = ch;
- }
- if (overflow && onOverflow)
- onOverflow();
- if (folds.length === 0)
- return text;
- if (onFold)
- onFold();
- let res = text.slice(0, folds[0]);
- for (let i2 = 0; i2 < folds.length; ++i2) {
- const fold = folds[i2];
- const end2 = folds[i2 + 1] || text.length;
- if (fold === 0)
- res = `
- ${indent}${text.slice(0, end2)}`;
- else {
- if (mode === FOLD_QUOTED && escapedFolds[fold])
- res += `${text[fold]}\\`;
- res += `
- ${indent}${text.slice(fold + 1, end2)}`;
- }
- }
- return res;
- }
- var getFoldOptions = ({
- indentAtStart
- }) => indentAtStart ? Object.assign({
- indentAtStart
- }, strOptions.fold) : strOptions.fold;
- var containsDocumentMarker = (str) => /^(%|---|\.\.\.)/m.test(str);
- function lineLengthOverLimit(str, lineWidth, indentLength) {
- if (!lineWidth || lineWidth < 0)
- return false;
- const limit = lineWidth - indentLength;
- const strLen = str.length;
- if (strLen <= limit)
- return false;
- for (let i = 0, start = 0; i < strLen; ++i) {
- if (str[i] === "\n") {
- if (i - start > limit)
- return true;
- start = i + 1;
- if (strLen - start <= limit)
- return false;
- }
- }
- return true;
- }
- function doubleQuotedString(value, ctx) {
- const {
- implicitKey
- } = ctx;
- const {
- jsonEncoding,
- minMultiLineLength
- } = strOptions.doubleQuoted;
- const json = JSON.stringify(value);
- if (jsonEncoding)
- return json;
- const indent = ctx.indent || (containsDocumentMarker(value) ? " " : "");
- let str = "";
- let start = 0;
- for (let i = 0, ch = json[i]; ch; ch = json[++i]) {
- if (ch === " " && json[i + 1] === "\\" && json[i + 2] === "n") {
- str += json.slice(start, i) + "\\ ";
- i += 1;
- start = i;
- ch = "\\";
- }
- if (ch === "\\")
- switch (json[i + 1]) {
- case "u":
- {
- str += json.slice(start, i);
- const code = json.substr(i + 2, 4);
- switch (code) {
- case "0000":
- str += "\\0";
- break;
- case "0007":
- str += "\\a";
- break;
- case "000b":
- str += "\\v";
- break;
- case "001b":
- str += "\\e";
- break;
- case "0085":
- str += "\\N";
- break;
- case "00a0":
- str += "\\_";
- break;
- case "2028":
- str += "\\L";
- break;
- case "2029":
- str += "\\P";
- break;
- default:
- if (code.substr(0, 2) === "00")
- str += "\\x" + code.substr(2);
- else
- str += json.substr(i, 6);
- }
- i += 5;
- start = i + 1;
- }
- break;
- case "n":
- if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) {
- i += 1;
- } else {
- str += json.slice(start, i) + "\n\n";
- while (json[i + 2] === "\\" && json[i + 3] === "n" && json[i + 4] !== '"') {
- str += "\n";
- i += 2;
- }
- str += indent;
- if (json[i + 2] === " ")
- str += "\\";
- i += 1;
- start = i + 1;
- }
- break;
- default:
- i += 1;
- }
- }
- str = start ? str + json.slice(start) : json;
- return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx));
- }
- function singleQuotedString(value, ctx) {
- if (ctx.implicitKey) {
- if (/\n/.test(value))
- return doubleQuotedString(value, ctx);
- } else {
- if (/[ \t]\n|\n[ \t]/.test(value))
- return doubleQuotedString(value, ctx);
- }
- const indent = ctx.indent || (containsDocumentMarker(value) ? " " : "");
- const res = "'" + value.replace(/'/g, "''").replace(/\n+/g, `$&
- ${indent}`) + "'";
- return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx));
- }
- function blockString({
- comment,
- type,
- value
- }, ctx, onComment, onChompKeep) {
- if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) {
- return doubleQuotedString(value, ctx);
- }
- const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? " " : "");
- const indentSize = indent ? "2" : "1";
- const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length);
- let header = literal ? "|" : ">";
- if (!value)
- return header + "\n";
- let wsStart = "";
- let wsEnd = "";
- value = value.replace(/[\n\t ]*$/, (ws) => {
- const n = ws.indexOf("\n");
- if (n === -1) {
- header += "-";
- } else if (value === ws || n !== ws.length - 1) {
- header += "+";
- if (onChompKeep)
- onChompKeep();
- }
- wsEnd = ws.replace(/\n$/, "");
- return "";
- }).replace(/^[\n ]*/, (ws) => {
- if (ws.indexOf(" ") !== -1)
- header += indentSize;
- const m = ws.match(/ +$/);
- if (m) {
- wsStart = ws.slice(0, -m[0].length);
- return m[0];
- } else {
- wsStart = ws;
- return "";
- }
- });
- if (wsEnd)
- wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, `$&${indent}`);
- if (wsStart)
- wsStart = wsStart.replace(/\n+/g, `$&${indent}`);
- if (comment) {
- header += " #" + comment.replace(/ ?[\r\n]+/g, " ");
- if (onComment)
- onComment();
- }
- if (!value)
- return `${header}${indentSize}
- ${indent}${wsEnd}`;
- if (literal) {
- value = value.replace(/\n+/g, `$&${indent}`);
- return `${header}
- ${indent}${wsStart}${value}${wsEnd}`;
- }
- value = value.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${indent}`);
- const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold);
- return `${header}
- ${indent}${body}`;
- }
- function plainString(item, ctx, onComment, onChompKeep) {
- const {
- comment,
- type,
- value
- } = item;
- const {
- actualString,
- implicitKey,
- indent,
- inFlow
- } = ctx;
- if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) {
- return doubleQuotedString(value, ctx);
- }
- if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) {
- return implicitKey || inFlow || value.indexOf("\n") === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);
- }
- if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf("\n") !== -1) {
- return blockString(item, ctx, onComment, onChompKeep);
- }
- if (indent === "" && containsDocumentMarker(value)) {
- ctx.forceBlockIndent = true;
- return blockString(item, ctx, onComment, onChompKeep);
- }
- const str = value.replace(/\n+/g, `$&
- ${indent}`);
- if (actualString) {
- const {
- tags
- } = ctx.doc.schema;
- const resolved = resolveScalar(str, tags, tags.scalarFallback).value;
- if (typeof resolved !== "string")
- return doubleQuotedString(value, ctx);
- }
- const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx));
- if (comment && !inFlow && (body.indexOf("\n") !== -1 || comment.indexOf("\n") !== -1)) {
- if (onComment)
- onComment();
- return addCommentBefore(body, indent, comment);
- }
- return body;
- }
- function stringifyString(item, ctx, onComment, onChompKeep) {
- const {
- defaultType
- } = strOptions;
- const {
- implicitKey,
- inFlow
- } = ctx;
- let {
- type,
- value
- } = item;
- if (typeof value !== "string") {
- value = String(value);
- item = Object.assign({}, item, {
- value
- });
- }
- const _stringify = (_type) => {
- switch (_type) {
- case PlainValue.Type.BLOCK_FOLDED:
- case PlainValue.Type.BLOCK_LITERAL:
- return blockString(item, ctx, onComment, onChompKeep);
- case PlainValue.Type.QUOTE_DOUBLE:
- return doubleQuotedString(value, ctx);
- case PlainValue.Type.QUOTE_SINGLE:
- return singleQuotedString(value, ctx);
- case PlainValue.Type.PLAIN:
- return plainString(item, ctx, onComment, onChompKeep);
- default:
- return null;
- }
- };
- if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) {
- type = PlainValue.Type.QUOTE_DOUBLE;
- } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) {
- type = PlainValue.Type.QUOTE_DOUBLE;
- }
- let res = _stringify(type);
- if (res === null) {
- res = _stringify(defaultType);
- if (res === null)
- throw new Error(`Unsupported default string type ${defaultType}`);
- }
- return res;
- }
- function stringifyNumber({
- format,
- minFractionDigits,
- tag,
- value
- }) {
- if (typeof value === "bigint")
- return String(value);
- if (!isFinite(value))
- return isNaN(value) ? ".nan" : value < 0 ? "-.inf" : ".inf";
- let n = JSON.stringify(value);
- if (!format && minFractionDigits && (!tag || tag === "tag:yaml.org,2002:float") && /^\d/.test(n)) {
- let i = n.indexOf(".");
- if (i < 0) {
- i = n.length;
- n += ".";
- }
- let d = minFractionDigits - (n.length - i - 1);
- while (d-- > 0)
- n += "0";
- }
- return n;
- }
- function checkFlowCollectionEnd(errors, cst) {
- let char, name;
- switch (cst.type) {
- case PlainValue.Type.FLOW_MAP:
- char = "}";
- name = "flow map";
- break;
- case PlainValue.Type.FLOW_SEQ:
- char = "]";
- name = "flow sequence";
- break;
- default:
- errors.push(new PlainValue.YAMLSemanticError(cst, "Not a flow collection!?"));
- return;
- }
- let lastItem;
- for (let i = cst.items.length - 1; i >= 0; --i) {
- const item = cst.items[i];
- if (!item || item.type !== PlainValue.Type.COMMENT) {
- lastItem = item;
- break;
- }
- }
- if (lastItem && lastItem.char !== char) {
- const msg = `Expected ${name} to end with ${char}`;
- let err;
- if (typeof lastItem.offset === "number") {
- err = new PlainValue.YAMLSemanticError(cst, msg);
- err.offset = lastItem.offset + 1;
- } else {
- err = new PlainValue.YAMLSemanticError(lastItem, msg);
- if (lastItem.range && lastItem.range.end)
- err.offset = lastItem.range.end - lastItem.range.start;
- }
- errors.push(err);
- }
- }
- function checkFlowCommentSpace(errors, comment) {
- const prev = comment.context.src[comment.range.start - 1];
- if (prev !== "\n" && prev !== " " && prev !== " ") {
- const msg = "Comments must be separated from other tokens by white space characters";
- errors.push(new PlainValue.YAMLSemanticError(comment, msg));
- }
- }
- function getLongKeyError(source, key) {
- const sk = String(key);
- const k = sk.substr(0, 8) + "..." + sk.substr(-8);
- return new PlainValue.YAMLSemanticError(source, `The "${k}" key is too long`);
- }
- function resolveComments(collection, comments) {
- for (const {
- afterKey,
- before,
- comment
- } of comments) {
- let item = collection.items[before];
- if (!item) {
- if (comment !== void 0) {
- if (collection.comment)
- collection.comment += "\n" + comment;
- else
- collection.comment = comment;
- }
- } else {
- if (afterKey && item.value)
- item = item.value;
- if (comment === void 0) {
- if (afterKey || !item.commentBefore)
- item.spaceBefore = true;
- } else {
- if (item.commentBefore)
- item.commentBefore += "\n" + comment;
- else
- item.commentBefore = comment;
- }
- }
- }
- }
- function resolveString(doc, node) {
- const res = node.strValue;
- if (!res)
- return "";
- if (typeof res === "string")
- return res;
- res.errors.forEach((error) => {
- if (!error.source)
- error.source = node;
- doc.errors.push(error);
- });
- return res.str;
- }
- function resolveTagHandle(doc, node) {
- const {
- handle,
- suffix
- } = node.tag;
- let prefix = doc.tagPrefixes.find((p) => p.handle === handle);
- if (!prefix) {
- const dtp = doc.getDefaults().tagPrefixes;
- if (dtp)
- prefix = dtp.find((p) => p.handle === handle);
- if (!prefix)
- throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);
- }
- if (!suffix)
- throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);
- if (handle === "!" && (doc.version || doc.options.version) === "1.0") {
- if (suffix[0] === "^") {
- doc.warnings.push(new PlainValue.YAMLWarning(node, "YAML 1.0 ^ tag expansion is not supported"));
- return suffix;
- }
- if (/[:/]/.test(suffix)) {
- const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i);
- return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`;
- }
- }
- return prefix.prefix + decodeURIComponent(suffix);
- }
- function resolveTagName(doc, node) {
- const {
- tag,
- type
- } = node;
- let nonSpecific = false;
- if (tag) {
- const {
- handle,
- suffix,
- verbatim
- } = tag;
- if (verbatim) {
- if (verbatim !== "!" && verbatim !== "!!")
- return verbatim;
- const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;
- doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));
- } else if (handle === "!" && !suffix) {
- nonSpecific = true;
- } else {
- try {
- return resolveTagHandle(doc, node);
- } catch (error) {
- doc.errors.push(error);
- }
- }
- }
- switch (type) {
- case PlainValue.Type.BLOCK_FOLDED:
- case PlainValue.Type.BLOCK_LITERAL:
- case PlainValue.Type.QUOTE_DOUBLE:
- case PlainValue.Type.QUOTE_SINGLE:
- return PlainValue.defaultTags.STR;
- case PlainValue.Type.FLOW_MAP:
- case PlainValue.Type.MAP:
- return PlainValue.defaultTags.MAP;
- case PlainValue.Type.FLOW_SEQ:
- case PlainValue.Type.SEQ:
- return PlainValue.defaultTags.SEQ;
- case PlainValue.Type.PLAIN:
- return nonSpecific ? PlainValue.defaultTags.STR : null;
- default:
- return null;
- }
- }
- function resolveByTagName(doc, node, tagName) {
- const {
- tags
- } = doc.schema;
- const matchWithTest = [];
- for (const tag of tags) {
- if (tag.tag === tagName) {
- if (tag.test)
- matchWithTest.push(tag);
- else {
- const res = tag.resolve(doc, node);
- return res instanceof Collection ? res : new Scalar(res);
- }
- }
- }
- const str = resolveString(doc, node);
- if (typeof str === "string" && matchWithTest.length > 0)
- return resolveScalar(str, matchWithTest, tags.scalarFallback);
- return null;
- }
- function getFallbackTagName({
- type
- }) {
- switch (type) {
- case PlainValue.Type.FLOW_MAP:
- case PlainValue.Type.MAP:
- return PlainValue.defaultTags.MAP;
- case PlainValue.Type.FLOW_SEQ:
- case PlainValue.Type.SEQ:
- return PlainValue.defaultTags.SEQ;
- default:
- return PlainValue.defaultTags.STR;
- }
- }
- function resolveTag(doc, node, tagName) {
- try {
- const res = resolveByTagName(doc, node, tagName);
- if (res) {
- if (tagName && node.tag)
- res.tag = tagName;
- return res;
- }
- } catch (error) {
- if (!error.source)
- error.source = node;
- doc.errors.push(error);
- return null;
- }
- try {
- const fallback = getFallbackTagName(node);
- if (!fallback)
- throw new Error(`The tag ${tagName} is unavailable`);
- const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`;
- doc.warnings.push(new PlainValue.YAMLWarning(node, msg));
- const res = resolveByTagName(doc, node, fallback);
- res.tag = tagName;
- return res;
- } catch (error) {
- const refError = new PlainValue.YAMLReferenceError(node, error.message);
- refError.stack = error.stack;
- doc.errors.push(refError);
- return null;
- }
- }
- var isCollectionItem = (node) => {
- if (!node)
- return false;
- const {
- type
- } = node;
- return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM;
- };
- function resolveNodeProps(errors, node) {
- const comments = {
- before: [],
- after: []
- };
- let hasAnchor = false;
- let hasTag = false;
- const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;
- for (const {
- start,
- end
- } of props) {
- switch (node.context.src[start]) {
- case PlainValue.Char.COMMENT: {
- if (!node.commentHasRequiredWhitespace(start)) {
- const msg = "Comments must be separated from other tokens by white space characters";
- errors.push(new PlainValue.YAMLSemanticError(node, msg));
- }
- const {
- header,
- valueRange
- } = node;
- const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before;
- cc.push(node.context.src.slice(start + 1, end));
- break;
- }
- case PlainValue.Char.ANCHOR:
- if (hasAnchor) {
- const msg = "A node can have at most one anchor";
- errors.push(new PlainValue.YAMLSemanticError(node, msg));
- }
- hasAnchor = true;
- break;
- case PlainValue.Char.TAG:
- if (hasTag) {
- const msg = "A node can have at most one tag";
- errors.push(new PlainValue.YAMLSemanticError(node, msg));
- }
- hasTag = true;
- break;
- }
- }
- return {
- comments,
- hasAnchor,
- hasTag
- };
- }
- function resolveNodeValue(doc, node) {
- const {
- anchors,
- errors,
- schema
- } = doc;
- if (node.type === PlainValue.Type.ALIAS) {
- const name = node.rawValue;
- const src = anchors.getNode(name);
- if (!src) {
- const msg = `Aliased anchor not found: ${name}`;
- errors.push(new PlainValue.YAMLReferenceError(node, msg));
- return null;
- }
- const res = new Alias(src);
- anchors._cstAliases.push(res);
- return res;
- }
- const tagName = resolveTagName(doc, node);
- if (tagName)
- return resolveTag(doc, node, tagName);
- if (node.type !== PlainValue.Type.PLAIN) {
- const msg = `Failed to resolve ${node.type} node here`;
- errors.push(new PlainValue.YAMLSyntaxError(node, msg));
- return null;
- }
- try {
- const str = resolveString(doc, node);
- return resolveScalar(str, schema.tags, schema.tags.scalarFallback);
- } catch (error) {
- if (!error.source)
- error.source = node;
- errors.push(error);
- return null;
- }
- }
- function resolveNode(doc, node) {
- if (!node)
- return null;
- if (node.error)
- doc.errors.push(node.error);
- const {
- comments,
- hasAnchor,
- hasTag
- } = resolveNodeProps(doc.errors, node);
- if (hasAnchor) {
- const {
- anchors
- } = doc;
- const name = node.anchor;
- const prev = anchors.getNode(name);
- if (prev)
- anchors.map[anchors.newName(name)] = prev;
- anchors.map[name] = node;
- }
- if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) {
- const msg = "An alias node must not specify any properties";
- doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));
- }
- const res = resolveNodeValue(doc, node);
- if (res) {
- res.range = [node.range.start, node.range.end];
- if (doc.options.keepCstNodes)
- res.cstNode = node;
- if (doc.options.keepNodeTypes)
- res.type = node.type;
- const cb = comments.before.join("\n");
- if (cb) {
- res.commentBefore = res.commentBefore ? `${res.commentBefore}
- ${cb}` : cb;
- }
- const ca = comments.after.join("\n");
- if (ca)
- res.comment = res.comment ? `${res.comment}
- ${ca}` : ca;
- }
- return node.resolved = res;
- }
- function resolveMap(doc, cst) {
- if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) {
- const msg = `A ${cst.type} node cannot be resolved as a mapping`;
- doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));
- return null;
- }
- const {
- comments,
- items
- } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);
- const map = new YAMLMap();
- map.items = items;
- resolveComments(map, comments);
- let hasCollectionKey = false;
- for (let i = 0; i < items.length; ++i) {
- const {
- key: iKey
- } = items[i];
- if (iKey instanceof Collection)
- hasCollectionKey = true;
- if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) {
- items[i] = new Merge(items[i]);
- const sources = items[i].value.items;
- let error = null;
- sources.some((node) => {
- if (node instanceof Alias) {
- const {
- type
- } = node.source;
- if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP)
- return false;
- return error = "Merge nodes aliases can only point to maps";
- }
- return error = "Merge nodes can only have Alias nodes as values";
- });
- if (error)
- doc.errors.push(new PlainValue.YAMLSemanticError(cst, error));
- } else {
- for (let j = i + 1; j < items.length; ++j) {
- const {
- key: jKey
- } = items[j];
- if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, "value") && iKey.value === jKey.value) {
- const msg = `Map keys must be unique; "${iKey}" is repeated`;
- doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg));
- break;
- }
- }
- }
- }
- if (hasCollectionKey && !doc.options.mapAsMap) {
- const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";
- doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));
- }
- cst.resolved = map;
- return map;
- }
- var valueHasPairComment = ({
- context: {
- lineStart,
- node,
- src
- },
- props
- }) => {
- if (props.length === 0)
- return false;
- const {
- start
- } = props[0];
- if (node && start > node.valueRange.start)
- return false;
- if (src[start] !== PlainValue.Char.COMMENT)
- return false;
- for (let i = lineStart; i < start; ++i)
- if (src[i] === "\n")
- return false;
- return true;
- };
- function resolvePairComment(item, pair) {
- if (!valueHasPairComment(item))
- return;
- const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true);
- let found = false;
- const cb = pair.value.commentBefore;
- if (cb && cb.startsWith(comment)) {
- pair.value.commentBefore = cb.substr(comment.length + 1);
- found = true;
- } else {
- const cc = pair.value.comment;
- if (!item.node && cc && cc.startsWith(comment)) {
- pair.value.comment = cc.substr(comment.length + 1);
- found = true;
- }
- }
- if (found)
- pair.comment = comment;
- }
- function resolveBlockMapItems(doc, cst) {
- const comments = [];
- const items = [];
- let key = void 0;
- let keyStart = null;
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- switch (item.type) {
- case PlainValue.Type.BLANK_LINE:
- comments.push({
- afterKey: !!key,
- before: items.length
- });
- break;
- case PlainValue.Type.COMMENT:
- comments.push({
- afterKey: !!key,
- before: items.length,
- comment: item.comment
- });
- break;
- case PlainValue.Type.MAP_KEY:
- if (key !== void 0)
- items.push(new Pair(key));
- if (item.error)
- doc.errors.push(item.error);
- key = resolveNode(doc, item.node);
- keyStart = null;
- break;
- case PlainValue.Type.MAP_VALUE:
- {
- if (key === void 0)
- key = null;
- if (item.error)
- doc.errors.push(item.error);
- if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) {
- const msg = "Nested mappings are not allowed in compact mappings";
- doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg));
- }
- let valueNode = item.node;
- if (!valueNode && item.props.length > 0) {
- valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []);
- valueNode.context = {
- parent: item,
- src: item.context.src
- };
- const pos = item.range.start + 1;
- valueNode.range = {
- start: pos,
- end: pos
- };
- valueNode.valueRange = {
- start: pos,
- end: pos
- };
- if (typeof item.range.origStart === "number") {
- const origPos = item.range.origStart + 1;
- valueNode.range.origStart = valueNode.range.origEnd = origPos;
- valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos;
- }
- }
- const pair = new Pair(key, resolveNode(doc, valueNode));
- resolvePairComment(item, pair);
- items.push(pair);
- if (key && typeof keyStart === "number") {
- if (item.range.start > keyStart + 1024)
- doc.errors.push(getLongKeyError(cst, key));
- }
- key = void 0;
- keyStart = null;
- }
- break;
- default:
- if (key !== void 0)
- items.push(new Pair(key));
- key = resolveNode(doc, item);
- keyStart = item.range.start;
- if (item.error)
- doc.errors.push(item.error);
- next:
- for (let j = i + 1; ; ++j) {
- const nextItem = cst.items[j];
- switch (nextItem && nextItem.type) {
- case PlainValue.Type.BLANK_LINE:
- case PlainValue.Type.COMMENT:
- continue next;
- case PlainValue.Type.MAP_VALUE:
- break next;
- default: {
- const msg = "Implicit map keys need to be followed by map values";
- doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));
- break next;
- }
- }
- }
- if (item.valueRangeContainsNewline) {
- const msg = "Implicit map keys need to be on a single line";
- doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));
- }
- }
- }
- if (key !== void 0)
- items.push(new Pair(key));
- return {
- comments,
- items
- };
- }
- function resolveFlowMapItems(doc, cst) {
- const comments = [];
- const items = [];
- let key = void 0;
- let explicitKey = false;
- let next = "{";
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- if (typeof item.char === "string") {
- const {
- char,
- offset
- } = item;
- if (char === "?" && key === void 0 && !explicitKey) {
- explicitKey = true;
- next = ":";
- continue;
- }
- if (char === ":") {
- if (key === void 0)
- key = null;
- if (next === ":") {
- next = ",";
- continue;
- }
- } else {
- if (explicitKey) {
- if (key === void 0 && char !== ",")
- key = null;
- explicitKey = false;
- }
- if (key !== void 0) {
- items.push(new Pair(key));
- key = void 0;
- if (char === ",") {
- next = ":";
- continue;
- }
- }
- }
- if (char === "}") {
- if (i === cst.items.length - 1)
- continue;
- } else if (char === next) {
- next = ":";
- continue;
- }
- const msg = `Flow map contains an unexpected ${char}`;
- const err = new PlainValue.YAMLSyntaxError(cst, msg);
- err.offset = offset;
- doc.errors.push(err);
- } else if (item.type === PlainValue.Type.BLANK_LINE) {
- comments.push({
- afterKey: !!key,
- before: items.length
- });
- } else if (item.type === PlainValue.Type.COMMENT) {
- checkFlowCommentSpace(doc.errors, item);
- comments.push({
- afterKey: !!key,
- before: items.length,
- comment: item.comment
- });
- } else if (key === void 0) {
- if (next === ",")
- doc.errors.push(new PlainValue.YAMLSemanticError(item, "Separator , missing in flow map"));
- key = resolveNode(doc, item);
- } else {
- if (next !== ",")
- doc.errors.push(new PlainValue.YAMLSemanticError(item, "Indicator : missing in flow map entry"));
- items.push(new Pair(key, resolveNode(doc, item)));
- key = void 0;
- explicitKey = false;
- }
- }
- checkFlowCollectionEnd(doc.errors, cst);
- if (key !== void 0)
- items.push(new Pair(key));
- return {
- comments,
- items
- };
- }
- function resolveSeq(doc, cst) {
- if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) {
- const msg = `A ${cst.type} node cannot be resolved as a sequence`;
- doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));
- return null;
- }
- const {
- comments,
- items
- } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);
- const seq = new YAMLSeq();
- seq.items = items;
- resolveComments(seq, comments);
- if (!doc.options.mapAsMap && items.some((it) => it instanceof Pair && it.key instanceof Collection)) {
- const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";
- doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));
- }
- cst.resolved = seq;
- return seq;
- }
- function resolveBlockSeqItems(doc, cst) {
- const comments = [];
- const items = [];
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- switch (item.type) {
- case PlainValue.Type.BLANK_LINE:
- comments.push({
- before: items.length
- });
- break;
- case PlainValue.Type.COMMENT:
- comments.push({
- comment: item.comment,
- before: items.length
- });
- break;
- case PlainValue.Type.SEQ_ITEM:
- if (item.error)
- doc.errors.push(item.error);
- items.push(resolveNode(doc, item.node));
- if (item.hasProps) {
- const msg = "Sequence items cannot have tags or anchors before the - indicator";
- doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));
- }
- break;
- default:
- if (item.error)
- doc.errors.push(item.error);
- doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));
- }
- }
- return {
- comments,
- items
- };
- }
- function resolveFlowSeqItems(doc, cst) {
- const comments = [];
- const items = [];
- let explicitKey = false;
- let key = void 0;
- let keyStart = null;
- let next = "[";
- let prevItem = null;
- for (let i = 0; i < cst.items.length; ++i) {
- const item = cst.items[i];
- if (typeof item.char === "string") {
- const {
- char,
- offset
- } = item;
- if (char !== ":" && (explicitKey || key !== void 0)) {
- if (explicitKey && key === void 0)
- key = next ? items.pop() : null;
- items.push(new Pair(key));
- explicitKey = false;
- key = void 0;
- keyStart = null;
- }
- if (char === next) {
- next = null;
- } else if (!next && char === "?") {
- explicitKey = true;
- } else if (next !== "[" && char === ":" && key === void 0) {
- if (next === ",") {
- key = items.pop();
- if (key instanceof Pair) {
- const msg = "Chaining flow sequence pairs is invalid";
- const err = new PlainValue.YAMLSemanticError(cst, msg);
- err.offset = offset;
- doc.errors.push(err);
- }
- if (!explicitKey && typeof keyStart === "number") {
- const keyEnd = item.range ? item.range.start : item.offset;
- if (keyEnd > keyStart + 1024)
- doc.errors.push(getLongKeyError(cst, key));
- const {
- src
- } = prevItem.context;
- for (let i2 = keyStart; i2 < keyEnd; ++i2)
- if (src[i2] === "\n") {
- const msg = "Implicit keys of flow sequence pairs need to be on a single line";
- doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg));
- break;
- }
- }
- } else {
- key = null;
- }
- keyStart = null;
- explicitKey = false;
- next = null;
- } else if (next === "[" || char !== "]" || i < cst.items.length - 1) {
- const msg = `Flow sequence contains an unexpected ${char}`;
- const err = new PlainValue.YAMLSyntaxError(cst, msg);
- err.offset = offset;
- doc.errors.push(err);
- }
- } else if (item.type === PlainValue.Type.BLANK_LINE) {
- comments.push({
- before: items.length
- });
- } else if (item.type === PlainValue.Type.COMMENT) {
- checkFlowCommentSpace(doc.errors, item);
- comments.push({
- comment: item.comment,
- before: items.length
- });
- } else {
- if (next) {
- const msg = `Expected a ${next} in flow sequence`;
- doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));
- }
- const value = resolveNode(doc, item);
- if (key === void 0) {
- items.push(value);
- prevItem = item;
- } else {
- items.push(new Pair(key, value));
- key = void 0;
- }
- keyStart = item.range.start;
- next = ",";
- }
- }
- checkFlowCollectionEnd(doc.errors, cst);
- if (key !== void 0)
- items.push(new Pair(key));
- return {
- comments,
- items
- };
- }
- exports2.Alias = Alias;
- exports2.Collection = Collection;
- exports2.Merge = Merge;
- exports2.Node = Node;
- exports2.Pair = Pair;
- exports2.Scalar = Scalar;
- exports2.YAMLMap = YAMLMap;
- exports2.YAMLSeq = YAMLSeq;
- exports2.addComment = addComment;
- exports2.binaryOptions = binaryOptions;
- exports2.boolOptions = boolOptions;
- exports2.findPair = findPair;
- exports2.intOptions = intOptions;
- exports2.isEmptyPath = isEmptyPath;
- exports2.nullOptions = nullOptions;
- exports2.resolveMap = resolveMap;
- exports2.resolveNode = resolveNode;
- exports2.resolveSeq = resolveSeq;
- exports2.resolveString = resolveString;
- exports2.strOptions = strOptions;
- exports2.stringifyNumber = stringifyNumber;
- exports2.stringifyString = stringifyString;
- exports2.toJSON = toJSON;
- }
- });
- var require_warnings_1000a372 = __commonJS({
- "node_modules/yaml/dist/warnings-1000a372.js"(exports2) {
- "use strict";
- var PlainValue = require_PlainValue_ec8e588e();
- var resolveSeq = require_resolveSeq_d03cb037();
- var binary = {
- identify: (value) => value instanceof Uint8Array,
- default: false,
- tag: "tag:yaml.org,2002:binary",
- resolve: (doc, node) => {
- const src = resolveSeq.resolveString(doc, node);
- if (typeof Buffer === "function") {
- return Buffer.from(src, "base64");
- } else if (typeof atob === "function") {
- const str = atob(src.replace(/[\n\r]/g, ""));
- const buffer = new Uint8Array(str.length);
- for (let i = 0; i < str.length; ++i)
- buffer[i] = str.charCodeAt(i);
- return buffer;
- } else {
- const msg = "This environment does not support reading binary tags; either Buffer or atob is required";
- doc.errors.push(new PlainValue.YAMLReferenceError(node, msg));
- return null;
- }
- },
- options: resolveSeq.binaryOptions,
- stringify: ({
- comment,
- type,
- value
- }, ctx, onComment, onChompKeep) => {
- let src;
- if (typeof Buffer === "function") {
- src = value instanceof Buffer ? value.toString("base64") : Buffer.from(value.buffer).toString("base64");
- } else if (typeof btoa === "function") {
- let s = "";
- for (let i = 0; i < value.length; ++i)
- s += String.fromCharCode(value[i]);
- src = btoa(s);
- } else {
- throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");
- }
- if (!type)
- type = resolveSeq.binaryOptions.defaultType;
- if (type === PlainValue.Type.QUOTE_DOUBLE) {
- value = src;
- } else {
- const {
- lineWidth
- } = resolveSeq.binaryOptions;
- const n = Math.ceil(src.length / lineWidth);
- const lines = new Array(n);
- for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
- lines[i] = src.substr(o, lineWidth);
- }
- value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? "\n" : " ");
- }
- return resolveSeq.stringifyString({
- comment,
- type,
- value
- }, ctx, onComment, onChompKeep);
- }
- };
- function parsePairs(doc, cst) {
- const seq = resolveSeq.resolveSeq(doc, cst);
- for (let i = 0; i < seq.items.length; ++i) {
- let item = seq.items[i];
- if (item instanceof resolveSeq.Pair)
- continue;
- else if (item instanceof resolveSeq.YAMLMap) {
- if (item.items.length > 1) {
- const msg = "Each pair must have its own sequence indicator";
- throw new PlainValue.YAMLSemanticError(cst, msg);
- }
- const pair = item.items[0] || new resolveSeq.Pair();
- if (item.commentBefore)
- pair.commentBefore = pair.commentBefore ? `${item.commentBefore}
- ${pair.commentBefore}` : item.commentBefore;
- if (item.comment)
- pair.comment = pair.comment ? `${item.comment}
- ${pair.comment}` : item.comment;
- item = pair;
- }
- seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item);
- }
- return seq;
- }
- function createPairs(schema, iterable, ctx) {
- const pairs2 = new resolveSeq.YAMLSeq(schema);
- pairs2.tag = "tag:yaml.org,2002:pairs";
- for (const it of iterable) {
- let key, value;
- if (Array.isArray(it)) {
- if (it.length === 2) {
- key = it[0];
- value = it[1];
- } else
- throw new TypeError(`Expected [key, value] tuple: ${it}`);
- } else if (it && it instanceof Object) {
- const keys = Object.keys(it);
- if (keys.length === 1) {
- key = keys[0];
- value = it[key];
- } else
- throw new TypeError(`Expected { key: value } tuple: ${it}`);
- } else {
- key = it;
- }
- const pair = schema.createPair(key, value, ctx);
- pairs2.items.push(pair);
- }
- return pairs2;
- }
- var pairs = {
- default: false,
- tag: "tag:yaml.org,2002:pairs",
- resolve: parsePairs,
- createNode: createPairs
- };
- var YAMLOMap = class extends resolveSeq.YAMLSeq {
- constructor() {
- super();
- PlainValue._defineProperty(this, "add", resolveSeq.YAMLMap.prototype.add.bind(this));
- PlainValue._defineProperty(this, "delete", resolveSeq.YAMLMap.prototype.delete.bind(this));
- PlainValue._defineProperty(this, "get", resolveSeq.YAMLMap.prototype.get.bind(this));
- PlainValue._defineProperty(this, "has", resolveSeq.YAMLMap.prototype.has.bind(this));
- PlainValue._defineProperty(this, "set", resolveSeq.YAMLMap.prototype.set.bind(this));
- this.tag = YAMLOMap.tag;
- }
- toJSON(_, ctx) {
- const map = /* @__PURE__ */ new Map();
- if (ctx && ctx.onCreate)
- ctx.onCreate(map);
- for (const pair of this.items) {
- let key, value;
- if (pair instanceof resolveSeq.Pair) {
- key = resolveSeq.toJSON(pair.key, "", ctx);
- value = resolveSeq.toJSON(pair.value, key, ctx);
- } else {
- key = resolveSeq.toJSON(pair, "", ctx);
- }
- if (map.has(key))
- throw new Error("Ordered maps must not include duplicate keys");
- map.set(key, value);
- }
- return map;
- }
- };
- PlainValue._defineProperty(YAMLOMap, "tag", "tag:yaml.org,2002:omap");
- function parseOMap(doc, cst) {
- const pairs2 = parsePairs(doc, cst);
- const seenKeys = [];
- for (const {
- key
- } of pairs2.items) {
- if (key instanceof resolveSeq.Scalar) {
- if (seenKeys.includes(key.value)) {
- const msg = "Ordered maps must not include duplicate keys";
- throw new PlainValue.YAMLSemanticError(cst, msg);
- } else {
- seenKeys.push(key.value);
- }
- }
- }
- return Object.assign(new YAMLOMap(), pairs2);
- }
- function createOMap(schema, iterable, ctx) {
- const pairs2 = createPairs(schema, iterable, ctx);
- const omap2 = new YAMLOMap();
- omap2.items = pairs2.items;
- return omap2;
- }
- var omap = {
- identify: (value) => value instanceof Map,
- nodeClass: YAMLOMap,
- default: false,
- tag: "tag:yaml.org,2002:omap",
- resolve: parseOMap,
- createNode: createOMap
- };
- var YAMLSet = class extends resolveSeq.YAMLMap {
- constructor() {
- super();
- this.tag = YAMLSet.tag;
- }
- add(key) {
- const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key);
- const prev = resolveSeq.findPair(this.items, pair.key);
- if (!prev)
- this.items.push(pair);
- }
- get(key, keepPair) {
- const pair = resolveSeq.findPair(this.items, key);
- return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair;
- }
- set(key, value) {
- if (typeof value !== "boolean")
- throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);
- const prev = resolveSeq.findPair(this.items, key);
- if (prev && !value) {
- this.items.splice(this.items.indexOf(prev), 1);
- } else if (!prev && value) {
- this.items.push(new resolveSeq.Pair(key));
- }
- }
- toJSON(_, ctx) {
- return super.toJSON(_, ctx, Set);
- }
- toString(ctx, onComment, onChompKeep) {
- if (!ctx)
- return JSON.stringify(this);
- if (this.hasAllNullValues())
- return super.toString(ctx, onComment, onChompKeep);
- else
- throw new Error("Set items must all have null values");
- }
- };
- PlainValue._defineProperty(YAMLSet, "tag", "tag:yaml.org,2002:set");
- function parseSet(doc, cst) {
- const map = resolveSeq.resolveMap(doc, cst);
- if (!map.hasAllNullValues())
- throw new PlainValue.YAMLSemanticError(cst, "Set items must all have null values");
- return Object.assign(new YAMLSet(), map);
- }
- function createSet(schema, iterable, ctx) {
- const set2 = new YAMLSet();
- for (const value of iterable)
- set2.items.push(schema.createPair(value, null, ctx));
- return set2;
- }
- var set = {
- identify: (value) => value instanceof Set,
- nodeClass: YAMLSet,
- default: false,
- tag: "tag:yaml.org,2002:set",
- resolve: parseSet,
- createNode: createSet
- };
- var parseSexagesimal = (sign, parts) => {
- const n = parts.split(":").reduce((n2, p) => n2 * 60 + Number(p), 0);
- return sign === "-" ? -n : n;
- };
- var stringifySexagesimal = ({
- value
- }) => {
- if (isNaN(value) || !isFinite(value))
- return resolveSeq.stringifyNumber(value);
- let sign = "";
- if (value < 0) {
- sign = "-";
- value = Math.abs(value);
- }
- const parts = [value % 60];
- if (value < 60) {
- parts.unshift(0);
- } else {
- value = Math.round((value - parts[0]) / 60);
- parts.unshift(value % 60);
- if (value >= 60) {
- value = Math.round((value - parts[0]) / 60);
- parts.unshift(value);
- }
- }
- return sign + parts.map((n) => n < 10 ? "0" + String(n) : String(n)).join(":").replace(/000000\d*$/, "");
- };
- var intTime = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "TIME",
- test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,
- resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, "")),
- stringify: stringifySexagesimal
- };
- var floatTime = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- format: "TIME",
- test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,
- resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, "")),
- stringify: stringifySexagesimal
- };
- var timestamp = {
- identify: (value) => value instanceof Date,
- default: true,
- tag: "tag:yaml.org,2002:timestamp",
- test: RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"),
- resolve: (str, year, month, day, hour, minute, second, millisec, tz) => {
- if (millisec)
- millisec = (millisec + "00").substr(1, 3);
- let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);
- if (tz && tz !== "Z") {
- let d = parseSexagesimal(tz[0], tz.slice(1));
- if (Math.abs(d) < 30)
- d *= 60;
- date -= 6e4 * d;
- }
- return new Date(date);
- },
- stringify: ({
- value
- }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, "")
- };
- function shouldWarn(deprecation) {
- const env = typeof process !== "undefined" && process.env || {};
- if (deprecation) {
- if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== "undefined")
- return !YAML_SILENCE_DEPRECATION_WARNINGS;
- return !env.YAML_SILENCE_DEPRECATION_WARNINGS;
- }
- if (typeof YAML_SILENCE_WARNINGS !== "undefined")
- return !YAML_SILENCE_WARNINGS;
- return !env.YAML_SILENCE_WARNINGS;
- }
- function warn(warning, type) {
- if (shouldWarn(false)) {
- const emit = typeof process !== "undefined" && process.emitWarning;
- if (emit)
- emit(warning, type);
- else {
- console.warn(type ? `${type}: ${warning}` : warning);
- }
- }
- }
- function warnFileDeprecation(filename) {
- if (shouldWarn(true)) {
- const path = filename.replace(/.*yaml[/\\]/i, "").replace(/\.js$/, "").replace(/\\/g, "/");
- warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, "DeprecationWarning");
- }
- }
- var warned = {};
- function warnOptionDeprecation(name, alternative) {
- if (!warned[name] && shouldWarn(true)) {
- warned[name] = true;
- let msg = `The option '${name}' will be removed in a future release`;
- msg += alternative ? `, use '${alternative}' instead.` : ".";
- warn(msg, "DeprecationWarning");
- }
- }
- exports2.binary = binary;
- exports2.floatTime = floatTime;
- exports2.intTime = intTime;
- exports2.omap = omap;
- exports2.pairs = pairs;
- exports2.set = set;
- exports2.timestamp = timestamp;
- exports2.warn = warn;
- exports2.warnFileDeprecation = warnFileDeprecation;
- exports2.warnOptionDeprecation = warnOptionDeprecation;
- }
- });
- var require_Schema_88e323a7 = __commonJS({
- "node_modules/yaml/dist/Schema-88e323a7.js"(exports2) {
- "use strict";
- var PlainValue = require_PlainValue_ec8e588e();
- var resolveSeq = require_resolveSeq_d03cb037();
- var warnings = require_warnings_1000a372();
- function createMap(schema, obj, ctx) {
- const map2 = new resolveSeq.YAMLMap(schema);
- if (obj instanceof Map) {
- for (const [key, value] of obj)
- map2.items.push(schema.createPair(key, value, ctx));
- } else if (obj && typeof obj === "object") {
- for (const key of Object.keys(obj))
- map2.items.push(schema.createPair(key, obj[key], ctx));
- }
- if (typeof schema.sortMapEntries === "function") {
- map2.items.sort(schema.sortMapEntries);
- }
- return map2;
- }
- var map = {
- createNode: createMap,
- default: true,
- nodeClass: resolveSeq.YAMLMap,
- tag: "tag:yaml.org,2002:map",
- resolve: resolveSeq.resolveMap
- };
- function createSeq(schema, obj, ctx) {
- const seq2 = new resolveSeq.YAMLSeq(schema);
- if (obj && obj[Symbol.iterator]) {
- for (const it of obj) {
- const v = schema.createNode(it, ctx.wrapScalars, null, ctx);
- seq2.items.push(v);
- }
- }
- return seq2;
- }
- var seq = {
- createNode: createSeq,
- default: true,
- nodeClass: resolveSeq.YAMLSeq,
- tag: "tag:yaml.org,2002:seq",
- resolve: resolveSeq.resolveSeq
- };
- var string = {
- identify: (value) => typeof value === "string",
- default: true,
- tag: "tag:yaml.org,2002:str",
- resolve: resolveSeq.resolveString,
- stringify(item, ctx, onComment, onChompKeep) {
- ctx = Object.assign({
- actualString: true
- }, ctx);
- return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep);
- },
- options: resolveSeq.strOptions
- };
- var failsafe = [map, seq, string];
- var intIdentify$2 = (value) => typeof value === "bigint" || Number.isInteger(value);
- var intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);
- function intStringify$1(node, radix, prefix) {
- const {
- value
- } = node;
- if (intIdentify$2(value) && value >= 0)
- return prefix + value.toString(radix);
- return resolveSeq.stringifyNumber(node);
- }
- var nullObj = {
- identify: (value) => value == null,
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,
- default: true,
- tag: "tag:yaml.org,2002:null",
- test: /^(?:~|[Nn]ull|NULL)?$/,
- resolve: () => null,
- options: resolveSeq.nullOptions,
- stringify: () => resolveSeq.nullOptions.nullStr
- };
- var boolObj = {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
- resolve: (str) => str[0] === "t" || str[0] === "T",
- options: resolveSeq.boolOptions,
- stringify: ({
- value
- }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr
- };
- var octObj = {
- identify: (value) => intIdentify$2(value) && value >= 0,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "OCT",
- test: /^0o([0-7]+)$/,
- resolve: (str, oct) => intResolve$1(str, oct, 8),
- options: resolveSeq.intOptions,
- stringify: (node) => intStringify$1(node, 8, "0o")
- };
- var intObj = {
- identify: intIdentify$2,
- default: true,
- tag: "tag:yaml.org,2002:int",
- test: /^[-+]?[0-9]+$/,
- resolve: (str) => intResolve$1(str, str, 10),
- options: resolveSeq.intOptions,
- stringify: resolveSeq.stringifyNumber
- };
- var hexObj = {
- identify: (value) => intIdentify$2(value) && value >= 0,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "HEX",
- test: /^0x([0-9a-fA-F]+)$/,
- resolve: (str, hex) => intResolve$1(str, hex, 16),
- options: resolveSeq.intOptions,
- stringify: (node) => intStringify$1(node, 16, "0x")
- };
- var nanObj = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^(?:[-+]?\.inf|(\.nan))$/i,
- resolve: (str, nan) => nan ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
- stringify: resolveSeq.stringifyNumber
- };
- var expObj = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- format: "EXP",
- test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
- resolve: (str) => parseFloat(str),
- stringify: ({
- value
- }) => Number(value).toExponential()
- };
- var floatObj = {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,
- resolve(str, frac1, frac2) {
- const frac = frac1 || frac2;
- const node = new resolveSeq.Scalar(parseFloat(str));
- if (frac && frac[frac.length - 1] === "0")
- node.minFractionDigits = frac.length;
- return node;
- },
- stringify: resolveSeq.stringifyNumber
- };
- var core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
- var intIdentify$1 = (value) => typeof value === "bigint" || Number.isInteger(value);
- var stringifyJSON = ({
- value
- }) => JSON.stringify(value);
- var json = [map, seq, {
- identify: (value) => typeof value === "string",
- default: true,
- tag: "tag:yaml.org,2002:str",
- resolve: resolveSeq.resolveString,
- stringify: stringifyJSON
- }, {
- identify: (value) => value == null,
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,
- default: true,
- tag: "tag:yaml.org,2002:null",
- test: /^null$/,
- resolve: () => null,
- stringify: stringifyJSON
- }, {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^true|false$/,
- resolve: (str) => str === "true",
- stringify: stringifyJSON
- }, {
- identify: intIdentify$1,
- default: true,
- tag: "tag:yaml.org,2002:int",
- test: /^-?(?:0|[1-9][0-9]*)$/,
- resolve: (str) => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
- stringify: ({
- value
- }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
- resolve: (str) => parseFloat(str),
- stringify: stringifyJSON
- }];
- json.scalarFallback = (str) => {
- throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`);
- };
- var boolStringify = ({
- value
- }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr;
- var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
- function intResolve(sign, src, radix) {
- let str = src.replace(/_/g, "");
- if (resolveSeq.intOptions.asBigInt) {
- switch (radix) {
- case 2:
- str = `0b${str}`;
- break;
- case 8:
- str = `0o${str}`;
- break;
- case 16:
- str = `0x${str}`;
- break;
- }
- const n2 = BigInt(str);
- return sign === "-" ? BigInt(-1) * n2 : n2;
- }
- const n = parseInt(str, radix);
- return sign === "-" ? -1 * n : n;
- }
- function intStringify(node, radix, prefix) {
- const {
- value
- } = node;
- if (intIdentify(value)) {
- const str = value.toString(radix);
- return value < 0 ? "-" + prefix + str.substr(1) : prefix + str;
- }
- return resolveSeq.stringifyNumber(node);
- }
- var yaml11 = failsafe.concat([{
- identify: (value) => value == null,
- createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,
- default: true,
- tag: "tag:yaml.org,2002:null",
- test: /^(?:~|[Nn]ull|NULL)?$/,
- resolve: () => null,
- options: resolveSeq.nullOptions,
- stringify: () => resolveSeq.nullOptions.nullStr
- }, {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
- resolve: () => true,
- options: resolveSeq.boolOptions,
- stringify: boolStringify
- }, {
- identify: (value) => typeof value === "boolean",
- default: true,
- tag: "tag:yaml.org,2002:bool",
- test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
- resolve: () => false,
- options: resolveSeq.boolOptions,
- stringify: boolStringify
- }, {
- identify: intIdentify,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "BIN",
- test: /^([-+]?)0b([0-1_]+)$/,
- resolve: (str, sign, bin) => intResolve(sign, bin, 2),
- stringify: (node) => intStringify(node, 2, "0b")
- }, {
- identify: intIdentify,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "OCT",
- test: /^([-+]?)0([0-7_]+)$/,
- resolve: (str, sign, oct) => intResolve(sign, oct, 8),
- stringify: (node) => intStringify(node, 8, "0")
- }, {
- identify: intIdentify,
- default: true,
- tag: "tag:yaml.org,2002:int",
- test: /^([-+]?)([0-9][0-9_]*)$/,
- resolve: (str, sign, abs) => intResolve(sign, abs, 10),
- stringify: resolveSeq.stringifyNumber
- }, {
- identify: intIdentify,
- default: true,
- tag: "tag:yaml.org,2002:int",
- format: "HEX",
- test: /^([-+]?)0x([0-9a-fA-F_]+)$/,
- resolve: (str, sign, hex) => intResolve(sign, hex, 16),
- stringify: (node) => intStringify(node, 16, "0x")
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^(?:[-+]?\.inf|(\.nan))$/i,
- resolve: (str, nan) => nan ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
- stringify: resolveSeq.stringifyNumber
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- format: "EXP",
- test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,
- resolve: (str) => parseFloat(str.replace(/_/g, "")),
- stringify: ({
- value
- }) => Number(value).toExponential()
- }, {
- identify: (value) => typeof value === "number",
- default: true,
- tag: "tag:yaml.org,2002:float",
- test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,
- resolve(str, frac) {
- const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, "")));
- if (frac) {
- const f = frac.replace(/_/g, "");
- if (f[f.length - 1] === "0")
- node.minFractionDigits = f.length;
- }
- return node;
- },
- stringify: resolveSeq.stringifyNumber
- }], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp);
- var schemas = {
- core,
- failsafe,
- json,
- yaml11
- };
- var tags = {
- binary: warnings.binary,
- bool: boolObj,
- float: floatObj,
- floatExp: expObj,
- floatNaN: nanObj,
- floatTime: warnings.floatTime,
- int: intObj,
- intHex: hexObj,
- intOct: octObj,
- intTime: warnings.intTime,
- map,
- null: nullObj,
- omap: warnings.omap,
- pairs: warnings.pairs,
- seq,
- set: warnings.set,
- timestamp: warnings.timestamp
- };
- function findTagObject(value, tagName, tags2) {
- if (tagName) {
- const match = tags2.filter((t) => t.tag === tagName);
- const tagObj = match.find((t) => !t.format) || match[0];
- if (!tagObj)
- throw new Error(`Tag ${tagName} not found`);
- return tagObj;
- }
- return tags2.find((t) => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format);
- }
- function createNode(value, tagName, ctx) {
- if (value instanceof resolveSeq.Node)
- return value;
- const {
- defaultPrefix,
- onTagObj,
- prevObjects,
- schema,
- wrapScalars
- } = ctx;
- if (tagName && tagName.startsWith("!!"))
- tagName = defaultPrefix + tagName.slice(2);
- let tagObj = findTagObject(value, tagName, schema.tags);
- if (!tagObj) {
- if (typeof value.toJSON === "function")
- value = value.toJSON();
- if (!value || typeof value !== "object")
- return wrapScalars ? new resolveSeq.Scalar(value) : value;
- tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;
- }
- if (onTagObj) {
- onTagObj(tagObj);
- delete ctx.onTagObj;
- }
- const obj = {
- value: void 0,
- node: void 0
- };
- if (value && typeof value === "object" && prevObjects) {
- const prev = prevObjects.get(value);
- if (prev) {
- const alias = new resolveSeq.Alias(prev);
- ctx.aliasNodes.push(alias);
- return alias;
- }
- obj.value = value;
- prevObjects.set(value, obj);
- }
- obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value;
- if (tagName && obj.node instanceof resolveSeq.Node)
- obj.node.tag = tagName;
- return obj.node;
- }
- function getSchemaTags(schemas2, knownTags, customTags, schemaId) {
- let tags2 = schemas2[schemaId.replace(/\W/g, "")];
- if (!tags2) {
- const keys = Object.keys(schemas2).map((key) => JSON.stringify(key)).join(", ");
- throw new Error(`Unknown schema "${schemaId}"; use one of ${keys}`);
- }
- if (Array.isArray(customTags)) {
- for (const tag of customTags)
- tags2 = tags2.concat(tag);
- } else if (typeof customTags === "function") {
- tags2 = customTags(tags2.slice());
- }
- for (let i = 0; i < tags2.length; ++i) {
- const tag = tags2[i];
- if (typeof tag === "string") {
- const tagObj = knownTags[tag];
- if (!tagObj) {
- const keys = Object.keys(knownTags).map((key) => JSON.stringify(key)).join(", ");
- throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`);
- }
- tags2[i] = tagObj;
- }
- }
- return tags2;
- }
- var sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
- var Schema = class {
- constructor({
- customTags,
- merge,
- schema,
- sortMapEntries,
- tags: deprecatedCustomTags
- }) {
- this.merge = !!merge;
- this.name = schema;
- this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
- if (!customTags && deprecatedCustomTags)
- warnings.warnOptionDeprecation("tags", "customTags");
- this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);
- }
- createNode(value, wrapScalars, tagName, ctx) {
- const baseCtx = {
- defaultPrefix: Schema.defaultPrefix,
- schema: this,
- wrapScalars
- };
- const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;
- return createNode(value, tagName, createCtx);
- }
- createPair(key, value, ctx) {
- if (!ctx)
- ctx = {
- wrapScalars: true
- };
- const k = this.createNode(key, ctx.wrapScalars, null, ctx);
- const v = this.createNode(value, ctx.wrapScalars, null, ctx);
- return new resolveSeq.Pair(k, v);
- }
- };
- PlainValue._defineProperty(Schema, "defaultPrefix", PlainValue.defaultTagPrefix);
- PlainValue._defineProperty(Schema, "defaultTags", PlainValue.defaultTags);
- exports2.Schema = Schema;
- }
- });
- var require_Document_9b4560a1 = __commonJS({
- "node_modules/yaml/dist/Document-9b4560a1.js"(exports2) {
- "use strict";
- var PlainValue = require_PlainValue_ec8e588e();
- var resolveSeq = require_resolveSeq_d03cb037();
- var Schema = require_Schema_88e323a7();
- var defaultOptions = {
- anchorPrefix: "a",
- customTags: null,
- indent: 2,
- indentSeq: true,
- keepCstNodes: false,
- keepNodeTypes: true,
- keepBlobsInJSON: true,
- mapAsMap: false,
- maxAliasCount: 100,
- prettyErrors: false,
- simpleKeys: false,
- version: "1.2"
- };
- var scalarOptions = {
- get binary() {
- return resolveSeq.binaryOptions;
- },
- set binary(opt) {
- Object.assign(resolveSeq.binaryOptions, opt);
- },
- get bool() {
- return resolveSeq.boolOptions;
- },
- set bool(opt) {
- Object.assign(resolveSeq.boolOptions, opt);
- },
- get int() {
- return resolveSeq.intOptions;
- },
- set int(opt) {
- Object.assign(resolveSeq.intOptions, opt);
- },
- get null() {
- return resolveSeq.nullOptions;
- },
- set null(opt) {
- Object.assign(resolveSeq.nullOptions, opt);
- },
- get str() {
- return resolveSeq.strOptions;
- },
- set str(opt) {
- Object.assign(resolveSeq.strOptions, opt);
- }
- };
- var documentOptions = {
- "1.0": {
- schema: "yaml-1.1",
- merge: true,
- tagPrefixes: [{
- handle: "!",
- prefix: PlainValue.defaultTagPrefix
- }, {
- handle: "!!",
- prefix: "tag:private.yaml.org,2002:"
- }]
- },
- 1.1: {
- schema: "yaml-1.1",
- merge: true,
- tagPrefixes: [{
- handle: "!",
- prefix: "!"
- }, {
- handle: "!!",
- prefix: PlainValue.defaultTagPrefix
- }]
- },
- 1.2: {
- schema: "core",
- merge: false,
- tagPrefixes: [{
- handle: "!",
- prefix: "!"
- }, {
- handle: "!!",
- prefix: PlainValue.defaultTagPrefix
- }]
- }
- };
- function stringifyTag(doc, tag) {
- if ((doc.version || doc.options.version) === "1.0") {
- const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);
- if (priv)
- return "!" + priv[1];
- const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);
- return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, "")}`;
- }
- let p = doc.tagPrefixes.find((p2) => tag.indexOf(p2.prefix) === 0);
- if (!p) {
- const dtp = doc.getDefaults().tagPrefixes;
- p = dtp && dtp.find((p2) => tag.indexOf(p2.prefix) === 0);
- }
- if (!p)
- return tag[0] === "!" ? tag : `!<${tag}>`;
- const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, (ch) => ({
- "!": "%21",
- ",": "%2C",
- "[": "%5B",
- "]": "%5D",
- "{": "%7B",
- "}": "%7D"
- })[ch]);
- return p.handle + suffix;
- }
- function getTagObject(tags, item) {
- if (item instanceof resolveSeq.Alias)
- return resolveSeq.Alias;
- if (item.tag) {
- const match = tags.filter((t) => t.tag === item.tag);
- if (match.length > 0)
- return match.find((t) => t.format === item.format) || match[0];
- }
- let tagObj, obj;
- if (item instanceof resolveSeq.Scalar) {
- obj = item.value;
- const match = tags.filter((t) => t.identify && t.identify(obj) || t.class && obj instanceof t.class);
- tagObj = match.find((t) => t.format === item.format) || match.find((t) => !t.format);
- } else {
- obj = item;
- tagObj = tags.find((t) => t.nodeClass && obj instanceof t.nodeClass);
- }
- if (!tagObj) {
- const name = obj && obj.constructor ? obj.constructor.name : typeof obj;
- throw new Error(`Tag not resolved for ${name} value`);
- }
- return tagObj;
- }
- function stringifyProps(node, tagObj, {
- anchors,
- doc
- }) {
- const props = [];
- const anchor = doc.anchors.getName(node);
- if (anchor) {
- anchors[anchor] = node;
- props.push(`&${anchor}`);
- }
- if (node.tag) {
- props.push(stringifyTag(doc, node.tag));
- } else if (!tagObj.default) {
- props.push(stringifyTag(doc, tagObj.tag));
- }
- return props.join(" ");
- }
- function stringify(item, ctx, onComment, onChompKeep) {
- const {
- anchors,
- schema
- } = ctx.doc;
- let tagObj;
- if (!(item instanceof resolveSeq.Node)) {
- const createCtx = {
- aliasNodes: [],
- onTagObj: (o) => tagObj = o,
- prevObjects: /* @__PURE__ */ new Map()
- };
- item = schema.createNode(item, true, null, createCtx);
- for (const alias of createCtx.aliasNodes) {
- alias.source = alias.source.node;
- let name = anchors.getName(alias.source);
- if (!name) {
- name = anchors.newName();
- anchors.map[name] = alias.source;
- }
- }
- }
- if (item instanceof resolveSeq.Pair)
- return item.toString(ctx, onComment, onChompKeep);
- if (!tagObj)
- tagObj = getTagObject(schema.tags, item);
- const props = stringifyProps(item, tagObj, ctx);
- if (props.length > 0)
- ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;
- const str = typeof tagObj.stringify === "function" ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);
- if (!props)
- return str;
- return item instanceof resolveSeq.Scalar || str[0] === "{" || str[0] === "[" ? `${props} ${str}` : `${props}
- ${ctx.indent}${str}`;
- }
- var Anchors = class {
- static validAnchorNode(node) {
- return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap;
- }
- constructor(prefix) {
- PlainValue._defineProperty(this, "map", /* @__PURE__ */ Object.create(null));
- this.prefix = prefix;
- }
- createAlias(node, name) {
- this.setAnchor(node, name);
- return new resolveSeq.Alias(node);
- }
- createMergePair(...sources) {
- const merge = new resolveSeq.Merge();
- merge.value.items = sources.map((s) => {
- if (s instanceof resolveSeq.Alias) {
- if (s.source instanceof resolveSeq.YAMLMap)
- return s;
- } else if (s instanceof resolveSeq.YAMLMap) {
- return this.createAlias(s);
- }
- throw new Error("Merge sources must be Map nodes or their Aliases");
- });
- return merge;
- }
- getName(node) {
- const {
- map
- } = this;
- return Object.keys(map).find((a) => map[a] === node);
- }
- getNames() {
- return Object.keys(this.map);
- }
- getNode(name) {
- return this.map[name];
- }
- newName(prefix) {
- if (!prefix)
- prefix = this.prefix;
- const names = Object.keys(this.map);
- for (let i = 1; true; ++i) {
- const name = `${prefix}${i}`;
- if (!names.includes(name))
- return name;
- }
- }
- resolveNodes() {
- const {
- map,
- _cstAliases
- } = this;
- Object.keys(map).forEach((a) => {
- map[a] = map[a].resolved;
- });
- _cstAliases.forEach((a) => {
- a.source = a.source.resolved;
- });
- delete this._cstAliases;
- }
- setAnchor(node, name) {
- if (node != null && !Anchors.validAnchorNode(node)) {
- throw new Error("Anchors may only be set for Scalar, Seq and Map nodes");
- }
- if (name && /[\x00-\x19\s,[\]{}]/.test(name)) {
- throw new Error("Anchor names must not contain whitespace or control characters");
- }
- const {
- map
- } = this;
- const prev = node && Object.keys(map).find((a) => map[a] === node);
- if (prev) {
- if (!name) {
- return prev;
- } else if (prev !== name) {
- delete map[prev];
- map[name] = node;
- }
- } else {
- if (!name) {
- if (!node)
- return null;
- name = this.newName();
- }
- map[name] = node;
- }
- return name;
- }
- };
- var visit = (node, tags) => {
- if (node && typeof node === "object") {
- const {
- tag
- } = node;
- if (node instanceof resolveSeq.Collection) {
- if (tag)
- tags[tag] = true;
- node.items.forEach((n) => visit(n, tags));
- } else if (node instanceof resolveSeq.Pair) {
- visit(node.key, tags);
- visit(node.value, tags);
- } else if (node instanceof resolveSeq.Scalar) {
- if (tag)
- tags[tag] = true;
- }
- }
- return tags;
- };
- var listTagNames = (node) => Object.keys(visit(node, {}));
- function parseContents(doc, contents) {
- const comments = {
- before: [],
- after: []
- };
- let body = void 0;
- let spaceBefore = false;
- for (const node of contents) {
- if (node.valueRange) {
- if (body !== void 0) {
- const msg = "Document contains trailing content not separated by a ... or --- line";
- doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg));
- break;
- }
- const res = resolveSeq.resolveNode(doc, node);
- if (spaceBefore) {
- res.spaceBefore = true;
- spaceBefore = false;
- }
- body = res;
- } else if (node.comment !== null) {
- const cc = body === void 0 ? comments.before : comments.after;
- cc.push(node.comment);
- } else if (node.type === PlainValue.Type.BLANK_LINE) {
- spaceBefore = true;
- if (body === void 0 && comments.before.length > 0 && !doc.commentBefore) {
- doc.commentBefore = comments.before.join("\n");
- comments.before = [];
- }
- }
- }
- doc.contents = body || null;
- if (!body) {
- doc.comment = comments.before.concat(comments.after).join("\n") || null;
- } else {
- const cb = comments.before.join("\n");
- if (cb) {
- const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body;
- cbNode.commentBefore = cbNode.commentBefore ? `${cb}
- ${cbNode.commentBefore}` : cb;
- }
- doc.comment = comments.after.join("\n") || null;
- }
- }
- function resolveTagDirective({
- tagPrefixes
- }, directive) {
- const [handle, prefix] = directive.parameters;
- if (!handle || !prefix) {
- const msg = "Insufficient parameters given for %TAG directive";
- throw new PlainValue.YAMLSemanticError(directive, msg);
- }
- if (tagPrefixes.some((p) => p.handle === handle)) {
- const msg = "The %TAG directive must only be given at most once per handle in the same document.";
- throw new PlainValue.YAMLSemanticError(directive, msg);
- }
- return {
- handle,
- prefix
- };
- }
- function resolveYamlDirective(doc, directive) {
- let [version] = directive.parameters;
- if (directive.name === "YAML:1.0")
- version = "1.0";
- if (!version) {
- const msg = "Insufficient parameters given for %YAML directive";
- throw new PlainValue.YAMLSemanticError(directive, msg);
- }
- if (!documentOptions[version]) {
- const v0 = doc.version || doc.options.version;
- const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;
- doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));
- }
- return version;
- }
- function parseDirectives(doc, directives, prevDoc) {
- const directiveComments = [];
- let hasDirectives = false;
- for (const directive of directives) {
- const {
- comment,
- name
- } = directive;
- switch (name) {
- case "TAG":
- try {
- doc.tagPrefixes.push(resolveTagDirective(doc, directive));
- } catch (error) {
- doc.errors.push(error);
- }
- hasDirectives = true;
- break;
- case "YAML":
- case "YAML:1.0":
- if (doc.version) {
- const msg = "The %YAML directive must only be given at most once per document.";
- doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg));
- }
- try {
- doc.version = resolveYamlDirective(doc, directive);
- } catch (error) {
- doc.errors.push(error);
- }
- hasDirectives = true;
- break;
- default:
- if (name) {
- const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;
- doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));
- }
- }
- if (comment)
- directiveComments.push(comment);
- }
- if (prevDoc && !hasDirectives && "1.1" === (doc.version || prevDoc.version || doc.options.version)) {
- const copyTagPrefix = ({
- handle,
- prefix
- }) => ({
- handle,
- prefix
- });
- doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);
- doc.version = prevDoc.version;
- }
- doc.commentBefore = directiveComments.join("\n") || null;
- }
- function assertCollection(contents) {
- if (contents instanceof resolveSeq.Collection)
- return true;
- throw new Error("Expected a YAML collection as document contents");
- }
- var Document = class {
- constructor(options) {
- this.anchors = new Anchors(options.anchorPrefix);
- this.commentBefore = null;
- this.comment = null;
- this.contents = null;
- this.directivesEndMarker = null;
- this.errors = [];
- this.options = options;
- this.schema = null;
- this.tagPrefixes = [];
- this.version = null;
- this.warnings = [];
- }
- add(value) {
- assertCollection(this.contents);
- return this.contents.add(value);
- }
- addIn(path, value) {
- assertCollection(this.contents);
- this.contents.addIn(path, value);
- }
- delete(key) {
- assertCollection(this.contents);
- return this.contents.delete(key);
- }
- deleteIn(path) {
- if (resolveSeq.isEmptyPath(path)) {
- if (this.contents == null)
- return false;
- this.contents = null;
- return true;
- }
- assertCollection(this.contents);
- return this.contents.deleteIn(path);
- }
- getDefaults() {
- return Document.defaults[this.version] || Document.defaults[this.options.version] || {};
- }
- get(key, keepScalar) {
- return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : void 0;
- }
- getIn(path, keepScalar) {
- if (resolveSeq.isEmptyPath(path))
- return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents;
- return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : void 0;
- }
- has(key) {
- return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false;
- }
- hasIn(path) {
- if (resolveSeq.isEmptyPath(path))
- return this.contents !== void 0;
- return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false;
- }
- set(key, value) {
- assertCollection(this.contents);
- this.contents.set(key, value);
- }
- setIn(path, value) {
- if (resolveSeq.isEmptyPath(path))
- this.contents = value;
- else {
- assertCollection(this.contents);
- this.contents.setIn(path, value);
- }
- }
- setSchema(id, customTags) {
- if (!id && !customTags && this.schema)
- return;
- if (typeof id === "number")
- id = id.toFixed(1);
- if (id === "1.0" || id === "1.1" || id === "1.2") {
- if (this.version)
- this.version = id;
- else
- this.options.version = id;
- delete this.options.schema;
- } else if (id && typeof id === "string") {
- this.options.schema = id;
- }
- if (Array.isArray(customTags))
- this.options.customTags = customTags;
- const opt = Object.assign({}, this.getDefaults(), this.options);
- this.schema = new Schema.Schema(opt);
- }
- parse(node, prevDoc) {
- if (this.options.keepCstNodes)
- this.cstNode = node;
- if (this.options.keepNodeTypes)
- this.type = "DOCUMENT";
- const {
- directives = [],
- contents = [],
- directivesEndMarker,
- error,
- valueRange
- } = node;
- if (error) {
- if (!error.source)
- error.source = this;
- this.errors.push(error);
- }
- parseDirectives(this, directives, prevDoc);
- if (directivesEndMarker)
- this.directivesEndMarker = true;
- this.range = valueRange ? [valueRange.start, valueRange.end] : null;
- this.setSchema();
- this.anchors._cstAliases = [];
- parseContents(this, contents);
- this.anchors.resolveNodes();
- if (this.options.prettyErrors) {
- for (const error2 of this.errors)
- if (error2 instanceof PlainValue.YAMLError)
- error2.makePretty();
- for (const warn of this.warnings)
- if (warn instanceof PlainValue.YAMLError)
- warn.makePretty();
- }
- return this;
- }
- listNonDefaultTags() {
- return listTagNames(this.contents).filter((t) => t.indexOf(Schema.Schema.defaultPrefix) !== 0);
- }
- setTagPrefix(handle, prefix) {
- if (handle[0] !== "!" || handle[handle.length - 1] !== "!")
- throw new Error("Handle must start and end with !");
- if (prefix) {
- const prev = this.tagPrefixes.find((p) => p.handle === handle);
- if (prev)
- prev.prefix = prefix;
- else
- this.tagPrefixes.push({
- handle,
- prefix
- });
- } else {
- this.tagPrefixes = this.tagPrefixes.filter((p) => p.handle !== handle);
- }
- }
- toJSON(arg, onAnchor) {
- const {
- keepBlobsInJSON,
- mapAsMap,
- maxAliasCount
- } = this.options;
- const keep = keepBlobsInJSON && (typeof arg !== "string" || !(this.contents instanceof resolveSeq.Scalar));
- const ctx = {
- doc: this,
- indentStep: " ",
- keep,
- mapAsMap: keep && !!mapAsMap,
- maxAliasCount,
- stringify
- };
- const anchorNames = Object.keys(this.anchors.map);
- if (anchorNames.length > 0)
- ctx.anchors = new Map(anchorNames.map((name) => [this.anchors.map[name], {
- alias: [],
- aliasCount: 0,
- count: 1
- }]));
- const res = resolveSeq.toJSON(this.contents, arg, ctx);
- if (typeof onAnchor === "function" && ctx.anchors)
- for (const {
- count,
- res: res2
- } of ctx.anchors.values())
- onAnchor(res2, count);
- return res;
- }
- toString() {
- if (this.errors.length > 0)
- throw new Error("Document with errors cannot be stringified");
- const indentSize = this.options.indent;
- if (!Number.isInteger(indentSize) || indentSize <= 0) {
- const s = JSON.stringify(indentSize);
- throw new Error(`"indent" option must be a positive integer, not ${s}`);
- }
- this.setSchema();
- const lines = [];
- let hasDirectives = false;
- if (this.version) {
- let vd = "%YAML 1.2";
- if (this.schema.name === "yaml-1.1") {
- if (this.version === "1.0")
- vd = "%YAML:1.0";
- else if (this.version === "1.1")
- vd = "%YAML 1.1";
- }
- lines.push(vd);
- hasDirectives = true;
- }
- const tagNames = this.listNonDefaultTags();
- this.tagPrefixes.forEach(({
- handle,
- prefix
- }) => {
- if (tagNames.some((t) => t.indexOf(prefix) === 0)) {
- lines.push(`%TAG ${handle} ${prefix}`);
- hasDirectives = true;
- }
- });
- if (hasDirectives || this.directivesEndMarker)
- lines.push("---");
- if (this.commentBefore) {
- if (hasDirectives || !this.directivesEndMarker)
- lines.unshift("");
- lines.unshift(this.commentBefore.replace(/^/gm, "#"));
- }
- const ctx = {
- anchors: /* @__PURE__ */ Object.create(null),
- doc: this,
- indent: "",
- indentStep: " ".repeat(indentSize),
- stringify
- };
- let chompKeep = false;
- let contentComment = null;
- if (this.contents) {
- if (this.contents instanceof resolveSeq.Node) {
- if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker))
- lines.push("");
- if (this.contents.commentBefore)
- lines.push(this.contents.commentBefore.replace(/^/gm, "#"));
- ctx.forceBlockIndent = !!this.comment;
- contentComment = this.contents.comment;
- }
- const onChompKeep = contentComment ? null : () => chompKeep = true;
- const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);
- lines.push(resolveSeq.addComment(body, "", contentComment));
- } else if (this.contents !== void 0) {
- lines.push(stringify(this.contents, ctx));
- }
- if (this.comment) {
- if ((!chompKeep || contentComment) && lines[lines.length - 1] !== "")
- lines.push("");
- lines.push(this.comment.replace(/^/gm, "#"));
- }
- return lines.join("\n") + "\n";
- }
- };
- PlainValue._defineProperty(Document, "defaults", documentOptions);
- exports2.Document = Document;
- exports2.defaultOptions = defaultOptions;
- exports2.scalarOptions = scalarOptions;
- }
- });
- var require_dist = __commonJS({
- "node_modules/yaml/dist/index.js"(exports2) {
- "use strict";
- var parseCst = require_parse_cst();
- var Document$1 = require_Document_9b4560a1();
- var Schema = require_Schema_88e323a7();
- var PlainValue = require_PlainValue_ec8e588e();
- var warnings = require_warnings_1000a372();
- require_resolveSeq_d03cb037();
- function createNode(value, wrapScalars = true, tag) {
- if (tag === void 0 && typeof wrapScalars === "string") {
- tag = wrapScalars;
- wrapScalars = true;
- }
- const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);
- const schema = new Schema.Schema(options);
- return schema.createNode(value, wrapScalars, tag);
- }
- var Document = class extends Document$1.Document {
- constructor(options) {
- super(Object.assign({}, Document$1.defaultOptions, options));
- }
- };
- function parseAllDocuments(src, options) {
- const stream = [];
- let prev;
- for (const cstDoc of parseCst.parse(src)) {
- const doc = new Document(options);
- doc.parse(cstDoc, prev);
- stream.push(doc);
- prev = doc;
- }
- return stream;
- }
- function parseDocument(src, options) {
- const cst = parseCst.parse(src);
- const doc = new Document(options).parse(cst[0]);
- if (cst.length > 1) {
- const errMsg = "Source contains multiple documents; please use YAML.parseAllDocuments()";
- doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));
- }
- return doc;
- }
- function parse(src, options) {
- const doc = parseDocument(src, options);
- doc.warnings.forEach((warning) => warnings.warn(warning));
- if (doc.errors.length > 0)
- throw doc.errors[0];
- return doc.toJSON();
- }
- function stringify(value, options) {
- const doc = new Document(options);
- doc.contents = value;
- return String(doc);
- }
- var YAML = {
- createNode,
- defaultOptions: Document$1.defaultOptions,
- Document,
- parse,
- parseAllDocuments,
- parseCST: parseCst.parse,
- parseDocument,
- scalarOptions: Document$1.scalarOptions,
- stringify
- };
- exports2.YAML = YAML;
- }
- });
- var require_yaml = __commonJS({
- "node_modules/yaml/index.js"(exports2, module2) {
- module2.exports = require_dist().YAML;
- }
- });
- var require_loaders = __commonJS({
- "node_modules/cosmiconfig/dist/loaders.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.loaders = void 0;
- var importFresh;
- var loadJs = function loadJs2(filepath) {
- if (importFresh === void 0) {
- importFresh = require_import_fresh();
- }
- const result = importFresh(filepath);
- return result;
- };
- var parseJson;
- var loadJson = function loadJson2(filepath, content) {
- if (parseJson === void 0) {
- parseJson = require_parse_json();
- }
- try {
- const result = parseJson(content);
- return result;
- } catch (error) {
- error.message = `JSON Error in ${filepath}:
- ${error.message}`;
- throw error;
- }
- };
- var yaml;
- var loadYaml = function loadYaml2(filepath, content) {
- if (yaml === void 0) {
- yaml = require_yaml();
- }
- try {
- const result = yaml.parse(content, {
- prettyErrors: true
- });
- return result;
- } catch (error) {
- error.message = `YAML Error in ${filepath}:
- ${error.message}`;
- throw error;
- }
- };
- var loaders = {
- loadJs,
- loadJson,
- loadYaml
- };
- exports2.loaders = loaders;
- }
- });
- var require_getPropertyByPath = __commonJS({
- "node_modules/cosmiconfig/dist/getPropertyByPath.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.getPropertyByPath = getPropertyByPath;
- function getPropertyByPath(source, path) {
- if (typeof path === "string" && Object.prototype.hasOwnProperty.call(source, path)) {
- return source[path];
- }
- const parsedPath = typeof path === "string" ? path.split(".") : path;
- return parsedPath.reduce((previous, key) => {
- if (previous === void 0) {
- return previous;
- }
- return previous[key];
- }, source);
- }
- }
- });
- var require_ExplorerBase = __commonJS({
- "node_modules/cosmiconfig/dist/ExplorerBase.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.getExtensionDescription = getExtensionDescription;
- exports2.ExplorerBase = void 0;
- var _path = _interopRequireDefault(require("path"));
- var _loaders = require_loaders();
- var _getPropertyByPath = require_getPropertyByPath();
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- var ExplorerBase = class {
- constructor(options) {
- if (options.cache === true) {
- this.loadCache = /* @__PURE__ */ new Map();
- this.searchCache = /* @__PURE__ */ new Map();
- }
- this.config = options;
- this.validateConfig();
- }
- clearLoadCache() {
- if (this.loadCache) {
- this.loadCache.clear();
- }
- }
- clearSearchCache() {
- if (this.searchCache) {
- this.searchCache.clear();
- }
- }
- clearCaches() {
- this.clearLoadCache();
- this.clearSearchCache();
- }
- validateConfig() {
- const config = this.config;
- config.searchPlaces.forEach((place) => {
- const loaderKey = _path.default.extname(place) || "noExt";
- const loader = config.loaders[loaderKey];
- if (!loader) {
- throw new Error(`No loader specified for ${getExtensionDescription(place)}, so searchPlaces item "${place}" is invalid`);
- }
- if (typeof loader !== "function") {
- throw new Error(`loader for ${getExtensionDescription(place)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`);
- }
- });
- }
- shouldSearchStopWithResult(result) {
- if (result === null)
- return false;
- if (result.isEmpty && this.config.ignoreEmptySearchPlaces)
- return false;
- return true;
- }
- nextDirectoryToSearch(currentDir, currentResult) {
- if (this.shouldSearchStopWithResult(currentResult)) {
- return null;
- }
- const nextDir = nextDirUp(currentDir);
- if (nextDir === currentDir || currentDir === this.config.stopDir) {
- return null;
- }
- return nextDir;
- }
- loadPackageProp(filepath, content) {
- const parsedContent = _loaders.loaders.loadJson(filepath, content);
- const packagePropValue = (0, _getPropertyByPath.getPropertyByPath)(parsedContent, this.config.packageProp);
- return packagePropValue || null;
- }
- getLoaderEntryForFile(filepath) {
- if (_path.default.basename(filepath) === "package.json") {
- const loader2 = this.loadPackageProp.bind(this);
- return loader2;
- }
- const loaderKey = _path.default.extname(filepath) || "noExt";
- const loader = this.config.loaders[loaderKey];
- if (!loader) {
- throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`);
- }
- return loader;
- }
- loadedContentToCosmiconfigResult(filepath, loadedContent) {
- if (loadedContent === null) {
- return null;
- }
- if (loadedContent === void 0) {
- return {
- filepath,
- config: void 0,
- isEmpty: true
- };
- }
- return {
- config: loadedContent,
- filepath
- };
- }
- validateFilePath(filepath) {
- if (!filepath) {
- throw new Error("load must pass a non-empty string");
- }
- }
- };
- exports2.ExplorerBase = ExplorerBase;
- function nextDirUp(dir) {
- return _path.default.dirname(dir);
- }
- function getExtensionDescription(filepath) {
- const ext = _path.default.extname(filepath);
- return ext ? `extension "${ext}"` : "files without extensions";
- }
- }
- });
- var require_readFile = __commonJS({
- "node_modules/cosmiconfig/dist/readFile.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.readFile = readFile;
- exports2.readFileSync = readFileSync;
- var _fs = _interopRequireDefault(require("fs"));
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- async function fsReadFileAsync(pathname, encoding) {
- return new Promise((resolve, reject) => {
- _fs.default.readFile(pathname, encoding, (error, contents) => {
- if (error) {
- reject(error);
- return;
- }
- resolve(contents);
- });
- });
- }
- async function readFile(filepath, options = {}) {
- const throwNotFound = options.throwNotFound === true;
- try {
- const content = await fsReadFileAsync(filepath, "utf8");
- return content;
- } catch (error) {
- if (throwNotFound === false && (error.code === "ENOENT" || error.code === "EISDIR")) {
- return null;
- }
- throw error;
- }
- }
- function readFileSync(filepath, options = {}) {
- const throwNotFound = options.throwNotFound === true;
- try {
- const content = _fs.default.readFileSync(filepath, "utf8");
- return content;
- } catch (error) {
- if (throwNotFound === false && (error.code === "ENOENT" || error.code === "EISDIR")) {
- return null;
- }
- throw error;
- }
- }
- }
- });
- var require_cacheWrapper = __commonJS({
- "node_modules/cosmiconfig/dist/cacheWrapper.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.cacheWrapper = cacheWrapper;
- exports2.cacheWrapperSync = cacheWrapperSync;
- async function cacheWrapper(cache, key, fn) {
- const cached = cache.get(key);
- if (cached !== void 0) {
- return cached;
- }
- const result = await fn();
- cache.set(key, result);
- return result;
- }
- function cacheWrapperSync(cache, key, fn) {
- const cached = cache.get(key);
- if (cached !== void 0) {
- return cached;
- }
- const result = fn();
- cache.set(key, result);
- return result;
- }
- }
- });
- var require_path_type = __commonJS({
- "node_modules/path-type/index.js"(exports2) {
- "use strict";
- var {
- promisify
- } = require("util");
- var fs = require("fs");
- async function isType(fsStatType, statsMethodName, filePath) {
- if (typeof filePath !== "string") {
- throw new TypeError(`Expected a string, got ${typeof filePath}`);
- }
- try {
- const stats = await promisify(fs[fsStatType])(filePath);
- return stats[statsMethodName]();
- } catch (error) {
- if (error.code === "ENOENT") {
- return false;
- }
- throw error;
- }
- }
- function isTypeSync(fsStatType, statsMethodName, filePath) {
- if (typeof filePath !== "string") {
- throw new TypeError(`Expected a string, got ${typeof filePath}`);
- }
- try {
- return fs[fsStatType](filePath)[statsMethodName]();
- } catch (error) {
- if (error.code === "ENOENT") {
- return false;
- }
- throw error;
- }
- }
- exports2.isFile = isType.bind(null, "stat", "isFile");
- exports2.isDirectory = isType.bind(null, "stat", "isDirectory");
- exports2.isSymlink = isType.bind(null, "lstat", "isSymbolicLink");
- exports2.isFileSync = isTypeSync.bind(null, "statSync", "isFile");
- exports2.isDirectorySync = isTypeSync.bind(null, "statSync", "isDirectory");
- exports2.isSymlinkSync = isTypeSync.bind(null, "lstatSync", "isSymbolicLink");
- }
- });
- var require_getDirectory = __commonJS({
- "node_modules/cosmiconfig/dist/getDirectory.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.getDirectory = getDirectory;
- exports2.getDirectorySync = getDirectorySync;
- var _path = _interopRequireDefault(require("path"));
- var _pathType = require_path_type();
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- async function getDirectory(filepath) {
- const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath);
- if (filePathIsDirectory === true) {
- return filepath;
- }
- const directory = _path.default.dirname(filepath);
- return directory;
- }
- function getDirectorySync(filepath) {
- const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath);
- if (filePathIsDirectory === true) {
- return filepath;
- }
- const directory = _path.default.dirname(filepath);
- return directory;
- }
- }
- });
- var require_Explorer = __commonJS({
- "node_modules/cosmiconfig/dist/Explorer.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.Explorer = void 0;
- var _path = _interopRequireDefault(require("path"));
- var _ExplorerBase = require_ExplorerBase();
- var _readFile = require_readFile();
- var _cacheWrapper = require_cacheWrapper();
- var _getDirectory = require_getDirectory();
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- var Explorer = class extends _ExplorerBase.ExplorerBase {
- constructor(options) {
- super(options);
- }
- async search(searchFrom = process.cwd()) {
- const startDirectory = await (0, _getDirectory.getDirectory)(searchFrom);
- const result = await this.searchFromDirectory(startDirectory);
- return result;
- }
- async searchFromDirectory(dir) {
- const absoluteDir = _path.default.resolve(process.cwd(), dir);
- const run = async () => {
- const result = await this.searchDirectory(absoluteDir);
- const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
- if (nextDir) {
- return this.searchFromDirectory(nextDir);
- }
- const transformResult = await this.config.transform(result);
- return transformResult;
- };
- if (this.searchCache) {
- return (0, _cacheWrapper.cacheWrapper)(this.searchCache, absoluteDir, run);
- }
- return run();
- }
- async searchDirectory(dir) {
- for await (const place of this.config.searchPlaces) {
- const placeResult = await this.loadSearchPlace(dir, place);
- if (this.shouldSearchStopWithResult(placeResult) === true) {
- return placeResult;
- }
- }
- return null;
- }
- async loadSearchPlace(dir, place) {
- const filepath = _path.default.join(dir, place);
- const fileContents = await (0, _readFile.readFile)(filepath);
- const result = await this.createCosmiconfigResult(filepath, fileContents);
- return result;
- }
- async loadFileContent(filepath, content) {
- if (content === null) {
- return null;
- }
- if (content.trim() === "") {
- return void 0;
- }
- const loader = this.getLoaderEntryForFile(filepath);
- const loaderResult = await loader(filepath, content);
- return loaderResult;
- }
- async createCosmiconfigResult(filepath, content) {
- const fileContent = await this.loadFileContent(filepath, content);
- const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
- return result;
- }
- async load(filepath) {
- this.validateFilePath(filepath);
- const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
- const runLoad = async () => {
- const fileContents = await (0, _readFile.readFile)(absoluteFilePath, {
- throwNotFound: true
- });
- const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents);
- const transformResult = await this.config.transform(result);
- return transformResult;
- };
- if (this.loadCache) {
- return (0, _cacheWrapper.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad);
- }
- return runLoad();
- }
- };
- exports2.Explorer = Explorer;
- }
- });
- var require_ExplorerSync = __commonJS({
- "node_modules/cosmiconfig/dist/ExplorerSync.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.ExplorerSync = void 0;
- var _path = _interopRequireDefault(require("path"));
- var _ExplorerBase = require_ExplorerBase();
- var _readFile = require_readFile();
- var _cacheWrapper = require_cacheWrapper();
- var _getDirectory = require_getDirectory();
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- var ExplorerSync = class extends _ExplorerBase.ExplorerBase {
- constructor(options) {
- super(options);
- }
- searchSync(searchFrom = process.cwd()) {
- const startDirectory = (0, _getDirectory.getDirectorySync)(searchFrom);
- const result = this.searchFromDirectorySync(startDirectory);
- return result;
- }
- searchFromDirectorySync(dir) {
- const absoluteDir = _path.default.resolve(process.cwd(), dir);
- const run = () => {
- const result = this.searchDirectorySync(absoluteDir);
- const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
- if (nextDir) {
- return this.searchFromDirectorySync(nextDir);
- }
- const transformResult = this.config.transform(result);
- return transformResult;
- };
- if (this.searchCache) {
- return (0, _cacheWrapper.cacheWrapperSync)(this.searchCache, absoluteDir, run);
- }
- return run();
- }
- searchDirectorySync(dir) {
- for (const place of this.config.searchPlaces) {
- const placeResult = this.loadSearchPlaceSync(dir, place);
- if (this.shouldSearchStopWithResult(placeResult) === true) {
- return placeResult;
- }
- }
- return null;
- }
- loadSearchPlaceSync(dir, place) {
- const filepath = _path.default.join(dir, place);
- const content = (0, _readFile.readFileSync)(filepath);
- const result = this.createCosmiconfigResultSync(filepath, content);
- return result;
- }
- loadFileContentSync(filepath, content) {
- if (content === null) {
- return null;
- }
- if (content.trim() === "") {
- return void 0;
- }
- const loader = this.getLoaderEntryForFile(filepath);
- const loaderResult = loader(filepath, content);
- return loaderResult;
- }
- createCosmiconfigResultSync(filepath, content) {
- const fileContent = this.loadFileContentSync(filepath, content);
- const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
- return result;
- }
- loadSync(filepath) {
- this.validateFilePath(filepath);
- const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
- const runLoadSync = () => {
- const content = (0, _readFile.readFileSync)(absoluteFilePath, {
- throwNotFound: true
- });
- const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content);
- const transformResult = this.config.transform(cosmiconfigResult);
- return transformResult;
- };
- if (this.loadCache) {
- return (0, _cacheWrapper.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync);
- }
- return runLoadSync();
- }
- };
- exports2.ExplorerSync = ExplorerSync;
- }
- });
- var require_types = __commonJS({
- "node_modules/cosmiconfig/dist/types.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- }
- });
- var require_dist2 = __commonJS({
- "node_modules/cosmiconfig/dist/index.js"(exports2) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- exports2.cosmiconfig = cosmiconfig;
- exports2.cosmiconfigSync = cosmiconfigSync;
- exports2.defaultLoaders = void 0;
- var _os = _interopRequireDefault(require("os"));
- var _Explorer = require_Explorer();
- var _ExplorerSync = require_ExplorerSync();
- var _loaders = require_loaders();
- var _types = require_types();
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- function cosmiconfig(moduleName, options = {}) {
- const normalizedOptions = normalizeOptions(moduleName, options);
- const explorer = new _Explorer.Explorer(normalizedOptions);
- return {
- search: explorer.search.bind(explorer),
- load: explorer.load.bind(explorer),
- clearLoadCache: explorer.clearLoadCache.bind(explorer),
- clearSearchCache: explorer.clearSearchCache.bind(explorer),
- clearCaches: explorer.clearCaches.bind(explorer)
- };
- }
- function cosmiconfigSync(moduleName, options = {}) {
- const normalizedOptions = normalizeOptions(moduleName, options);
- const explorerSync = new _ExplorerSync.ExplorerSync(normalizedOptions);
- return {
- search: explorerSync.searchSync.bind(explorerSync),
- load: explorerSync.loadSync.bind(explorerSync),
- clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync),
- clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync),
- clearCaches: explorerSync.clearCaches.bind(explorerSync)
- };
- }
- var defaultLoaders = Object.freeze({
- ".cjs": _loaders.loaders.loadJs,
- ".js": _loaders.loaders.loadJs,
- ".json": _loaders.loaders.loadJson,
- ".yaml": _loaders.loaders.loadYaml,
- ".yml": _loaders.loaders.loadYaml,
- noExt: _loaders.loaders.loadYaml
- });
- exports2.defaultLoaders = defaultLoaders;
- var identity = function identity2(x) {
- return x;
- };
- function normalizeOptions(moduleName, options) {
- const defaults = {
- packageProp: moduleName,
- searchPlaces: ["package.json", `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`],
- ignoreEmptySearchPlaces: true,
- stopDir: _os.default.homedir(),
- cache: true,
- transform: identity,
- loaders: defaultLoaders
- };
- const normalizedOptions = Object.assign(Object.assign(Object.assign({}, defaults), options), {}, {
- loaders: Object.assign(Object.assign({}, defaults.loaders), options.loaders)
- });
- return normalizedOptions;
- }
- }
- });
- var require_find_parent_dir = __commonJS({
- "node_modules/find-parent-dir/index.js"(exports2, module2) {
- "use strict";
- var path = require("path");
- var fs = require("fs");
- var exists = fs.exists || path.exists;
- var existsSync = fs.existsSync || path.existsSync;
- function splitPath(path2) {
- var parts = path2.split(/(\/|\\)/);
- if (!parts.length)
- return parts;
- return !parts[0].length ? parts.slice(1) : parts;
- }
- exports2 = module2.exports = function(currentFullPath, clue, cb) {
- function testDir(parts) {
- if (parts.length === 0)
- return cb(null, null);
- var p = parts.join("");
- exists(path.join(p, clue), function(itdoes) {
- if (itdoes)
- return cb(null, p);
- testDir(parts.slice(0, -1));
- });
- }
- testDir(splitPath(currentFullPath));
- };
- exports2.sync = function(currentFullPath, clue) {
- function testDir(parts) {
- if (parts.length === 0)
- return null;
- var p = parts.join("");
- var itdoes = existsSync(path.join(p, clue));
- return itdoes ? p : testDir(parts.slice(0, -1));
- }
- return testDir(splitPath(currentFullPath));
- };
- }
- });
- var require_get_stdin = __commonJS({
- "node_modules/get-stdin/index.js"(exports2, module2) {
- "use strict";
- var {
- stdin
- } = process;
- module2.exports = async () => {
- let result = "";
- if (stdin.isTTY) {
- return result;
- }
- stdin.setEncoding("utf8");
- for await (const chunk of stdin) {
- result += chunk;
- }
- return result;
- };
- module2.exports.buffer = async () => {
- const result = [];
- let length = 0;
- if (stdin.isTTY) {
- return Buffer.concat([]);
- }
- for await (const chunk of stdin) {
- result.push(chunk);
- length += chunk.length;
- }
- return Buffer.concat(result, length);
- };
- }
- });
- var require_vendors = __commonJS({
- "node_modules/ci-info/vendors.json"(exports2, module2) {
- module2.exports = [{
- name: "AppVeyor",
- constant: "APPVEYOR",
- env: "APPVEYOR",
- pr: "APPVEYOR_PULL_REQUEST_NUMBER"
- }, {
- name: "Azure Pipelines",
- constant: "AZURE_PIPELINES",
- env: "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",
- pr: "SYSTEM_PULLREQUEST_PULLREQUESTID"
- }, {
- name: "Appcircle",
- constant: "APPCIRCLE",
- env: "AC_APPCIRCLE"
- }, {
- name: "Bamboo",
- constant: "BAMBOO",
- env: "bamboo_planKey"
- }, {
- name: "Bitbucket Pipelines",
- constant: "BITBUCKET",
- env: "BITBUCKET_COMMIT",
- pr: "BITBUCKET_PR_ID"
- }, {
- name: "Bitrise",
- constant: "BITRISE",
- env: "BITRISE_IO",
- pr: "BITRISE_PULL_REQUEST"
- }, {
- name: "Buddy",
- constant: "BUDDY",
- env: "BUDDY_WORKSPACE_ID",
- pr: "BUDDY_EXECUTION_PULL_REQUEST_ID"
- }, {
- name: "Buildkite",
- constant: "BUILDKITE",
- env: "BUILDKITE",
- pr: {
- env: "BUILDKITE_PULL_REQUEST",
- ne: "false"
- }
- }, {
- name: "CircleCI",
- constant: "CIRCLE",
- env: "CIRCLECI",
- pr: "CIRCLE_PULL_REQUEST"
- }, {
- name: "Cirrus CI",
- constant: "CIRRUS",
- env: "CIRRUS_CI",
- pr: "CIRRUS_PR"
- }, {
- name: "AWS CodeBuild",
- constant: "CODEBUILD",
- env: "CODEBUILD_BUILD_ARN"
- }, {
- name: "Codefresh",
- constant: "CODEFRESH",
- env: "CF_BUILD_ID",
- pr: {
- any: ["CF_PULL_REQUEST_NUMBER", "CF_PULL_REQUEST_ID"]
- }
- }, {
- name: "Codeship",
- constant: "CODESHIP",
- env: {
- CI_NAME: "codeship"
- }
- }, {
- name: "Drone",
- constant: "DRONE",
- env: "DRONE",
- pr: {
- DRONE_BUILD_EVENT: "pull_request"
- }
- }, {
- name: "dsari",
- constant: "DSARI",
- env: "DSARI"
- }, {
- name: "Expo Application Services",
- constant: "EAS",
- env: "EAS_BUILD"
- }, {
- name: "GitHub Actions",
- constant: "GITHUB_ACTIONS",
- env: "GITHUB_ACTIONS",
- pr: {
- GITHUB_EVENT_NAME: "pull_request"
- }
- }, {
- name: "GitLab CI",
- constant: "GITLAB",
- env: "GITLAB_CI",
- pr: "CI_MERGE_REQUEST_ID"
- }, {
- name: "GoCD",
- constant: "GOCD",
- env: "GO_PIPELINE_LABEL"
- }, {
- name: "LayerCI",
- constant: "LAYERCI",
- env: "LAYERCI",
- pr: "LAYERCI_PULL_REQUEST"
- }, {
- name: "Hudson",
- constant: "HUDSON",
- env: "HUDSON_URL"
- }, {
- name: "Jenkins",
- constant: "JENKINS",
- env: ["JENKINS_URL", "BUILD_ID"],
- pr: {
- any: ["ghprbPullId", "CHANGE_ID"]
- }
- }, {
- name: "Magnum CI",
- constant: "MAGNUM",
- env: "MAGNUM"
- }, {
- name: "Netlify CI",
- constant: "NETLIFY",
- env: "NETLIFY",
- pr: {
- env: "PULL_REQUEST",
- ne: "false"
- }
- }, {
- name: "Nevercode",
- constant: "NEVERCODE",
- env: "NEVERCODE",
- pr: {
- env: "NEVERCODE_PULL_REQUEST",
- ne: "false"
- }
- }, {
- name: "Render",
- constant: "RENDER",
- env: "RENDER",
- pr: {
- IS_PULL_REQUEST: "true"
- }
- }, {
- name: "Sail CI",
- constant: "SAIL",
- env: "SAILCI",
- pr: "SAIL_PULL_REQUEST_NUMBER"
- }, {
- name: "Semaphore",
- constant: "SEMAPHORE",
- env: "SEMAPHORE",
- pr: "PULL_REQUEST_NUMBER"
- }, {
- name: "Screwdriver",
- constant: "SCREWDRIVER",
- env: "SCREWDRIVER",
- pr: {
- env: "SD_PULL_REQUEST",
- ne: "false"
- }
- }, {
- name: "Shippable",
- constant: "SHIPPABLE",
- env: "SHIPPABLE",
- pr: {
- IS_PULL_REQUEST: "true"
- }
- }, {
- name: "Solano CI",
- constant: "SOLANO",
- env: "TDDIUM",
- pr: "TDDIUM_PR_ID"
- }, {
- name: "Strider CD",
- constant: "STRIDER",
- env: "STRIDER"
- }, {
- name: "TaskCluster",
- constant: "TASKCLUSTER",
- env: ["TASK_ID", "RUN_ID"]
- }, {
- name: "TeamCity",
- constant: "TEAMCITY",
- env: "TEAMCITY_VERSION"
- }, {
- name: "Travis CI",
- constant: "TRAVIS",
- env: "TRAVIS",
- pr: {
- env: "TRAVIS_PULL_REQUEST",
- ne: "false"
- }
- }, {
- name: "Vercel",
- constant: "VERCEL",
- env: "NOW_BUILDER"
- }, {
- name: "Visual Studio App Center",
- constant: "APPCENTER",
- env: "APPCENTER_BUILD_ID"
- }];
- }
- });
- var require_ci_info = __commonJS({
- "node_modules/ci-info/index.js"(exports2) {
- "use strict";
- var vendors = require_vendors();
- var env = process.env;
- Object.defineProperty(exports2, "_vendors", {
- value: vendors.map(function(v) {
- return v.constant;
- })
- });
- exports2.name = null;
- exports2.isPR = null;
- vendors.forEach(function(vendor) {
- const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env];
- const isCI = envs.every(function(obj) {
- return checkEnv(obj);
- });
- exports2[vendor.constant] = isCI;
- if (isCI) {
- exports2.name = vendor.name;
- switch (typeof vendor.pr) {
- case "string":
- exports2.isPR = !!env[vendor.pr];
- break;
- case "object":
- if ("env" in vendor.pr) {
- exports2.isPR = vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne;
- } else if ("any" in vendor.pr) {
- exports2.isPR = vendor.pr.any.some(function(key) {
- return !!env[key];
- });
- } else {
- exports2.isPR = checkEnv(vendor.pr);
- }
- break;
- default:
- exports2.isPR = null;
- }
- }
- });
- exports2.isCI = !!(env.CI || env.CONTINUOUS_INTEGRATION || env.BUILD_NUMBER || env.RUN_ID || exports2.name || false);
- function checkEnv(obj) {
- if (typeof obj === "string")
- return !!env[obj];
- return Object.keys(obj).every(function(k) {
- return env[k] === obj[k];
- });
- }
- }
- });
- module.exports = {
- cosmiconfig: require_dist2().cosmiconfig,
- cosmiconfigSync: require_dist2().cosmiconfigSync,
- findParentDir: require_find_parent_dir().sync,
- getStdin: require_get_stdin(),
- isCI: () => require_ci_info().isCI
- };
|