index.es.js 182 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195
  1. (function(){"use strict";try{if(typeof document!="undefined"){var o=document.createElement("style");o.appendChild(document.createTextNode(".code-diff-view[theme=light]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #1F2328;--color-diff-blob-addition-fg: #1F2328;--color-diff-blob-addition-num-bg: #ccffd8;--color-diff-blob-addition-line-bg: #e6ffec;--color-diff-blob-addition-word-bg: #abf2bc;--color-diff-blob-deletion-num-text: #1F2328;--color-diff-blob-deletion-fg: #1F2328;--color-diff-blob-deletion-num-bg: #ffd7d5;--color-diff-blob-deletion-line-bg: #ffebe9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,.4);--color-diff-blob-expander-icon: #656d76;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(31,35,40,.15);--color-diffstat-addition-border: rgba(31,35,40,.15);--color-diffstat-addition-bg: #1f883d;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #6639ba;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #1F2328;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #656d76;--color-codemirror-cursor: #1F2328;--color-codemirror-selection-bg: rgba(84,174,255,.4);--color-codemirror-activeline-bg: rgba(234,238,242,.5);--color-codemirror-matchingbracket-text: #1F2328;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24292f;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #f6f8fa;--color-checks-text-secondary: #8c959f;--color-checks-text-link: #54aeff;--color-checks-btn-icon: #afb8c1;--color-checks-btn-hover-icon: #f6f8fa;--color-checks-btn-hover-bg: rgba(255,255,255,.125);--color-checks-input-text: #eaeef2;--color-checks-input-placeholder-text: #8c959f;--color-checks-input-focus-text: #8c959f;--color-checks-input-bg: #32383f;--color-checks-input-shadow: none;--color-checks-donut-error: #fa4549;--color-checks-donut-pending: #bf8700;--color-checks-donut-success: #1f883d;--color-checks-donut-neutral: #afb8c1;--color-checks-dropdown-text: #afb8c1;--color-checks-dropdown-bg: #32383f;--color-checks-dropdown-border: #424a53;--color-checks-dropdown-shadow: rgba(31,35,40,.3);--color-checks-dropdown-hover-text: #f6f8fa;--color-checks-dropdown-hover-bg: #424a53;--color-checks-dropdown-btn-hover-text: #f6f8fa;--color-checks-dropdown-btn-hover-bg: #32383f;--color-checks-scrollbar-thumb-bg: #57606a;--color-checks-header-label-text: #d0d7de;--color-checks-header-label-open-text: #f6f8fa;--color-checks-header-border: #32383f;--color-checks-header-icon: #8c959f;--color-checks-line-text: #d0d7de;--color-checks-line-num-text: rgba(140,149,159,.75);--color-checks-line-timestamp-text: #8c959f;--color-checks-line-hover-bg: #32383f;--color-checks-line-selected-bg: rgba(33,139,255,.15);--color-checks-line-selected-num-text: #54aeff;--color-checks-line-dt-fm-text: #24292f;--color-checks-line-dt-fm-bg: #9a6700;--color-checks-gate-bg: rgba(125,78,0,.15);--color-checks-gate-text: #d0d7de;--color-checks-gate-waiting-text: #d4a72c;--color-checks-step-header-open-bg: #32383f;--color-checks-step-error-text: #ff8182;--color-checks-step-warning-text: #d4a72c;--color-checks-logline-text: #8c959f;--color-checks-logline-num-text: rgba(140,149,159,.75);--color-checks-logline-debug-text: #c297ff;--color-checks-logline-error-text: #d0d7de;--color-checks-logline-error-num-text: #ff8182;--color-checks-logline-error-bg: rgba(164,14,38,.15);--color-checks-logline-warning-text: #d0d7de;--color-checks-logline-warning-num-text: #d4a72c;--color-checks-logline-warning-bg: rgba(125,78,0,.15);--color-checks-logline-command-text: #54aeff;--color-checks-logline-section-text: #4ac26b;--color-checks-ansi-black: #24292f;--color-checks-ansi-black-bright: #32383f;--color-checks-ansi-white: #d0d7de;--color-checks-ansi-white-bright: #d0d7de;--color-checks-ansi-gray: #8c959f;--color-checks-ansi-red: #ff8182;--color-checks-ansi-red-bright: #ffaba8;--color-checks-ansi-green: #4ac26b;--color-checks-ansi-green-bright: #6fdd8b;--color-checks-ansi-yellow: #d4a72c;--color-checks-ansi-yellow-bright: #eac54f;--color-checks-ansi-blue: #54aeff;--color-checks-ansi-blue-bright: #80ccff;--color-checks-ansi-magenta: #c297ff;--color-checks-ansi-magenta-bright: #d8b9ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #24292f;--color-project-sidebar-bg: #ffffff;--color-project-gradient-in: #ffffff;--color-project-gradient-out: rgba(255,255,255,0);--color-mktg-btn-bg: #1b1f23;--color-mktg-btn-shadow-outline: rgb(0 0 0 / 15%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(0 0 0 / 15%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 3px 2px rgba(0, 0, 0, .07), 0 7px 5px rgba(0, 0, 0, .04), 0 12px 10px rgba(0, 0, 0, .03), 0 22px 18px rgba(0, 0, 0, .03), 0 42px 33px rgba(0, 0, 0, .02), 0 100px 80px rgba(0, 0, 0, .02);--color-mktg-btn-shadow-hover-muted: rgb(0 0 0 / 70%) 0 0 0 2px inset;--color-control-border-color-emphasis: #858F99;--color-avatar-bg: #ffffff;--color-avatar-border: rgba(31,35,40,.15);--color-avatar-stack-fade: #afb8c1;--color-avatar-stack-fade-more: #d0d7de;--color-avatar-child-shadow: 0 0 0 2px rgba(255,255,255,.8);--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: rgba(0,0,0,0);--color-select-menu-tap-highlight: rgba(175,184,193,.5);--color-select-menu-tap-focus-bg: #b6e3ff;--color-overlay-shadow: 0 1px 3px rgba(31,35,40,.12), 0 8px 24px rgba(66,74,83,.12);--color-overlay-backdrop: rgba(140,149,159,.2);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #24292f;--color-header-divider: #57606a;--color-header-logo: #ffffff;--color-header-search-bg: #24292f;--color-header-search-border: #57606a;--color-sidenav-selected-bg: #ffffff;--color-menu-bg-active: rgba(0,0,0,0);--color-input-disabled-bg: rgba(175,184,193,.2);--color-timeline-badge-bg: #eaeef2;--color-ansi-black: #24292f;--color-ansi-black-bright: #57606a;--color-ansi-white: #6e7781;--color-ansi-white-bright: #8c959f;--color-ansi-gray: #6e7781;--color-ansi-red: #cf222e;--color-ansi-red-bright: #a40e26;--color-ansi-green: #116329;--color-ansi-green-bright: #1a7f37;--color-ansi-yellow: #4d2d00;--color-ansi-yellow-bright: #633c01;--color-ansi-blue: #0969da;--color-ansi-blue-bright: #218bff;--color-ansi-magenta: #8250df;--color-ansi-magenta-bright: #a475f9;--color-ansi-cyan: #1b7c83;--color-ansi-cyan-bright: #3192aa;--color-btn-text: #24292f;--color-btn-bg: #f6f8fa;--color-btn-border: rgba(31,35,40,.15);--color-btn-shadow: 0 1px 0 rgba(31,35,40,.04);--color-btn-inset-shadow: inset 0 1px 0 rgba(255,255,255,.25);--color-btn-hover-bg: #f3f4f6;--color-btn-hover-border: rgba(31,35,40,.15);--color-btn-active-bg: hsla(220,14%,93%,1);--color-btn-active-border: rgba(31,35,40,.15);--color-btn-selected-bg: hsla(220,14%,94%,1);--color-btn-counter-bg: rgba(31,35,40,.08);--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #1f883d;--color-btn-primary-border: rgba(31,35,40,.15);--color-btn-primary-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-primary-hover-bg: #1a7f37;--color-btn-primary-hover-border: rgba(31,35,40,.15);--color-btn-primary-selected-bg: hsla(137,66%,28%,1);--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0,45,17,.2);--color-btn-primary-disabled-text: rgba(255,255,255,.8);--color-btn-primary-disabled-bg: #94d3a2;--color-btn-primary-disabled-border: rgba(31,35,40,.15);--color-btn-primary-icon: rgba(255,255,255,.8);--color-btn-primary-counter-bg: rgba(0,45,17,.2);--color-btn-outline-text: #0969da;--color-btn-outline-hover-text: #ffffff;--color-btn-outline-hover-bg: #0969da;--color-btn-outline-hover-border: rgba(31,35,40,.15);--color-btn-outline-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(255,255,255,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: hsla(212,92%,42%,1);--color-btn-outline-selected-border: rgba(31,35,40,.15);--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0,33,85,.2);--color-btn-outline-disabled-text: rgba(9,105,218,.5);--color-btn-outline-disabled-bg: #f6f8fa;--color-btn-outline-disabled-counter-bg: rgba(9,105,218,.05);--color-btn-outline-counter-bg: #0969da1a;--color-btn-outline-counter-fg: #0550ae;--color-btn-outline-hover-counter-fg: #ffffff;--color-btn-outline-disabled-counter-fg: rgba(9,105,218,.5);--color-btn-danger-text: #cf222e;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #a40e26;--color-btn-danger-hover-border: rgba(31,35,40,.15);--color-btn-danger-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: hsla(356,72%,44%,1);--color-btn-danger-selected-border: rgba(31,35,40,.15);--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76,0,20,.2);--color-btn-danger-disabled-text: rgba(207,34,46,.5);--color-btn-danger-disabled-bg: #f6f8fa;--color-btn-danger-disabled-counter-bg: rgba(207,34,46,.05);--color-btn-danger-counter-bg: rgba(207,34,46,.1);--color-btn-danger-icon: #cf222e;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-counter-fg: #a40e26;--color-btn-danger-hover-counter-fg: #ffffff;--color-btn-danger-disabled-counter-fg: rgba(207,34,46,.5);--color-underlinenav-icon: #6e7781;--color-underlinenav-border-hover: rgba(175,184,193,.2);--color-action-list-item-inline-divider: rgba(208,215,222,.48);--color-action-list-item-default-hover-bg: rgba(208,215,222,.32);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(208,215,222,.48);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(208,215,222,.24);--color-action-list-item-danger-hover-bg: rgba(255,235,233,.64);--color-action-list-item-danger-active-bg: #ffebe9;--color-action-list-item-danger-hover-text: #d1242f;--color-switch-track-bg: #eaeef2;--color-switch-track-hover-bg: hsla(210,24%,90%,1);--color-switch-track-active-bg: hsla(210,24%,88%,1);--color-switch-track-disabled-bg: #8c959f;--color-switch-track-fg: #656d76;--color-switch-track-disabled-fg: #ffffff;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: #0969da;--color-switch-track-checked-hover-bg: #0860CA;--color-switch-track-checked-active-bg: #0757BA;--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #ffffff;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #ffffff;--color-switch-knob-disabled-bg: #f6f8fa;--color-switch-knob-border: #858F99;--color-switch-knob-checked-bg: #ffffff;--color-switch-knob-checked-disabled-bg: #f6f8fa;--color-switch-knob-checked-border: #0969da;--color-segmented-control-bg: #eaeef2;--color-segmented-control-button-bg: #ffffff;--color-segmented-control-button-hover-bg: rgba(175,184,193,.2);--color-segmented-control-button-active-bg: rgba(175,184,193,.4);--color-segmented-control-button-selected-border: #8c959f;--color-tree-view-item-chevron-hover-bg: rgba(208,215,222,.32);--color-tree-view-item-directory-fill: #54aeff;--color-fg-default: #1F2328;--color-fg-muted: #656d76;--color-fg-subtle: #6e7781;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #ffffff;--color-canvas-overlay: #ffffff;--color-canvas-inset: #f6f8fa;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-border-subtle: rgba(31,35,40,.15);--color-shadow-small: 0 1px 0 rgba(31,35,40,.04);--color-shadow-medium: 0 3px 6px rgba(140,149,159,.15);--color-shadow-large: 0 8px 24px rgba(140,149,159,.2);--color-shadow-extra-large: 0 12px 28px rgba(140,149,159,.3);--color-neutral-emphasis-plus: #24292f;--color-neutral-emphasis: #6e7781;--color-neutral-muted: rgba(175,184,193,.2);--color-neutral-subtle: rgba(234,238,242,.5);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-accent-muted: rgba(84,174,255,.4);--color-accent-subtle: #ddf4ff;--color-success-fg: #1a7f37;--color-success-emphasis: #1f883d;--color-success-muted: rgba(74,194,107,.4);--color-success-subtle: #dafbe1;--color-attention-fg: #9a6700;--color-attention-emphasis: #9a6700;--color-attention-muted: rgba(212,167,44,.4);--color-attention-subtle: #fff8c5;--color-severe-fg: #bc4c00;--color-severe-emphasis: #bc4c00;--color-severe-muted: rgba(251,143,68,.4);--color-severe-subtle: #fff1e5;--color-danger-fg: #d1242f;--color-danger-emphasis: #cf222e;--color-danger-muted: rgba(255,129,130,.4);--color-danger-subtle: #ffebe9;--color-open-fg: #1a7f37;--color-open-emphasis: #1f883d;--color-open-muted: rgba(74,194,107,.4);--color-open-subtle: #dafbe1;--color-closed-fg: #d1242f;--color-closed-emphasis: #cf222e;--color-closed-muted: rgba(255,129,130,.4);--color-closed-subtle: #ffebe9;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-done-muted: rgba(194,151,255,.4);--color-done-subtle: #fbefff;--color-sponsors-fg: #bf3989;--color-sponsors-emphasis: #bf3989;--color-sponsors-muted: rgba(255,128,200,.4);--color-sponsors-subtle: #ffeff7;--color-primer-fg-disabled: #8c959f;--color-primer-canvas-backdrop: rgba(31,35,40,.5);--color-primer-canvas-sticky: rgba(255,255,255,.95);--color-primer-border-active: #fd8c73;--color-primer-border-contrast: rgba(31,35,40,.1);--color-primer-shadow-highlight: inset 0 1px 0 rgba(255,255,255,.25);--color-primer-shadow-inset: inset 0 1px 0 rgba(208,215,222,.2);--color-scale-black: #1F2328;--color-scale-white: #ffffff;--color-scale-gray-0: #f6f8fa;--color-scale-gray-1: #eaeef2;--color-scale-gray-2: #d0d7de;--color-scale-gray-3: #afb8c1;--color-scale-gray-4: #8c959f;--color-scale-gray-5: #6e7781;--color-scale-gray-6: #57606a;--color-scale-gray-7: #424a53;--color-scale-gray-8: #32383f;--color-scale-gray-9: #24292f;--color-scale-blue-0: #ddf4ff;--color-scale-blue-1: #b6e3ff;--color-scale-blue-2: #80ccff;--color-scale-blue-3: #54aeff;--color-scale-blue-4: #218bff;--color-scale-blue-5: #0969da;--color-scale-blue-6: #0550ae;--color-scale-blue-7: #033d8b;--color-scale-blue-8: #0a3069;--color-scale-blue-9: #002155;--color-scale-green-0: #dafbe1;--color-scale-green-1: #aceebb;--color-scale-green-2: #6fdd8b;--color-scale-green-3: #4ac26b;--color-scale-green-4: #2da44e;--color-scale-green-5: #1a7f37;--color-scale-green-6: #116329;--color-scale-green-7: #044f1e;--color-scale-green-8: #003d16;--color-scale-green-9: #002d11;--color-scale-yellow-0: #fff8c5;--color-scale-yellow-1: #fae17d;--color-scale-yellow-2: #eac54f;--color-scale-yellow-3: #d4a72c;--color-scale-yellow-4: #bf8700;--color-scale-yellow-5: #9a6700;--color-scale-yellow-6: #7d4e00;--color-scale-yellow-7: #633c01;--color-scale-yellow-8: #4d2d00;--color-scale-yellow-9: #3b2300;--color-scale-orange-0: #fff1e5;--color-scale-orange-1: #ffd8b5;--color-scale-orange-2: #ffb77c;--color-scale-orange-3: #fb8f44;--color-scale-orange-4: #e16f24;--color-scale-orange-5: #bc4c00;--color-scale-orange-6: #953800;--color-scale-orange-7: #762c00;--color-scale-orange-8: #5c2200;--color-scale-orange-9: #471700;--color-scale-red-0: #ffebe9;--color-scale-red-1: #ffcecb;--color-scale-red-2: #ffaba8;--color-scale-red-3: #ff8182;--color-scale-red-4: #fa4549;--color-scale-red-5: #cf222e;--color-scale-red-6: #a40e26;--color-scale-red-7: #82071e;--color-scale-red-8: #660018;--color-scale-red-9: #4c0014;--color-scale-purple-0: #fbefff;--color-scale-purple-1: #ecd8ff;--color-scale-purple-2: #d8b9ff;--color-scale-purple-3: #c297ff;--color-scale-purple-4: #a475f9;--color-scale-purple-5: #8250df;--color-scale-purple-6: #6639ba;--color-scale-purple-7: #512a97;--color-scale-purple-8: #3e1f79;--color-scale-purple-9: #2e1461;--color-scale-pink-0: #ffeff7;--color-scale-pink-1: #ffd3eb;--color-scale-pink-2: #ffadda;--color-scale-pink-3: #ff80c8;--color-scale-pink-4: #e85aad;--color-scale-pink-5: #bf3989;--color-scale-pink-6: #99286e;--color-scale-pink-7: #772057;--color-scale-pink-8: #611347;--color-scale-pink-9: #4d0336;--color-scale-coral-0: #fff0eb;--color-scale-coral-1: #ffd6cc;--color-scale-coral-2: #ffb4a1;--color-scale-coral-3: #fd8c73;--color-scale-coral-4: #ec6547;--color-scale-coral-5: #c4432b;--color-scale-coral-6: #9e2f1c;--color-scale-coral-7: #801f0f;--color-scale-coral-8: #691105;--color-scale-coral-9: #510901}.code-diff-view[theme=light] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=light] code.hljs{padding:3px 5px}.code-diff-view[theme=light] .hljs{color:#24292e;background:#ffffff}.code-diff-view[theme=light] .hljs-doctag,.code-diff-view[theme=light] .hljs-keyword,.code-diff-view[theme=light] .hljs-meta .hljs-keyword,.code-diff-view[theme=light] .hljs-template-tag,.code-diff-view[theme=light] .hljs-template-variable,.code-diff-view[theme=light] .hljs-type,.code-diff-view[theme=light] .hljs-variable.language_{color:#d73a49}.code-diff-view[theme=light] .hljs-title,.code-diff-view[theme=light] .hljs-title.class_,.code-diff-view[theme=light] .hljs-title.class_.inherited__,.code-diff-view[theme=light] .hljs-title.function_{color:#6f42c1}.code-diff-view[theme=light] .hljs-attr,.code-diff-view[theme=light] .hljs-attribute,.code-diff-view[theme=light] .hljs-literal,.code-diff-view[theme=light] .hljs-meta,.code-diff-view[theme=light] .hljs-number,.code-diff-view[theme=light] .hljs-operator,.code-diff-view[theme=light] .hljs-variable,.code-diff-view[theme=light] .hljs-selector-attr,.code-diff-view[theme=light] .hljs-selector-class,.code-diff-view[theme=light] .hljs-selector-id{color:#005cc5}.code-diff-view[theme=light] .hljs-regexp,.code-diff-view[theme=light] .hljs-string,.code-diff-view[theme=light] .hljs-meta .hljs-string{color:#032f62}.code-diff-view[theme=light] .hljs-built_in,.code-diff-view[theme=light] .hljs-symbol{color:#e36209}.code-diff-view[theme=light] .hljs-comment,.code-diff-view[theme=light] .hljs-code,.code-diff-view[theme=light] .hljs-formula{color:#6a737d}.code-diff-view[theme=light] .hljs-name,.code-diff-view[theme=light] .hljs-quote,.code-diff-view[theme=light] .hljs-selector-tag,.code-diff-view[theme=light] .hljs-selector-pseudo{color:#22863a}.code-diff-view[theme=light] .hljs-subst{color:#24292e}.code-diff-view[theme=light] .hljs-section{color:#005cc5;font-weight:700}.code-diff-view[theme=light] .hljs-bullet{color:#735c0f}.code-diff-view[theme=light] .hljs-emphasis{color:#24292e;font-style:italic}.code-diff-view[theme=light] .hljs-strong{color:#24292e;font-weight:700}.code-diff-view[theme=light] .hljs-addition{color:#22863a;background-color:#f0fff4}.code-diff-view[theme=light] .hljs-deletion{color:#b31d28;background-color:#ffeef0}.code-diff-view[theme=dark]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #e6edf3;--color-diff-blob-addition-fg: #e6edf3;--color-diff-blob-addition-num-bg: rgba(63,185,80,.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,.4);--color-diff-blob-deletion-num-text: #e6edf3;--color-diff-blob-deletion-fg: #e6edf3;--color-diff-blob-deletion-num-bg: rgba(248,81,73,.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,.1);--color-diff-blob-deletion-word-bg: rgba(248,81,73,.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,.4);--color-diff-blob-expander-icon: #7d8590;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,.1);--color-diffstat-addition-border: rgba(240,246,252,.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #e6edf3;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #7d8590;--color-codemirror-cursor: #e6edf3;--color-codemirror-selection-bg: rgba(56,139,253,.4);--color-codemirror-activeline-bg: rgba(110,118,129,.1);--color-codemirror-matchingbracket-text: #e6edf3;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-container-border-width: 1px;--color-checks-text-primary: #e6edf3;--color-checks-text-secondary: #7d8590;--color-checks-text-link: #2f81f7;--color-checks-btn-icon: #7d8590;--color-checks-btn-hover-icon: #e6edf3;--color-checks-btn-hover-bg: rgba(110,118,129,.1);--color-checks-input-text: #7d8590;--color-checks-input-placeholder-text: #6e7681;--color-checks-input-focus-text: #e6edf3;--color-checks-input-bg: #161b22;--color-checks-donut-error: #f85149;--color-checks-donut-pending: #d29922;--color-checks-donut-success: #2ea043;--color-checks-donut-neutral: #8b949e;--color-checks-dropdown-text: #e6edf3;--color-checks-dropdown-bg: #161b22;--color-checks-dropdown-border: #30363d;--color-checks-dropdown-shadow: rgba(1,4,9,.3);--color-checks-dropdown-hover-text: #e6edf3;--color-checks-dropdown-hover-bg: rgba(110,118,129,.1);--color-checks-dropdown-btn-hover-text: #e6edf3;--color-checks-dropdown-btn-hover-bg: rgba(110,118,129,.1);--color-checks-scrollbar-thumb-bg: rgba(110,118,129,.4);--color-checks-header-label-text: #7d8590;--color-checks-header-label-open-text: #e6edf3;--color-checks-header-border: #21262d;--color-checks-header-icon: #7d8590;--color-checks-line-text: #7d8590;--color-checks-line-num-text: #6e7681;--color-checks-line-timestamp-text: #6e7681;--color-checks-line-hover-bg: rgba(110,118,129,.1);--color-checks-line-selected-bg: rgba(56,139,253,.1);--color-checks-line-selected-num-text: #2f81f7;--color-checks-line-dt-fm-text: #ffffff;--color-checks-line-dt-fm-bg: #9e6a03;--color-checks-gate-bg: rgba(187,128,9,.15);--color-checks-gate-text: #7d8590;--color-checks-gate-waiting-text: #d29922;--color-checks-step-header-open-bg: #161b22;--color-checks-step-error-text: #f85149;--color-checks-step-warning-text: #d29922;--color-checks-logline-text: #7d8590;--color-checks-logline-num-text: #6e7681;--color-checks-logline-debug-text: #a371f7;--color-checks-logline-error-text: #7d8590;--color-checks-logline-error-num-text: #6e7681;--color-checks-logline-error-bg: rgba(248,81,73,.1);--color-checks-logline-warning-text: #7d8590;--color-checks-logline-warning-num-text: #d29922;--color-checks-logline-warning-bg: rgba(187,128,9,.15);--color-checks-logline-command-text: #2f81f7;--color-checks-logline-section-text: #3fb950;--color-checks-ansi-black: #0d1117;--color-checks-ansi-black-bright: #161b22;--color-checks-ansi-white: #b1bac4;--color-checks-ansi-white-bright: #b1bac4;--color-checks-ansi-gray: #6e7681;--color-checks-ansi-red: #ff7b72;--color-checks-ansi-red-bright: #ffa198;--color-checks-ansi-green: #3fb950;--color-checks-ansi-green-bright: #56d364;--color-checks-ansi-yellow: #d29922;--color-checks-ansi-yellow-bright: #e3b341;--color-checks-ansi-blue: #58a6ff;--color-checks-ansi-blue-bright: #79c0ff;--color-checks-ansi-magenta: #bc8cff;--color-checks-ansi-magenta-bright: #d2a8ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #0d1117;--color-project-sidebar-bg: #161b22;--color-project-gradient-in: #161b22;--color-project-gradient-out: rgba(22,27,34,0);--color-mktg-btn-bg: #f6f8fa;--color-mktg-btn-shadow-outline: rgb(255 255 255 / 25%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(255 255 255 / 25%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 4px 7px rgba(0, 0, 0, .15), 0 100px 80px rgba(255, 255, 255, .02), 0 42px 33px rgba(255, 255, 255, .024), 0 22px 18px rgba(255, 255, 255, .028), 0 12px 10px rgba(255, 255, 255, .034), 0 7px 5px rgba(255, 255, 255, .04), 0 3px 2px rgba(255, 255, 255, .07);--color-mktg-btn-shadow-hover-muted: rgb(255 255 255) 0 0 0 2px inset;--color-control-border-color-emphasis: #606771;--color-avatar-bg: rgba(255,255,255,.1);--color-avatar-border: rgba(240,246,252,.1);--color-avatar-stack-fade: #30363d;--color-avatar-stack-fade-more: #21262d;--color-avatar-child-shadow: 0 0 0 2px #0d1117;--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: #484f58;--color-select-menu-tap-highlight: rgba(48,54,61,.5);--color-select-menu-tap-focus-bg: #0c2d6b;--color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1,4,9,.85);--color-overlay-backdrop: rgba(22,27,34,.4);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #161b22;--color-header-divider: #8b949e;--color-header-logo: #f0f6fc;--color-header-search-bg: #0d1117;--color-header-search-border: #30363d;--color-sidenav-selected-bg: #21262d;--color-menu-bg-active: #161b22;--color-input-disabled-bg: rgba(110,118,129,0);--color-timeline-badge-bg: #21262d;--color-ansi-black: #484f58;--color-ansi-black-bright: #6e7681;--color-ansi-white: #b1bac4;--color-ansi-white-bright: #ffffff;--color-ansi-gray: #6e7681;--color-ansi-red: #ff7b72;--color-ansi-red-bright: #ffa198;--color-ansi-green: #3fb950;--color-ansi-green-bright: #56d364;--color-ansi-yellow: #d29922;--color-ansi-yellow-bright: #e3b341;--color-ansi-blue: #58a6ff;--color-ansi-blue-bright: #79c0ff;--color-ansi-magenta: #bc8cff;--color-ansi-magenta-bright: #d2a8ff;--color-ansi-cyan: #39c5cf;--color-ansi-cyan-bright: #56d4dd;--color-btn-text: #c9d1d9;--color-btn-bg: #21262d;--color-btn-border: rgba(240,246,252,.1);--color-btn-shadow: 0 0 transparent;--color-btn-inset-shadow: 0 0 transparent;--color-btn-hover-bg: #30363d;--color-btn-hover-border: #8b949e;--color-btn-active-bg: hsla(212,12%,18%,1);--color-btn-active-border: #6e7681;--color-btn-selected-bg: #161b22;--color-btn-counter-bg: #30363d;--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #238636;--color-btn-primary-border: rgba(240,246,252,.1);--color-btn-primary-shadow: 0 0 transparent;--color-btn-primary-inset-shadow: 0 0 transparent;--color-btn-primary-hover-bg: #2ea043;--color-btn-primary-hover-border: rgba(240,246,252,.1);--color-btn-primary-selected-bg: #238636;--color-btn-primary-selected-shadow: 0 0 transparent;--color-btn-primary-disabled-text: rgba(255,255,255,.5);--color-btn-primary-disabled-bg: rgba(35,134,54,.6);--color-btn-primary-disabled-border: rgba(240,246,252,.1);--color-btn-primary-icon: #ffffff;--color-btn-primary-counter-bg: rgba(4,38,15,.2);--color-btn-outline-text: #388bfd;--color-btn-outline-hover-text: #58a6ff;--color-btn-outline-hover-bg: #30363d;--color-btn-outline-hover-border: rgba(240,246,252,.1);--color-btn-outline-hover-shadow: 0 1px 0 rgba(1,4,9,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(5,29,77,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: #0d419d;--color-btn-outline-selected-border: rgba(240,246,252,.1);--color-btn-outline-selected-shadow: 0 0 transparent;--color-btn-outline-disabled-text: rgba(88,166,255,.5);--color-btn-outline-disabled-bg: #0d1117;--color-btn-outline-disabled-counter-bg: rgba(31,111,235,.05);--color-btn-outline-counter-bg: rgba(5,29,77,.2);--color-btn-outline-hover-counter-fg: #58a6ff;--color-btn-outline-disabled-counter-fg: rgba(47,129,247,.5);--color-btn-outline-counter-fg: #388bfd;--color-btn-danger-text: #f85149;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #da3633;--color-btn-danger-hover-border: #f85149;--color-btn-danger-hover-shadow: 0 0 transparent;--color-btn-danger-hover-inset-shadow: 0 0 transparent;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: #b62324;--color-btn-danger-selected-border: #ff7b72;--color-btn-danger-selected-shadow: 0 0 transparent;--color-btn-danger-disabled-text: rgba(248,81,73,.5);--color-btn-danger-disabled-bg: #0d1117;--color-btn-danger-disabled-counter-bg: rgba(218,54,51,.05);--color-btn-danger-counter-bg: rgba(73,2,2,.2);--color-btn-danger-icon: #f85149;--color-btn-danger-counter-fg: #f85149;--color-btn-danger-disabled-counter-fg: rgba(248,81,73,.5);--color-btn-danger-hover-counter-fg: #ffffff;--color-underlinenav-icon: #6e7681;--color-underlinenav-border-hover: rgba(110,118,129,.4);--color-action-list-item-inline-divider: rgba(48,54,61,.48);--color-action-list-item-default-hover-bg: rgba(177,186,196,.12);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(177,186,196,.2);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(177,186,196,.08);--color-action-list-item-danger-hover-bg: rgba(248,81,73,.16);--color-action-list-item-danger-active-bg: rgba(248,81,73,.24);--color-action-list-item-danger-hover-text: #ff7b72;--color-switch-track-bg: rgba(110,118,129,.1);--color-switch-track-hover-bg: hsla(215,8%,72%,.1);--color-switch-track-active-bg: rgba(110,118,129,.4);--color-switch-track-disabled-bg: #21262d;--color-switch-track-fg: #7d8590;--color-switch-track-disabled-fg: #010409;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: rgba(31,111,235,.35);--color-switch-track-checked-hover-bg: rgba(31,111,235,.5);--color-switch-track-checked-active-bg: rgba(31,111,235,.65);--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #010409;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #0d1117;--color-switch-knob-border: #606771;--color-switch-knob-disabled-bg: #161b22;--color-switch-knob-checked-bg: #0d1117;--color-switch-knob-checked-disabled-bg: #161b22;--color-switch-knob-checked-border: rgba(31,111,235,.35);--color-segmented-control-bg: rgba(110,118,129,.1);--color-segmented-control-button-bg: #0d1117;--color-segmented-control-button-hover-bg: #30363d;--color-segmented-control-button-active-bg: #21262d;--color-segmented-control-button-selected-border: #6e7681;--color-tree-view-item-chevron-hover-bg: rgba(177,186,196,.12);--color-tree-view-item-directory-fill: #7d8590;--color-fg-default: #e6edf3;--color-fg-muted: #7d8590;--color-fg-subtle: #6e7681;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #0d1117;--color-canvas-overlay: #161b22;--color-canvas-inset: #010409;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-border-subtle: rgba(240,246,252,.1);--color-shadow-small: 0 0 transparent;--color-shadow-medium: 0 3px 6px #010409;--color-shadow-large: 0 8px 24px #010409;--color-shadow-extra-large: 0 12px 48px #010409;--color-neutral-emphasis-plus: #6e7681;--color-neutral-emphasis: #6e7681;--color-neutral-muted: rgba(110,118,129,.4);--color-neutral-subtle: rgba(110,118,129,.1);--color-accent-fg: #2f81f7;--color-accent-emphasis: #1f6feb;--color-accent-muted: rgba(56,139,253,.4);--color-accent-subtle: rgba(56,139,253,.1);--color-success-fg: #3fb950;--color-success-emphasis: #238636;--color-success-muted: rgba(46,160,67,.4);--color-success-subtle: rgba(46,160,67,.15);--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-attention-muted: rgba(187,128,9,.4);--color-attention-subtle: rgba(187,128,9,.15);--color-severe-fg: #db6d28;--color-severe-emphasis: #bd561d;--color-severe-muted: rgba(219,109,40,.4);--color-severe-subtle: rgba(219,109,40,.1);--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-danger-muted: rgba(248,81,73,.4);--color-danger-subtle: rgba(248,81,73,.1);--color-open-fg: #3fb950;--color-open-emphasis: #238636;--color-open-muted: rgba(46,160,67,.4);--color-open-subtle: rgba(46,160,67,.15);--color-closed-fg: #f85149;--color-closed-emphasis: #da3633;--color-closed-muted: rgba(248,81,73,.4);--color-closed-subtle: rgba(248,81,73,.15);--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-done-muted: rgba(163,113,247,.4);--color-done-subtle: rgba(163,113,247,.1);--color-sponsors-fg: #db61a2;--color-sponsors-emphasis: #bf4b8a;--color-sponsors-muted: rgba(219,97,162,.4);--color-sponsors-subtle: rgba(219,97,162,.1);--color-primer-fg-disabled: #484f58;--color-primer-canvas-backdrop: rgba(1,4,9,.8);--color-primer-canvas-sticky: rgba(13,17,23,.95);--color-primer-border-active: #f78166;--color-primer-border-contrast: rgba(255,255,255,.2);--color-primer-shadow-highlight: 0 0 transparent;--color-primer-shadow-inset: 0 0 transparent;--color-scale-black: #010409;--color-scale-white: #ffffff;--color-scale-gray-0: #f0f6fc;--color-scale-gray-1: #c9d1d9;--color-scale-gray-2: #b1bac4;--color-scale-gray-3: #8b949e;--color-scale-gray-4: #6e7681;--color-scale-gray-5: #484f58;--color-scale-gray-6: #30363d;--color-scale-gray-7: #21262d;--color-scale-gray-8: #161b22;--color-scale-gray-9: #0d1117;--color-scale-blue-0: #cae8ff;--color-scale-blue-1: #a5d6ff;--color-scale-blue-2: #79c0ff;--color-scale-blue-3: #58a6ff;--color-scale-blue-4: #388bfd;--color-scale-blue-5: #1f6feb;--color-scale-blue-6: #1158c7;--color-scale-blue-7: #0d419d;--color-scale-blue-8: #0c2d6b;--color-scale-blue-9: #051d4d;--color-scale-green-0: #aff5b4;--color-scale-green-1: #7ee787;--color-scale-green-2: #56d364;--color-scale-green-3: #3fb950;--color-scale-green-4: #2ea043;--color-scale-green-5: #238636;--color-scale-green-6: #196c2e;--color-scale-green-7: #0f5323;--color-scale-green-8: #033a16;--color-scale-green-9: #04260f;--color-scale-yellow-0: #f8e3a1;--color-scale-yellow-1: #f2cc60;--color-scale-yellow-2: #e3b341;--color-scale-yellow-3: #d29922;--color-scale-yellow-4: #bb8009;--color-scale-yellow-5: #9e6a03;--color-scale-yellow-6: #845306;--color-scale-yellow-7: #693e00;--color-scale-yellow-8: #4b2900;--color-scale-yellow-9: #341a00;--color-scale-orange-0: #ffdfb6;--color-scale-orange-1: #ffc680;--color-scale-orange-2: #ffa657;--color-scale-orange-3: #f0883e;--color-scale-orange-4: #db6d28;--color-scale-orange-5: #bd561d;--color-scale-orange-6: #9b4215;--color-scale-orange-7: #762d0a;--color-scale-orange-8: #5a1e02;--color-scale-orange-9: #3d1300;--color-scale-red-0: #ffdcd7;--color-scale-red-1: #ffc1ba;--color-scale-red-2: #ffa198;--color-scale-red-3: #ff7b72;--color-scale-red-4: #f85149;--color-scale-red-5: #da3633;--color-scale-red-6: #b62324;--color-scale-red-7: #8e1519;--color-scale-red-8: #67060c;--color-scale-red-9: #490202;--color-scale-purple-0: #eddeff;--color-scale-purple-1: #e2c5ff;--color-scale-purple-2: #d2a8ff;--color-scale-purple-3: #bc8cff;--color-scale-purple-4: #a371f7;--color-scale-purple-5: #8957e5;--color-scale-purple-6: #6e40c9;--color-scale-purple-7: #553098;--color-scale-purple-8: #3c1e70;--color-scale-purple-9: #271052;--color-scale-pink-0: #ffdaec;--color-scale-pink-1: #ffbedd;--color-scale-pink-2: #ff9bce;--color-scale-pink-3: #f778ba;--color-scale-pink-4: #db61a2;--color-scale-pink-5: #bf4b8a;--color-scale-pink-6: #9e3670;--color-scale-pink-7: #7d2457;--color-scale-pink-8: #5e103e;--color-scale-pink-9: #42062a;--color-scale-coral-0: #ffddd2;--color-scale-coral-1: #ffc2b2;--color-scale-coral-2: #ffa28b;--color-scale-coral-3: #f78166;--color-scale-coral-4: #ea6045;--color-scale-coral-5: #cf462d;--color-scale-coral-6: #ac3220;--color-scale-coral-7: #872012;--color-scale-coral-8: #640d04;--color-scale-coral-9: #460701}.code-diff-view[theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=dark] code.hljs{padding:3px 5px}.code-diff-view[theme=dark] .hljs{color:#c9d1d9;background:#0d1117}.code-diff-view[theme=dark] .hljs-doctag,.code-diff-view[theme=dark] .hljs-keyword,.code-diff-view[theme=dark] .hljs-meta .hljs-keyword,.code-diff-view[theme=dark] .hljs-template-tag,.code-diff-view[theme=dark] .hljs-template-variable,.code-diff-view[theme=dark] .hljs-type,.code-diff-view[theme=dark] .hljs-variable.language_{color:#ff7b72}.code-diff-view[theme=dark] .hljs-title,.code-diff-view[theme=dark] .hljs-title.class_,.code-diff-view[theme=dark] .hljs-title.class_.inherited__,.code-diff-view[theme=dark] .hljs-title.function_{color:#d2a8ff}.code-diff-view[theme=dark] .hljs-attr,.code-diff-view[theme=dark] .hljs-attribute,.code-diff-view[theme=dark] .hljs-literal,.code-diff-view[theme=dark] .hljs-meta,.code-diff-view[theme=dark] .hljs-number,.code-diff-view[theme=dark] .hljs-operator,.code-diff-view[theme=dark] .hljs-variable,.code-diff-view[theme=dark] .hljs-selector-attr,.code-diff-view[theme=dark] .hljs-selector-class,.code-diff-view[theme=dark] .hljs-selector-id{color:#79c0ff}.code-diff-view[theme=dark] .hljs-regexp,.code-diff-view[theme=dark] .hljs-string,.code-diff-view[theme=dark] .hljs-meta .hljs-string{color:#a5d6ff}.code-diff-view[theme=dark] .hljs-built_in,.code-diff-view[theme=dark] .hljs-symbol{color:#ffa657}.code-diff-view[theme=dark] .hljs-comment,.code-diff-view[theme=dark] .hljs-code,.code-diff-view[theme=dark] .hljs-formula{color:#8b949e}.code-diff-view[theme=dark] .hljs-name,.code-diff-view[theme=dark] .hljs-quote,.code-diff-view[theme=dark] .hljs-selector-tag,.code-diff-view[theme=dark] .hljs-selector-pseudo{color:#7ee787}.code-diff-view[theme=dark] .hljs-subst{color:#c9d1d9}.code-diff-view[theme=dark] .hljs-section{color:#1f6feb;font-weight:700}.code-diff-view[theme=dark] .hljs-bullet{color:#f2cc60}.code-diff-view[theme=dark] .hljs-emphasis{color:#c9d1d9;font-style:italic}.code-diff-view[theme=dark] .hljs-strong{color:#c9d1d9;font-weight:700}.code-diff-view[theme=dark] .hljs-addition{color:#aff5b4;background-color:#033a16}.code-diff-view[theme=dark] .hljs-deletion{color:#ffdcd7;background-color:#67060c}.code-diff-view{position:relative;margin-top:16px;margin-bottom:16px;border:1px solid var(--color-border-default, #ddd);border-radius:6px;overflow-y:auto}.code-diff-view *{position:static;box-sizing:border-box}.code-diff-view .file-header{position:sticky;top:0;z-index:1;background-color:var(--color-canvas-subtle);border-bottom:1px solid var(--color-border-default);padding:8px 16px;font-size:12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.code-diff-view .file-header .file-info{display:flex;justify-content:space-between;align-items:center;margin-left:8px;height:24px}.code-diff-view .file-header .file-info .info-left{color:var(--color-fg-default)}.code-diff-view .file-header .file-info .info-right{display:flex;justify-content:space-between;align-items:center;width:50%}.code-diff-view .file-header .file-info .diff-stat{display:inline-flex;align-items:center;gap:8px}.code-diff-view .file-header .file-info .diff-stat .diff-stat-added{color:var(--color-diffstat-addition-bg)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-deleted{color:var(--color-danger-emphasis)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-ignored{color:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar{margin-left:auto;margin-right:1rem}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button{background-color:transparent;color:var(--color-fg-subtle);border:none}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button svg{fill:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button:hover{background-color:var(--color-btn-outline-hover-border)}.code-diff-view table{border-spacing:0}.code-diff-view .diff-table{width:100%}.code-diff-view .diff-table .blob-num{position:relative;width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:20px;color:var(--color-fg-subtle);text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.code-diff-view .diff-table .blob-num-deletion{color:var(--color-diff-blob-deletion-num-text);background-color:var(--color-diff-blob-deletion-num-bg);border-color:var(--color-danger-emphasis)}.code-diff-view .diff-table .blob-num-addition{color:var(--color-diff-blob-addition-num-text);background-color:var(--color-diff-blob-addition-num-bg);border-color:var(--color-success-emphasis)}.code-diff-view .diff-table .blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}.code-diff-view .diff-table .blob-code .blob-code-inner{display:table-cell;overflow:visible;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;color:var(--color-fg-default);word-wrap:anywhere;white-space:pre-wrap}.code-diff-view .diff-table .blob-code-deletion{background-color:var(--color-diff-blob-deletion-line-bg);outline:1px dashed transparent}.code-diff-view .diff-table .blob-code-deletion .x{color:var(--color-diff-blob-deletion-fg);background-color:var(--color-diff-blob-deletion-word-bg)}.code-diff-view .diff-table .blob-code-addition{background-color:var(--color-diff-blob-addition-line-bg);outline:1px dotted transparent}.code-diff-view .diff-table .blob-code-addition .x{color:var(--color-diff-blob-addition-fg);background-color:var(--color-diff-blob-addition-word-bg)}.code-diff-view .diff-table .current-diff{border:1px solid var(--color-border-muted)}.code-diff-view .diff-table .blob-code-context,.code-diff-view .diff-table .blob-code-addition,.code-diff-view .diff-table .blob-code-deletion{padding-left:22px!important}.code-diff-view .diff-table .blob-code-marker:before{position:absolute;top:1px;left:8px;padding-right:8px;content:attr(data-code-marker)}.code-diff-view .diff-table .blob-num-hunk{background-color:var(--color-diff-blob-hunk-num-bg)}.code-diff-view .diff-table .blob-code-hunk{background-color:var(--color-accent-subtle)}.code-diff-view .file-diff-split{table-layout:fixed}.code-diff-view .file-diff-split .blob-code+.blob-num{border-left:1px solid var(--color-border-muted)}.code-diff-view .file-diff-split .no-select{user-select:none}.code-diff-view .empty-cell{cursor:default;background-color:var(--color-neutral-subtle);border-right-color:var(--color-border-muted)}")),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
  2. import Ln, { defineComponent as be, computed as he, ref as We, watch as On } from "vue";
  3. Ln.util.warn;
  4. function ne() {
  5. }
  6. ne.prototype = {
  7. diff: function(e, s) {
  8. var u = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, h = u.callback;
  9. typeof u == "function" && (h = u, u = {}), this.options = u;
  10. var t = this;
  11. function r(_) {
  12. return h ? (setTimeout(function() {
  13. h(void 0, _);
  14. }, 0), !0) : _;
  15. }
  16. e = this.castInput(e), s = this.castInput(s), e = this.removeEmpty(this.tokenize(e)), s = this.removeEmpty(this.tokenize(s));
  17. var i = s.length, a = e.length, o = 1, l = i + a;
  18. u.maxEditLength && (l = Math.min(l, u.maxEditLength));
  19. var c = [{
  20. newPos: -1,
  21. components: []
  22. }], f = this.extractCommon(c[0], s, e, 0);
  23. if (c[0].newPos + 1 >= i && f + 1 >= a)
  24. return r([{
  25. value: this.join(s),
  26. count: s.length
  27. }]);
  28. function g() {
  29. for (var _ = -1 * o; _ <= o; _ += 2) {
  30. var p = void 0, v = c[_ - 1], m = c[_ + 1], E = (m ? m.newPos : 0) - _;
  31. v && (c[_ - 1] = void 0);
  32. var A = v && v.newPos + 1 < i, S = m && 0 <= E && E < a;
  33. if (!A && !S) {
  34. c[_] = void 0;
  35. continue;
  36. }
  37. if (!A || S && v.newPos < m.newPos ? (p = kn(m), t.pushComponent(p.components, void 0, !0)) : (p = v, p.newPos++, t.pushComponent(p.components, !0, void 0)), E = t.extractCommon(p, s, e, _), p.newPos + 1 >= i && E + 1 >= a)
  38. return r(In(t, p.components, s, e, t.useLongestToken));
  39. c[_] = p;
  40. }
  41. o++;
  42. }
  43. if (h)
  44. (function _() {
  45. setTimeout(function() {
  46. if (o > l)
  47. return h();
  48. g() || _();
  49. }, 0);
  50. })();
  51. else
  52. for (; o <= l; ) {
  53. var d = g();
  54. if (d)
  55. return d;
  56. }
  57. },
  58. pushComponent: function(e, s, u) {
  59. var h = e[e.length - 1];
  60. h && h.added === s && h.removed === u ? e[e.length - 1] = {
  61. count: h.count + 1,
  62. added: s,
  63. removed: u
  64. } : e.push({
  65. count: 1,
  66. added: s,
  67. removed: u
  68. });
  69. },
  70. extractCommon: function(e, s, u, h) {
  71. for (var t = s.length, r = u.length, i = e.newPos, a = i - h, o = 0; i + 1 < t && a + 1 < r && this.equals(s[i + 1], u[a + 1]); )
  72. i++, a++, o++;
  73. return o && e.components.push({
  74. count: o
  75. }), e.newPos = i, a;
  76. },
  77. equals: function(e, s) {
  78. return this.options.comparator ? this.options.comparator(e, s) : e === s || this.options.ignoreCase && e.toLowerCase() === s.toLowerCase();
  79. },
  80. removeEmpty: function(e) {
  81. for (var s = [], u = 0; u < e.length; u++)
  82. e[u] && s.push(e[u]);
  83. return s;
  84. },
  85. castInput: function(e) {
  86. return e;
  87. },
  88. tokenize: function(e) {
  89. return e.split("");
  90. },
  91. join: function(e) {
  92. return e.join("");
  93. }
  94. };
  95. function In(n, e, s, u, h) {
  96. for (var t = 0, r = e.length, i = 0, a = 0; t < r; t++) {
  97. var o = e[t];
  98. if (o.removed) {
  99. if (o.value = n.join(u.slice(a, a + o.count)), a += o.count, t && e[t - 1].added) {
  100. var c = e[t - 1];
  101. e[t - 1] = e[t], e[t] = c;
  102. }
  103. } else {
  104. if (!o.added && h) {
  105. var l = s.slice(i, i + o.count);
  106. l = l.map(function(g, d) {
  107. var _ = u[a + d];
  108. return _.length > g.length ? _ : g;
  109. }), o.value = n.join(l);
  110. } else
  111. o.value = n.join(s.slice(i, i + o.count));
  112. i += o.count, o.added || (a += o.count);
  113. }
  114. }
  115. var f = e[r - 1];
  116. return r > 1 && typeof f.value == "string" && (f.added || f.removed) && n.equals("", f.value) && (e[r - 2].value += f.value, e.pop()), e;
  117. }
  118. function kn(n) {
  119. return {
  120. newPos: n.newPos,
  121. components: n.components.slice(0)
  122. };
  123. }
  124. var Bn = new ne();
  125. function $n(n, e, s) {
  126. return Bn.diff(n, e, s);
  127. }
  128. function Un(n, e) {
  129. if (typeof n == "function")
  130. e.callback = n;
  131. else if (n)
  132. for (var s in n)
  133. n.hasOwnProperty(s) && (e[s] = n[s]);
  134. return e;
  135. }
  136. var Qe = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, Ve = /\S/, Be = new ne();
  137. Be.equals = function(n, e) {
  138. return this.options.ignoreCase && (n = n.toLowerCase(), e = e.toLowerCase()), n === e || this.options.ignoreWhitespace && !Ve.test(n) && !Ve.test(e);
  139. };
  140. Be.tokenize = function(n) {
  141. for (var e = n.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/), s = 0; s < e.length - 1; s++)
  142. !e[s + 1] && e[s + 2] && Qe.test(e[s]) && Qe.test(e[s + 2]) && (e[s] += e[s + 2], e.splice(s + 1, 2), s--);
  143. return e;
  144. };
  145. function Pn(n, e, s) {
  146. return s = Un(s, {
  147. ignoreWhitespace: !0
  148. }), Be.diff(n, e, s);
  149. }
  150. var rn = new ne();
  151. rn.tokenize = function(n) {
  152. var e = [], s = n.split(/(\n|\r\n)/);
  153. s[s.length - 1] || s.pop();
  154. for (var u = 0; u < s.length; u++) {
  155. var h = s[u];
  156. u % 2 && !this.options.newlineIsToken ? e[e.length - 1] += h : (this.options.ignoreWhitespace && (h = h.trim()), e.push(h));
  157. }
  158. return e;
  159. };
  160. var xn = new ne();
  161. xn.tokenize = function(n) {
  162. return n.split(/(\S.+?[.!?])(?=\s+|$)/);
  163. };
  164. var Fn = new ne();
  165. Fn.tokenize = function(n) {
  166. return n.split(/([{}:;,]|\s+)/);
  167. };
  168. function Ne(n) {
  169. "@babel/helpers - typeof";
  170. return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Ne = function(e) {
  171. return typeof e;
  172. } : Ne = function(e) {
  173. return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
  174. }, Ne(n);
  175. }
  176. var Hn = Object.prototype.toString, de = new ne();
  177. de.useLongestToken = !0;
  178. de.tokenize = rn.tokenize;
  179. de.castInput = function(n) {
  180. var e = this.options, s = e.undefinedReplacement, u = e.stringifyReplacer, h = u === void 0 ? function(t, r) {
  181. return typeof r == "undefined" ? s : r;
  182. } : u;
  183. return typeof n == "string" ? n : JSON.stringify(Ie(n, null, null, h), h, " ");
  184. };
  185. de.equals = function(n, e) {
  186. return ne.prototype.equals.call(de, n.replace(/,([\r\n])/g, "$1"), e.replace(/,([\r\n])/g, "$1"));
  187. };
  188. function Ie(n, e, s, u, h) {
  189. e = e || [], s = s || [], u && (n = u(h, n));
  190. var t;
  191. for (t = 0; t < e.length; t += 1)
  192. if (e[t] === n)
  193. return s[t];
  194. var r;
  195. if (Hn.call(n) === "[object Array]") {
  196. for (e.push(n), r = new Array(n.length), s.push(r), t = 0; t < n.length; t += 1)
  197. r[t] = Ie(n[t], e, s, u, h);
  198. return e.pop(), s.pop(), r;
  199. }
  200. if (n && n.toJSON && (n = n.toJSON()), Ne(n) === "object" && n !== null) {
  201. e.push(n), r = {}, s.push(r);
  202. var i = [], a;
  203. for (a in n)
  204. n.hasOwnProperty(a) && i.push(a);
  205. for (i.sort(), t = 0; t < i.length; t += 1)
  206. a = i[t], r[a] = Ie(n[a], e, s, u, a);
  207. e.pop(), s.pop();
  208. } else
  209. r = n;
  210. return r;
  211. }
  212. var ke = new ne();
  213. ke.tokenize = function(n) {
  214. return n.slice();
  215. };
  216. ke.join = ke.removeEmpty = function(n) {
  217. return n;
  218. };
  219. function zn(n) {
  220. return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
  221. }
  222. var sn = { exports: {} };
  223. (function(n) {
  224. var e = function() {
  225. this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = 0.5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = 0.5, this.Patch_Margin = 4, this.Match_MaxBits = 32;
  226. }, s = -1, u = 1, h = 0;
  227. e.Diff = function(t, r) {
  228. return [t, r];
  229. }, e.prototype.diff_main = function(t, r, i, a) {
  230. typeof a == "undefined" && (this.Diff_Timeout <= 0 ? a = Number.MAX_VALUE : a = (/* @__PURE__ */ new Date()).getTime() + this.Diff_Timeout * 1e3);
  231. var o = a;
  232. if (t == null || r == null)
  233. throw new Error("Null input. (diff_main)");
  234. if (t == r)
  235. return t ? [new e.Diff(h, t)] : [];
  236. typeof i == "undefined" && (i = !0);
  237. var l = i, c = this.diff_commonPrefix(t, r), f = t.substring(0, c);
  238. t = t.substring(c), r = r.substring(c), c = this.diff_commonSuffix(t, r);
  239. var g = t.substring(t.length - c);
  240. t = t.substring(0, t.length - c), r = r.substring(0, r.length - c);
  241. var d = this.diff_compute_(t, r, l, o);
  242. return f && d.unshift(new e.Diff(h, f)), g && d.push(new e.Diff(h, g)), this.diff_cleanupMerge(d), d;
  243. }, e.prototype.diff_compute_ = function(t, r, i, a) {
  244. var o;
  245. if (!t)
  246. return [new e.Diff(u, r)];
  247. if (!r)
  248. return [new e.Diff(s, t)];
  249. var l = t.length > r.length ? t : r, c = t.length > r.length ? r : t, f = l.indexOf(c);
  250. if (f != -1)
  251. return o = [
  252. new e.Diff(u, l.substring(0, f)),
  253. new e.Diff(h, c),
  254. new e.Diff(
  255. u,
  256. l.substring(f + c.length)
  257. )
  258. ], t.length > r.length && (o[0][0] = o[2][0] = s), o;
  259. if (c.length == 1)
  260. return [
  261. new e.Diff(s, t),
  262. new e.Diff(u, r)
  263. ];
  264. var g = this.diff_halfMatch_(t, r);
  265. if (g) {
  266. var d = g[0], _ = g[1], p = g[2], v = g[3], m = g[4], E = this.diff_main(d, p, i, a), A = this.diff_main(_, v, i, a);
  267. return E.concat(
  268. [new e.Diff(h, m)],
  269. A
  270. );
  271. }
  272. return i && t.length > 100 && r.length > 100 ? this.diff_lineMode_(t, r, a) : this.diff_bisect_(t, r, a);
  273. }, e.prototype.diff_lineMode_ = function(t, r, i) {
  274. var a = this.diff_linesToChars_(t, r);
  275. t = a.chars1, r = a.chars2;
  276. var o = a.lineArray, l = this.diff_main(t, r, !1, i);
  277. this.diff_charsToLines_(l, o), this.diff_cleanupSemantic(l), l.push(new e.Diff(h, ""));
  278. for (var c = 0, f = 0, g = 0, d = "", _ = ""; c < l.length; ) {
  279. switch (l[c][0]) {
  280. case u:
  281. g++, _ += l[c][1];
  282. break;
  283. case s:
  284. f++, d += l[c][1];
  285. break;
  286. case h:
  287. if (f >= 1 && g >= 1) {
  288. l.splice(
  289. c - f - g,
  290. f + g
  291. ), c = c - f - g;
  292. for (var p = this.diff_main(d, _, !1, i), v = p.length - 1; v >= 0; v--)
  293. l.splice(c, 0, p[v]);
  294. c = c + p.length;
  295. }
  296. g = 0, f = 0, d = "", _ = "";
  297. break;
  298. }
  299. c++;
  300. }
  301. return l.pop(), l;
  302. }, e.prototype.diff_bisect_ = function(t, r, i) {
  303. for (var a = t.length, o = r.length, l = Math.ceil((a + o) / 2), c = l, f = 2 * l, g = new Array(f), d = new Array(f), _ = 0; _ < f; _++)
  304. g[_] = -1, d[_] = -1;
  305. g[c + 1] = 0, d[c + 1] = 0;
  306. for (var p = a - o, v = p % 2 != 0, m = 0, E = 0, A = 0, S = 0, D = 0; D < l && !((/* @__PURE__ */ new Date()).getTime() > i); D++) {
  307. for (var N = -D + m; N <= D - E; N += 2) {
  308. var R = c + N, C;
  309. N == -D || N != D && g[R - 1] < g[R + 1] ? C = g[R + 1] : C = g[R - 1] + 1;
  310. for (var I = C - N; C < a && I < o && t.charAt(C) == r.charAt(I); )
  311. C++, I++;
  312. if (g[R] = C, C > a)
  313. E += 2;
  314. else if (I > o)
  315. m += 2;
  316. else if (v) {
  317. var $ = c + p - N;
  318. if ($ >= 0 && $ < f && d[$] != -1) {
  319. var B = a - d[$];
  320. if (C >= B)
  321. return this.diff_bisectSplit_(t, r, C, I, i);
  322. }
  323. }
  324. }
  325. for (var H = -D + A; H <= D - S; H += 2) {
  326. var $ = c + H, B;
  327. H == -D || H != D && d[$ - 1] < d[$ + 1] ? B = d[$ + 1] : B = d[$ - 1] + 1;
  328. for (var K = B - H; B < a && K < o && t.charAt(a - B - 1) == r.charAt(o - K - 1); )
  329. B++, K++;
  330. if (d[$] = B, B > a)
  331. S += 2;
  332. else if (K > o)
  333. A += 2;
  334. else if (!v) {
  335. var R = c + p - H;
  336. if (R >= 0 && R < f && g[R] != -1) {
  337. var C = g[R], I = c + C - R;
  338. if (B = a - B, C >= B)
  339. return this.diff_bisectSplit_(t, r, C, I, i);
  340. }
  341. }
  342. }
  343. }
  344. return [
  345. new e.Diff(s, t),
  346. new e.Diff(u, r)
  347. ];
  348. }, e.prototype.diff_bisectSplit_ = function(t, r, i, a, o) {
  349. var l = t.substring(0, i), c = r.substring(0, a), f = t.substring(i), g = r.substring(a), d = this.diff_main(l, c, !1, o), _ = this.diff_main(f, g, !1, o);
  350. return d.concat(_);
  351. }, e.prototype.diff_linesToChars_ = function(t, r) {
  352. var i = [], a = {};
  353. i[0] = "";
  354. function o(g) {
  355. for (var d = "", _ = 0, p = -1, v = i.length; p < g.length - 1; ) {
  356. p = g.indexOf(`
  357. `, _), p == -1 && (p = g.length - 1);
  358. var m = g.substring(_, p + 1);
  359. (a.hasOwnProperty ? a.hasOwnProperty(m) : a[m] !== void 0) ? d += String.fromCharCode(a[m]) : (v == l && (m = g.substring(_), p = g.length), d += String.fromCharCode(v), a[m] = v, i[v++] = m), _ = p + 1;
  360. }
  361. return d;
  362. }
  363. var l = 4e4, c = o(t);
  364. l = 65535;
  365. var f = o(r);
  366. return { chars1: c, chars2: f, lineArray: i };
  367. }, e.prototype.diff_charsToLines_ = function(t, r) {
  368. for (var i = 0; i < t.length; i++) {
  369. for (var a = t[i][1], o = [], l = 0; l < a.length; l++)
  370. o[l] = r[a.charCodeAt(l)];
  371. t[i][1] = o.join("");
  372. }
  373. }, e.prototype.diff_commonPrefix = function(t, r) {
  374. if (!t || !r || t.charAt(0) != r.charAt(0))
  375. return 0;
  376. for (var i = 0, a = Math.min(t.length, r.length), o = a, l = 0; i < o; )
  377. t.substring(l, o) == r.substring(l, o) ? (i = o, l = i) : a = o, o = Math.floor((a - i) / 2 + i);
  378. return o;
  379. }, e.prototype.diff_commonSuffix = function(t, r) {
  380. if (!t || !r || t.charAt(t.length - 1) != r.charAt(r.length - 1))
  381. return 0;
  382. for (var i = 0, a = Math.min(t.length, r.length), o = a, l = 0; i < o; )
  383. t.substring(t.length - o, t.length - l) == r.substring(r.length - o, r.length - l) ? (i = o, l = i) : a = o, o = Math.floor((a - i) / 2 + i);
  384. return o;
  385. }, e.prototype.diff_commonOverlap_ = function(t, r) {
  386. var i = t.length, a = r.length;
  387. if (i == 0 || a == 0)
  388. return 0;
  389. i > a ? t = t.substring(i - a) : i < a && (r = r.substring(0, i));
  390. var o = Math.min(i, a);
  391. if (t == r)
  392. return o;
  393. for (var l = 0, c = 1; ; ) {
  394. var f = t.substring(o - c), g = r.indexOf(f);
  395. if (g == -1)
  396. return l;
  397. c += g, (g == 0 || t.substring(o - c) == r.substring(0, c)) && (l = c, c++);
  398. }
  399. }, e.prototype.diff_halfMatch_ = function(t, r) {
  400. if (this.Diff_Timeout <= 0)
  401. return null;
  402. var i = t.length > r.length ? t : r, a = t.length > r.length ? r : t;
  403. if (i.length < 4 || a.length * 2 < i.length)
  404. return null;
  405. var o = this;
  406. function l(E, A, S) {
  407. for (var D = E.substring(S, S + Math.floor(E.length / 4)), N = -1, R = "", C, I, $, B; (N = A.indexOf(D, N + 1)) != -1; ) {
  408. var H = o.diff_commonPrefix(
  409. E.substring(S),
  410. A.substring(N)
  411. ), K = o.diff_commonSuffix(
  412. E.substring(0, S),
  413. A.substring(0, N)
  414. );
  415. R.length < K + H && (R = A.substring(N - K, N) + A.substring(N, N + H), C = E.substring(0, S - K), I = E.substring(S + H), $ = A.substring(0, N - K), B = A.substring(N + H));
  416. }
  417. return R.length * 2 >= E.length ? [
  418. C,
  419. I,
  420. $,
  421. B,
  422. R
  423. ] : null;
  424. }
  425. var c = l(
  426. i,
  427. a,
  428. Math.ceil(i.length / 4)
  429. ), f = l(
  430. i,
  431. a,
  432. Math.ceil(i.length / 2)
  433. ), g;
  434. if (!c && !f)
  435. return null;
  436. f ? c ? g = c[4].length > f[4].length ? c : f : g = f : g = c;
  437. var d, _, p, v;
  438. t.length > r.length ? (d = g[0], _ = g[1], p = g[2], v = g[3]) : (p = g[0], v = g[1], d = g[2], _ = g[3]);
  439. var m = g[4];
  440. return [d, _, p, v, m];
  441. }, e.prototype.diff_cleanupSemantic = function(t) {
  442. for (var r = !1, i = [], a = 0, o = null, l = 0, c = 0, f = 0, g = 0, d = 0; l < t.length; )
  443. t[l][0] == h ? (i[a++] = l, c = g, f = d, g = 0, d = 0, o = t[l][1]) : (t[l][0] == u ? g += t[l][1].length : d += t[l][1].length, o && o.length <= Math.max(c, f) && o.length <= Math.max(
  444. g,
  445. d
  446. ) && (t.splice(
  447. i[a - 1],
  448. 0,
  449. new e.Diff(s, o)
  450. ), t[i[a - 1] + 1][0] = u, a--, a--, l = a > 0 ? i[a - 1] : -1, c = 0, f = 0, g = 0, d = 0, o = null, r = !0)), l++;
  451. for (r && this.diff_cleanupMerge(t), this.diff_cleanupSemanticLossless(t), l = 1; l < t.length; ) {
  452. if (t[l - 1][0] == s && t[l][0] == u) {
  453. var _ = t[l - 1][1], p = t[l][1], v = this.diff_commonOverlap_(_, p), m = this.diff_commonOverlap_(p, _);
  454. v >= m ? (v >= _.length / 2 || v >= p.length / 2) && (t.splice(l, 0, new e.Diff(
  455. h,
  456. p.substring(0, v)
  457. )), t[l - 1][1] = _.substring(0, _.length - v), t[l + 1][1] = p.substring(v), l++) : (m >= _.length / 2 || m >= p.length / 2) && (t.splice(l, 0, new e.Diff(
  458. h,
  459. _.substring(0, m)
  460. )), t[l - 1][0] = u, t[l - 1][1] = p.substring(0, p.length - m), t[l + 1][0] = s, t[l + 1][1] = _.substring(m), l++), l++;
  461. }
  462. l++;
  463. }
  464. }, e.prototype.diff_cleanupSemanticLossless = function(t) {
  465. function r(m, E) {
  466. if (!m || !E)
  467. return 6;
  468. var A = m.charAt(m.length - 1), S = E.charAt(0), D = A.match(e.nonAlphaNumericRegex_), N = S.match(e.nonAlphaNumericRegex_), R = D && A.match(e.whitespaceRegex_), C = N && S.match(e.whitespaceRegex_), I = R && A.match(e.linebreakRegex_), $ = C && S.match(e.linebreakRegex_), B = I && m.match(e.blanklineEndRegex_), H = $ && E.match(e.blanklineStartRegex_);
  469. return B || H ? 5 : I || $ ? 4 : D && !R && C ? 3 : R || C ? 2 : D || N ? 1 : 0;
  470. }
  471. for (var i = 1; i < t.length - 1; ) {
  472. if (t[i - 1][0] == h && t[i + 1][0] == h) {
  473. var a = t[i - 1][1], o = t[i][1], l = t[i + 1][1], c = this.diff_commonSuffix(a, o);
  474. if (c) {
  475. var f = o.substring(o.length - c);
  476. a = a.substring(0, a.length - c), o = f + o.substring(0, o.length - c), l = f + l;
  477. }
  478. for (var g = a, d = o, _ = l, p = r(a, o) + r(o, l); o.charAt(0) === l.charAt(0); ) {
  479. a += o.charAt(0), o = o.substring(1) + l.charAt(0), l = l.substring(1);
  480. var v = r(a, o) + r(o, l);
  481. v >= p && (p = v, g = a, d = o, _ = l);
  482. }
  483. t[i - 1][1] != g && (g ? t[i - 1][1] = g : (t.splice(i - 1, 1), i--), t[i][1] = d, _ ? t[i + 1][1] = _ : (t.splice(i + 1, 1), i--));
  484. }
  485. i++;
  486. }
  487. }, e.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/, e.whitespaceRegex_ = /\s/, e.linebreakRegex_ = /[\r\n]/, e.blanklineEndRegex_ = /\n\r?\n$/, e.blanklineStartRegex_ = /^\r?\n\r?\n/, e.prototype.diff_cleanupEfficiency = function(t) {
  488. for (var r = !1, i = [], a = 0, o = null, l = 0, c = !1, f = !1, g = !1, d = !1; l < t.length; )
  489. t[l][0] == h ? (t[l][1].length < this.Diff_EditCost && (g || d) ? (i[a++] = l, c = g, f = d, o = t[l][1]) : (a = 0, o = null), g = d = !1) : (t[l][0] == s ? d = !0 : g = !0, o && (c && f && g && d || o.length < this.Diff_EditCost / 2 && c + f + g + d == 3) && (t.splice(
  490. i[a - 1],
  491. 0,
  492. new e.Diff(s, o)
  493. ), t[i[a - 1] + 1][0] = u, a--, o = null, c && f ? (g = d = !0, a = 0) : (a--, l = a > 0 ? i[a - 1] : -1, g = d = !1), r = !0)), l++;
  494. r && this.diff_cleanupMerge(t);
  495. }, e.prototype.diff_cleanupMerge = function(t) {
  496. t.push(new e.Diff(h, ""));
  497. for (var r = 0, i = 0, a = 0, o = "", l = "", c; r < t.length; )
  498. switch (t[r][0]) {
  499. case u:
  500. a++, l += t[r][1], r++;
  501. break;
  502. case s:
  503. i++, o += t[r][1], r++;
  504. break;
  505. case h:
  506. i + a > 1 ? (i !== 0 && a !== 0 && (c = this.diff_commonPrefix(l, o), c !== 0 && (r - i - a > 0 && t[r - i - a - 1][0] == h ? t[r - i - a - 1][1] += l.substring(0, c) : (t.splice(0, 0, new e.Diff(
  507. h,
  508. l.substring(0, c)
  509. )), r++), l = l.substring(c), o = o.substring(c)), c = this.diff_commonSuffix(l, o), c !== 0 && (t[r][1] = l.substring(l.length - c) + t[r][1], l = l.substring(0, l.length - c), o = o.substring(0, o.length - c))), r -= i + a, t.splice(r, i + a), o.length && (t.splice(
  510. r,
  511. 0,
  512. new e.Diff(s, o)
  513. ), r++), l.length && (t.splice(
  514. r,
  515. 0,
  516. new e.Diff(u, l)
  517. ), r++), r++) : r !== 0 && t[r - 1][0] == h ? (t[r - 1][1] += t[r][1], t.splice(r, 1)) : r++, a = 0, i = 0, o = "", l = "";
  518. break;
  519. }
  520. t[t.length - 1][1] === "" && t.pop();
  521. var f = !1;
  522. for (r = 1; r < t.length - 1; )
  523. t[r - 1][0] == h && t[r + 1][0] == h && (t[r][1].substring(t[r][1].length - t[r - 1][1].length) == t[r - 1][1] ? (t[r][1] = t[r - 1][1] + t[r][1].substring(0, t[r][1].length - t[r - 1][1].length), t[r + 1][1] = t[r - 1][1] + t[r + 1][1], t.splice(r - 1, 1), f = !0) : t[r][1].substring(0, t[r + 1][1].length) == t[r + 1][1] && (t[r - 1][1] += t[r + 1][1], t[r][1] = t[r][1].substring(t[r + 1][1].length) + t[r + 1][1], t.splice(r + 1, 1), f = !0)), r++;
  524. f && this.diff_cleanupMerge(t);
  525. }, e.prototype.diff_xIndex = function(t, r) {
  526. var i = 0, a = 0, o = 0, l = 0, c;
  527. for (c = 0; c < t.length && (t[c][0] !== u && (i += t[c][1].length), t[c][0] !== s && (a += t[c][1].length), !(i > r)); c++)
  528. o = i, l = a;
  529. return t.length != c && t[c][0] === s ? l : l + (r - o);
  530. }, e.prototype.diff_prettyHtml = function(t) {
  531. for (var r = [], i = /&/g, a = /</g, o = />/g, l = /\n/g, c = 0; c < t.length; c++) {
  532. var f = t[c][0], g = t[c][1], d = g.replace(i, "&amp;").replace(a, "&lt;").replace(o, "&gt;").replace(l, "&para;<br>");
  533. switch (f) {
  534. case u:
  535. r[c] = '<ins style="background:#e6ffe6;">' + d + "</ins>";
  536. break;
  537. case s:
  538. r[c] = '<del style="background:#ffe6e6;">' + d + "</del>";
  539. break;
  540. case h:
  541. r[c] = "<span>" + d + "</span>";
  542. break;
  543. }
  544. }
  545. return r.join("");
  546. }, e.prototype.diff_text1 = function(t) {
  547. for (var r = [], i = 0; i < t.length; i++)
  548. t[i][0] !== u && (r[i] = t[i][1]);
  549. return r.join("");
  550. }, e.prototype.diff_text2 = function(t) {
  551. for (var r = [], i = 0; i < t.length; i++)
  552. t[i][0] !== s && (r[i] = t[i][1]);
  553. return r.join("");
  554. }, e.prototype.diff_levenshtein = function(t) {
  555. for (var r = 0, i = 0, a = 0, o = 0; o < t.length; o++) {
  556. var l = t[o][0], c = t[o][1];
  557. switch (l) {
  558. case u:
  559. i += c.length;
  560. break;
  561. case s:
  562. a += c.length;
  563. break;
  564. case h:
  565. r += Math.max(i, a), i = 0, a = 0;
  566. break;
  567. }
  568. }
  569. return r += Math.max(i, a), r;
  570. }, e.prototype.diff_toDelta = function(t) {
  571. for (var r = [], i = 0; i < t.length; i++)
  572. switch (t[i][0]) {
  573. case u:
  574. r[i] = "+" + encodeURI(t[i][1]);
  575. break;
  576. case s:
  577. r[i] = "-" + t[i][1].length;
  578. break;
  579. case h:
  580. r[i] = "=" + t[i][1].length;
  581. break;
  582. }
  583. return r.join(" ").replace(/%20/g, " ");
  584. }, e.prototype.diff_fromDelta = function(t, r) {
  585. for (var i = [], a = 0, o = 0, l = r.split(/\t/g), c = 0; c < l.length; c++) {
  586. var f = l[c].substring(1);
  587. switch (l[c].charAt(0)) {
  588. case "+":
  589. try {
  590. i[a++] = new e.Diff(u, decodeURI(f));
  591. } catch (_) {
  592. throw new Error("Illegal escape in diff_fromDelta: " + f);
  593. }
  594. break;
  595. case "-":
  596. case "=":
  597. var g = parseInt(f, 10);
  598. if (isNaN(g) || g < 0)
  599. throw new Error("Invalid number in diff_fromDelta: " + f);
  600. var d = t.substring(o, o += g);
  601. l[c].charAt(0) == "=" ? i[a++] = new e.Diff(h, d) : i[a++] = new e.Diff(s, d);
  602. break;
  603. default:
  604. if (l[c])
  605. throw new Error("Invalid diff operation in diff_fromDelta: " + l[c]);
  606. }
  607. }
  608. if (o != t.length)
  609. throw new Error("Delta length (" + o + ") does not equal source text length (" + t.length + ").");
  610. return i;
  611. }, e.prototype.match_main = function(t, r, i) {
  612. if (t == null || r == null || i == null)
  613. throw new Error("Null input. (match_main)");
  614. return i = Math.max(0, Math.min(i, t.length)), t == r ? 0 : t.length ? t.substring(i, i + r.length) == r ? i : this.match_bitap_(t, r, i) : -1;
  615. }, e.prototype.match_bitap_ = function(t, r, i) {
  616. if (r.length > this.Match_MaxBits)
  617. throw new Error("Pattern too long for this browser.");
  618. var a = this.match_alphabet_(r), o = this;
  619. function l(C, I) {
  620. var $ = C / r.length, B = Math.abs(i - I);
  621. return o.Match_Distance ? $ + B / o.Match_Distance : B ? 1 : $;
  622. }
  623. var c = this.Match_Threshold, f = t.indexOf(r, i);
  624. f != -1 && (c = Math.min(l(0, f), c), f = t.lastIndexOf(r, i + r.length), f != -1 && (c = Math.min(l(0, f), c)));
  625. var g = 1 << r.length - 1;
  626. f = -1;
  627. for (var d, _, p = r.length + t.length, v, m = 0; m < r.length; m++) {
  628. for (d = 0, _ = p; d < _; )
  629. l(m, i + _) <= c ? d = _ : p = _, _ = Math.floor((p - d) / 2 + d);
  630. p = _;
  631. var E = Math.max(1, i - _ + 1), A = Math.min(i + _, t.length) + r.length, S = Array(A + 2);
  632. S[A + 1] = (1 << m) - 1;
  633. for (var D = A; D >= E; D--) {
  634. var N = a[t.charAt(D - 1)];
  635. if (m === 0 ? S[D] = (S[D + 1] << 1 | 1) & N : S[D] = (S[D + 1] << 1 | 1) & N | ((v[D + 1] | v[D]) << 1 | 1) | v[D + 1], S[D] & g) {
  636. var R = l(m, D - 1);
  637. if (R <= c)
  638. if (c = R, f = D - 1, f > i)
  639. E = Math.max(1, 2 * i - f);
  640. else
  641. break;
  642. }
  643. }
  644. if (l(m + 1, i) > c)
  645. break;
  646. v = S;
  647. }
  648. return f;
  649. }, e.prototype.match_alphabet_ = function(t) {
  650. for (var r = {}, i = 0; i < t.length; i++)
  651. r[t.charAt(i)] = 0;
  652. for (var i = 0; i < t.length; i++)
  653. r[t.charAt(i)] |= 1 << t.length - i - 1;
  654. return r;
  655. }, e.prototype.patch_addContext_ = function(t, r) {
  656. if (r.length != 0) {
  657. if (t.start2 === null)
  658. throw Error("patch not initialized");
  659. for (var i = r.substring(t.start2, t.start2 + t.length1), a = 0; r.indexOf(i) != r.lastIndexOf(i) && i.length < this.Match_MaxBits - this.Patch_Margin - this.Patch_Margin; )
  660. a += this.Patch_Margin, i = r.substring(
  661. t.start2 - a,
  662. t.start2 + t.length1 + a
  663. );
  664. a += this.Patch_Margin;
  665. var o = r.substring(t.start2 - a, t.start2);
  666. o && t.diffs.unshift(new e.Diff(h, o));
  667. var l = r.substring(
  668. t.start2 + t.length1,
  669. t.start2 + t.length1 + a
  670. );
  671. l && t.diffs.push(new e.Diff(h, l)), t.start1 -= o.length, t.start2 -= o.length, t.length1 += o.length + l.length, t.length2 += o.length + l.length;
  672. }
  673. }, e.prototype.patch_make = function(t, r, i) {
  674. var a, o;
  675. if (typeof t == "string" && typeof r == "string" && typeof i == "undefined")
  676. a = /** @type {string} */
  677. t, o = this.diff_main(
  678. a,
  679. /** @type {string} */
  680. r,
  681. !0
  682. ), o.length > 2 && (this.diff_cleanupSemantic(o), this.diff_cleanupEfficiency(o));
  683. else if (t && typeof t == "object" && typeof r == "undefined" && typeof i == "undefined")
  684. o = /** @type {!Array.<!diff_match_patch.Diff>} */
  685. t, a = this.diff_text1(o);
  686. else if (typeof t == "string" && r && typeof r == "object" && typeof i == "undefined")
  687. a = /** @type {string} */
  688. t, o = /** @type {!Array.<!diff_match_patch.Diff>} */
  689. r;
  690. else if (typeof t == "string" && typeof r == "string" && i && typeof i == "object")
  691. a = /** @type {string} */
  692. t, o = /** @type {!Array.<!diff_match_patch.Diff>} */
  693. i;
  694. else
  695. throw new Error("Unknown call format to patch_make.");
  696. if (o.length === 0)
  697. return [];
  698. for (var l = [], c = new e.patch_obj(), f = 0, g = 0, d = 0, _ = a, p = a, v = 0; v < o.length; v++) {
  699. var m = o[v][0], E = o[v][1];
  700. switch (!f && m !== h && (c.start1 = g, c.start2 = d), m) {
  701. case u:
  702. c.diffs[f++] = o[v], c.length2 += E.length, p = p.substring(0, d) + E + p.substring(d);
  703. break;
  704. case s:
  705. c.length1 += E.length, c.diffs[f++] = o[v], p = p.substring(0, d) + p.substring(d + E.length);
  706. break;
  707. case h:
  708. E.length <= 2 * this.Patch_Margin && f && o.length != v + 1 ? (c.diffs[f++] = o[v], c.length1 += E.length, c.length2 += E.length) : E.length >= 2 * this.Patch_Margin && f && (this.patch_addContext_(c, _), l.push(c), c = new e.patch_obj(), f = 0, _ = p, g = d);
  709. break;
  710. }
  711. m !== u && (g += E.length), m !== s && (d += E.length);
  712. }
  713. return f && (this.patch_addContext_(c, _), l.push(c)), l;
  714. }, e.prototype.patch_deepCopy = function(t) {
  715. for (var r = [], i = 0; i < t.length; i++) {
  716. var a = t[i], o = new e.patch_obj();
  717. o.diffs = [];
  718. for (var l = 0; l < a.diffs.length; l++)
  719. o.diffs[l] = new e.Diff(a.diffs[l][0], a.diffs[l][1]);
  720. o.start1 = a.start1, o.start2 = a.start2, o.length1 = a.length1, o.length2 = a.length2, r[i] = o;
  721. }
  722. return r;
  723. }, e.prototype.patch_apply = function(t, r) {
  724. if (t.length == 0)
  725. return [r, []];
  726. t = this.patch_deepCopy(t);
  727. var i = this.patch_addPadding(t);
  728. r = i + r + i, this.patch_splitMax(t);
  729. for (var a = 0, o = [], l = 0; l < t.length; l++) {
  730. var c = t[l].start2 + a, f = this.diff_text1(t[l].diffs), g, d = -1;
  731. if (f.length > this.Match_MaxBits ? (g = this.match_main(
  732. r,
  733. f.substring(0, this.Match_MaxBits),
  734. c
  735. ), g != -1 && (d = this.match_main(
  736. r,
  737. f.substring(f.length - this.Match_MaxBits),
  738. c + f.length - this.Match_MaxBits
  739. ), (d == -1 || g >= d) && (g = -1))) : g = this.match_main(r, f, c), g == -1)
  740. o[l] = !1, a -= t[l].length2 - t[l].length1;
  741. else {
  742. o[l] = !0, a = g - c;
  743. var _;
  744. if (d == -1 ? _ = r.substring(g, g + f.length) : _ = r.substring(g, d + this.Match_MaxBits), f == _)
  745. r = r.substring(0, g) + this.diff_text2(t[l].diffs) + r.substring(g + f.length);
  746. else {
  747. var p = this.diff_main(f, _, !1);
  748. if (f.length > this.Match_MaxBits && this.diff_levenshtein(p) / f.length > this.Patch_DeleteThreshold)
  749. o[l] = !1;
  750. else {
  751. this.diff_cleanupSemanticLossless(p);
  752. for (var v = 0, m, E = 0; E < t[l].diffs.length; E++) {
  753. var A = t[l].diffs[E];
  754. A[0] !== h && (m = this.diff_xIndex(p, v)), A[0] === u ? r = r.substring(0, g + m) + A[1] + r.substring(g + m) : A[0] === s && (r = r.substring(0, g + m) + r.substring(g + this.diff_xIndex(
  755. p,
  756. v + A[1].length
  757. ))), A[0] !== s && (v += A[1].length);
  758. }
  759. }
  760. }
  761. }
  762. }
  763. return r = r.substring(i.length, r.length - i.length), [r, o];
  764. }, e.prototype.patch_addPadding = function(t) {
  765. for (var r = this.Patch_Margin, i = "", a = 1; a <= r; a++)
  766. i += String.fromCharCode(a);
  767. for (var a = 0; a < t.length; a++)
  768. t[a].start1 += r, t[a].start2 += r;
  769. var o = t[0], l = o.diffs;
  770. if (l.length == 0 || l[0][0] != h)
  771. l.unshift(new e.Diff(h, i)), o.start1 -= r, o.start2 -= r, o.length1 += r, o.length2 += r;
  772. else if (r > l[0][1].length) {
  773. var c = r - l[0][1].length;
  774. l[0][1] = i.substring(l[0][1].length) + l[0][1], o.start1 -= c, o.start2 -= c, o.length1 += c, o.length2 += c;
  775. }
  776. if (o = t[t.length - 1], l = o.diffs, l.length == 0 || l[l.length - 1][0] != h)
  777. l.push(new e.Diff(h, i)), o.length1 += r, o.length2 += r;
  778. else if (r > l[l.length - 1][1].length) {
  779. var c = r - l[l.length - 1][1].length;
  780. l[l.length - 1][1] += i.substring(0, c), o.length1 += c, o.length2 += c;
  781. }
  782. return i;
  783. }, e.prototype.patch_splitMax = function(t) {
  784. for (var r = this.Match_MaxBits, i = 0; i < t.length; i++)
  785. if (!(t[i].length1 <= r)) {
  786. var a = t[i];
  787. t.splice(i--, 1);
  788. for (var o = a.start1, l = a.start2, c = ""; a.diffs.length !== 0; ) {
  789. var f = new e.patch_obj(), g = !0;
  790. for (f.start1 = o - c.length, f.start2 = l - c.length, c !== "" && (f.length1 = f.length2 = c.length, f.diffs.push(new e.Diff(h, c))); a.diffs.length !== 0 && f.length1 < r - this.Patch_Margin; ) {
  791. var d = a.diffs[0][0], _ = a.diffs[0][1];
  792. d === u ? (f.length2 += _.length, l += _.length, f.diffs.push(a.diffs.shift()), g = !1) : d === s && f.diffs.length == 1 && f.diffs[0][0] == h && _.length > 2 * r ? (f.length1 += _.length, o += _.length, g = !1, f.diffs.push(new e.Diff(d, _)), a.diffs.shift()) : (_ = _.substring(
  793. 0,
  794. r - f.length1 - this.Patch_Margin
  795. ), f.length1 += _.length, o += _.length, d === h ? (f.length2 += _.length, l += _.length) : g = !1, f.diffs.push(new e.Diff(d, _)), _ == a.diffs[0][1] ? a.diffs.shift() : a.diffs[0][1] = a.diffs[0][1].substring(_.length));
  796. }
  797. c = this.diff_text2(f.diffs), c = c.substring(c.length - this.Patch_Margin);
  798. var p = this.diff_text1(a.diffs).substring(0, this.Patch_Margin);
  799. p !== "" && (f.length1 += p.length, f.length2 += p.length, f.diffs.length !== 0 && f.diffs[f.diffs.length - 1][0] === h ? f.diffs[f.diffs.length - 1][1] += p : f.diffs.push(new e.Diff(h, p))), g || t.splice(++i, 0, f);
  800. }
  801. }
  802. }, e.prototype.patch_toText = function(t) {
  803. for (var r = [], i = 0; i < t.length; i++)
  804. r[i] = t[i];
  805. return r.join("");
  806. }, e.prototype.patch_fromText = function(t) {
  807. var r = [];
  808. if (!t)
  809. return r;
  810. for (var i = t.split(`
  811. `), a = 0, o = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/; a < i.length; ) {
  812. var l = i[a].match(o);
  813. if (!l)
  814. throw new Error("Invalid patch string: " + i[a]);
  815. var c = new e.patch_obj();
  816. for (r.push(c), c.start1 = parseInt(l[1], 10), l[2] === "" ? (c.start1--, c.length1 = 1) : l[2] == "0" ? c.length1 = 0 : (c.start1--, c.length1 = parseInt(l[2], 10)), c.start2 = parseInt(l[3], 10), l[4] === "" ? (c.start2--, c.length2 = 1) : l[4] == "0" ? c.length2 = 0 : (c.start2--, c.length2 = parseInt(l[4], 10)), a++; a < i.length; ) {
  817. var f = i[a].charAt(0);
  818. try {
  819. var g = decodeURI(i[a].substring(1));
  820. } catch (d) {
  821. throw new Error("Illegal escape in patch_fromText: " + g);
  822. }
  823. if (f == "-")
  824. c.diffs.push(new e.Diff(s, g));
  825. else if (f == "+")
  826. c.diffs.push(new e.Diff(u, g));
  827. else if (f == " ")
  828. c.diffs.push(new e.Diff(h, g));
  829. else {
  830. if (f == "@")
  831. break;
  832. if (f !== "")
  833. throw new Error('Invalid patch mode "' + f + '" in: ' + g);
  834. }
  835. a++;
  836. }
  837. }
  838. return r;
  839. }, e.patch_obj = function() {
  840. this.diffs = [], this.start1 = null, this.start2 = null, this.length1 = 0, this.length2 = 0;
  841. }, e.patch_obj.prototype.toString = function() {
  842. var t, r;
  843. this.length1 === 0 ? t = this.start1 + ",0" : this.length1 == 1 ? t = this.start1 + 1 : t = this.start1 + 1 + "," + this.length1, this.length2 === 0 ? r = this.start2 + ",0" : this.length2 == 1 ? r = this.start2 + 1 : r = this.start2 + 1 + "," + this.length2;
  844. for (var i = ["@@ -" + t + " +" + r + ` @@
  845. `], a, o = 0; o < this.diffs.length; o++) {
  846. switch (this.diffs[o][0]) {
  847. case u:
  848. a = "+";
  849. break;
  850. case s:
  851. a = "-";
  852. break;
  853. case h:
  854. a = " ";
  855. break;
  856. }
  857. i[o + 1] = a + encodeURI(this.diffs[o][1]) + `
  858. `;
  859. }
  860. return i.join("").replace(/%20/g, " ");
  861. }, n.exports = e, n.exports.diff_match_patch = e, n.exports.DIFF_DELETE = s, n.exports.DIFF_INSERT = u, n.exports.DIFF_EQUAL = h;
  862. })(sn);
  863. var Le = sn.exports;
  864. function an(n) {
  865. return n instanceof Map ? n.clear = n.delete = n.set = function() {
  866. throw new Error("map is read-only");
  867. } : n instanceof Set && (n.add = n.clear = n.delete = function() {
  868. throw new Error("set is read-only");
  869. }), Object.freeze(n), Object.getOwnPropertyNames(n).forEach((e) => {
  870. const s = n[e], u = typeof s;
  871. (u === "object" || u === "function") && !Object.isFrozen(s) && an(s);
  872. }), n;
  873. }
  874. class Ze {
  875. /**
  876. * @param {CompiledMode} mode
  877. */
  878. constructor(e) {
  879. e.data === void 0 && (e.data = {}), this.data = e.data, this.isMatchIgnored = !1;
  880. }
  881. ignoreMatch() {
  882. this.isMatchIgnored = !0;
  883. }
  884. }
  885. function on(n) {
  886. return n.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#x27;");
  887. }
  888. function re(n, ...e) {
  889. const s = /* @__PURE__ */ Object.create(null);
  890. for (const u in n)
  891. s[u] = n[u];
  892. return e.forEach(function(u) {
  893. for (const h in u)
  894. s[h] = u[h];
  895. }), /** @type {T} */
  896. s;
  897. }
  898. const Gn = "</span>", Ye = (n) => !!n.scope, Kn = (n, { prefix: e }) => {
  899. if (n.startsWith("language:"))
  900. return n.replace("language:", "language-");
  901. if (n.includes(".")) {
  902. const s = n.split(".");
  903. return [
  904. `${e}${s.shift()}`,
  905. ...s.map((u, h) => `${u}${"_".repeat(h + 1)}`)
  906. ].join(" ");
  907. }
  908. return `${e}${n}`;
  909. };
  910. class Wn {
  911. /**
  912. * Creates a new HTMLRenderer
  913. *
  914. * @param {Tree} parseTree - the parse tree (must support `walk` API)
  915. * @param {{classPrefix: string}} options
  916. */
  917. constructor(e, s) {
  918. this.buffer = "", this.classPrefix = s.classPrefix, e.walk(this);
  919. }
  920. /**
  921. * Adds texts to the output stream
  922. *
  923. * @param {string} text */
  924. addText(e) {
  925. this.buffer += on(e);
  926. }
  927. /**
  928. * Adds a node open to the output stream (if needed)
  929. *
  930. * @param {Node} node */
  931. openNode(e) {
  932. if (!Ye(e))
  933. return;
  934. const s = Kn(
  935. e.scope,
  936. { prefix: this.classPrefix }
  937. );
  938. this.span(s);
  939. }
  940. /**
  941. * Adds a node close to the output stream (if needed)
  942. *
  943. * @param {Node} node */
  944. closeNode(e) {
  945. Ye(e) && (this.buffer += Gn);
  946. }
  947. /**
  948. * returns the accumulated buffer
  949. */
  950. value() {
  951. return this.buffer;
  952. }
  953. // helpers
  954. /**
  955. * Builds a span element
  956. *
  957. * @param {string} className */
  958. span(e) {
  959. this.buffer += `<span class="${e}">`;
  960. }
  961. }
  962. const Xe = (n = {}) => {
  963. const e = { children: [] };
  964. return Object.assign(e, n), e;
  965. };
  966. class $e {
  967. constructor() {
  968. this.rootNode = Xe(), this.stack = [this.rootNode];
  969. }
  970. get top() {
  971. return this.stack[this.stack.length - 1];
  972. }
  973. get root() {
  974. return this.rootNode;
  975. }
  976. /** @param {Node} node */
  977. add(e) {
  978. this.top.children.push(e);
  979. }
  980. /** @param {string} scope */
  981. openNode(e) {
  982. const s = Xe({ scope: e });
  983. this.add(s), this.stack.push(s);
  984. }
  985. closeNode() {
  986. if (this.stack.length > 1)
  987. return this.stack.pop();
  988. }
  989. closeAllNodes() {
  990. for (; this.closeNode(); )
  991. ;
  992. }
  993. toJSON() {
  994. return JSON.stringify(this.rootNode, null, 4);
  995. }
  996. /**
  997. * @typedef { import("./html_renderer").Renderer } Renderer
  998. * @param {Renderer} builder
  999. */
  1000. walk(e) {
  1001. return this.constructor._walk(e, this.rootNode);
  1002. }
  1003. /**
  1004. * @param {Renderer} builder
  1005. * @param {Node} node
  1006. */
  1007. static _walk(e, s) {
  1008. return typeof s == "string" ? e.addText(s) : s.children && (e.openNode(s), s.children.forEach((u) => this._walk(e, u)), e.closeNode(s)), e;
  1009. }
  1010. /**
  1011. * @param {Node} node
  1012. */
  1013. static _collapse(e) {
  1014. typeof e != "string" && e.children && (e.children.every((s) => typeof s == "string") ? e.children = [e.children.join("")] : e.children.forEach((s) => {
  1015. $e._collapse(s);
  1016. }));
  1017. }
  1018. }
  1019. class Qn extends $e {
  1020. /**
  1021. * @param {*} options
  1022. */
  1023. constructor(e) {
  1024. super(), this.options = e;
  1025. }
  1026. /**
  1027. * @param {string} text
  1028. */
  1029. addText(e) {
  1030. e !== "" && this.add(e);
  1031. }
  1032. /** @param {string} scope */
  1033. startScope(e) {
  1034. this.openNode(e);
  1035. }
  1036. endScope() {
  1037. this.closeNode();
  1038. }
  1039. /**
  1040. * @param {Emitter & {root: DataNode}} emitter
  1041. * @param {string} name
  1042. */
  1043. __addSublanguage(e, s) {
  1044. const u = e.root;
  1045. s && (u.scope = `language:${s}`), this.add(u);
  1046. }
  1047. toHTML() {
  1048. return new Wn(this, this.options).value();
  1049. }
  1050. finalize() {
  1051. return this.closeAllNodes(), !0;
  1052. }
  1053. }
  1054. function _e(n) {
  1055. return n ? typeof n == "string" ? n : n.source : null;
  1056. }
  1057. function ln(n) {
  1058. return ae("(?=", n, ")");
  1059. }
  1060. function Vn(n) {
  1061. return ae("(?:", n, ")*");
  1062. }
  1063. function Zn(n) {
  1064. return ae("(?:", n, ")?");
  1065. }
  1066. function ae(...n) {
  1067. return n.map((s) => _e(s)).join("");
  1068. }
  1069. function Yn(n) {
  1070. const e = n[n.length - 1];
  1071. return typeof e == "object" && e.constructor === Object ? (n.splice(n.length - 1, 1), e) : {};
  1072. }
  1073. function Ue(...n) {
  1074. return "(" + (Yn(n).capture ? "" : "?:") + n.map((u) => _e(u)).join("|") + ")";
  1075. }
  1076. function cn(n) {
  1077. return new RegExp(n.toString() + "|").exec("").length - 1;
  1078. }
  1079. function Xn(n, e) {
  1080. const s = n && n.exec(e);
  1081. return s && s.index === 0;
  1082. }
  1083. const jn = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
  1084. function Pe(n, { joinWith: e }) {
  1085. let s = 0;
  1086. return n.map((u) => {
  1087. s += 1;
  1088. const h = s;
  1089. let t = _e(u), r = "";
  1090. for (; t.length > 0; ) {
  1091. const i = jn.exec(t);
  1092. if (!i) {
  1093. r += t;
  1094. break;
  1095. }
  1096. r += t.substring(0, i.index), t = t.substring(i.index + i[0].length), i[0][0] === "\\" && i[1] ? r += "\\" + String(Number(i[1]) + h) : (r += i[0], i[0] === "(" && s++);
  1097. }
  1098. return r;
  1099. }).map((u) => `(${u})`).join(e);
  1100. }
  1101. const qn = /\b\B/, un = "[a-zA-Z]\\w*", xe = "[a-zA-Z_]\\w*", fn = "\\b\\d+(\\.\\d+)?", gn = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", hn = "\\b(0b[01]+)", Jn = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", et = (n = {}) => {
  1102. const e = /^#![ ]*\//;
  1103. return n.binary && (n.begin = ae(
  1104. e,
  1105. /.*\b/,
  1106. n.binary,
  1107. /\b.*/
  1108. )), re({
  1109. scope: "meta",
  1110. begin: e,
  1111. end: /$/,
  1112. relevance: 0,
  1113. /** @type {ModeCallback} */
  1114. "on:begin": (s, u) => {
  1115. s.index !== 0 && u.ignoreMatch();
  1116. }
  1117. }, n);
  1118. }, pe = {
  1119. begin: "\\\\[\\s\\S]",
  1120. relevance: 0
  1121. }, nt = {
  1122. scope: "string",
  1123. begin: "'",
  1124. end: "'",
  1125. illegal: "\\n",
  1126. contains: [pe]
  1127. }, tt = {
  1128. scope: "string",
  1129. begin: '"',
  1130. end: '"',
  1131. illegal: "\\n",
  1132. contains: [pe]
  1133. }, rt = {
  1134. begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
  1135. }, De = function(n, e, s = {}) {
  1136. const u = re(
  1137. {
  1138. scope: "comment",
  1139. begin: n,
  1140. end: e,
  1141. contains: []
  1142. },
  1143. s
  1144. );
  1145. u.contains.push({
  1146. scope: "doctag",
  1147. // hack to avoid the space from being included. the space is necessary to
  1148. // match here to prevent the plain text rule below from gobbling up doctags
  1149. begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
  1150. end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,
  1151. excludeBegin: !0,
  1152. relevance: 0
  1153. });
  1154. const h = Ue(
  1155. // list of common 1 and 2 letter words in English
  1156. "I",
  1157. "a",
  1158. "is",
  1159. "so",
  1160. "us",
  1161. "to",
  1162. "at",
  1163. "if",
  1164. "in",
  1165. "it",
  1166. "on",
  1167. // note: this is not an exhaustive list of contractions, just popular ones
  1168. /[A-Za-z]+['](d|ve|re|ll|t|s|n)/,
  1169. // contractions - can't we'd they're let's, etc
  1170. /[A-Za-z]+[-][a-z]+/,
  1171. // `no-way`, etc.
  1172. /[A-Za-z][a-z]{2,}/
  1173. // allow capitalized words at beginning of sentences
  1174. );
  1175. return u.contains.push(
  1176. {
  1177. // TODO: how to include ", (, ) without breaking grammars that use these for
  1178. // comment delimiters?
  1179. // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/
  1180. // ---
  1181. // this tries to find sequences of 3 english words in a row (without any
  1182. // "programming" type syntax) this gives us a strong signal that we've
  1183. // TRULY found a comment - vs perhaps scanning with the wrong language.
  1184. // It's possible to find something that LOOKS like the start of the
  1185. // comment - but then if there is no readable text - good chance it is a
  1186. // false match and not a comment.
  1187. //
  1188. // for a visual example please see:
  1189. // https://github.com/highlightjs/highlight.js/issues/2827
  1190. begin: ae(
  1191. /[ ]+/,
  1192. // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */
  1193. "(",
  1194. h,
  1195. /[.]?[:]?([.][ ]|[ ])/,
  1196. "){3}"
  1197. )
  1198. // look for 3 words in a row
  1199. }
  1200. ), u;
  1201. }, it = De("//", "$"), st = De("/\\*", "\\*/"), at = De("#", "$"), ot = {
  1202. scope: "number",
  1203. begin: fn,
  1204. relevance: 0
  1205. }, lt = {
  1206. scope: "number",
  1207. begin: gn,
  1208. relevance: 0
  1209. }, ct = {
  1210. scope: "number",
  1211. begin: hn,
  1212. relevance: 0
  1213. }, ut = {
  1214. scope: "regexp",
  1215. begin: /\/(?=[^/\n]*\/)/,
  1216. end: /\/[gimuy]*/,
  1217. contains: [
  1218. pe,
  1219. {
  1220. begin: /\[/,
  1221. end: /\]/,
  1222. relevance: 0,
  1223. contains: [pe]
  1224. }
  1225. ]
  1226. }, ft = {
  1227. scope: "title",
  1228. begin: un,
  1229. relevance: 0
  1230. }, gt = {
  1231. scope: "title",
  1232. begin: xe,
  1233. relevance: 0
  1234. }, ht = {
  1235. // excludes method names from keyword processing
  1236. begin: "\\.\\s*" + xe,
  1237. relevance: 0
  1238. }, dt = function(n) {
  1239. return Object.assign(
  1240. n,
  1241. {
  1242. /** @type {ModeCallback} */
  1243. "on:begin": (e, s) => {
  1244. s.data._beginMatch = e[1];
  1245. },
  1246. /** @type {ModeCallback} */
  1247. "on:end": (e, s) => {
  1248. s.data._beginMatch !== e[1] && s.ignoreMatch();
  1249. }
  1250. }
  1251. );
  1252. };
  1253. var we = /* @__PURE__ */ Object.freeze({
  1254. __proto__: null,
  1255. APOS_STRING_MODE: nt,
  1256. BACKSLASH_ESCAPE: pe,
  1257. BINARY_NUMBER_MODE: ct,
  1258. BINARY_NUMBER_RE: hn,
  1259. COMMENT: De,
  1260. C_BLOCK_COMMENT_MODE: st,
  1261. C_LINE_COMMENT_MODE: it,
  1262. C_NUMBER_MODE: lt,
  1263. C_NUMBER_RE: gn,
  1264. END_SAME_AS_BEGIN: dt,
  1265. HASH_COMMENT_MODE: at,
  1266. IDENT_RE: un,
  1267. MATCH_NOTHING_RE: qn,
  1268. METHOD_GUARD: ht,
  1269. NUMBER_MODE: ot,
  1270. NUMBER_RE: fn,
  1271. PHRASAL_WORDS_MODE: rt,
  1272. QUOTE_STRING_MODE: tt,
  1273. REGEXP_MODE: ut,
  1274. RE_STARTERS_RE: Jn,
  1275. SHEBANG: et,
  1276. TITLE_MODE: ft,
  1277. UNDERSCORE_IDENT_RE: xe,
  1278. UNDERSCORE_TITLE_MODE: gt
  1279. });
  1280. function _t(n, e) {
  1281. n.input[n.index - 1] === "." && e.ignoreMatch();
  1282. }
  1283. function pt(n, e) {
  1284. n.className !== void 0 && (n.scope = n.className, delete n.className);
  1285. }
  1286. function bt(n, e) {
  1287. e && n.beginKeywords && (n.begin = "\\b(" + n.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", n.__beforeBegin = _t, n.keywords = n.keywords || n.beginKeywords, delete n.beginKeywords, n.relevance === void 0 && (n.relevance = 0));
  1288. }
  1289. function vt(n, e) {
  1290. Array.isArray(n.illegal) && (n.illegal = Ue(...n.illegal));
  1291. }
  1292. function mt(n, e) {
  1293. if (n.match) {
  1294. if (n.begin || n.end)
  1295. throw new Error("begin & end are not supported with match");
  1296. n.begin = n.match, delete n.match;
  1297. }
  1298. }
  1299. function Et(n, e) {
  1300. n.relevance === void 0 && (n.relevance = 1);
  1301. }
  1302. const wt = (n, e) => {
  1303. if (!n.beforeMatch)
  1304. return;
  1305. if (n.starts)
  1306. throw new Error("beforeMatch cannot be used with starts");
  1307. const s = Object.assign({}, n);
  1308. Object.keys(n).forEach((u) => {
  1309. delete n[u];
  1310. }), n.keywords = s.keywords, n.begin = ae(s.beforeMatch, ln(s.begin)), n.starts = {
  1311. relevance: 0,
  1312. contains: [
  1313. Object.assign(s, { endsParent: !0 })
  1314. ]
  1315. }, n.relevance = 0, delete s.beforeMatch;
  1316. }, yt = [
  1317. "of",
  1318. "and",
  1319. "for",
  1320. "in",
  1321. "not",
  1322. "or",
  1323. "if",
  1324. "then",
  1325. "parent",
  1326. // common variable name
  1327. "list",
  1328. // common variable name
  1329. "value"
  1330. // common variable name
  1331. ], At = "keyword";
  1332. function dn(n, e, s = At) {
  1333. const u = /* @__PURE__ */ Object.create(null);
  1334. return typeof n == "string" ? h(s, n.split(" ")) : Array.isArray(n) ? h(s, n) : Object.keys(n).forEach(function(t) {
  1335. Object.assign(
  1336. u,
  1337. dn(n[t], e, t)
  1338. );
  1339. }), u;
  1340. function h(t, r) {
  1341. e && (r = r.map((i) => i.toLowerCase())), r.forEach(function(i) {
  1342. const a = i.split("|");
  1343. u[a[0]] = [t, Nt(a[0], a[1])];
  1344. });
  1345. }
  1346. }
  1347. function Nt(n, e) {
  1348. return e ? Number(e) : Mt(n) ? 0 : 1;
  1349. }
  1350. function Mt(n) {
  1351. return yt.includes(n.toLowerCase());
  1352. }
  1353. const je = {}, se = (n) => {
  1354. console.error(n);
  1355. }, qe = (n, ...e) => {
  1356. console.log(`WARN: ${n}`, ...e);
  1357. }, ce = (n, e) => {
  1358. je[`${n}/${e}`] || (console.log(`Deprecated as of ${n}. ${e}`), je[`${n}/${e}`] = !0);
  1359. }, Me = new Error();
  1360. function _n(n, e, { key: s }) {
  1361. let u = 0;
  1362. const h = n[s], t = {}, r = {};
  1363. for (let i = 1; i <= e.length; i++)
  1364. r[i + u] = h[i], t[i + u] = !0, u += cn(e[i - 1]);
  1365. n[s] = r, n[s]._emit = t, n[s]._multi = !0;
  1366. }
  1367. function Tt(n) {
  1368. if (Array.isArray(n.begin)) {
  1369. if (n.skip || n.excludeBegin || n.returnBegin)
  1370. throw se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), Me;
  1371. if (typeof n.beginScope != "object" || n.beginScope === null)
  1372. throw se("beginScope must be object"), Me;
  1373. _n(n, n.begin, { key: "beginScope" }), n.begin = Pe(n.begin, { joinWith: "" });
  1374. }
  1375. }
  1376. function Dt(n) {
  1377. if (Array.isArray(n.end)) {
  1378. if (n.skip || n.excludeEnd || n.returnEnd)
  1379. throw se("skip, excludeEnd, returnEnd not compatible with endScope: {}"), Me;
  1380. if (typeof n.endScope != "object" || n.endScope === null)
  1381. throw se("endScope must be object"), Me;
  1382. _n(n, n.end, { key: "endScope" }), n.end = Pe(n.end, { joinWith: "" });
  1383. }
  1384. }
  1385. function St(n) {
  1386. n.scope && typeof n.scope == "object" && n.scope !== null && (n.beginScope = n.scope, delete n.scope);
  1387. }
  1388. function Ct(n) {
  1389. St(n), typeof n.beginScope == "string" && (n.beginScope = { _wrap: n.beginScope }), typeof n.endScope == "string" && (n.endScope = { _wrap: n.endScope }), Tt(n), Dt(n);
  1390. }
  1391. function Rt(n) {
  1392. function e(r, i) {
  1393. return new RegExp(
  1394. _e(r),
  1395. "m" + (n.case_insensitive ? "i" : "") + (n.unicodeRegex ? "u" : "") + (i ? "g" : "")
  1396. );
  1397. }
  1398. class s {
  1399. constructor() {
  1400. this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0;
  1401. }
  1402. // @ts-ignore
  1403. addRule(i, a) {
  1404. a.position = this.position++, this.matchIndexes[this.matchAt] = a, this.regexes.push([a, i]), this.matchAt += cn(i) + 1;
  1405. }
  1406. compile() {
  1407. this.regexes.length === 0 && (this.exec = () => null);
  1408. const i = this.regexes.map((a) => a[1]);
  1409. this.matcherRe = e(Pe(i, { joinWith: "|" }), !0), this.lastIndex = 0;
  1410. }
  1411. /** @param {string} s */
  1412. exec(i) {
  1413. this.matcherRe.lastIndex = this.lastIndex;
  1414. const a = this.matcherRe.exec(i);
  1415. if (!a)
  1416. return null;
  1417. const o = a.findIndex((c, f) => f > 0 && c !== void 0), l = this.matchIndexes[o];
  1418. return a.splice(0, o), Object.assign(a, l);
  1419. }
  1420. }
  1421. class u {
  1422. constructor() {
  1423. this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0;
  1424. }
  1425. // @ts-ignore
  1426. getMatcher(i) {
  1427. if (this.multiRegexes[i])
  1428. return this.multiRegexes[i];
  1429. const a = new s();
  1430. return this.rules.slice(i).forEach(([o, l]) => a.addRule(o, l)), a.compile(), this.multiRegexes[i] = a, a;
  1431. }
  1432. resumingScanAtSamePosition() {
  1433. return this.regexIndex !== 0;
  1434. }
  1435. considerAll() {
  1436. this.regexIndex = 0;
  1437. }
  1438. // @ts-ignore
  1439. addRule(i, a) {
  1440. this.rules.push([i, a]), a.type === "begin" && this.count++;
  1441. }
  1442. /** @param {string} s */
  1443. exec(i) {
  1444. const a = this.getMatcher(this.regexIndex);
  1445. a.lastIndex = this.lastIndex;
  1446. let o = a.exec(i);
  1447. if (this.resumingScanAtSamePosition() && !(o && o.index === this.lastIndex)) {
  1448. const l = this.getMatcher(0);
  1449. l.lastIndex = this.lastIndex + 1, o = l.exec(i);
  1450. }
  1451. return o && (this.regexIndex += o.position + 1, this.regexIndex === this.count && this.considerAll()), o;
  1452. }
  1453. }
  1454. function h(r) {
  1455. const i = new u();
  1456. return r.contains.forEach((a) => i.addRule(a.begin, { rule: a, type: "begin" })), r.terminatorEnd && i.addRule(r.terminatorEnd, { type: "end" }), r.illegal && i.addRule(r.illegal, { type: "illegal" }), i;
  1457. }
  1458. function t(r, i) {
  1459. const a = (
  1460. /** @type CompiledMode */
  1461. r
  1462. );
  1463. if (r.isCompiled)
  1464. return a;
  1465. [
  1466. pt,
  1467. // do this early so compiler extensions generally don't have to worry about
  1468. // the distinction between match/begin
  1469. mt,
  1470. Ct,
  1471. wt
  1472. ].forEach((l) => l(r, i)), n.compilerExtensions.forEach((l) => l(r, i)), r.__beforeBegin = null, [
  1473. bt,
  1474. // do this later so compiler extensions that come earlier have access to the
  1475. // raw array if they wanted to perhaps manipulate it, etc.
  1476. vt,
  1477. // default to 1 relevance if not specified
  1478. Et
  1479. ].forEach((l) => l(r, i)), r.isCompiled = !0;
  1480. let o = null;
  1481. return typeof r.keywords == "object" && r.keywords.$pattern && (r.keywords = Object.assign({}, r.keywords), o = r.keywords.$pattern, delete r.keywords.$pattern), o = o || /\w+/, r.keywords && (r.keywords = dn(r.keywords, n.case_insensitive)), a.keywordPatternRe = e(o, !0), i && (r.begin || (r.begin = /\B|\b/), a.beginRe = e(a.begin), !r.end && !r.endsWithParent && (r.end = /\B|\b/), r.end && (a.endRe = e(a.end)), a.terminatorEnd = _e(a.end) || "", r.endsWithParent && i.terminatorEnd && (a.terminatorEnd += (r.end ? "|" : "") + i.terminatorEnd)), r.illegal && (a.illegalRe = e(
  1482. /** @type {RegExp | string} */
  1483. r.illegal
  1484. )), r.contains || (r.contains = []), r.contains = [].concat(...r.contains.map(function(l) {
  1485. return Lt(l === "self" ? r : l);
  1486. })), r.contains.forEach(function(l) {
  1487. t(
  1488. /** @type Mode */
  1489. l,
  1490. a
  1491. );
  1492. }), r.starts && t(r.starts, i), a.matcher = h(a), a;
  1493. }
  1494. if (n.compilerExtensions || (n.compilerExtensions = []), n.contains && n.contains.includes("self"))
  1495. throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");
  1496. return n.classNameAliases = re(n.classNameAliases || {}), t(
  1497. /** @type Mode */
  1498. n
  1499. );
  1500. }
  1501. function pn(n) {
  1502. return n ? n.endsWithParent || pn(n.starts) : !1;
  1503. }
  1504. function Lt(n) {
  1505. return n.variants && !n.cachedVariants && (n.cachedVariants = n.variants.map(function(e) {
  1506. return re(n, { variants: null }, e);
  1507. })), n.cachedVariants ? n.cachedVariants : pn(n) ? re(n, { starts: n.starts ? re(n.starts) : null }) : Object.isFrozen(n) ? re(n) : n;
  1508. }
  1509. var Ot = "11.9.0";
  1510. class It extends Error {
  1511. constructor(e, s) {
  1512. super(e), this.name = "HTMLInjectionError", this.html = s;
  1513. }
  1514. }
  1515. const Oe = on, Je = re, en = Symbol("nomatch"), kt = 7, bn = function(n) {
  1516. const e = /* @__PURE__ */ Object.create(null), s = /* @__PURE__ */ Object.create(null), u = [];
  1517. let h = !0;
  1518. const t = "Could not find the language '{}', did you forget to load/include a language module?", r = { disableAutodetect: !0, name: "Plain text", contains: [] };
  1519. let i = {
  1520. ignoreUnescapedHTML: !1,
  1521. throwUnescapedHTML: !1,
  1522. noHighlightRe: /^(no-?highlight)$/i,
  1523. languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
  1524. classPrefix: "hljs-",
  1525. cssSelector: "pre code",
  1526. languages: null,
  1527. // beta configuration options, subject to change, welcome to discuss
  1528. // https://github.com/highlightjs/highlight.js/issues/1086
  1529. __emitter: Qn
  1530. };
  1531. function a(b) {
  1532. return i.noHighlightRe.test(b);
  1533. }
  1534. function o(b) {
  1535. let y = b.className + " ";
  1536. y += b.parentNode ? b.parentNode.className : "";
  1537. const L = i.languageDetectRe.exec(y);
  1538. if (L) {
  1539. const U = C(L[1]);
  1540. return U || (qe(t.replace("{}", L[1])), qe("Falling back to no-highlight mode for this block.", b)), U ? L[1] : "no-highlight";
  1541. }
  1542. return y.split(/\s+/).find((U) => a(U) || C(U));
  1543. }
  1544. function l(b, y, L) {
  1545. let U = "", F = "";
  1546. typeof y == "object" ? (U = b, L = y.ignoreIllegals, F = y.language) : (ce("10.7.0", "highlight(lang, code, ...args) has been deprecated."), ce("10.7.0", `Please use highlight(code, options) instead.
  1547. https://github.com/highlightjs/highlight.js/issues/2277`), F = b, U = y), L === void 0 && (L = !0);
  1548. const W = {
  1549. code: U,
  1550. language: F
  1551. };
  1552. te("before:highlight", W);
  1553. const Y = W.result ? W.result : c(W.language, W.code, L);
  1554. return Y.code = W.code, te("after:highlight", Y), Y;
  1555. }
  1556. function c(b, y, L, U) {
  1557. const F = /* @__PURE__ */ Object.create(null);
  1558. function W(w, M) {
  1559. return w.keywords[M];
  1560. }
  1561. function Y() {
  1562. if (!O.keywords) {
  1563. z.addText(x);
  1564. return;
  1565. }
  1566. let w = 0;
  1567. O.keywordPatternRe.lastIndex = 0;
  1568. let M = O.keywordPatternRe.exec(x), k = "";
  1569. for (; M; ) {
  1570. k += x.substring(w, M.index);
  1571. const P = j.case_insensitive ? M[0].toLowerCase() : M[0], G = W(O, P);
  1572. if (G) {
  1573. const [q, Cn] = G;
  1574. if (z.addText(k), k = "", F[P] = (F[P] || 0) + 1, F[P] <= kt && (Ee += Cn), q.startsWith("_"))
  1575. k += M[0];
  1576. else {
  1577. const Rn = j.classNameAliases[q] || q;
  1578. X(M[0], Rn);
  1579. }
  1580. } else
  1581. k += M[0];
  1582. w = O.keywordPatternRe.lastIndex, M = O.keywordPatternRe.exec(x);
  1583. }
  1584. k += x.substring(w), z.addText(k);
  1585. }
  1586. function ve() {
  1587. if (x === "")
  1588. return;
  1589. let w = null;
  1590. if (typeof O.subLanguage == "string") {
  1591. if (!e[O.subLanguage]) {
  1592. z.addText(x);
  1593. return;
  1594. }
  1595. w = c(O.subLanguage, x, !0, Ke[O.subLanguage]), Ke[O.subLanguage] = /** @type {CompiledMode} */
  1596. w._top;
  1597. } else
  1598. w = g(x, O.subLanguage.length ? O.subLanguage : null);
  1599. O.relevance > 0 && (Ee += w.relevance), z.__addSublanguage(w._emitter, w.language);
  1600. }
  1601. function Q() {
  1602. O.subLanguage != null ? ve() : Y(), x = "";
  1603. }
  1604. function X(w, M) {
  1605. w !== "" && (z.startScope(M), z.addText(w), z.endScope());
  1606. }
  1607. function Fe(w, M) {
  1608. let k = 1;
  1609. const P = M.length - 1;
  1610. for (; k <= P; ) {
  1611. if (!w._emit[k]) {
  1612. k++;
  1613. continue;
  1614. }
  1615. const G = j.classNameAliases[w[k]] || w[k], q = M[k];
  1616. G ? X(q, G) : (x = q, Y(), x = ""), k++;
  1617. }
  1618. }
  1619. function He(w, M) {
  1620. return w.scope && typeof w.scope == "string" && z.openNode(j.classNameAliases[w.scope] || w.scope), w.beginScope && (w.beginScope._wrap ? (X(x, j.classNameAliases[w.beginScope._wrap] || w.beginScope._wrap), x = "") : w.beginScope._multi && (Fe(w.beginScope, M), x = "")), O = Object.create(w, { parent: { value: O } }), O;
  1621. }
  1622. function ze(w, M, k) {
  1623. let P = Xn(w.endRe, k);
  1624. if (P) {
  1625. if (w["on:end"]) {
  1626. const G = new Ze(w);
  1627. w["on:end"](M, G), G.isMatchIgnored && (P = !1);
  1628. }
  1629. if (P) {
  1630. for (; w.endsParent && w.parent; )
  1631. w = w.parent;
  1632. return w;
  1633. }
  1634. }
  1635. if (w.endsWithParent)
  1636. return ze(w.parent, M, k);
  1637. }
  1638. function Nn(w) {
  1639. return O.matcher.regexIndex === 0 ? (x += w[0], 1) : (Re = !0, 0);
  1640. }
  1641. function Mn(w) {
  1642. const M = w[0], k = w.rule, P = new Ze(k), G = [k.__beforeBegin, k["on:begin"]];
  1643. for (const q of G)
  1644. if (q && (q(w, P), P.isMatchIgnored))
  1645. return Nn(M);
  1646. return k.skip ? x += M : (k.excludeBegin && (x += M), Q(), !k.returnBegin && !k.excludeBegin && (x = M)), He(k, w), k.returnBegin ? 0 : M.length;
  1647. }
  1648. function Tn(w) {
  1649. const M = w[0], k = y.substring(w.index), P = ze(O, w, k);
  1650. if (!P)
  1651. return en;
  1652. const G = O;
  1653. O.endScope && O.endScope._wrap ? (Q(), X(M, O.endScope._wrap)) : O.endScope && O.endScope._multi ? (Q(), Fe(O.endScope, w)) : G.skip ? x += M : (G.returnEnd || G.excludeEnd || (x += M), Q(), G.excludeEnd && (x = M));
  1654. do
  1655. O.scope && z.closeNode(), !O.skip && !O.subLanguage && (Ee += O.relevance), O = O.parent;
  1656. while (O !== P.parent);
  1657. return P.starts && He(P.starts, w), G.returnEnd ? 0 : M.length;
  1658. }
  1659. function Dn() {
  1660. const w = [];
  1661. for (let M = O; M !== j; M = M.parent)
  1662. M.scope && w.unshift(M.scope);
  1663. w.forEach((M) => z.openNode(M));
  1664. }
  1665. let me = {};
  1666. function Ge(w, M) {
  1667. const k = M && M[0];
  1668. if (x += w, k == null)
  1669. return Q(), 0;
  1670. if (me.type === "begin" && M.type === "end" && me.index === M.index && k === "") {
  1671. if (x += y.slice(M.index, M.index + 1), !h) {
  1672. const P = new Error(`0 width match regex (${b})`);
  1673. throw P.languageName = b, P.badRule = me.rule, P;
  1674. }
  1675. return 1;
  1676. }
  1677. if (me = M, M.type === "begin")
  1678. return Mn(M);
  1679. if (M.type === "illegal" && !L) {
  1680. const P = new Error('Illegal lexeme "' + k + '" for mode "' + (O.scope || "<unnamed>") + '"');
  1681. throw P.mode = O, P;
  1682. } else if (M.type === "end") {
  1683. const P = Tn(M);
  1684. if (P !== en)
  1685. return P;
  1686. }
  1687. if (M.type === "illegal" && k === "")
  1688. return 1;
  1689. if (Ce > 1e5 && Ce > M.index * 3)
  1690. throw new Error("potential infinite loop, way more iterations than matches");
  1691. return x += k, k.length;
  1692. }
  1693. const j = C(b);
  1694. if (!j)
  1695. throw se(t.replace("{}", b)), new Error('Unknown language: "' + b + '"');
  1696. const Sn = Rt(j);
  1697. let Se = "", O = U || Sn;
  1698. const Ke = {}, z = new i.__emitter(i);
  1699. Dn();
  1700. let x = "", Ee = 0, ie = 0, Ce = 0, Re = !1;
  1701. try {
  1702. if (j.__emitTokens)
  1703. j.__emitTokens(y, z);
  1704. else {
  1705. for (O.matcher.considerAll(); ; ) {
  1706. Ce++, Re ? Re = !1 : O.matcher.considerAll(), O.matcher.lastIndex = ie;
  1707. const w = O.matcher.exec(y);
  1708. if (!w)
  1709. break;
  1710. const M = y.substring(ie, w.index), k = Ge(M, w);
  1711. ie = w.index + k;
  1712. }
  1713. Ge(y.substring(ie));
  1714. }
  1715. return z.finalize(), Se = z.toHTML(), {
  1716. language: b,
  1717. value: Se,
  1718. relevance: Ee,
  1719. illegal: !1,
  1720. _emitter: z,
  1721. _top: O
  1722. };
  1723. } catch (w) {
  1724. if (w.message && w.message.includes("Illegal"))
  1725. return {
  1726. language: b,
  1727. value: Oe(y),
  1728. illegal: !0,
  1729. relevance: 0,
  1730. _illegalBy: {
  1731. message: w.message,
  1732. index: ie,
  1733. context: y.slice(ie - 100, ie + 100),
  1734. mode: w.mode,
  1735. resultSoFar: Se
  1736. },
  1737. _emitter: z
  1738. };
  1739. if (h)
  1740. return {
  1741. language: b,
  1742. value: Oe(y),
  1743. illegal: !1,
  1744. relevance: 0,
  1745. errorRaised: w,
  1746. _emitter: z,
  1747. _top: O
  1748. };
  1749. throw w;
  1750. }
  1751. }
  1752. function f(b) {
  1753. const y = {
  1754. value: Oe(b),
  1755. illegal: !1,
  1756. relevance: 0,
  1757. _top: r,
  1758. _emitter: new i.__emitter(i)
  1759. };
  1760. return y._emitter.addText(b), y;
  1761. }
  1762. function g(b, y) {
  1763. y = y || i.languages || Object.keys(e);
  1764. const L = f(b), U = y.filter(C).filter($).map(
  1765. (Q) => c(Q, b, !1)
  1766. );
  1767. U.unshift(L);
  1768. const F = U.sort((Q, X) => {
  1769. if (Q.relevance !== X.relevance)
  1770. return X.relevance - Q.relevance;
  1771. if (Q.language && X.language) {
  1772. if (C(Q.language).supersetOf === X.language)
  1773. return 1;
  1774. if (C(X.language).supersetOf === Q.language)
  1775. return -1;
  1776. }
  1777. return 0;
  1778. }), [W, Y] = F, ve = W;
  1779. return ve.secondBest = Y, ve;
  1780. }
  1781. function d(b, y, L) {
  1782. const U = y && s[y] || L;
  1783. b.classList.add("hljs"), b.classList.add(`language-${U}`);
  1784. }
  1785. function _(b) {
  1786. let y = null;
  1787. const L = o(b);
  1788. if (a(L))
  1789. return;
  1790. if (te(
  1791. "before:highlightElement",
  1792. { el: b, language: L }
  1793. ), b.dataset.highlighted) {
  1794. console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", b);
  1795. return;
  1796. }
  1797. if (b.children.length > 0 && (i.ignoreUnescapedHTML || (console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), console.warn("The element with unescaped HTML:"), console.warn(b)), i.throwUnescapedHTML))
  1798. throw new It(
  1799. "One of your code blocks includes unescaped HTML.",
  1800. b.innerHTML
  1801. );
  1802. y = b;
  1803. const U = y.textContent, F = L ? l(U, { language: L, ignoreIllegals: !0 }) : g(U);
  1804. b.innerHTML = F.value, b.dataset.highlighted = "yes", d(b, L, F.language), b.result = {
  1805. language: F.language,
  1806. // TODO: remove with version 11.0
  1807. re: F.relevance,
  1808. relevance: F.relevance
  1809. }, F.secondBest && (b.secondBest = {
  1810. language: F.secondBest.language,
  1811. relevance: F.secondBest.relevance
  1812. }), te("after:highlightElement", { el: b, result: F, text: U });
  1813. }
  1814. function p(b) {
  1815. i = Je(i, b);
  1816. }
  1817. const v = () => {
  1818. A(), ce("10.6.0", "initHighlighting() deprecated. Use highlightAll() now.");
  1819. };
  1820. function m() {
  1821. A(), ce("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now.");
  1822. }
  1823. let E = !1;
  1824. function A() {
  1825. if (document.readyState === "loading") {
  1826. E = !0;
  1827. return;
  1828. }
  1829. document.querySelectorAll(i.cssSelector).forEach(_);
  1830. }
  1831. function S() {
  1832. E && A();
  1833. }
  1834. typeof window != "undefined" && window.addEventListener && window.addEventListener("DOMContentLoaded", S, !1);
  1835. function D(b, y) {
  1836. let L = null;
  1837. try {
  1838. L = y(n);
  1839. } catch (U) {
  1840. if (se("Language definition for '{}' could not be registered.".replace("{}", b)), h)
  1841. se(U);
  1842. else
  1843. throw U;
  1844. L = r;
  1845. }
  1846. L.name || (L.name = b), e[b] = L, L.rawDefinition = y.bind(null, n), L.aliases && I(L.aliases, { languageName: b });
  1847. }
  1848. function N(b) {
  1849. delete e[b];
  1850. for (const y of Object.keys(s))
  1851. s[y] === b && delete s[y];
  1852. }
  1853. function R() {
  1854. return Object.keys(e);
  1855. }
  1856. function C(b) {
  1857. return b = (b || "").toLowerCase(), e[b] || e[s[b]];
  1858. }
  1859. function I(b, { languageName: y }) {
  1860. typeof b == "string" && (b = [b]), b.forEach((L) => {
  1861. s[L.toLowerCase()] = y;
  1862. });
  1863. }
  1864. function $(b) {
  1865. const y = C(b);
  1866. return y && !y.disableAutodetect;
  1867. }
  1868. function B(b) {
  1869. b["before:highlightBlock"] && !b["before:highlightElement"] && (b["before:highlightElement"] = (y) => {
  1870. b["before:highlightBlock"](
  1871. Object.assign({ block: y.el }, y)
  1872. );
  1873. }), b["after:highlightBlock"] && !b["after:highlightElement"] && (b["after:highlightElement"] = (y) => {
  1874. b["after:highlightBlock"](
  1875. Object.assign({ block: y.el }, y)
  1876. );
  1877. });
  1878. }
  1879. function H(b) {
  1880. B(b), u.push(b);
  1881. }
  1882. function K(b) {
  1883. const y = u.indexOf(b);
  1884. y !== -1 && u.splice(y, 1);
  1885. }
  1886. function te(b, y) {
  1887. const L = b;
  1888. u.forEach(function(U) {
  1889. U[L] && U[L](y);
  1890. });
  1891. }
  1892. function le(b) {
  1893. return ce("10.7.0", "highlightBlock will be removed entirely in v12.0"), ce("10.7.0", "Please use highlightElement now."), _(b);
  1894. }
  1895. Object.assign(n, {
  1896. highlight: l,
  1897. highlightAuto: g,
  1898. highlightAll: A,
  1899. highlightElement: _,
  1900. // TODO: Remove with v12 API
  1901. highlightBlock: le,
  1902. configure: p,
  1903. initHighlighting: v,
  1904. initHighlightingOnLoad: m,
  1905. registerLanguage: D,
  1906. unregisterLanguage: N,
  1907. listLanguages: R,
  1908. getLanguage: C,
  1909. registerAliases: I,
  1910. autoDetection: $,
  1911. inherit: Je,
  1912. addPlugin: H,
  1913. removePlugin: K
  1914. }), n.debugMode = function() {
  1915. h = !1;
  1916. }, n.safeMode = function() {
  1917. h = !0;
  1918. }, n.versionString = Ot, n.regex = {
  1919. concat: ae,
  1920. lookahead: ln,
  1921. either: Ue,
  1922. optional: Zn,
  1923. anyNumberOfTimes: Vn
  1924. };
  1925. for (const b in we)
  1926. typeof we[b] == "object" && an(we[b]);
  1927. return Object.assign(n, we), n;
  1928. }, fe = bn({});
  1929. fe.newInstance = () => bn({});
  1930. var Bt = fe;
  1931. fe.HighlightJS = fe;
  1932. fe.default = fe;
  1933. const Z = /* @__PURE__ */ zn(Bt);
  1934. function $t(n) {
  1935. const e = n.regex, s = e.concat(/[\p{L}_]/u, e.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u), u = /[\p{L}0-9._:-]+/u, h = {
  1936. className: "symbol",
  1937. begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
  1938. }, t = {
  1939. begin: /\s/,
  1940. contains: [
  1941. {
  1942. className: "keyword",
  1943. begin: /#?[a-z_][a-z1-9_-]+/,
  1944. illegal: /\n/
  1945. }
  1946. ]
  1947. }, r = n.inherit(t, {
  1948. begin: /\(/,
  1949. end: /\)/
  1950. }), i = n.inherit(n.APOS_STRING_MODE, { className: "string" }), a = n.inherit(n.QUOTE_STRING_MODE, { className: "string" }), o = {
  1951. endsWithParent: !0,
  1952. illegal: /</,
  1953. relevance: 0,
  1954. contains: [
  1955. {
  1956. className: "attr",
  1957. begin: u,
  1958. relevance: 0
  1959. },
  1960. {
  1961. begin: /=\s*/,
  1962. relevance: 0,
  1963. contains: [
  1964. {
  1965. className: "string",
  1966. endsParent: !0,
  1967. variants: [
  1968. {
  1969. begin: /"/,
  1970. end: /"/,
  1971. contains: [h]
  1972. },
  1973. {
  1974. begin: /'/,
  1975. end: /'/,
  1976. contains: [h]
  1977. },
  1978. { begin: /[^\s"'=<>`]+/ }
  1979. ]
  1980. }
  1981. ]
  1982. }
  1983. ]
  1984. };
  1985. return {
  1986. name: "HTML, XML",
  1987. aliases: [
  1988. "html",
  1989. "xhtml",
  1990. "rss",
  1991. "atom",
  1992. "xjb",
  1993. "xsd",
  1994. "xsl",
  1995. "plist",
  1996. "wsf",
  1997. "svg"
  1998. ],
  1999. case_insensitive: !0,
  2000. unicodeRegex: !0,
  2001. contains: [
  2002. {
  2003. className: "meta",
  2004. begin: /<![a-z]/,
  2005. end: />/,
  2006. relevance: 10,
  2007. contains: [
  2008. t,
  2009. a,
  2010. i,
  2011. r,
  2012. {
  2013. begin: /\[/,
  2014. end: /\]/,
  2015. contains: [
  2016. {
  2017. className: "meta",
  2018. begin: /<![a-z]/,
  2019. end: />/,
  2020. contains: [
  2021. t,
  2022. r,
  2023. a,
  2024. i
  2025. ]
  2026. }
  2027. ]
  2028. }
  2029. ]
  2030. },
  2031. n.COMMENT(
  2032. /<!--/,
  2033. /-->/,
  2034. { relevance: 10 }
  2035. ),
  2036. {
  2037. begin: /<!\[CDATA\[/,
  2038. end: /\]\]>/,
  2039. relevance: 10
  2040. },
  2041. h,
  2042. // xml processing instructions
  2043. {
  2044. className: "meta",
  2045. end: /\?>/,
  2046. variants: [
  2047. {
  2048. begin: /<\?xml/,
  2049. relevance: 10,
  2050. contains: [
  2051. a
  2052. ]
  2053. },
  2054. {
  2055. begin: /<\?[a-z][a-z0-9]+/
  2056. }
  2057. ]
  2058. },
  2059. {
  2060. className: "tag",
  2061. /*
  2062. The lookahead pattern (?=...) ensures that 'begin' only matches
  2063. '<style' as a single word, followed by a whitespace or an
  2064. ending bracket.
  2065. */
  2066. begin: /<style(?=\s|>)/,
  2067. end: />/,
  2068. keywords: { name: "style" },
  2069. contains: [o],
  2070. starts: {
  2071. end: /<\/style>/,
  2072. returnEnd: !0,
  2073. subLanguage: [
  2074. "css",
  2075. "xml"
  2076. ]
  2077. }
  2078. },
  2079. {
  2080. className: "tag",
  2081. // See the comment in the <style tag about the lookahead pattern
  2082. begin: /<script(?=\s|>)/,
  2083. end: />/,
  2084. keywords: { name: "script" },
  2085. contains: [o],
  2086. starts: {
  2087. end: /<\/script>/,
  2088. returnEnd: !0,
  2089. subLanguage: [
  2090. "javascript",
  2091. "handlebars",
  2092. "xml"
  2093. ]
  2094. }
  2095. },
  2096. // we need this for now for jSX
  2097. {
  2098. className: "tag",
  2099. begin: /<>|<\/>/
  2100. },
  2101. // open tag
  2102. {
  2103. className: "tag",
  2104. begin: e.concat(
  2105. /</,
  2106. e.lookahead(e.concat(
  2107. s,
  2108. // <tag/>
  2109. // <tag>
  2110. // <tag ...
  2111. e.either(/\/>/, />/, /\s/)
  2112. ))
  2113. ),
  2114. end: /\/?>/,
  2115. contains: [
  2116. {
  2117. className: "name",
  2118. begin: s,
  2119. relevance: 0,
  2120. starts: o
  2121. }
  2122. ]
  2123. },
  2124. // close tag
  2125. {
  2126. className: "tag",
  2127. begin: e.concat(
  2128. /<\//,
  2129. e.lookahead(e.concat(
  2130. s,
  2131. />/
  2132. ))
  2133. ),
  2134. contains: [
  2135. {
  2136. className: "name",
  2137. begin: s,
  2138. relevance: 0
  2139. },
  2140. {
  2141. begin: />/,
  2142. relevance: 0,
  2143. endsParent: !0
  2144. }
  2145. ]
  2146. }
  2147. ]
  2148. };
  2149. }
  2150. const nn = "[A-Za-z$_][0-9A-Za-z$_]*", Ut = [
  2151. "as",
  2152. // for exports
  2153. "in",
  2154. "of",
  2155. "if",
  2156. "for",
  2157. "while",
  2158. "finally",
  2159. "var",
  2160. "new",
  2161. "function",
  2162. "do",
  2163. "return",
  2164. "void",
  2165. "else",
  2166. "break",
  2167. "catch",
  2168. "instanceof",
  2169. "with",
  2170. "throw",
  2171. "case",
  2172. "default",
  2173. "try",
  2174. "switch",
  2175. "continue",
  2176. "typeof",
  2177. "delete",
  2178. "let",
  2179. "yield",
  2180. "const",
  2181. "class",
  2182. // JS handles these with a special rule
  2183. // "get",
  2184. // "set",
  2185. "debugger",
  2186. "async",
  2187. "await",
  2188. "static",
  2189. "import",
  2190. "from",
  2191. "export",
  2192. "extends"
  2193. ], Pt = [
  2194. "true",
  2195. "false",
  2196. "null",
  2197. "undefined",
  2198. "NaN",
  2199. "Infinity"
  2200. ], vn = [
  2201. // Fundamental objects
  2202. "Object",
  2203. "Function",
  2204. "Boolean",
  2205. "Symbol",
  2206. // numbers and dates
  2207. "Math",
  2208. "Date",
  2209. "Number",
  2210. "BigInt",
  2211. // text
  2212. "String",
  2213. "RegExp",
  2214. // Indexed collections
  2215. "Array",
  2216. "Float32Array",
  2217. "Float64Array",
  2218. "Int8Array",
  2219. "Uint8Array",
  2220. "Uint8ClampedArray",
  2221. "Int16Array",
  2222. "Int32Array",
  2223. "Uint16Array",
  2224. "Uint32Array",
  2225. "BigInt64Array",
  2226. "BigUint64Array",
  2227. // Keyed collections
  2228. "Set",
  2229. "Map",
  2230. "WeakSet",
  2231. "WeakMap",
  2232. // Structured data
  2233. "ArrayBuffer",
  2234. "SharedArrayBuffer",
  2235. "Atomics",
  2236. "DataView",
  2237. "JSON",
  2238. // Control abstraction objects
  2239. "Promise",
  2240. "Generator",
  2241. "GeneratorFunction",
  2242. "AsyncFunction",
  2243. // Reflection
  2244. "Reflect",
  2245. "Proxy",
  2246. // Internationalization
  2247. "Intl",
  2248. // WebAssembly
  2249. "WebAssembly"
  2250. ], mn = [
  2251. "Error",
  2252. "EvalError",
  2253. "InternalError",
  2254. "RangeError",
  2255. "ReferenceError",
  2256. "SyntaxError",
  2257. "TypeError",
  2258. "URIError"
  2259. ], En = [
  2260. "setInterval",
  2261. "setTimeout",
  2262. "clearInterval",
  2263. "clearTimeout",
  2264. "require",
  2265. "exports",
  2266. "eval",
  2267. "isFinite",
  2268. "isNaN",
  2269. "parseFloat",
  2270. "parseInt",
  2271. "decodeURI",
  2272. "decodeURIComponent",
  2273. "encodeURI",
  2274. "encodeURIComponent",
  2275. "escape",
  2276. "unescape"
  2277. ], xt = [
  2278. "arguments",
  2279. "this",
  2280. "super",
  2281. "console",
  2282. "window",
  2283. "document",
  2284. "localStorage",
  2285. "sessionStorage",
  2286. "module",
  2287. "global"
  2288. // Node.js
  2289. ], Ft = [].concat(
  2290. En,
  2291. vn,
  2292. mn
  2293. );
  2294. function Ht(n) {
  2295. const e = n.regex, s = (y, { after: L }) => {
  2296. const U = "</" + y[0].slice(1);
  2297. return y.input.indexOf(U, L) !== -1;
  2298. }, u = nn, h = {
  2299. begin: "<>",
  2300. end: "</>"
  2301. }, t = /<[A-Za-z0-9\\._:-]+\s*\/>/, r = {
  2302. begin: /<[A-Za-z0-9\\._:-]+/,
  2303. end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
  2304. /**
  2305. * @param {RegExpMatchArray} match
  2306. * @param {CallbackResponse} response
  2307. */
  2308. isTrulyOpeningTag: (y, L) => {
  2309. const U = y[0].length + y.index, F = y.input[U];
  2310. if (
  2311. // HTML should not include another raw `<` inside a tag
  2312. // nested type?
  2313. // `<Array<Array<number>>`, etc.
  2314. F === "<" || // the , gives away that this is not HTML
  2315. // `<T, A extends keyof T, V>`
  2316. F === ","
  2317. ) {
  2318. L.ignoreMatch();
  2319. return;
  2320. }
  2321. F === ">" && (s(y, { after: U }) || L.ignoreMatch());
  2322. let W;
  2323. const Y = y.input.substring(U);
  2324. if (W = Y.match(/^\s*=/)) {
  2325. L.ignoreMatch();
  2326. return;
  2327. }
  2328. if ((W = Y.match(/^\s+extends\s+/)) && W.index === 0) {
  2329. L.ignoreMatch();
  2330. return;
  2331. }
  2332. }
  2333. }, i = {
  2334. $pattern: nn,
  2335. keyword: Ut,
  2336. literal: Pt,
  2337. built_in: Ft,
  2338. "variable.language": xt
  2339. }, a = "[0-9](_?[0-9])*", o = `\\.(${a})`, l = "0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*", c = {
  2340. className: "number",
  2341. variants: [
  2342. // DecimalLiteral
  2343. { begin: `(\\b(${l})((${o})|\\.)?|(${o}))[eE][+-]?(${a})\\b` },
  2344. { begin: `\\b(${l})\\b((${o})\\b|\\.)?|(${o})\\b` },
  2345. // DecimalBigIntegerLiteral
  2346. { begin: "\\b(0|[1-9](_?[0-9])*)n\\b" },
  2347. // NonDecimalIntegerLiteral
  2348. { begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b" },
  2349. { begin: "\\b0[bB][0-1](_?[0-1])*n?\\b" },
  2350. { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" },
  2351. // LegacyOctalIntegerLiteral (does not include underscore separators)
  2352. // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals
  2353. { begin: "\\b0[0-7]+n?\\b" }
  2354. ],
  2355. relevance: 0
  2356. }, f = {
  2357. className: "subst",
  2358. begin: "\\$\\{",
  2359. end: "\\}",
  2360. keywords: i,
  2361. contains: []
  2362. // defined later
  2363. }, g = {
  2364. begin: "html`",
  2365. end: "",
  2366. starts: {
  2367. end: "`",
  2368. returnEnd: !1,
  2369. contains: [
  2370. n.BACKSLASH_ESCAPE,
  2371. f
  2372. ],
  2373. subLanguage: "xml"
  2374. }
  2375. }, d = {
  2376. begin: "css`",
  2377. end: "",
  2378. starts: {
  2379. end: "`",
  2380. returnEnd: !1,
  2381. contains: [
  2382. n.BACKSLASH_ESCAPE,
  2383. f
  2384. ],
  2385. subLanguage: "css"
  2386. }
  2387. }, _ = {
  2388. begin: "gql`",
  2389. end: "",
  2390. starts: {
  2391. end: "`",
  2392. returnEnd: !1,
  2393. contains: [
  2394. n.BACKSLASH_ESCAPE,
  2395. f
  2396. ],
  2397. subLanguage: "graphql"
  2398. }
  2399. }, p = {
  2400. className: "string",
  2401. begin: "`",
  2402. end: "`",
  2403. contains: [
  2404. n.BACKSLASH_ESCAPE,
  2405. f
  2406. ]
  2407. }, m = {
  2408. className: "comment",
  2409. variants: [
  2410. n.COMMENT(
  2411. /\/\*\*(?!\/)/,
  2412. "\\*/",
  2413. {
  2414. relevance: 0,
  2415. contains: [
  2416. {
  2417. begin: "(?=@[A-Za-z]+)",
  2418. relevance: 0,
  2419. contains: [
  2420. {
  2421. className: "doctag",
  2422. begin: "@[A-Za-z]+"
  2423. },
  2424. {
  2425. className: "type",
  2426. begin: "\\{",
  2427. end: "\\}",
  2428. excludeEnd: !0,
  2429. excludeBegin: !0,
  2430. relevance: 0
  2431. },
  2432. {
  2433. className: "variable",
  2434. begin: u + "(?=\\s*(-)|$)",
  2435. endsParent: !0,
  2436. relevance: 0
  2437. },
  2438. // eat spaces (not newlines) so we can find
  2439. // types or variables
  2440. {
  2441. begin: /(?=[^\n])\s/,
  2442. relevance: 0
  2443. }
  2444. ]
  2445. }
  2446. ]
  2447. }
  2448. ),
  2449. n.C_BLOCK_COMMENT_MODE,
  2450. n.C_LINE_COMMENT_MODE
  2451. ]
  2452. }, E = [
  2453. n.APOS_STRING_MODE,
  2454. n.QUOTE_STRING_MODE,
  2455. g,
  2456. d,
  2457. _,
  2458. p,
  2459. // Skip numbers when they are part of a variable name
  2460. { match: /\$\d+/ },
  2461. c
  2462. // This is intentional:
  2463. // See https://github.com/highlightjs/highlight.js/issues/3288
  2464. // hljs.REGEXP_MODE
  2465. ];
  2466. f.contains = E.concat({
  2467. // we need to pair up {} inside our subst to prevent
  2468. // it from ending too early by matching another }
  2469. begin: /\{/,
  2470. end: /\}/,
  2471. keywords: i,
  2472. contains: [
  2473. "self"
  2474. ].concat(E)
  2475. });
  2476. const A = [].concat(m, f.contains), S = A.concat([
  2477. // eat recursive parens in sub expressions
  2478. {
  2479. begin: /\(/,
  2480. end: /\)/,
  2481. keywords: i,
  2482. contains: ["self"].concat(A)
  2483. }
  2484. ]), D = {
  2485. className: "params",
  2486. begin: /\(/,
  2487. end: /\)/,
  2488. excludeBegin: !0,
  2489. excludeEnd: !0,
  2490. keywords: i,
  2491. contains: S
  2492. }, N = {
  2493. variants: [
  2494. // class Car extends vehicle
  2495. {
  2496. match: [
  2497. /class/,
  2498. /\s+/,
  2499. u,
  2500. /\s+/,
  2501. /extends/,
  2502. /\s+/,
  2503. e.concat(u, "(", e.concat(/\./, u), ")*")
  2504. ],
  2505. scope: {
  2506. 1: "keyword",
  2507. 3: "title.class",
  2508. 5: "keyword",
  2509. 7: "title.class.inherited"
  2510. }
  2511. },
  2512. // class Car
  2513. {
  2514. match: [
  2515. /class/,
  2516. /\s+/,
  2517. u
  2518. ],
  2519. scope: {
  2520. 1: "keyword",
  2521. 3: "title.class"
  2522. }
  2523. }
  2524. ]
  2525. }, R = {
  2526. relevance: 0,
  2527. match: e.either(
  2528. // Hard coded exceptions
  2529. /\bJSON/,
  2530. // Float32Array, OutT
  2531. /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,
  2532. // CSSFactory, CSSFactoryT
  2533. /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,
  2534. // FPs, FPsT
  2535. /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/
  2536. // P
  2537. // single letters are not highlighted
  2538. // BLAH
  2539. // this will be flagged as a UPPER_CASE_CONSTANT instead
  2540. ),
  2541. className: "title.class",
  2542. keywords: {
  2543. _: [
  2544. // se we still get relevance credit for JS library classes
  2545. ...vn,
  2546. ...mn
  2547. ]
  2548. }
  2549. }, C = {
  2550. label: "use_strict",
  2551. className: "meta",
  2552. relevance: 10,
  2553. begin: /^\s*['"]use (strict|asm)['"]/
  2554. }, I = {
  2555. variants: [
  2556. {
  2557. match: [
  2558. /function/,
  2559. /\s+/,
  2560. u,
  2561. /(?=\s*\()/
  2562. ]
  2563. },
  2564. // anonymous function
  2565. {
  2566. match: [
  2567. /function/,
  2568. /\s*(?=\()/
  2569. ]
  2570. }
  2571. ],
  2572. className: {
  2573. 1: "keyword",
  2574. 3: "title.function"
  2575. },
  2576. label: "func.def",
  2577. contains: [D],
  2578. illegal: /%/
  2579. }, $ = {
  2580. relevance: 0,
  2581. match: /\b[A-Z][A-Z_0-9]+\b/,
  2582. className: "variable.constant"
  2583. };
  2584. function B(y) {
  2585. return e.concat("(?!", y.join("|"), ")");
  2586. }
  2587. const H = {
  2588. match: e.concat(
  2589. /\b/,
  2590. B([
  2591. ...En,
  2592. "super",
  2593. "import"
  2594. ]),
  2595. u,
  2596. e.lookahead(/\(/)
  2597. ),
  2598. className: "title.function",
  2599. relevance: 0
  2600. }, K = {
  2601. begin: e.concat(/\./, e.lookahead(
  2602. e.concat(u, /(?![0-9A-Za-z$_(])/)
  2603. )),
  2604. end: u,
  2605. excludeBegin: !0,
  2606. keywords: "prototype",
  2607. className: "property",
  2608. relevance: 0
  2609. }, te = {
  2610. match: [
  2611. /get|set/,
  2612. /\s+/,
  2613. u,
  2614. /(?=\()/
  2615. ],
  2616. className: {
  2617. 1: "keyword",
  2618. 3: "title.function"
  2619. },
  2620. contains: [
  2621. {
  2622. // eat to avoid empty params
  2623. begin: /\(\)/
  2624. },
  2625. D
  2626. ]
  2627. }, le = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + n.UNDERSCORE_IDENT_RE + ")\\s*=>", b = {
  2628. match: [
  2629. /const|var|let/,
  2630. /\s+/,
  2631. u,
  2632. /\s*/,
  2633. /=\s*/,
  2634. /(async\s*)?/,
  2635. // async is optional
  2636. e.lookahead(le)
  2637. ],
  2638. keywords: "async",
  2639. className: {
  2640. 1: "keyword",
  2641. 3: "title.function"
  2642. },
  2643. contains: [
  2644. D
  2645. ]
  2646. };
  2647. return {
  2648. name: "JavaScript",
  2649. aliases: ["js", "jsx", "mjs", "cjs"],
  2650. keywords: i,
  2651. // this will be extended by TypeScript
  2652. exports: { PARAMS_CONTAINS: S, CLASS_REFERENCE: R },
  2653. illegal: /#(?![$_A-z])/,
  2654. contains: [
  2655. n.SHEBANG({
  2656. label: "shebang",
  2657. binary: "node",
  2658. relevance: 5
  2659. }),
  2660. C,
  2661. n.APOS_STRING_MODE,
  2662. n.QUOTE_STRING_MODE,
  2663. g,
  2664. d,
  2665. _,
  2666. p,
  2667. m,
  2668. // Skip numbers when they are part of a variable name
  2669. { match: /\$\d+/ },
  2670. c,
  2671. R,
  2672. {
  2673. className: "attr",
  2674. begin: u + e.lookahead(":"),
  2675. relevance: 0
  2676. },
  2677. b,
  2678. {
  2679. // "value" container
  2680. begin: "(" + n.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
  2681. keywords: "return throw case",
  2682. relevance: 0,
  2683. contains: [
  2684. m,
  2685. n.REGEXP_MODE,
  2686. {
  2687. className: "function",
  2688. // we have to count the parens to make sure we actually have the
  2689. // correct bounding ( ) before the =>. There could be any number of
  2690. // sub-expressions inside also surrounded by parens.
  2691. begin: le,
  2692. returnBegin: !0,
  2693. end: "\\s*=>",
  2694. contains: [
  2695. {
  2696. className: "params",
  2697. variants: [
  2698. {
  2699. begin: n.UNDERSCORE_IDENT_RE,
  2700. relevance: 0
  2701. },
  2702. {
  2703. className: null,
  2704. begin: /\(\s*\)/,
  2705. skip: !0
  2706. },
  2707. {
  2708. begin: /\(/,
  2709. end: /\)/,
  2710. excludeBegin: !0,
  2711. excludeEnd: !0,
  2712. keywords: i,
  2713. contains: S
  2714. }
  2715. ]
  2716. }
  2717. ]
  2718. },
  2719. {
  2720. // could be a comma delimited list of params to a function call
  2721. begin: /,/,
  2722. relevance: 0
  2723. },
  2724. {
  2725. match: /\s+/,
  2726. relevance: 0
  2727. },
  2728. {
  2729. // JSX
  2730. variants: [
  2731. { begin: h.begin, end: h.end },
  2732. { match: t },
  2733. {
  2734. begin: r.begin,
  2735. // we carefully check the opening tag to see if it truly
  2736. // is a tag and not a false positive
  2737. "on:begin": r.isTrulyOpeningTag,
  2738. end: r.end
  2739. }
  2740. ],
  2741. subLanguage: "xml",
  2742. contains: [
  2743. {
  2744. begin: r.begin,
  2745. end: r.end,
  2746. skip: !0,
  2747. contains: ["self"]
  2748. }
  2749. ]
  2750. }
  2751. ]
  2752. },
  2753. I,
  2754. {
  2755. // prevent this from getting swallowed up by function
  2756. // since they appear "function like"
  2757. beginKeywords: "while if switch catch for"
  2758. },
  2759. {
  2760. // we have to count the parens to make sure we actually have the correct
  2761. // bounding ( ). There could be any number of sub-expressions inside
  2762. // also surrounded by parens.
  2763. begin: "\\b(?!function)" + n.UNDERSCORE_IDENT_RE + "\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
  2764. // end parens
  2765. returnBegin: !0,
  2766. label: "func.def",
  2767. contains: [
  2768. D,
  2769. n.inherit(n.TITLE_MODE, { begin: u, className: "title.function" })
  2770. ]
  2771. },
  2772. // catch ... so it won't trigger the property rule below
  2773. {
  2774. match: /\.\.\./,
  2775. relevance: 0
  2776. },
  2777. K,
  2778. // hack: prevents detection of keywords in some circumstances
  2779. // .keyword()
  2780. // $keyword = x
  2781. {
  2782. match: "\\$" + u,
  2783. relevance: 0
  2784. },
  2785. {
  2786. match: [/\bconstructor(?=\s*\()/],
  2787. className: { 1: "title.function" },
  2788. contains: [D]
  2789. },
  2790. H,
  2791. $,
  2792. N,
  2793. te,
  2794. {
  2795. match: /\$[(.]/
  2796. // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
  2797. }
  2798. ]
  2799. };
  2800. }
  2801. function zt(n) {
  2802. const e = {
  2803. className: "attr",
  2804. begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
  2805. relevance: 1.01
  2806. }, s = {
  2807. match: /[{}[\],:]/,
  2808. className: "punctuation",
  2809. relevance: 0
  2810. }, u = [
  2811. "true",
  2812. "false",
  2813. "null"
  2814. ], h = {
  2815. scope: "literal",
  2816. beginKeywords: u.join(" ")
  2817. };
  2818. return {
  2819. name: "JSON",
  2820. keywords: {
  2821. literal: u
  2822. },
  2823. contains: [
  2824. e,
  2825. s,
  2826. n.QUOTE_STRING_MODE,
  2827. h,
  2828. n.C_NUMBER_MODE,
  2829. n.C_LINE_COMMENT_MODE,
  2830. n.C_BLOCK_COMMENT_MODE
  2831. ],
  2832. illegal: "\\S"
  2833. };
  2834. }
  2835. function Gt(n) {
  2836. const e = "true false yes no null", s = "[\\w#;/?:@&=+$,.~*'()[\\]]+", u = {
  2837. className: "attr",
  2838. variants: [
  2839. { begin: "\\w[\\w :\\/.-]*:(?=[ ]|$)" },
  2840. {
  2841. // double quoted keys
  2842. begin: '"\\w[\\w :\\/.-]*":(?=[ ]|$)'
  2843. },
  2844. {
  2845. // single quoted keys
  2846. begin: "'\\w[\\w :\\/.-]*':(?=[ ]|$)"
  2847. }
  2848. ]
  2849. }, h = {
  2850. className: "template-variable",
  2851. variants: [
  2852. {
  2853. // jinja templates Ansible
  2854. begin: /\{\{/,
  2855. end: /\}\}/
  2856. },
  2857. {
  2858. // Ruby i18n
  2859. begin: /%\{/,
  2860. end: /\}/
  2861. }
  2862. ]
  2863. }, t = {
  2864. className: "string",
  2865. relevance: 0,
  2866. variants: [
  2867. {
  2868. begin: /'/,
  2869. end: /'/
  2870. },
  2871. {
  2872. begin: /"/,
  2873. end: /"/
  2874. },
  2875. { begin: /\S+/ }
  2876. ],
  2877. contains: [
  2878. n.BACKSLASH_ESCAPE,
  2879. h
  2880. ]
  2881. }, r = n.inherit(t, { variants: [
  2882. {
  2883. begin: /'/,
  2884. end: /'/
  2885. },
  2886. {
  2887. begin: /"/,
  2888. end: /"/
  2889. },
  2890. { begin: /[^\s,{}[\]]+/ }
  2891. ] }), i = "[0-9]{4}(-[0-9][0-9]){0,2}", a = "([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?", o = "(\\.[0-9]*)?", l = "([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?", c = {
  2892. className: "number",
  2893. begin: "\\b" + i + a + o + l + "\\b"
  2894. }, f = {
  2895. end: ",",
  2896. endsWithParent: !0,
  2897. excludeEnd: !0,
  2898. keywords: e,
  2899. relevance: 0
  2900. }, g = {
  2901. begin: /\{/,
  2902. end: /\}/,
  2903. contains: [f],
  2904. illegal: "\\n",
  2905. relevance: 0
  2906. }, d = {
  2907. begin: "\\[",
  2908. end: "\\]",
  2909. contains: [f],
  2910. illegal: "\\n",
  2911. relevance: 0
  2912. }, _ = [
  2913. u,
  2914. {
  2915. className: "meta",
  2916. begin: "^---\\s*$",
  2917. relevance: 10
  2918. },
  2919. {
  2920. // multi line string
  2921. // Blocks start with a | or > followed by a newline
  2922. //
  2923. // Indentation of subsequent lines must be the same to
  2924. // be considered part of the block
  2925. className: "string",
  2926. begin: "[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"
  2927. },
  2928. {
  2929. // Ruby/Rails erb
  2930. begin: "<%[%=-]?",
  2931. end: "[%-]?%>",
  2932. subLanguage: "ruby",
  2933. excludeBegin: !0,
  2934. excludeEnd: !0,
  2935. relevance: 0
  2936. },
  2937. {
  2938. // named tags
  2939. className: "type",
  2940. begin: "!\\w+!" + s
  2941. },
  2942. // https://yaml.org/spec/1.2/spec.html#id2784064
  2943. {
  2944. // verbatim tags
  2945. className: "type",
  2946. begin: "!<" + s + ">"
  2947. },
  2948. {
  2949. // primary tags
  2950. className: "type",
  2951. begin: "!" + s
  2952. },
  2953. {
  2954. // secondary tags
  2955. className: "type",
  2956. begin: "!!" + s
  2957. },
  2958. {
  2959. // fragment id &ref
  2960. className: "meta",
  2961. begin: "&" + n.UNDERSCORE_IDENT_RE + "$"
  2962. },
  2963. {
  2964. // fragment reference *ref
  2965. className: "meta",
  2966. begin: "\\*" + n.UNDERSCORE_IDENT_RE + "$"
  2967. },
  2968. {
  2969. // array listing
  2970. className: "bullet",
  2971. // TODO: remove |$ hack when we have proper look-ahead support
  2972. begin: "-(?=[ ]|$)",
  2973. relevance: 0
  2974. },
  2975. n.HASH_COMMENT_MODE,
  2976. {
  2977. beginKeywords: e,
  2978. keywords: { literal: e }
  2979. },
  2980. c,
  2981. // numbers are any valid C-style number that
  2982. // sit isolated from other words
  2983. {
  2984. className: "number",
  2985. begin: n.C_NUMBER_RE + "\\b",
  2986. relevance: 0
  2987. },
  2988. g,
  2989. d,
  2990. t
  2991. ], p = [..._];
  2992. return p.pop(), p.push(r), f.contains = p, {
  2993. name: "YAML",
  2994. case_insensitive: !0,
  2995. aliases: ["yml"],
  2996. contains: _
  2997. };
  2998. }
  2999. function Kt(n) {
  3000. return {
  3001. name: "Plain text",
  3002. aliases: [
  3003. "text",
  3004. "txt"
  3005. ],
  3006. disableAutodetect: !0
  3007. };
  3008. }
  3009. function Wt(n) {
  3010. const e = n.regex, s = /[\p{XID_Start}_]\p{XID_Continue}*/u, u = [
  3011. "and",
  3012. "as",
  3013. "assert",
  3014. "async",
  3015. "await",
  3016. "break",
  3017. "case",
  3018. "class",
  3019. "continue",
  3020. "def",
  3021. "del",
  3022. "elif",
  3023. "else",
  3024. "except",
  3025. "finally",
  3026. "for",
  3027. "from",
  3028. "global",
  3029. "if",
  3030. "import",
  3031. "in",
  3032. "is",
  3033. "lambda",
  3034. "match",
  3035. "nonlocal|10",
  3036. "not",
  3037. "or",
  3038. "pass",
  3039. "raise",
  3040. "return",
  3041. "try",
  3042. "while",
  3043. "with",
  3044. "yield"
  3045. ], i = {
  3046. $pattern: /[A-Za-z]\w+|__\w+__/,
  3047. keyword: u,
  3048. built_in: [
  3049. "__import__",
  3050. "abs",
  3051. "all",
  3052. "any",
  3053. "ascii",
  3054. "bin",
  3055. "bool",
  3056. "breakpoint",
  3057. "bytearray",
  3058. "bytes",
  3059. "callable",
  3060. "chr",
  3061. "classmethod",
  3062. "compile",
  3063. "complex",
  3064. "delattr",
  3065. "dict",
  3066. "dir",
  3067. "divmod",
  3068. "enumerate",
  3069. "eval",
  3070. "exec",
  3071. "filter",
  3072. "float",
  3073. "format",
  3074. "frozenset",
  3075. "getattr",
  3076. "globals",
  3077. "hasattr",
  3078. "hash",
  3079. "help",
  3080. "hex",
  3081. "id",
  3082. "input",
  3083. "int",
  3084. "isinstance",
  3085. "issubclass",
  3086. "iter",
  3087. "len",
  3088. "list",
  3089. "locals",
  3090. "map",
  3091. "max",
  3092. "memoryview",
  3093. "min",
  3094. "next",
  3095. "object",
  3096. "oct",
  3097. "open",
  3098. "ord",
  3099. "pow",
  3100. "print",
  3101. "property",
  3102. "range",
  3103. "repr",
  3104. "reversed",
  3105. "round",
  3106. "set",
  3107. "setattr",
  3108. "slice",
  3109. "sorted",
  3110. "staticmethod",
  3111. "str",
  3112. "sum",
  3113. "super",
  3114. "tuple",
  3115. "type",
  3116. "vars",
  3117. "zip"
  3118. ],
  3119. literal: [
  3120. "__debug__",
  3121. "Ellipsis",
  3122. "False",
  3123. "None",
  3124. "NotImplemented",
  3125. "True"
  3126. ],
  3127. type: [
  3128. "Any",
  3129. "Callable",
  3130. "Coroutine",
  3131. "Dict",
  3132. "List",
  3133. "Literal",
  3134. "Generic",
  3135. "Optional",
  3136. "Sequence",
  3137. "Set",
  3138. "Tuple",
  3139. "Type",
  3140. "Union"
  3141. ]
  3142. }, a = {
  3143. className: "meta",
  3144. begin: /^(>>>|\.\.\.) /
  3145. }, o = {
  3146. className: "subst",
  3147. begin: /\{/,
  3148. end: /\}/,
  3149. keywords: i,
  3150. illegal: /#/
  3151. }, l = {
  3152. begin: /\{\{/,
  3153. relevance: 0
  3154. }, c = {
  3155. className: "string",
  3156. contains: [n.BACKSLASH_ESCAPE],
  3157. variants: [
  3158. {
  3159. begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,
  3160. end: /'''/,
  3161. contains: [
  3162. n.BACKSLASH_ESCAPE,
  3163. a
  3164. ],
  3165. relevance: 10
  3166. },
  3167. {
  3168. begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,
  3169. end: /"""/,
  3170. contains: [
  3171. n.BACKSLASH_ESCAPE,
  3172. a
  3173. ],
  3174. relevance: 10
  3175. },
  3176. {
  3177. begin: /([fF][rR]|[rR][fF]|[fF])'''/,
  3178. end: /'''/,
  3179. contains: [
  3180. n.BACKSLASH_ESCAPE,
  3181. a,
  3182. l,
  3183. o
  3184. ]
  3185. },
  3186. {
  3187. begin: /([fF][rR]|[rR][fF]|[fF])"""/,
  3188. end: /"""/,
  3189. contains: [
  3190. n.BACKSLASH_ESCAPE,
  3191. a,
  3192. l,
  3193. o
  3194. ]
  3195. },
  3196. {
  3197. begin: /([uU]|[rR])'/,
  3198. end: /'/,
  3199. relevance: 10
  3200. },
  3201. {
  3202. begin: /([uU]|[rR])"/,
  3203. end: /"/,
  3204. relevance: 10
  3205. },
  3206. {
  3207. begin: /([bB]|[bB][rR]|[rR][bB])'/,
  3208. end: /'/
  3209. },
  3210. {
  3211. begin: /([bB]|[bB][rR]|[rR][bB])"/,
  3212. end: /"/
  3213. },
  3214. {
  3215. begin: /([fF][rR]|[rR][fF]|[fF])'/,
  3216. end: /'/,
  3217. contains: [
  3218. n.BACKSLASH_ESCAPE,
  3219. l,
  3220. o
  3221. ]
  3222. },
  3223. {
  3224. begin: /([fF][rR]|[rR][fF]|[fF])"/,
  3225. end: /"/,
  3226. contains: [
  3227. n.BACKSLASH_ESCAPE,
  3228. l,
  3229. o
  3230. ]
  3231. },
  3232. n.APOS_STRING_MODE,
  3233. n.QUOTE_STRING_MODE
  3234. ]
  3235. }, f = "[0-9](_?[0-9])*", g = `(\\b(${f}))?\\.(${f})|\\b(${f})\\.`, d = `\\b|${u.join("|")}`, _ = {
  3236. className: "number",
  3237. relevance: 0,
  3238. variants: [
  3239. // exponentfloat, pointfloat
  3240. // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals
  3241. // optionally imaginary
  3242. // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals
  3243. // Note: no leading \b because floats can start with a decimal point
  3244. // and we don't want to mishandle e.g. `fn(.5)`,
  3245. // no trailing \b for pointfloat because it can end with a decimal point
  3246. // and we don't want to mishandle e.g. `0..hex()`; this should be safe
  3247. // because both MUST contain a decimal point and so cannot be confused with
  3248. // the interior part of an identifier
  3249. {
  3250. begin: `(\\b(${f})|(${g}))[eE][+-]?(${f})[jJ]?(?=${d})`
  3251. },
  3252. {
  3253. begin: `(${g})[jJ]?`
  3254. },
  3255. // decinteger, bininteger, octinteger, hexinteger
  3256. // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals
  3257. // optionally "long" in Python 2
  3258. // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals
  3259. // decinteger is optionally imaginary
  3260. // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals
  3261. {
  3262. begin: `\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`
  3263. },
  3264. {
  3265. begin: `\\b0[bB](_?[01])+[lL]?(?=${d})`
  3266. },
  3267. {
  3268. begin: `\\b0[oO](_?[0-7])+[lL]?(?=${d})`
  3269. },
  3270. {
  3271. begin: `\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`
  3272. },
  3273. // imagnumber (digitpart-based)
  3274. // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals
  3275. {
  3276. begin: `\\b(${f})[jJ](?=${d})`
  3277. }
  3278. ]
  3279. }, p = {
  3280. className: "comment",
  3281. begin: e.lookahead(/# type:/),
  3282. end: /$/,
  3283. keywords: i,
  3284. contains: [
  3285. {
  3286. // prevent keywords from coloring `type`
  3287. begin: /# type:/
  3288. },
  3289. // comment within a datatype comment includes no keywords
  3290. {
  3291. begin: /#/,
  3292. end: /\b\B/,
  3293. endsWithParent: !0
  3294. }
  3295. ]
  3296. }, v = {
  3297. className: "params",
  3298. variants: [
  3299. // Exclude params in functions without params
  3300. {
  3301. className: "",
  3302. begin: /\(\s*\)/,
  3303. skip: !0
  3304. },
  3305. {
  3306. begin: /\(/,
  3307. end: /\)/,
  3308. excludeBegin: !0,
  3309. excludeEnd: !0,
  3310. keywords: i,
  3311. contains: [
  3312. "self",
  3313. a,
  3314. _,
  3315. c,
  3316. n.HASH_COMMENT_MODE
  3317. ]
  3318. }
  3319. ]
  3320. };
  3321. return o.contains = [
  3322. c,
  3323. _,
  3324. a
  3325. ], {
  3326. name: "Python",
  3327. aliases: [
  3328. "py",
  3329. "gyp",
  3330. "ipython"
  3331. ],
  3332. unicodeRegex: !0,
  3333. keywords: i,
  3334. illegal: /(<\/|\?)|=>/,
  3335. contains: [
  3336. a,
  3337. _,
  3338. {
  3339. // very common convention
  3340. begin: /\bself\b/
  3341. },
  3342. {
  3343. // eat "if" prior to string so that it won't accidentally be
  3344. // labeled as an f-string
  3345. beginKeywords: "if",
  3346. relevance: 0
  3347. },
  3348. c,
  3349. p,
  3350. n.HASH_COMMENT_MODE,
  3351. {
  3352. match: [
  3353. /\bdef/,
  3354. /\s+/,
  3355. s
  3356. ],
  3357. scope: {
  3358. 1: "keyword",
  3359. 3: "title.function"
  3360. },
  3361. contains: [v]
  3362. },
  3363. {
  3364. variants: [
  3365. {
  3366. match: [
  3367. /\bclass/,
  3368. /\s+/,
  3369. s,
  3370. /\s*/,
  3371. /\(\s*/,
  3372. s,
  3373. /\s*\)/
  3374. ]
  3375. },
  3376. {
  3377. match: [
  3378. /\bclass/,
  3379. /\s+/,
  3380. s
  3381. ]
  3382. }
  3383. ],
  3384. scope: {
  3385. 1: "keyword",
  3386. 3: "title.class",
  3387. 6: "title.class.inherited"
  3388. }
  3389. },
  3390. {
  3391. className: "meta",
  3392. begin: /^[\t ]*@/,
  3393. end: /(?=#)|$/,
  3394. contains: [
  3395. _,
  3396. v,
  3397. c
  3398. ]
  3399. }
  3400. ]
  3401. };
  3402. }
  3403. var ue = "[0-9](_*[0-9])*", ye = `\\.(${ue})`, Ae = "[0-9a-fA-F](_*[0-9a-fA-F])*", tn = {
  3404. className: "number",
  3405. variants: [
  3406. // DecimalFloatingPointLiteral
  3407. // including ExponentPart
  3408. { begin: `(\\b(${ue})((${ye})|\\.)?|(${ye}))[eE][+-]?(${ue})[fFdD]?\\b` },
  3409. // excluding ExponentPart
  3410. { begin: `\\b(${ue})((${ye})[fFdD]?\\b|\\.([fFdD]\\b)?)` },
  3411. { begin: `(${ye})[fFdD]?\\b` },
  3412. { begin: `\\b(${ue})[fFdD]\\b` },
  3413. // HexadecimalFloatingPointLiteral
  3414. { begin: `\\b0[xX]((${Ae})\\.?|(${Ae})?\\.(${Ae}))[pP][+-]?(${ue})[fFdD]?\\b` },
  3415. // DecimalIntegerLiteral
  3416. { begin: "\\b(0|[1-9](_*[0-9])*)[lL]?\\b" },
  3417. // HexIntegerLiteral
  3418. { begin: `\\b0[xX](${Ae})[lL]?\\b` },
  3419. // OctalIntegerLiteral
  3420. { begin: "\\b0(_*[0-7])*[lL]?\\b" },
  3421. // BinaryIntegerLiteral
  3422. { begin: "\\b0[bB][01](_*[01])*[lL]?\\b" }
  3423. ],
  3424. relevance: 0
  3425. };
  3426. function wn(n, e, s) {
  3427. return s === -1 ? "" : n.replace(e, (u) => wn(n, e, s - 1));
  3428. }
  3429. function Qt(n) {
  3430. const e = n.regex, s = "[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*", u = s + wn("(?:<" + s + "~~~(?:\\s*,\\s*" + s + "~~~)*>)?", /~~~/g, 2), a = {
  3431. keyword: [
  3432. "synchronized",
  3433. "abstract",
  3434. "private",
  3435. "var",
  3436. "static",
  3437. "if",
  3438. "const ",
  3439. "for",
  3440. "while",
  3441. "strictfp",
  3442. "finally",
  3443. "protected",
  3444. "import",
  3445. "native",
  3446. "final",
  3447. "void",
  3448. "enum",
  3449. "else",
  3450. "break",
  3451. "transient",
  3452. "catch",
  3453. "instanceof",
  3454. "volatile",
  3455. "case",
  3456. "assert",
  3457. "package",
  3458. "default",
  3459. "public",
  3460. "try",
  3461. "switch",
  3462. "continue",
  3463. "throws",
  3464. "protected",
  3465. "public",
  3466. "private",
  3467. "module",
  3468. "requires",
  3469. "exports",
  3470. "do",
  3471. "sealed",
  3472. "yield",
  3473. "permits"
  3474. ],
  3475. literal: [
  3476. "false",
  3477. "true",
  3478. "null"
  3479. ],
  3480. type: [
  3481. "char",
  3482. "boolean",
  3483. "long",
  3484. "float",
  3485. "int",
  3486. "byte",
  3487. "short",
  3488. "double"
  3489. ],
  3490. built_in: [
  3491. "super",
  3492. "this"
  3493. ]
  3494. }, o = {
  3495. className: "meta",
  3496. begin: "@" + s,
  3497. contains: [
  3498. {
  3499. begin: /\(/,
  3500. end: /\)/,
  3501. contains: ["self"]
  3502. // allow nested () inside our annotation
  3503. }
  3504. ]
  3505. }, l = {
  3506. className: "params",
  3507. begin: /\(/,
  3508. end: /\)/,
  3509. keywords: a,
  3510. relevance: 0,
  3511. contains: [n.C_BLOCK_COMMENT_MODE],
  3512. endsParent: !0
  3513. };
  3514. return {
  3515. name: "Java",
  3516. aliases: ["jsp"],
  3517. keywords: a,
  3518. illegal: /<\/|#/,
  3519. contains: [
  3520. n.COMMENT(
  3521. "/\\*\\*",
  3522. "\\*/",
  3523. {
  3524. relevance: 0,
  3525. contains: [
  3526. {
  3527. // eat up @'s in emails to prevent them to be recognized as doctags
  3528. begin: /\w+@/,
  3529. relevance: 0
  3530. },
  3531. {
  3532. className: "doctag",
  3533. begin: "@[A-Za-z]+"
  3534. }
  3535. ]
  3536. }
  3537. ),
  3538. // relevance boost
  3539. {
  3540. begin: /import java\.[a-z]+\./,
  3541. keywords: "import",
  3542. relevance: 2
  3543. },
  3544. n.C_LINE_COMMENT_MODE,
  3545. n.C_BLOCK_COMMENT_MODE,
  3546. {
  3547. begin: /"""/,
  3548. end: /"""/,
  3549. className: "string",
  3550. contains: [n.BACKSLASH_ESCAPE]
  3551. },
  3552. n.APOS_STRING_MODE,
  3553. n.QUOTE_STRING_MODE,
  3554. {
  3555. match: [
  3556. /\b(?:class|interface|enum|extends|implements|new)/,
  3557. /\s+/,
  3558. s
  3559. ],
  3560. className: {
  3561. 1: "keyword",
  3562. 3: "title.class"
  3563. }
  3564. },
  3565. {
  3566. // Exceptions for hyphenated keywords
  3567. match: /non-sealed/,
  3568. scope: "keyword"
  3569. },
  3570. {
  3571. begin: [
  3572. e.concat(/(?!else)/, s),
  3573. /\s+/,
  3574. s,
  3575. /\s+/,
  3576. /=(?!=)/
  3577. ],
  3578. className: {
  3579. 1: "type",
  3580. 3: "variable",
  3581. 5: "operator"
  3582. }
  3583. },
  3584. {
  3585. begin: [
  3586. /record/,
  3587. /\s+/,
  3588. s
  3589. ],
  3590. className: {
  3591. 1: "keyword",
  3592. 3: "title.class"
  3593. },
  3594. contains: [
  3595. l,
  3596. n.C_LINE_COMMENT_MODE,
  3597. n.C_BLOCK_COMMENT_MODE
  3598. ]
  3599. },
  3600. {
  3601. // Expression keywords prevent 'keyword Name(...)' from being
  3602. // recognized as a function definition
  3603. beginKeywords: "new throw return else",
  3604. relevance: 0
  3605. },
  3606. {
  3607. begin: [
  3608. "(?:" + u + "\\s+)",
  3609. n.UNDERSCORE_IDENT_RE,
  3610. /\s*(?=\()/
  3611. ],
  3612. className: { 2: "title.function" },
  3613. keywords: a,
  3614. contains: [
  3615. {
  3616. className: "params",
  3617. begin: /\(/,
  3618. end: /\)/,
  3619. keywords: a,
  3620. relevance: 0,
  3621. contains: [
  3622. o,
  3623. n.APOS_STRING_MODE,
  3624. n.QUOTE_STRING_MODE,
  3625. tn,
  3626. n.C_BLOCK_COMMENT_MODE
  3627. ]
  3628. },
  3629. n.C_LINE_COMMENT_MODE,
  3630. n.C_BLOCK_COMMENT_MODE
  3631. ]
  3632. },
  3633. tn,
  3634. o
  3635. ]
  3636. };
  3637. }
  3638. function Vt(n) {
  3639. const e = n.regex, s = {}, u = {
  3640. begin: /\$\{/,
  3641. end: /\}/,
  3642. contains: [
  3643. "self",
  3644. {
  3645. begin: /:-/,
  3646. contains: [s]
  3647. }
  3648. // default values
  3649. ]
  3650. };
  3651. Object.assign(s, {
  3652. className: "variable",
  3653. variants: [
  3654. { begin: e.concat(
  3655. /\$[\w\d#@][\w\d_]*/,
  3656. // negative look-ahead tries to avoid matching patterns that are not
  3657. // Perl at all like $ident$, @ident@, etc.
  3658. "(?![\\w\\d])(?![$])"
  3659. ) },
  3660. u
  3661. ]
  3662. });
  3663. const h = {
  3664. className: "subst",
  3665. begin: /\$\(/,
  3666. end: /\)/,
  3667. contains: [n.BACKSLASH_ESCAPE]
  3668. }, t = {
  3669. begin: /<<-?\s*(?=\w+)/,
  3670. starts: { contains: [
  3671. n.END_SAME_AS_BEGIN({
  3672. begin: /(\w+)/,
  3673. end: /(\w+)/,
  3674. className: "string"
  3675. })
  3676. ] }
  3677. }, r = {
  3678. className: "string",
  3679. begin: /"/,
  3680. end: /"/,
  3681. contains: [
  3682. n.BACKSLASH_ESCAPE,
  3683. s,
  3684. h
  3685. ]
  3686. };
  3687. h.contains.push(r);
  3688. const i = {
  3689. match: /\\"/
  3690. }, a = {
  3691. className: "string",
  3692. begin: /'/,
  3693. end: /'/
  3694. }, o = {
  3695. match: /\\'/
  3696. }, l = {
  3697. begin: /\$?\(\(/,
  3698. end: /\)\)/,
  3699. contains: [
  3700. {
  3701. begin: /\d+#[0-9a-f]+/,
  3702. className: "number"
  3703. },
  3704. n.NUMBER_MODE,
  3705. s
  3706. ]
  3707. }, c = [
  3708. "fish",
  3709. "bash",
  3710. "zsh",
  3711. "sh",
  3712. "csh",
  3713. "ksh",
  3714. "tcsh",
  3715. "dash",
  3716. "scsh"
  3717. ], f = n.SHEBANG({
  3718. binary: `(${c.join("|")})`,
  3719. relevance: 10
  3720. }), g = {
  3721. className: "function",
  3722. begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
  3723. returnBegin: !0,
  3724. contains: [n.inherit(n.TITLE_MODE, { begin: /\w[\w\d_]*/ })],
  3725. relevance: 0
  3726. }, d = [
  3727. "if",
  3728. "then",
  3729. "else",
  3730. "elif",
  3731. "fi",
  3732. "for",
  3733. "while",
  3734. "until",
  3735. "in",
  3736. "do",
  3737. "done",
  3738. "case",
  3739. "esac",
  3740. "function",
  3741. "select"
  3742. ], _ = [
  3743. "true",
  3744. "false"
  3745. ], p = { match: /(\/[a-z._-]+)+/ }, v = [
  3746. "break",
  3747. "cd",
  3748. "continue",
  3749. "eval",
  3750. "exec",
  3751. "exit",
  3752. "export",
  3753. "getopts",
  3754. "hash",
  3755. "pwd",
  3756. "readonly",
  3757. "return",
  3758. "shift",
  3759. "test",
  3760. "times",
  3761. "trap",
  3762. "umask",
  3763. "unset"
  3764. ], m = [
  3765. "alias",
  3766. "bind",
  3767. "builtin",
  3768. "caller",
  3769. "command",
  3770. "declare",
  3771. "echo",
  3772. "enable",
  3773. "help",
  3774. "let",
  3775. "local",
  3776. "logout",
  3777. "mapfile",
  3778. "printf",
  3779. "read",
  3780. "readarray",
  3781. "source",
  3782. "type",
  3783. "typeset",
  3784. "ulimit",
  3785. "unalias"
  3786. ], E = [
  3787. "autoload",
  3788. "bg",
  3789. "bindkey",
  3790. "bye",
  3791. "cap",
  3792. "chdir",
  3793. "clone",
  3794. "comparguments",
  3795. "compcall",
  3796. "compctl",
  3797. "compdescribe",
  3798. "compfiles",
  3799. "compgroups",
  3800. "compquote",
  3801. "comptags",
  3802. "comptry",
  3803. "compvalues",
  3804. "dirs",
  3805. "disable",
  3806. "disown",
  3807. "echotc",
  3808. "echoti",
  3809. "emulate",
  3810. "fc",
  3811. "fg",
  3812. "float",
  3813. "functions",
  3814. "getcap",
  3815. "getln",
  3816. "history",
  3817. "integer",
  3818. "jobs",
  3819. "kill",
  3820. "limit",
  3821. "log",
  3822. "noglob",
  3823. "popd",
  3824. "print",
  3825. "pushd",
  3826. "pushln",
  3827. "rehash",
  3828. "sched",
  3829. "setcap",
  3830. "setopt",
  3831. "stat",
  3832. "suspend",
  3833. "ttyctl",
  3834. "unfunction",
  3835. "unhash",
  3836. "unlimit",
  3837. "unsetopt",
  3838. "vared",
  3839. "wait",
  3840. "whence",
  3841. "where",
  3842. "which",
  3843. "zcompile",
  3844. "zformat",
  3845. "zftp",
  3846. "zle",
  3847. "zmodload",
  3848. "zparseopts",
  3849. "zprof",
  3850. "zpty",
  3851. "zregexparse",
  3852. "zsocket",
  3853. "zstyle",
  3854. "ztcp"
  3855. ], A = [
  3856. "chcon",
  3857. "chgrp",
  3858. "chown",
  3859. "chmod",
  3860. "cp",
  3861. "dd",
  3862. "df",
  3863. "dir",
  3864. "dircolors",
  3865. "ln",
  3866. "ls",
  3867. "mkdir",
  3868. "mkfifo",
  3869. "mknod",
  3870. "mktemp",
  3871. "mv",
  3872. "realpath",
  3873. "rm",
  3874. "rmdir",
  3875. "shred",
  3876. "sync",
  3877. "touch",
  3878. "truncate",
  3879. "vdir",
  3880. "b2sum",
  3881. "base32",
  3882. "base64",
  3883. "cat",
  3884. "cksum",
  3885. "comm",
  3886. "csplit",
  3887. "cut",
  3888. "expand",
  3889. "fmt",
  3890. "fold",
  3891. "head",
  3892. "join",
  3893. "md5sum",
  3894. "nl",
  3895. "numfmt",
  3896. "od",
  3897. "paste",
  3898. "ptx",
  3899. "pr",
  3900. "sha1sum",
  3901. "sha224sum",
  3902. "sha256sum",
  3903. "sha384sum",
  3904. "sha512sum",
  3905. "shuf",
  3906. "sort",
  3907. "split",
  3908. "sum",
  3909. "tac",
  3910. "tail",
  3911. "tr",
  3912. "tsort",
  3913. "unexpand",
  3914. "uniq",
  3915. "wc",
  3916. "arch",
  3917. "basename",
  3918. "chroot",
  3919. "date",
  3920. "dirname",
  3921. "du",
  3922. "echo",
  3923. "env",
  3924. "expr",
  3925. "factor",
  3926. // "false", // keyword literal already
  3927. "groups",
  3928. "hostid",
  3929. "id",
  3930. "link",
  3931. "logname",
  3932. "nice",
  3933. "nohup",
  3934. "nproc",
  3935. "pathchk",
  3936. "pinky",
  3937. "printenv",
  3938. "printf",
  3939. "pwd",
  3940. "readlink",
  3941. "runcon",
  3942. "seq",
  3943. "sleep",
  3944. "stat",
  3945. "stdbuf",
  3946. "stty",
  3947. "tee",
  3948. "test",
  3949. "timeout",
  3950. // "true", // keyword literal already
  3951. "tty",
  3952. "uname",
  3953. "unlink",
  3954. "uptime",
  3955. "users",
  3956. "who",
  3957. "whoami",
  3958. "yes"
  3959. ];
  3960. return {
  3961. name: "Bash",
  3962. aliases: ["sh"],
  3963. keywords: {
  3964. $pattern: /\b[a-z][a-z0-9._-]+\b/,
  3965. keyword: d,
  3966. literal: _,
  3967. built_in: [
  3968. ...v,
  3969. ...m,
  3970. // Shell modifiers
  3971. "set",
  3972. "shopt",
  3973. ...E,
  3974. ...A
  3975. ]
  3976. },
  3977. contains: [
  3978. f,
  3979. // to catch known shells and boost relevancy
  3980. n.SHEBANG(),
  3981. // to catch unknown shells but still highlight the shebang
  3982. g,
  3983. l,
  3984. n.HASH_COMMENT_MODE,
  3985. t,
  3986. p,
  3987. r,
  3988. i,
  3989. a,
  3990. o,
  3991. s
  3992. ]
  3993. };
  3994. }
  3995. function Zt(n) {
  3996. const e = n.regex, s = n.COMMENT("--", "$"), u = {
  3997. className: "string",
  3998. variants: [
  3999. {
  4000. begin: /'/,
  4001. end: /'/,
  4002. contains: [{ begin: /''/ }]
  4003. }
  4004. ]
  4005. }, h = {
  4006. begin: /"/,
  4007. end: /"/,
  4008. contains: [{ begin: /""/ }]
  4009. }, t = [
  4010. "true",
  4011. "false",
  4012. // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.
  4013. // "null",
  4014. "unknown"
  4015. ], r = [
  4016. "double precision",
  4017. "large object",
  4018. "with timezone",
  4019. "without timezone"
  4020. ], i = [
  4021. "bigint",
  4022. "binary",
  4023. "blob",
  4024. "boolean",
  4025. "char",
  4026. "character",
  4027. "clob",
  4028. "date",
  4029. "dec",
  4030. "decfloat",
  4031. "decimal",
  4032. "float",
  4033. "int",
  4034. "integer",
  4035. "interval",
  4036. "nchar",
  4037. "nclob",
  4038. "national",
  4039. "numeric",
  4040. "real",
  4041. "row",
  4042. "smallint",
  4043. "time",
  4044. "timestamp",
  4045. "varchar",
  4046. "varying",
  4047. // modifier (character varying)
  4048. "varbinary"
  4049. ], a = [
  4050. "add",
  4051. "asc",
  4052. "collation",
  4053. "desc",
  4054. "final",
  4055. "first",
  4056. "last",
  4057. "view"
  4058. ], o = [
  4059. "abs",
  4060. "acos",
  4061. "all",
  4062. "allocate",
  4063. "alter",
  4064. "and",
  4065. "any",
  4066. "are",
  4067. "array",
  4068. "array_agg",
  4069. "array_max_cardinality",
  4070. "as",
  4071. "asensitive",
  4072. "asin",
  4073. "asymmetric",
  4074. "at",
  4075. "atan",
  4076. "atomic",
  4077. "authorization",
  4078. "avg",
  4079. "begin",
  4080. "begin_frame",
  4081. "begin_partition",
  4082. "between",
  4083. "bigint",
  4084. "binary",
  4085. "blob",
  4086. "boolean",
  4087. "both",
  4088. "by",
  4089. "call",
  4090. "called",
  4091. "cardinality",
  4092. "cascaded",
  4093. "case",
  4094. "cast",
  4095. "ceil",
  4096. "ceiling",
  4097. "char",
  4098. "char_length",
  4099. "character",
  4100. "character_length",
  4101. "check",
  4102. "classifier",
  4103. "clob",
  4104. "close",
  4105. "coalesce",
  4106. "collate",
  4107. "collect",
  4108. "column",
  4109. "commit",
  4110. "condition",
  4111. "connect",
  4112. "constraint",
  4113. "contains",
  4114. "convert",
  4115. "copy",
  4116. "corr",
  4117. "corresponding",
  4118. "cos",
  4119. "cosh",
  4120. "count",
  4121. "covar_pop",
  4122. "covar_samp",
  4123. "create",
  4124. "cross",
  4125. "cube",
  4126. "cume_dist",
  4127. "current",
  4128. "current_catalog",
  4129. "current_date",
  4130. "current_default_transform_group",
  4131. "current_path",
  4132. "current_role",
  4133. "current_row",
  4134. "current_schema",
  4135. "current_time",
  4136. "current_timestamp",
  4137. "current_path",
  4138. "current_role",
  4139. "current_transform_group_for_type",
  4140. "current_user",
  4141. "cursor",
  4142. "cycle",
  4143. "date",
  4144. "day",
  4145. "deallocate",
  4146. "dec",
  4147. "decimal",
  4148. "decfloat",
  4149. "declare",
  4150. "default",
  4151. "define",
  4152. "delete",
  4153. "dense_rank",
  4154. "deref",
  4155. "describe",
  4156. "deterministic",
  4157. "disconnect",
  4158. "distinct",
  4159. "double",
  4160. "drop",
  4161. "dynamic",
  4162. "each",
  4163. "element",
  4164. "else",
  4165. "empty",
  4166. "end",
  4167. "end_frame",
  4168. "end_partition",
  4169. "end-exec",
  4170. "equals",
  4171. "escape",
  4172. "every",
  4173. "except",
  4174. "exec",
  4175. "execute",
  4176. "exists",
  4177. "exp",
  4178. "external",
  4179. "extract",
  4180. "false",
  4181. "fetch",
  4182. "filter",
  4183. "first_value",
  4184. "float",
  4185. "floor",
  4186. "for",
  4187. "foreign",
  4188. "frame_row",
  4189. "free",
  4190. "from",
  4191. "full",
  4192. "function",
  4193. "fusion",
  4194. "get",
  4195. "global",
  4196. "grant",
  4197. "group",
  4198. "grouping",
  4199. "groups",
  4200. "having",
  4201. "hold",
  4202. "hour",
  4203. "identity",
  4204. "in",
  4205. "indicator",
  4206. "initial",
  4207. "inner",
  4208. "inout",
  4209. "insensitive",
  4210. "insert",
  4211. "int",
  4212. "integer",
  4213. "intersect",
  4214. "intersection",
  4215. "interval",
  4216. "into",
  4217. "is",
  4218. "join",
  4219. "json_array",
  4220. "json_arrayagg",
  4221. "json_exists",
  4222. "json_object",
  4223. "json_objectagg",
  4224. "json_query",
  4225. "json_table",
  4226. "json_table_primitive",
  4227. "json_value",
  4228. "lag",
  4229. "language",
  4230. "large",
  4231. "last_value",
  4232. "lateral",
  4233. "lead",
  4234. "leading",
  4235. "left",
  4236. "like",
  4237. "like_regex",
  4238. "listagg",
  4239. "ln",
  4240. "local",
  4241. "localtime",
  4242. "localtimestamp",
  4243. "log",
  4244. "log10",
  4245. "lower",
  4246. "match",
  4247. "match_number",
  4248. "match_recognize",
  4249. "matches",
  4250. "max",
  4251. "member",
  4252. "merge",
  4253. "method",
  4254. "min",
  4255. "minute",
  4256. "mod",
  4257. "modifies",
  4258. "module",
  4259. "month",
  4260. "multiset",
  4261. "national",
  4262. "natural",
  4263. "nchar",
  4264. "nclob",
  4265. "new",
  4266. "no",
  4267. "none",
  4268. "normalize",
  4269. "not",
  4270. "nth_value",
  4271. "ntile",
  4272. "null",
  4273. "nullif",
  4274. "numeric",
  4275. "octet_length",
  4276. "occurrences_regex",
  4277. "of",
  4278. "offset",
  4279. "old",
  4280. "omit",
  4281. "on",
  4282. "one",
  4283. "only",
  4284. "open",
  4285. "or",
  4286. "order",
  4287. "out",
  4288. "outer",
  4289. "over",
  4290. "overlaps",
  4291. "overlay",
  4292. "parameter",
  4293. "partition",
  4294. "pattern",
  4295. "per",
  4296. "percent",
  4297. "percent_rank",
  4298. "percentile_cont",
  4299. "percentile_disc",
  4300. "period",
  4301. "portion",
  4302. "position",
  4303. "position_regex",
  4304. "power",
  4305. "precedes",
  4306. "precision",
  4307. "prepare",
  4308. "primary",
  4309. "procedure",
  4310. "ptf",
  4311. "range",
  4312. "rank",
  4313. "reads",
  4314. "real",
  4315. "recursive",
  4316. "ref",
  4317. "references",
  4318. "referencing",
  4319. "regr_avgx",
  4320. "regr_avgy",
  4321. "regr_count",
  4322. "regr_intercept",
  4323. "regr_r2",
  4324. "regr_slope",
  4325. "regr_sxx",
  4326. "regr_sxy",
  4327. "regr_syy",
  4328. "release",
  4329. "result",
  4330. "return",
  4331. "returns",
  4332. "revoke",
  4333. "right",
  4334. "rollback",
  4335. "rollup",
  4336. "row",
  4337. "row_number",
  4338. "rows",
  4339. "running",
  4340. "savepoint",
  4341. "scope",
  4342. "scroll",
  4343. "search",
  4344. "second",
  4345. "seek",
  4346. "select",
  4347. "sensitive",
  4348. "session_user",
  4349. "set",
  4350. "show",
  4351. "similar",
  4352. "sin",
  4353. "sinh",
  4354. "skip",
  4355. "smallint",
  4356. "some",
  4357. "specific",
  4358. "specifictype",
  4359. "sql",
  4360. "sqlexception",
  4361. "sqlstate",
  4362. "sqlwarning",
  4363. "sqrt",
  4364. "start",
  4365. "static",
  4366. "stddev_pop",
  4367. "stddev_samp",
  4368. "submultiset",
  4369. "subset",
  4370. "substring",
  4371. "substring_regex",
  4372. "succeeds",
  4373. "sum",
  4374. "symmetric",
  4375. "system",
  4376. "system_time",
  4377. "system_user",
  4378. "table",
  4379. "tablesample",
  4380. "tan",
  4381. "tanh",
  4382. "then",
  4383. "time",
  4384. "timestamp",
  4385. "timezone_hour",
  4386. "timezone_minute",
  4387. "to",
  4388. "trailing",
  4389. "translate",
  4390. "translate_regex",
  4391. "translation",
  4392. "treat",
  4393. "trigger",
  4394. "trim",
  4395. "trim_array",
  4396. "true",
  4397. "truncate",
  4398. "uescape",
  4399. "union",
  4400. "unique",
  4401. "unknown",
  4402. "unnest",
  4403. "update",
  4404. "upper",
  4405. "user",
  4406. "using",
  4407. "value",
  4408. "values",
  4409. "value_of",
  4410. "var_pop",
  4411. "var_samp",
  4412. "varbinary",
  4413. "varchar",
  4414. "varying",
  4415. "versioning",
  4416. "when",
  4417. "whenever",
  4418. "where",
  4419. "width_bucket",
  4420. "window",
  4421. "with",
  4422. "within",
  4423. "without",
  4424. "year"
  4425. ], l = [
  4426. "abs",
  4427. "acos",
  4428. "array_agg",
  4429. "asin",
  4430. "atan",
  4431. "avg",
  4432. "cast",
  4433. "ceil",
  4434. "ceiling",
  4435. "coalesce",
  4436. "corr",
  4437. "cos",
  4438. "cosh",
  4439. "count",
  4440. "covar_pop",
  4441. "covar_samp",
  4442. "cume_dist",
  4443. "dense_rank",
  4444. "deref",
  4445. "element",
  4446. "exp",
  4447. "extract",
  4448. "first_value",
  4449. "floor",
  4450. "json_array",
  4451. "json_arrayagg",
  4452. "json_exists",
  4453. "json_object",
  4454. "json_objectagg",
  4455. "json_query",
  4456. "json_table",
  4457. "json_table_primitive",
  4458. "json_value",
  4459. "lag",
  4460. "last_value",
  4461. "lead",
  4462. "listagg",
  4463. "ln",
  4464. "log",
  4465. "log10",
  4466. "lower",
  4467. "max",
  4468. "min",
  4469. "mod",
  4470. "nth_value",
  4471. "ntile",
  4472. "nullif",
  4473. "percent_rank",
  4474. "percentile_cont",
  4475. "percentile_disc",
  4476. "position",
  4477. "position_regex",
  4478. "power",
  4479. "rank",
  4480. "regr_avgx",
  4481. "regr_avgy",
  4482. "regr_count",
  4483. "regr_intercept",
  4484. "regr_r2",
  4485. "regr_slope",
  4486. "regr_sxx",
  4487. "regr_sxy",
  4488. "regr_syy",
  4489. "row_number",
  4490. "sin",
  4491. "sinh",
  4492. "sqrt",
  4493. "stddev_pop",
  4494. "stddev_samp",
  4495. "substring",
  4496. "substring_regex",
  4497. "sum",
  4498. "tan",
  4499. "tanh",
  4500. "translate",
  4501. "translate_regex",
  4502. "treat",
  4503. "trim",
  4504. "trim_array",
  4505. "unnest",
  4506. "upper",
  4507. "value_of",
  4508. "var_pop",
  4509. "var_samp",
  4510. "width_bucket"
  4511. ], c = [
  4512. "current_catalog",
  4513. "current_date",
  4514. "current_default_transform_group",
  4515. "current_path",
  4516. "current_role",
  4517. "current_schema",
  4518. "current_transform_group_for_type",
  4519. "current_user",
  4520. "session_user",
  4521. "system_time",
  4522. "system_user",
  4523. "current_time",
  4524. "localtime",
  4525. "current_timestamp",
  4526. "localtimestamp"
  4527. ], f = [
  4528. "create table",
  4529. "insert into",
  4530. "primary key",
  4531. "foreign key",
  4532. "not null",
  4533. "alter table",
  4534. "add constraint",
  4535. "grouping sets",
  4536. "on overflow",
  4537. "character set",
  4538. "respect nulls",
  4539. "ignore nulls",
  4540. "nulls first",
  4541. "nulls last",
  4542. "depth first",
  4543. "breadth first"
  4544. ], g = l, d = [
  4545. ...o,
  4546. ...a
  4547. ].filter((E) => !l.includes(E)), _ = {
  4548. className: "variable",
  4549. begin: /@[a-z0-9][a-z0-9_]*/
  4550. }, p = {
  4551. className: "operator",
  4552. begin: /[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,
  4553. relevance: 0
  4554. }, v = {
  4555. begin: e.concat(/\b/, e.either(...g), /\s*\(/),
  4556. relevance: 0,
  4557. keywords: { built_in: g }
  4558. };
  4559. function m(E, {
  4560. exceptions: A,
  4561. when: S
  4562. } = {}) {
  4563. const D = S;
  4564. return A = A || [], E.map((N) => N.match(/\|\d+$/) || A.includes(N) ? N : D(N) ? `${N}|0` : N);
  4565. }
  4566. return {
  4567. name: "SQL",
  4568. case_insensitive: !0,
  4569. // does not include {} or HTML tags `</`
  4570. illegal: /[{}]|<\//,
  4571. keywords: {
  4572. $pattern: /\b[\w\.]+/,
  4573. keyword: m(d, { when: (E) => E.length < 3 }),
  4574. literal: t,
  4575. type: i,
  4576. built_in: c
  4577. },
  4578. contains: [
  4579. {
  4580. begin: e.either(...f),
  4581. relevance: 0,
  4582. keywords: {
  4583. $pattern: /[\w\.]+/,
  4584. keyword: d.concat(f),
  4585. literal: t,
  4586. type: i
  4587. }
  4588. },
  4589. {
  4590. className: "type",
  4591. begin: e.either(...r)
  4592. },
  4593. v,
  4594. _,
  4595. u,
  4596. h,
  4597. n.C_NUMBER_MODE,
  4598. n.C_BLOCK_COMMENT_MODE,
  4599. s,
  4600. p
  4601. ]
  4602. };
  4603. }
  4604. Z.registerLanguage("xml", $t);
  4605. Z.registerLanguage("javascript", Ht);
  4606. Z.registerLanguage("json", zt);
  4607. Z.registerLanguage("yaml", Gt);
  4608. Z.registerLanguage("plaintext", Kt);
  4609. Z.registerLanguage("python", Wt);
  4610. Z.registerLanguage("java", Qt);
  4611. Z.registerLanguage("bash", Vt);
  4612. Z.registerLanguage("sql", Zt);
  4613. var T = /* @__PURE__ */ ((n) => (n.EQUAL = "equal", n.DELETE = "removed", n.ADD = "added", n.EMPTY = "empty", n))(T || {});
  4614. const J = "<code-diff-modified>", ee = "</code-diff-modified>", Yt = J.replace("<", "&lt;").replace(">", "&gt;"), Xt = ee.replace("<", "&lt;").replace(">", "&gt;");
  4615. function ge(n) {
  4616. return n === void 0 ? T.EQUAL : n.added ? T.ADD : n.removed ? T.DELETE : T.EQUAL;
  4617. }
  4618. function Te(n, e, s = "word") {
  4619. return typeof n == "undefined" ? e : typeof e == "undefined" ? n : (s === "char" ? $n : Pn)(n, e).filter((h) => ge(h) !== T.DELETE).map(
  4620. (h) => ge(h) === T.ADD ? `${J}${h.value}${ee}` : h.value
  4621. ).join("");
  4622. }
  4623. function yn(n, e) {
  4624. const s = new Le.diff_match_patch(), u = s.diff_linesToChars_(n, e), h = u.chars1, t = u.chars2, r = u.lineArray, i = s.diff_main(h, t, !1);
  4625. return s.diff_charsToLines_(i, r), i.map((a) => {
  4626. const [o, l] = a;
  4627. return {
  4628. count: l.replace(/\n$/, "").split(`
  4629. `).length,
  4630. value: l,
  4631. removed: o === Le.DIFF_DELETE,
  4632. added: o === Le.DIFF_INSERT
  4633. };
  4634. });
  4635. }
  4636. function V(n, e) {
  4637. if (!e.match(new RegExp(`(${J}|${ee})`, "g")))
  4638. return Z.highlight(e, { language: n }).value;
  4639. let u = e;
  4640. const h = e.replace(new RegExp(`(${J}|${ee})`, "g"), ""), t = document.createElement("div");
  4641. t.innerHTML = Z.highlight(h, { language: n }).value;
  4642. let r = !1;
  4643. const i = (a) => {
  4644. a.childNodes.forEach((o) => {
  4645. if (o.nodeType === Node.ELEMENT_NODE && i(o), o.nodeType === Node.TEXT_NODE) {
  4646. if (!o.textContent)
  4647. return;
  4648. let l = o.textContent, c = "";
  4649. for (r && (c = c + J); l.length; ) {
  4650. if (u.startsWith(J)) {
  4651. u = u.slice(J.length), c = c + J, r = !0;
  4652. continue;
  4653. }
  4654. if (u.startsWith(ee)) {
  4655. u = u.slice(ee.length), c = c + ee, r = !1;
  4656. continue;
  4657. }
  4658. const f = u.match(new RegExp(`(${J}|${ee})`)), g = f && f.index ? f.index : u.length, d = Math.min(g, l.length);
  4659. c = c + u.substring(0, d), u = u.slice(d), l = l.slice(d);
  4660. }
  4661. r && (c = c + ee), o.textContent = c;
  4662. }
  4663. });
  4664. };
  4665. return i(t), t.innerHTML.replace(new RegExp(Yt, "g"), '<span class="x">').replace(new RegExp(Xt, "g"), "</span>");
  4666. }
  4667. function An(n, e) {
  4668. const s = (a, o) => (a.match(new RegExp(o, "g")) || []).length, u = (a) => a.filter((o) => e == null ? void 0 : e.test(o)).length;
  4669. let h = 0, t = 0, r = 0, i = 0;
  4670. for (const a of n) {
  4671. if (a.added) {
  4672. const o = u(a.value.trim().split(`
  4673. `));
  4674. h += s(a.value.trim(), `
  4675. `) + 1 - o, r += o;
  4676. continue;
  4677. }
  4678. if (a.removed) {
  4679. const o = u(a.value.trim().split(`
  4680. `));
  4681. t += s(a.value.trim(), `
  4682. `) + 1 - o, i += o;
  4683. continue;
  4684. }
  4685. }
  4686. return {
  4687. additionsNum: h,
  4688. deletionsNum: t,
  4689. ignoreAdditionsNum: r,
  4690. ignoreDeletionsNum: i
  4691. };
  4692. }
  4693. function jt(n, e, s = "plaintext", u = "word", h = !1, t = 10, r) {
  4694. const i = () => ({ type: T.EMPTY }), a = (m, E, A) => ({ type: m, num: E, code: A }), o = yn(n, e), l = r ? new RegExp(r) : void 0;
  4695. let c = 0, f = 0, g = !1;
  4696. const d = [], _ = {
  4697. changes: d,
  4698. collector: [],
  4699. stat: An(o, l)
  4700. };
  4701. for (let m = 0; m < o.length; m++) {
  4702. if (g) {
  4703. g = !1;
  4704. continue;
  4705. }
  4706. const [E, A] = [o[m], o[m + 1]], [S, D] = [ge(E), ge(A)], N = E.value.replace(/\n$/, "").split(`
  4707. `);
  4708. if (A === void 0) {
  4709. for (const C of N) {
  4710. let I = i(), $ = i();
  4711. const B = V(s, C);
  4712. S === T.EQUAL && (c++, f++, I = a(T.EQUAL, c, B), $ = a(T.EQUAL, f, B)), S === T.DELETE && (c++, I = a(T.DELETE, c, B), $ = i()), S === T.ADD && (f++, I = i(), $ = a(T.ADD, f, B)), d.push({ left: I, right: $ });
  4713. }
  4714. break;
  4715. }
  4716. if (S === T.EQUAL)
  4717. for (const C of N) {
  4718. c++, f++;
  4719. const I = V(s, C);
  4720. d.push({
  4721. left: a(T.EQUAL, c, I),
  4722. right: a(T.EQUAL, f, I)
  4723. });
  4724. }
  4725. const R = A.value.replace(/\n$/, "").split(`
  4726. `);
  4727. if (S === T.DELETE) {
  4728. if (D === T.EQUAL)
  4729. for (const C of N)
  4730. c++, d.push({
  4731. left: a(T.DELETE, c, V(s, C)),
  4732. right: i()
  4733. });
  4734. if (D === T.ADD) {
  4735. g = !0;
  4736. const C = Math.max(E.count, A.count);
  4737. for (let I = 0; I < C; I++) {
  4738. I < E.count && c++, I < A.count && f++;
  4739. const [$, B] = [N[I], R[I]], H = h || N.length === R.length, K = H ? Te(B, $, u) : $, te = H ? Te($, B, u) : B, le = l != null && l.test($) ? T.EQUAL : T.DELETE, b = l != null && l.test(B) ? T.EQUAL : T.ADD, y = I < E.count ? a(le, c, V(s, K)) : i(), L = I < A.count ? a(b, f, V(s, te)) : i();
  4740. d.push({ left: y, right: L });
  4741. }
  4742. }
  4743. }
  4744. if (S === T.ADD)
  4745. for (const C of N)
  4746. f++, d.push({
  4747. left: i(),
  4748. right: a(T.ADD, f, V(s, C))
  4749. });
  4750. }
  4751. if (n === e) {
  4752. for (let m = 0; m < d.length; m++)
  4753. d[m].fold = !1;
  4754. return _;
  4755. }
  4756. for (let m = 0; m < d.length; m++) {
  4757. const E = d[m];
  4758. if (E.left.type === T.DELETE || E.right.type === T.ADD) {
  4759. const [A, S] = [Math.max(m - t, 0), Math.min(m + t + 1, d.length)];
  4760. for (let D = A; D < S; D++)
  4761. d[D].fold = !1;
  4762. }
  4763. E.fold === void 0 && (E.fold = !0);
  4764. }
  4765. const p = [];
  4766. let v = [];
  4767. for (let m = 0; m < d.length; m++) {
  4768. const E = d[m];
  4769. if (E.fold === !1) {
  4770. v.length && (v[0].hideIndex = _.collector.length, _.collector.push({
  4771. lines: v,
  4772. fold: !0
  4773. }), v = []), p.push(E);
  4774. continue;
  4775. }
  4776. E.hide = !0, v.push(E), p.push(E);
  4777. }
  4778. return v.length && (v[0].hideIndex = _.collector.length, _.collector.push({
  4779. lines: v,
  4780. fold: !0
  4781. }), v = []), _.changes = p, _;
  4782. }
  4783. function qt(n, e, s = "plaintext", u = "word", h = !1, t = 10, r) {
  4784. const i = yn(n, e), a = r ? new RegExp(r) : void 0;
  4785. let o = 0, l = 0, c = !1;
  4786. const f = [], g = {
  4787. changes: f,
  4788. collector: [],
  4789. stat: An(i, a)
  4790. };
  4791. for (let p = 0; p < i.length; p++) {
  4792. if (c) {
  4793. c = !1;
  4794. continue;
  4795. }
  4796. const [v, m] = [i[p], i[p + 1]], [E, A] = [ge(v), ge(m)], S = v.value.replace(/\n$/, "").split(`
  4797. `);
  4798. if (m === void 0) {
  4799. for (const N of S) {
  4800. E === T.EQUAL && (o++, l++), E === T.DELETE && o++, E === T.ADD && l++;
  4801. const R = V(s, N);
  4802. f.push({
  4803. type: E,
  4804. code: R,
  4805. addNum: E === T.DELETE ? void 0 : l,
  4806. delNum: E === T.ADD ? void 0 : o
  4807. });
  4808. }
  4809. break;
  4810. }
  4811. if (E === T.EQUAL)
  4812. for (const N of S) {
  4813. o++, l++;
  4814. const R = V(s, N);
  4815. f.push({ type: T.EQUAL, code: R, delNum: o, addNum: l });
  4816. }
  4817. const D = m.value.replace(/\n$/, "").split(`
  4818. `);
  4819. if (E === T.DELETE)
  4820. if (A === T.ADD && (S.length === D.length || h)) {
  4821. for (let N = 0; N < S.length; N++) {
  4822. const R = S[N], C = D[N];
  4823. o++;
  4824. const I = V(s, Te(C, R, u));
  4825. f.push({
  4826. type: a != null && a.test(R) ? T.EQUAL : T.DELETE,
  4827. code: I,
  4828. delNum: o
  4829. });
  4830. }
  4831. for (let N = 0; N < D.length; N++) {
  4832. const R = S[N], C = D[N];
  4833. l++;
  4834. const I = V(s, Te(R, C, u));
  4835. f.push({
  4836. type: a != null && a.test(C) ? T.EQUAL : T.ADD,
  4837. code: I,
  4838. addNum: l
  4839. });
  4840. }
  4841. c = !0;
  4842. } else
  4843. for (const N of S) {
  4844. o++;
  4845. const R = V(s, N);
  4846. f.push({ type: T.DELETE, code: R, delNum: o });
  4847. }
  4848. if (E === T.ADD)
  4849. for (const N of S) {
  4850. l++;
  4851. const R = V(s, N);
  4852. f.push({ type: T.ADD, code: R, addNum: l });
  4853. }
  4854. }
  4855. for (let p = 0; p < f.length; p++) {
  4856. const v = f[p];
  4857. if (v.type === T.DELETE || v.type === T.ADD) {
  4858. const [m, E] = [Math.max(p - t, 0), Math.min(p + t + 1, f.length)];
  4859. for (let A = m; A < E; A++)
  4860. f[A].fold = !1;
  4861. }
  4862. v.fold === void 0 && (v.fold = !0);
  4863. }
  4864. if (n === e) {
  4865. for (let p = 0; p < f.length; p++)
  4866. f[p].fold = !1;
  4867. return g;
  4868. }
  4869. const d = [];
  4870. let _ = [];
  4871. for (let p = 0; p < f.length; p++) {
  4872. const v = f[p];
  4873. if (v.fold === !1) {
  4874. _.length && (_[0].hideIndex = g.collector.length, g.collector.push({
  4875. lines: _,
  4876. fold: !0
  4877. }), _ = []), d.push(v);
  4878. continue;
  4879. }
  4880. v.type === "equal" && (v.hide = !0, _.push(v)), d.push(v);
  4881. }
  4882. return _.length && (_[0].hideIndex = g.collector.length, g.collector.push({
  4883. lines: _,
  4884. fold: !0
  4885. }), _ = []), g.changes = d, g;
  4886. }
  4887. const Jt = /* @__PURE__ */ be({
  4888. __name: "UnifiedLine",
  4889. props: {
  4890. line: null
  4891. },
  4892. emits: ["expand"],
  4893. setup(n, { emit: e }) {
  4894. function s(u) {
  4895. return u === T.DELETE ? "-" : u === T.ADD ? "+" : "";
  4896. }
  4897. return { __sfc: !0, emit: e, getCodeMarker: s, DiffType: T };
  4898. }
  4899. });
  4900. function oe(n, e, s, u, h, t, r, i) {
  4901. var a = typeof n == "function" ? n.options : n;
  4902. e && (a.render = e, a.staticRenderFns = s, a._compiled = !0), u && (a.functional = !0), t && (a._scopeId = "data-v-" + t);
  4903. var o;
  4904. if (r ? (o = function(f) {
  4905. f = f || // cached call
  4906. this.$vnode && this.$vnode.ssrContext || // stateful
  4907. this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !f && typeof __VUE_SSR_CONTEXT__ != "undefined" && (f = __VUE_SSR_CONTEXT__), h && h.call(this, f), f && f._registeredComponents && f._registeredComponents.add(r);
  4908. }, a._ssrRegister = o) : h && (o = i ? function() {
  4909. h.call(
  4910. this,
  4911. (a.functional ? this.parent : this).$root.$options.shadowRoot
  4912. );
  4913. } : h), o)
  4914. if (a.functional) {
  4915. a._injectStyles = o;
  4916. var l = a.render;
  4917. a.render = function(g, d) {
  4918. return o.call(d), l(g, d);
  4919. };
  4920. } else {
  4921. var c = a.beforeCreate;
  4922. a.beforeCreate = c ? [].concat(c, o) : [o];
  4923. }
  4924. return {
  4925. exports: n,
  4926. options: a
  4927. };
  4928. }
  4929. var er = function() {
  4930. var e = this, s = e._self._c, u = e._self._setupProxy;
  4931. return e.line.hideIndex !== void 0 && e.line.hide ? s("tr", [s("td", { staticClass: "blob-num blob-num-hunk text-center", attrs: { colspan: "2" }, on: { click: function(h) {
  4932. return u.emit("expand", e.line);
  4933. } } }, [e._v(" > ")]), s("td", { staticClass: "blob-code blob-code-hunk", attrs: { align: "left" } }, [e._v(" ⋯ ")])]) : e.line.hide ? e._e() : s("tr", [s("td", { staticClass: "blob-num", class: {
  4934. "blob-num-deletion": e.line.type === u.DiffType.DELETE,
  4935. "blob-num-addition": e.line.type === u.DiffType.ADD,
  4936. "blob-num-context": e.line.type === u.DiffType.EQUAL,
  4937. "blob-num-hunk": e.line.hide !== void 0
  4938. } }, [e._v(" " + e._s(e.line.delNum) + " ")]), s("td", { staticClass: "blob-num", class: {
  4939. "blob-num-deletion": e.line.type === u.DiffType.DELETE,
  4940. "blob-num-addition": e.line.type === u.DiffType.ADD,
  4941. "blob-num-context": e.line.type === u.DiffType.EQUAL,
  4942. "blob-num-hunk": e.line.hide !== void 0
  4943. } }, [e._v(" " + e._s(e.line.addNum) + " ")]), s("td", { staticClass: "blob-code", class: {
  4944. "blob-code-deletion": e.line.type === u.DiffType.DELETE,
  4945. "blob-code-addition": e.line.type === u.DiffType.ADD,
  4946. "blob-code-context": e.line.type === u.DiffType.EQUAL,
  4947. "blob-code-hunk": e.line.hide !== void 0
  4948. } }, [s("span", { staticClass: "blob-code-inner blob-code-marker", attrs: { "data-code-marker": u.getCodeMarker(e.line.type) }, domProps: { innerHTML: e._s(e.line.code) } })])]);
  4949. }, nr = [], tr = /* @__PURE__ */ oe(
  4950. Jt,
  4951. er,
  4952. nr,
  4953. !1,
  4954. null,
  4955. null,
  4956. null,
  4957. null
  4958. );
  4959. const rr = tr.exports, ir = /* @__PURE__ */ be({
  4960. __name: "UnifiedViewer",
  4961. props: {
  4962. diffChange: null
  4963. },
  4964. setup(n) {
  4965. const e = n;
  4966. function s({ hideIndex: u }) {
  4967. u !== void 0 && e.diffChange.collector[u].lines.forEach((h) => {
  4968. h.hide = !1, h.fold = !1;
  4969. });
  4970. }
  4971. return { __sfc: !0, props: e, expandHandler: s, UnifiedLine: rr };
  4972. }
  4973. });
  4974. var sr = function() {
  4975. var h;
  4976. var e = this, s = e._self._c, u = e._self._setupProxy;
  4977. return s("table", { staticClass: "diff-table" }, [s("tbody", e._l((h = e.diffChange) == null ? void 0 : h.changes, function(t, r) {
  4978. return s(u.UnifiedLine, { key: r, attrs: { line: t }, on: { expand: u.expandHandler } });
  4979. }), 1)]);
  4980. }, ar = [], or = /* @__PURE__ */ oe(
  4981. ir,
  4982. sr,
  4983. ar,
  4984. !1,
  4985. null,
  4986. "238e1326",
  4987. null,
  4988. null
  4989. );
  4990. const lr = or.exports, cr = /* @__PURE__ */ be({
  4991. __name: "SplitLine",
  4992. props: {
  4993. splitLine: null
  4994. },
  4995. emits: ["expand"],
  4996. setup(n, { emit: e }) {
  4997. function s(h) {
  4998. return h === T.DELETE ? "-" : h === T.ADD ? "+" : "";
  4999. }
  5000. function u(h) {
  5001. window.getSelection().removeAllRanges();
  5002. const t = document.querySelectorAll(".file-diff-split .split-side-left"), r = document.querySelectorAll(".file-diff-split .split-side-right");
  5003. for (const i of r)
  5004. i.classList.toggle("no-select", h === "left");
  5005. for (const i of t)
  5006. i.classList.toggle("no-select", h === "right");
  5007. }
  5008. return { __sfc: !0, emit: e, getCodeMarker: s, onSplitLineMousedown: u, DiffType: T };
  5009. }
  5010. });
  5011. var ur = function() {
  5012. var e = this, s = e._self._c, u = e._self._setupProxy;
  5013. return e.splitLine.hideIndex !== void 0 && e.splitLine.hide ? s("tr", [s("td", { staticClass: "blob-num blob-num-hunk", attrs: { colspan: "1" }, on: { click: function(h) {
  5014. return u.emit("expand", e.splitLine);
  5015. } } }, [e._v(" > ")]), s("td", { staticClass: "blob-code blob-code-inner blob-code-hunk", attrs: { colspan: "3", align: "left" } }, [e._v(" ⋯ ")])]) : e.splitLine.hide ? e._e() : s("tr", [e._l([e.splitLine.left, e.splitLine.right], function(h, t) {
  5016. return [h.type === u.DiffType.EMPTY ? [s("td", { staticClass: "blob-num blob-num-empty empty-cell" }), s("td", { staticClass: "blob-code blob-code-empty empty-cell" })] : [s("td", { staticClass: "blob-num", class: {
  5017. "blob-num-deletion": h.type === u.DiffType.DELETE,
  5018. "blob-num-addition": h.type === u.DiffType.ADD,
  5019. "blob-num-context": h.type === u.DiffType.EQUAL,
  5020. "blob-num-hunk": e.splitLine.hide !== void 0
  5021. } }, [e._v(" " + e._s(h.num) + " ")]), s("td", { staticClass: "blob-code", class: {
  5022. "blob-code-deletion": h.type === u.DiffType.DELETE,
  5023. "blob-code-addition": h.type === u.DiffType.ADD,
  5024. "blob-code-context": h.type === u.DiffType.EQUAL,
  5025. "blob-code-hunk": e.splitLine.hide !== void 0,
  5026. "split-side-left": t === 0,
  5027. "split-side-right": t === 1
  5028. }, on: { mousedown: function(r) {
  5029. return u.onSplitLineMousedown(t === 0 ? "left" : "right");
  5030. } } }, [s("span", { staticClass: "blob-code-inner blob-code-marker", attrs: { "data-code-marker": u.getCodeMarker(h.type) }, domProps: { innerHTML: e._s(h.code) } })])]];
  5031. })], 2);
  5032. }, fr = [], gr = /* @__PURE__ */ oe(
  5033. cr,
  5034. ur,
  5035. fr,
  5036. !1,
  5037. null,
  5038. null,
  5039. null,
  5040. null
  5041. );
  5042. const hr = gr.exports, dr = /* @__PURE__ */ be({
  5043. __name: "SplitViewer",
  5044. props: {
  5045. diffChange: null
  5046. },
  5047. setup(n) {
  5048. const e = n;
  5049. function s({ hideIndex: u }) {
  5050. u !== void 0 && e.diffChange.collector[u].lines.forEach((h) => {
  5051. h.hide = !1, h.fold = !1;
  5052. });
  5053. }
  5054. return { __sfc: !0, props: e, expandHandler: s, SplitLine: hr };
  5055. }
  5056. });
  5057. var _r = function() {
  5058. var h;
  5059. var e = this, s = e._self._c, u = e._self._setupProxy;
  5060. return s("table", { staticClass: "file-diff-split diff-table" }, [e._m(0), s("tbody", e._l((h = e.diffChange) == null ? void 0 : h.changes, function(t, r) {
  5061. return s(u.SplitLine, { key: r, attrs: { "split-line": t }, on: { expand: u.expandHandler } });
  5062. }), 1)]);
  5063. }, pr = [function() {
  5064. var n = this, e = n._self._c;
  5065. return n._self._setupProxy, e("colgroup", [e("col", { attrs: { width: "44" } }), e("col"), e("col", { attrs: { width: "44" } }), e("col")]);
  5066. }], br = /* @__PURE__ */ oe(
  5067. dr,
  5068. _r,
  5069. pr,
  5070. !1,
  5071. null,
  5072. "829edc33",
  5073. null,
  5074. null
  5075. );
  5076. const vr = br.exports, mr = {
  5077. name: "DownArrowIcon"
  5078. };
  5079. var Er = function() {
  5080. var e = this, s = e._self._c;
  5081. return s("svg", { attrs: { width: "1rem", viewBox: "0 0 512 512", xmlns: "http://www.w3.org/2000/svg" } }, [s("path", { attrs: { d: "M383.6,322.7L278.6,423c-5.8,6-13.7,9-22.4,9c-8.7,0-16.5-3-22.4-9L128.4,322.7c-12.5-11.9-12.5-31.3,0-43.2 c12.5-11.9,32.7-11.9,45.2,0l50.4,48.2v-217c0-16.9,14.3-30.6,32-30.6c17.7,0,32,13.7,32,30.6v217l50.4-48.2 c12.5-11.9,32.7-11.9,45.2,0C396.1,291.4,396.1,310.7,383.6,322.7z" } })]);
  5082. }, wr = [], yr = /* @__PURE__ */ oe(
  5083. mr,
  5084. Er,
  5085. wr,
  5086. !1,
  5087. null,
  5088. null,
  5089. null,
  5090. null
  5091. );
  5092. const Ar = yr.exports, Nr = {
  5093. name: "UpArrowIcon"
  5094. };
  5095. var Mr = function() {
  5096. var e = this, s = e._self._c;
  5097. return s("svg", { attrs: { width: "1rem", viewBox: "0 0 512 512", xmlns: "http://www.w3.org/2000/svg" } }, [s("path", { attrs: { d: "M128.4,189.3L233.4,89c5.8-6,13.7-9,22.4-9c8.7,0,16.5,3,22.4,9l105.4,100.3c12.5,11.9,12.5,31.3,0,43.2 c-12.5,11.9-32.7,11.9-45.2,0L288,184.4v217c0,16.9-14.3,30.6-32,30.6c-17.7,0-32-13.7-32-30.6v-217l-50.4,48.2 c-12.5,11.9-32.7,11.9-45.2,0C115.9,220.6,115.9,201.3,128.4,189.3z" } })]);
  5098. }, Tr = [], Dr = /* @__PURE__ */ oe(
  5099. Nr,
  5100. Mr,
  5101. Tr,
  5102. !1,
  5103. null,
  5104. null,
  5105. null,
  5106. null
  5107. );
  5108. const Sr = Dr.exports;
  5109. const Cr = /* @__PURE__ */ be({
  5110. __name: "CodeDiff",
  5111. props: {
  5112. newString: null,
  5113. oldString: null,
  5114. language: { default: "plaintext" },
  5115. context: { default: 10 },
  5116. diffStyle: { default: "word" },
  5117. forceInlineComparison: { type: Boolean, default: !1 },
  5118. outputFormat: { default: "line-by-line" },
  5119. trim: { type: Boolean, default: !1 },
  5120. noDiffLineFeed: { type: Boolean, default: !1 },
  5121. maxHeight: { default: void 0 },
  5122. filename: { default: void 0 },
  5123. newFilename: { default: void 0 },
  5124. hideHeader: { type: Boolean, default: !1 },
  5125. hideStat: { type: Boolean, default: !1 },
  5126. theme: { default: "light" },
  5127. ignoreMatchingLines: { default: void 0 }
  5128. },
  5129. emits: ["diff"],
  5130. setup(n, { emit: e }) {
  5131. const s = n, u = he(() => s.outputFormat === "line-by-line"), h = he(() => {
  5132. let g = s.oldString || "";
  5133. return g = s.trim ? g.trim() : g, g = s.noDiffLineFeed ? g.replace(/(\r\n)/g, `
  5134. `) : g, g;
  5135. }), t = he(() => {
  5136. let g = s.newString || "";
  5137. return g = s.trim ? g.trim() : g, g = s.noDiffLineFeed ? g.replace(/(\r\n)/g, `
  5138. `) : g, g;
  5139. }), r = he(
  5140. () => u.value ? qt(h.value, t.value, s.language, s.diffStyle, s.forceInlineComparison, s.context, s.ignoreMatchingLines) : jt(h.value, t.value, s.language, s.diffStyle, s.forceInlineComparison, s.context, s.ignoreMatchingLines)
  5141. ), i = We(r.value), a = he(() => i.value.stat.additionsNum === 0 && i.value.stat.deletionsNum === 0), o = We(-1);
  5142. function l() {
  5143. const g = document.querySelectorAll(".blob-code-addition");
  5144. o.value < g.length - 1 && (o.value++, f(g));
  5145. }
  5146. function c() {
  5147. const g = document.querySelectorAll(".blob-code-addition");
  5148. o.value > 0 && (o.value--, f(g));
  5149. }
  5150. function f(g) {
  5151. g.forEach((_) => _.classList.remove("current-diff"));
  5152. const d = g[o.value];
  5153. d && (d.classList.add("current-diff"), d.scrollIntoView({ behavior: "smooth", block: "center" }));
  5154. }
  5155. return On(() => s, () => {
  5156. i.value = r.value, e("diff", {
  5157. stat: {
  5158. isChanged: !a.value,
  5159. addNum: i.value.stat.additionsNum,
  5160. delNum: i.value.stat.deletionsNum
  5161. }
  5162. });
  5163. }, { deep: !0, immediate: !0 }), { __sfc: !0, props: s, emits: e, isUnifiedViewer: u, oldString: h, newString: t, raw: r, diffChange: i, isNotChanged: a, currentDiffIndex: o, goToNextDiff: l, goToPrevDiff: c, updateCurrentDiffHighlight: f, UnifiedViewer: lr, SplitViewer: vr, DownArrowIcon: Ar, UpArrowIcon: Sr };
  5164. }
  5165. });
  5166. var Rr = function() {
  5167. var e = this, s = e._self._c, u = e._self._setupProxy;
  5168. return s("div", { staticClass: "code-diff-view", style: { maxHeight: e.maxHeight }, attrs: { theme: e.theme } }, [e.hideHeader ? e._e() : s("div", { staticClass: "file-header" }, [u.isUnifiedViewer ? s("div", { staticClass: "file-info" }, [s("span", [s("div", { staticClass: "info-left" }, [e._v(e._s(e.filename))]), s("div", { staticClass: "info-left" }, [e._v(e._s(e.newFilename))])]), s("span", { staticClass: "diff-commandbar" }, [s("button", { staticClass: "command-item-button", attrs: { title: "Next Change" }, on: { click: u.goToNextDiff } }, [s(u.DownArrowIcon)], 1), s("button", { staticClass: "command-item-button", attrs: { title: "Previous Change" }, on: { click: u.goToPrevDiff } }, [s(u.UpArrowIcon)], 1)]), e.hideStat ? e._e() : s("span", { staticClass: "diff-stat" }, [e._t("stat", function() {
  5169. return [s("span", { staticClass: "diff-stat-added" }, [e._v("+" + e._s(u.diffChange.stat.additionsNum) + " additions")]), s("span", { staticClass: "diff-stat-deleted" }, [e._v("-" + e._s(u.diffChange.stat.deletionsNum) + " deletions")])];
  5170. }, { stat: u.diffChange.stat })], 2)]) : s("div", { staticClass: "file-info" }, [s("span", { staticClass: "info-left" }, [e._v(e._s(e.filename))]), s("span", { staticClass: "info-right" }, [s("span", { staticStyle: { "margin-left": "20px" } }, [e._v(e._s(e.newFilename))]), s("span", { staticClass: "diff-commandbar" }, [s("button", { staticClass: "command-item-button", attrs: { title: "Next Change" }, on: { click: u.goToNextDiff } }, [s(u.DownArrowIcon)], 1), s("button", { staticClass: "command-item-button", attrs: { title: "Previous Change" }, on: { click: u.goToPrevDiff } }, [s(u.UpArrowIcon)], 1)]), e.hideStat ? e._e() : s("span", { staticClass: "diff-stat" }, [e._t("stat", function() {
  5171. return [s("span", { staticClass: "diff-stat-added" }, [e._v("+" + e._s(u.diffChange.stat.additionsNum) + " additions")]), s("span", { staticClass: "diff-stat-deleted" }, [e._v("-" + e._s(u.diffChange.stat.deletionsNum) + " deletions")])];
  5172. }, { stat: u.diffChange.stat })], 2)])])]), u.isUnifiedViewer ? s(u.UnifiedViewer, { attrs: { "diff-change": u.diffChange } }) : s(u.SplitViewer, { attrs: { "diff-change": u.diffChange } })], 1);
  5173. }, Lr = [], Or = /* @__PURE__ */ oe(
  5174. Cr,
  5175. Rr,
  5176. Lr,
  5177. !1,
  5178. null,
  5179. null,
  5180. null,
  5181. null
  5182. );
  5183. const Ir = Or.exports;
  5184. function kr(n) {
  5185. n.component("CodeDiff", Ir);
  5186. }
  5187. const $r = {
  5188. install: kr,
  5189. hljs: Z
  5190. };
  5191. export {
  5192. Ir as CodeDiff,
  5193. $r as default,
  5194. Z as hljs
  5195. };