index.js 1.2 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598
  1. /*!
  2. Copyright (C) 2016-2020 Timofey Kachalov <[email protected]>
  3. Redistribution and use in source and binary forms, with or without
  4. modification, are permitted provided that the following conditions are met:
  5. * Redistributions of source code must retain the above copyright
  6. notice, this list of conditions and the following disclaimer.
  7. * Redistributions in binary form must reproduce the above copyright
  8. notice, this list of conditions and the following disclaimer in the
  9. documentation and/or other materials provided with the distribution.
  10. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  11. AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  12. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  13. ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
  14. DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  15. (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  16. LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  17. ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  18. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  19. THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  20. */
  21. require("source-map-support").install();
  22. /******/ (() => { // webpackBootstrap
  23. /******/ "use strict";
  24. /******/ var __webpack_modules__ = ({
  25. /***/ "./index.ts":
  26. /*!******************!*\
  27. !*** ./index.ts ***!
  28. \******************/
  29. /***/ ((module, exports, __webpack_require__) => {
  30. Object.defineProperty(exports, "__esModule", ({ value: true }));
  31. const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  32. module.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator;
  33. /***/ }),
  34. /***/ "./src/ASTParserFacade.ts":
  35. /*!********************************!*\
  36. !*** ./src/ASTParserFacade.ts ***!
  37. \********************************/
  38. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  39. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  40. if (k2 === undefined) k2 = k;
  41. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  42. }) : (function(o, m, k, k2) {
  43. if (k2 === undefined) k2 = k;
  44. o[k2] = m[k];
  45. }));
  46. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  47. Object.defineProperty(o, "default", { enumerable: true, value: v });
  48. }) : function(o, v) {
  49. o["default"] = v;
  50. });
  51. var __importStar = (this && this.__importStar) || function (mod) {
  52. if (mod && mod.__esModule) return mod;
  53. var result = {};
  54. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  55. __setModuleDefault(result, mod);
  56. return result;
  57. };
  58. var __importDefault = (this && this.__importDefault) || function (mod) {
  59. return (mod && mod.__esModule) ? mod : { "default": mod };
  60. };
  61. Object.defineProperty(exports, "__esModule", ({ value: true }));
  62. exports.ASTParserFacade = void 0;
  63. const acorn = __importStar(__webpack_require__(/*! acorn */ "acorn"));
  64. const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
  65. class ASTParserFacade {
  66. static parse(sourceCode, config) {
  67. const sourceTypeLength = ASTParserFacade.sourceTypes.length;
  68. for (let i = 0; i < sourceTypeLength; i++) {
  69. try {
  70. return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]);
  71. }
  72. catch (error) {
  73. if (i < sourceTypeLength - 1) {
  74. continue;
  75. }
  76. throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc));
  77. }
  78. }
  79. throw new Error('Acorn parsing error');
  80. }
  81. static parseType(sourceCode, inputConfig, sourceType) {
  82. const comments = [];
  83. const config = {
  84. ...inputConfig,
  85. allowAwaitOutsideFunction: true,
  86. onComment: comments,
  87. sourceType
  88. };
  89. const program = acorn
  90. .parse(sourceCode, config);
  91. if (comments.length) {
  92. program.comments = comments;
  93. }
  94. return program;
  95. }
  96. static processParsingError(sourceCode, errorMessage, position) {
  97. if (!position || !position.line || !position.column) {
  98. throw new Error(errorMessage);
  99. }
  100. const sourceCodeLines = sourceCode.split(/\r?\n/);
  101. const errorLine = sourceCodeLines[position.line - 1];
  102. if (!errorLine) {
  103. throw new Error(errorMessage);
  104. }
  105. const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount);
  106. const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount);
  107. const formattedPointer = ASTParserFacade.colorError('>');
  108. const formattedCodeSlice = `...${errorLine.slice(startErrorIndex, endErrorIndex).replace(/^\s+/, '')}...`;
  109. throw new Error(`ERROR at line ${position.line}: ${errorMessage}\n${formattedPointer} ${formattedCodeSlice}`);
  110. }
  111. }
  112. exports.ASTParserFacade = ASTParserFacade;
  113. ASTParserFacade.colorError = chalk_1.default.red;
  114. ASTParserFacade.nearestSymbolsCount = 15;
  115. ASTParserFacade.sourceTypes = [
  116. 'script',
  117. 'module'
  118. ];
  119. /***/ }),
  120. /***/ "./src/JavaScriptObfuscator.ts":
  121. /*!*************************************!*\
  122. !*** ./src/JavaScriptObfuscator.ts ***!
  123. \*************************************/
  124. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  125. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  126. if (k2 === undefined) k2 = k;
  127. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  128. }) : (function(o, m, k, k2) {
  129. if (k2 === undefined) k2 = k;
  130. o[k2] = m[k];
  131. }));
  132. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  133. Object.defineProperty(o, "default", { enumerable: true, value: v });
  134. }) : function(o, v) {
  135. o["default"] = v;
  136. });
  137. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  138. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  139. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  140. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  141. return c > 3 && r && Object.defineProperty(target, key, r), r;
  142. };
  143. var __importStar = (this && this.__importStar) || function (mod) {
  144. if (mod && mod.__esModule) return mod;
  145. var result = {};
  146. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  147. __setModuleDefault(result, mod);
  148. return result;
  149. };
  150. var __metadata = (this && this.__metadata) || function (k, v) {
  151. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  152. };
  153. var __param = (this && this.__param) || function (paramIndex, decorator) {
  154. return function (target, key) { decorator(target, key, paramIndex); }
  155. };
  156. var JavaScriptObfuscator_1, _a, _b, _c, _d, _e, _f;
  157. Object.defineProperty(exports, "__esModule", ({ value: true }));
  158. exports.JavaScriptObfuscator = void 0;
  159. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  160. const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  161. const escodegen = __importStar(__webpack_require__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/escodegen"));
  162. const TObfuscationResultFactory_1 = __webpack_require__(/*! ./types/container/source-code/TObfuscationResultFactory */ "./src/types/container/source-code/TObfuscationResultFactory.ts");
  163. const ICodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/code-transformers/ICodeTransformersRunner */ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts");
  164. const ILogger_1 = __webpack_require__(/*! ./interfaces/logger/ILogger */ "./src/interfaces/logger/ILogger.ts");
  165. const IOptions_1 = __webpack_require__(/*! ./interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  166. const IRandomGenerator_1 = __webpack_require__(/*! ./interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  167. const INodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts");
  168. const CodeTransformer_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts");
  169. const CodeTransformationStage_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts");
  170. const LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts");
  171. const NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  172. const NodeTransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  173. const EcmaVersion_1 = __webpack_require__(/*! ./constants/EcmaVersion */ "./src/constants/EcmaVersion.ts");
  174. const ASTParserFacade_1 = __webpack_require__(/*! ./ASTParserFacade */ "./src/ASTParserFacade.ts");
  175. const NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts");
  176. const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts");
  177. let JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator {
  178. constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {
  179. this.codeTransformersRunner = codeTransformersRunner;
  180. this.nodeTransformersRunner = nodeTransformersRunner;
  181. this.randomGenerator = randomGenerator;
  182. this.obfuscationResultFactory = obfuscatedCodeFactory;
  183. this.logger = logger;
  184. this.options = options;
  185. }
  186. obfuscate(sourceCode) {
  187. if (typeof sourceCode !== 'string') {
  188. sourceCode = '';
  189. }
  190. const timeStart = Date.now();
  191. this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage("2.15.0", 1623003625223));
  192. this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);
  193. this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed());
  194. sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers);
  195. const astTree = this.parseCode(sourceCode);
  196. const obfuscatedAstTree = this.transformAstTree(astTree);
  197. const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
  198. generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers);
  199. const obfuscationTime = (Date.now() - timeStart) / 1000;
  200. this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);
  201. return this.getObfuscationResult(generatorOutput);
  202. }
  203. parseCode(sourceCode) {
  204. return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions);
  205. }
  206. transformAstTree(astTree) {
  207. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing);
  208. const isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree)
  209. && !astTree.body.length
  210. && !astTree.leadingComments
  211. && !astTree.trailingComments;
  212. if (isEmptyAstTree) {
  213. this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);
  214. return astTree;
  215. }
  216. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing);
  217. if (this.options.deadCodeInjection) {
  218. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection);
  219. }
  220. if (this.options.controlFlowFlattening) {
  221. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening);
  222. }
  223. if (this.options.renameProperties) {
  224. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameProperties);
  225. }
  226. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting);
  227. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);
  228. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.StringArray);
  229. if (this.options.simplify) {
  230. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Simplifying);
  231. }
  232. astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing);
  233. return astTree;
  234. }
  235. generateCode(sourceCode, astTree) {
  236. const escodegenParams = {
  237. ...JavaScriptObfuscator_1.escodegenParams
  238. };
  239. if (this.options.sourceMap) {
  240. escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';
  241. escodegenParams.sourceContent = sourceCode;
  242. }
  243. const generatorOutput = escodegen.generate(astTree, {
  244. ...escodegenParams,
  245. format: {
  246. compact: this.options.compact
  247. }
  248. });
  249. generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
  250. return generatorOutput;
  251. }
  252. getObfuscationResult(generatorOutput) {
  253. return this.obfuscationResultFactory(generatorOutput.code, generatorOutput.map);
  254. }
  255. runCodeTransformationStage(code, codeTransformationStage) {
  256. this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage);
  257. return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage);
  258. }
  259. runNodeTransformationStage(astTree, nodeTransformationStage) {
  260. this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage);
  261. return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage);
  262. }
  263. };
  264. JavaScriptObfuscator.parseOptions = {
  265. ecmaVersion: EcmaVersion_1.ecmaVersion,
  266. allowHashBang: true,
  267. allowImportExportEverywhere: true,
  268. allowReturnOutsideFunction: true,
  269. locations: true,
  270. ranges: true
  271. };
  272. JavaScriptObfuscator.escodegenParams = {
  273. comment: true,
  274. verbatim: 'x-verbatim-property',
  275. sourceMapWithCode: true
  276. };
  277. JavaScriptObfuscator.codeTransformersList = [
  278. CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer
  279. ];
  280. JavaScriptObfuscator.nodeTransformersList = [
  281. NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer,
  282. NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer,
  283. NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer,
  284. NodeTransformer_1.NodeTransformer.CommentsTransformer,
  285. NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer,
  286. NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer,
  287. NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,
  288. NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer,
  289. NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer,
  290. NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,
  291. NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer,
  292. NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer,
  293. NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,
  294. NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer,
  295. NodeTransformer_1.NodeTransformer.MemberExpressionTransformer,
  296. NodeTransformer_1.NodeTransformer.MetadataTransformer,
  297. NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer,
  298. NodeTransformer_1.NodeTransformer.NumberLiteralTransformer,
  299. NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer,
  300. NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer,
  301. NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,
  302. NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer,
  303. NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer,
  304. NodeTransformer_1.NodeTransformer.ParentificationTransformer,
  305. NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,
  306. NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer,
  307. NodeTransformer_1.NodeTransformer.SplitStringTransformer,
  308. NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer,
  309. NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer,
  310. NodeTransformer_1.NodeTransformer.StringArrayTransformer,
  311. NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer,
  312. NodeTransformer_1.NodeTransformer.DirectivePlacementTransformer,
  313. NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer,
  314. NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
  315. ];
  316. JavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([
  317. inversify_1.injectable(),
  318. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)),
  319. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),
  320. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  321. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult)),
  322. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)),
  323. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  324. __metadata("design:paramtypes", [typeof (_a = typeof ICodeTransformersRunner_1.ICodeTransformersRunner !== "undefined" && ICodeTransformersRunner_1.ICodeTransformersRunner) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof TObfuscationResultFactory_1.TObfuscationResultFactory !== "undefined" && TObfuscationResultFactory_1.TObfuscationResultFactory) === "function" ? _d : Object, typeof (_e = typeof ILogger_1.ILogger !== "undefined" && ILogger_1.ILogger) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
  325. ], JavaScriptObfuscator);
  326. exports.JavaScriptObfuscator = JavaScriptObfuscator;
  327. /***/ }),
  328. /***/ "./src/JavaScriptObfuscatorFacade.ts":
  329. /*!*******************************************!*\
  330. !*** ./src/JavaScriptObfuscatorFacade.ts ***!
  331. \*******************************************/
  332. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  333. var _a;
  334. Object.defineProperty(exports, "__esModule", ({ value: true }));
  335. exports.JavaScriptObfuscator = void 0;
  336. __webpack_require__(/*! reflect-metadata */ "reflect-metadata");
  337. const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  338. const InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  339. const Options_1 = __webpack_require__(/*! ./options/Options */ "./src/options/Options.ts");
  340. const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts");
  341. class JavaScriptObfuscatorFacade {
  342. static obfuscate(sourceCode, inputOptions = {}) {
  343. const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();
  344. inversifyContainerFacade.load(sourceCode, '', inputOptions);
  345. const javaScriptObfuscator = inversifyContainerFacade
  346. .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);
  347. const obfuscationResult = javaScriptObfuscator.obfuscate(sourceCode);
  348. inversifyContainerFacade.unload();
  349. return obfuscationResult;
  350. }
  351. static obfuscateMultiple(sourceCodesObject, inputOptions = {}) {
  352. if (typeof sourceCodesObject !== 'object') {
  353. throw new Error('Source codes object should be a plain object');
  354. }
  355. return Object
  356. .keys(sourceCodesObject)
  357. .reduce((acc, sourceCodeIdentifier, index) => {
  358. const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index);
  359. const sourceCode = sourceCodesObject[sourceCodeIdentifier];
  360. const sourceCodeOptions = {
  361. ...inputOptions,
  362. identifiersPrefix
  363. };
  364. return {
  365. ...acc,
  366. [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions)
  367. };
  368. }, {});
  369. }
  370. static getOptionsByPreset(optionsPreset) {
  371. return Options_1.Options.getOptionsByPreset(optionsPreset);
  372. }
  373. }
  374. exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;
  375. JavaScriptObfuscatorFacade.version = (_a = "2.15.0") !== null && _a !== void 0 ? _a : 'unknown';
  376. /***/ }),
  377. /***/ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts":
  378. /*!******************************************************************!*\
  379. !*** ./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts ***!
  380. \******************************************************************/
  381. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  382. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  383. if (k2 === undefined) k2 = k;
  384. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  385. }) : (function(o, m, k, k2) {
  386. if (k2 === undefined) k2 = k;
  387. o[k2] = m[k];
  388. }));
  389. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  390. Object.defineProperty(o, "default", { enumerable: true, value: v });
  391. }) : function(o, v) {
  392. o["default"] = v;
  393. });
  394. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  395. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  396. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  397. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  398. return c > 3 && r && Object.defineProperty(target, key, r), r;
  399. };
  400. var __importStar = (this && this.__importStar) || function (mod) {
  401. if (mod && mod.__esModule) return mod;
  402. var result = {};
  403. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  404. __setModuleDefault(result, mod);
  405. return result;
  406. };
  407. var __metadata = (this && this.__metadata) || function (k, v) {
  408. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  409. };
  410. var __param = (this && this.__param) || function (paramIndex, decorator) {
  411. return function (target, key) { decorator(target, key, paramIndex); }
  412. };
  413. var CallsGraphAnalyzer_1, _a;
  414. Object.defineProperty(exports, "__esModule", ({ value: true }));
  415. exports.CallsGraphAnalyzer = void 0;
  416. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  417. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  418. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  419. const TCalleeDataExtractorFactory_1 = __webpack_require__(/*! ../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory */ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts");
  420. const CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts");
  421. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  422. const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  423. let CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer {
  424. constructor(calleeDataExtractorFactory) {
  425. this.calleeDataExtractorFactory = calleeDataExtractorFactory;
  426. }
  427. static getLimitIndex(blockScopeBodyLength) {
  428. const lastIndex = blockScopeBodyLength - 1;
  429. const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1;
  430. let limitIndex = lastIndex;
  431. if (lastIndex > limitThresholdActivationIndex) {
  432. limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold));
  433. if (limitIndex > lastIndex) {
  434. limitIndex = lastIndex;
  435. }
  436. }
  437. return limitIndex;
  438. }
  439. analyze(astTree) {
  440. return this.analyzeRecursive(astTree.body);
  441. }
  442. analyzeRecursive(blockScopeBody) {
  443. const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length);
  444. const callsGraphData = [];
  445. const blockScopeBodyLength = blockScopeBody.length;
  446. for (let index = 0; index < blockScopeBodyLength; index++) {
  447. if (index > limitIndex) {
  448. break;
  449. }
  450. const blockScopeBodyNode = blockScopeBody[index];
  451. estraverse.traverse(blockScopeBodyNode, {
  452. enter: (node) => {
  453. if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {
  454. return;
  455. }
  456. if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {
  457. return estraverse.VisitorOption.Skip;
  458. }
  459. this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node);
  460. }
  461. });
  462. }
  463. return callsGraphData;
  464. }
  465. analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) {
  466. CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => {
  467. const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName)
  468. .extract(blockScopeBody, callExpressionNode.callee);
  469. if (!calleeData) {
  470. return;
  471. }
  472. callsGraphData.push({
  473. ...calleeData,
  474. callsGraph: this.analyzeRecursive(calleeData.callee.body)
  475. });
  476. });
  477. }
  478. };
  479. CallsGraphAnalyzer.calleeDataExtractorsList = [
  480. CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,
  481. CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,
  482. CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor
  483. ];
  484. CallsGraphAnalyzer.limitThresholdActivationLength = 25;
  485. CallsGraphAnalyzer.limitThreshold = 0.002;
  486. CallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([
  487. inversify_1.injectable(),
  488. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)),
  489. __metadata("design:paramtypes", [typeof (_a = typeof TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory !== "undefined" && TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory) === "function" ? _a : Object])
  490. ], CallsGraphAnalyzer);
  491. exports.CallsGraphAnalyzer = CallsGraphAnalyzer;
  492. /***/ }),
  493. /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts":
  494. /*!**************************************************************************************************!*\
  495. !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***!
  496. \**************************************************************************************************/
  497. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  498. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  499. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  500. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  501. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  502. return c > 3 && r && Object.defineProperty(target, key, r), r;
  503. };
  504. Object.defineProperty(exports, "__esModule", ({ value: true }));
  505. exports.AbstractCalleeDataExtractor = void 0;
  506. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  507. let AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor {
  508. };
  509. AbstractCalleeDataExtractor = __decorate([
  510. inversify_1.injectable()
  511. ], AbstractCalleeDataExtractor);
  512. exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;
  513. /***/ }),
  514. /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts":
  515. /*!*************************************************************************************************************!*\
  516. !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***!
  517. \*************************************************************************************************************/
  518. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  519. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  520. if (k2 === undefined) k2 = k;
  521. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  522. }) : (function(o, m, k, k2) {
  523. if (k2 === undefined) k2 = k;
  524. o[k2] = m[k];
  525. }));
  526. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  527. Object.defineProperty(o, "default", { enumerable: true, value: v });
  528. }) : function(o, v) {
  529. o["default"] = v;
  530. });
  531. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  532. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  533. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  534. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  535. return c > 3 && r && Object.defineProperty(target, key, r), r;
  536. };
  537. var __importStar = (this && this.__importStar) || function (mod) {
  538. if (mod && mod.__esModule) return mod;
  539. var result = {};
  540. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  541. __setModuleDefault(result, mod);
  542. return result;
  543. };
  544. Object.defineProperty(exports, "__esModule", ({ value: true }));
  545. exports.FunctionDeclarationCalleeDataExtractor = void 0;
  546. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  547. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  548. const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  549. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  550. const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  551. let FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {
  552. extract(blockScopeBody, callee) {
  553. if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  554. return null;
  555. }
  556. const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
  557. if (!calleeBlockStatement) {
  558. return null;
  559. }
  560. return {
  561. callee: calleeBlockStatement,
  562. name: callee.name
  563. };
  564. }
  565. getCalleeBlockStatement(targetNode, name) {
  566. let calleeBlockStatement = null;
  567. estraverse.traverse(targetNode, {
  568. enter: (node) => {
  569. if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {
  570. calleeBlockStatement = node.body;
  571. return estraverse.VisitorOption.Break;
  572. }
  573. }
  574. });
  575. return calleeBlockStatement;
  576. }
  577. };
  578. FunctionDeclarationCalleeDataExtractor = __decorate([
  579. inversify_1.injectable()
  580. ], FunctionDeclarationCalleeDataExtractor);
  581. exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;
  582. /***/ }),
  583. /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts":
  584. /*!************************************************************************************************************!*\
  585. !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***!
  586. \************************************************************************************************************/
  587. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  588. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  589. if (k2 === undefined) k2 = k;
  590. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  591. }) : (function(o, m, k, k2) {
  592. if (k2 === undefined) k2 = k;
  593. o[k2] = m[k];
  594. }));
  595. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  596. Object.defineProperty(o, "default", { enumerable: true, value: v });
  597. }) : function(o, v) {
  598. o["default"] = v;
  599. });
  600. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  601. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  602. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  603. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  604. return c > 3 && r && Object.defineProperty(target, key, r), r;
  605. };
  606. var __importStar = (this && this.__importStar) || function (mod) {
  607. if (mod && mod.__esModule) return mod;
  608. var result = {};
  609. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  610. __setModuleDefault(result, mod);
  611. return result;
  612. };
  613. Object.defineProperty(exports, "__esModule", ({ value: true }));
  614. exports.FunctionExpressionCalleeDataExtractor = void 0;
  615. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  616. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  617. const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  618. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  619. const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  620. let FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {
  621. extract(blockScopeBody, callee) {
  622. let calleeName = null;
  623. let calleeBlockStatement = null;
  624. if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  625. calleeName = callee.name;
  626. calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
  627. }
  628. else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {
  629. calleeName = null;
  630. calleeBlockStatement = callee.body;
  631. }
  632. if (!calleeBlockStatement) {
  633. return null;
  634. }
  635. return {
  636. callee: calleeBlockStatement,
  637. name: calleeName
  638. };
  639. }
  640. getCalleeBlockStatement(targetNode, name) {
  641. let calleeBlockStatement = null;
  642. estraverse.traverse(targetNode, {
  643. enter: (node, parentNode) => {
  644. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) &&
  645. parentNode &&
  646. NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) &&
  647. NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) &&
  648. parentNode.id.name === name) {
  649. calleeBlockStatement = node.body;
  650. return estraverse.VisitorOption.Break;
  651. }
  652. }
  653. });
  654. return calleeBlockStatement;
  655. }
  656. };
  657. FunctionExpressionCalleeDataExtractor = __decorate([
  658. inversify_1.injectable()
  659. ], FunctionExpressionCalleeDataExtractor);
  660. exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;
  661. /***/ }),
  662. /***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts":
  663. /*!**********************************************************************************************************!*\
  664. !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***!
  665. \**********************************************************************************************************/
  666. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  667. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  668. if (k2 === undefined) k2 = k;
  669. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  670. }) : (function(o, m, k, k2) {
  671. if (k2 === undefined) k2 = k;
  672. o[k2] = m[k];
  673. }));
  674. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  675. Object.defineProperty(o, "default", { enumerable: true, value: v });
  676. }) : function(o, v) {
  677. o["default"] = v;
  678. });
  679. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  680. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  681. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  682. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  683. return c > 3 && r && Object.defineProperty(target, key, r), r;
  684. };
  685. var __importStar = (this && this.__importStar) || function (mod) {
  686. if (mod && mod.__esModule) return mod;
  687. var result = {};
  688. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  689. __setModuleDefault(result, mod);
  690. return result;
  691. };
  692. var ObjectExpressionCalleeDataExtractor_1;
  693. Object.defineProperty(exports, "__esModule", ({ value: true }));
  694. exports.ObjectExpressionCalleeDataExtractor = void 0;
  695. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  696. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  697. const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  698. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  699. const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  700. let ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {
  701. static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {
  702. if (!propertyNode.key) {
  703. return false;
  704. }
  705. const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;
  706. const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) &&
  707. Boolean(propertyNode.key.value) &&
  708. propertyNode.key.value === nextItemInCallsChain;
  709. return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;
  710. }
  711. extract(blockScopeBody, callee) {
  712. if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {
  713. return null;
  714. }
  715. const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
  716. if (!objectMembersCallsChain.length) {
  717. return null;
  718. }
  719. const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];
  720. const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);
  721. if (!calleeBlockStatement) {
  722. return null;
  723. }
  724. return {
  725. callee: calleeBlockStatement,
  726. name: functionExpressionName
  727. };
  728. }
  729. createObjectMembersCallsChain(currentChain, memberExpression) {
  730. if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) {
  731. currentChain.unshift(memberExpression.property.name);
  732. }
  733. else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) &&
  734. (typeof memberExpression.property.value === 'string' ||
  735. typeof memberExpression.property.value === 'number')) {
  736. currentChain.unshift(memberExpression.property.value);
  737. }
  738. else {
  739. return currentChain;
  740. }
  741. if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {
  742. return this.createObjectMembersCallsChain(currentChain, memberExpression.object);
  743. }
  744. else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {
  745. currentChain.unshift(memberExpression.object.name);
  746. }
  747. return currentChain;
  748. }
  749. getCalleeBlockStatement(targetNode, objectMembersCallsChain) {
  750. const objectName = objectMembersCallsChain.shift();
  751. if (!objectName) {
  752. return null;
  753. }
  754. let calleeBlockStatement = null;
  755. estraverse.traverse(targetNode, {
  756. enter: (node) => {
  757. if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) &&
  758. NodeGuards_1.NodeGuards.isIdentifierNode(node.id) &&
  759. node.init &&
  760. NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) &&
  761. node.id.name === objectName) {
  762. calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);
  763. return estraverse.VisitorOption.Break;
  764. }
  765. }
  766. });
  767. return calleeBlockStatement;
  768. }
  769. findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {
  770. const nextItemInCallsChain = objectMembersCallsChain.shift();
  771. if (!nextItemInCallsChain) {
  772. return null;
  773. }
  774. for (const propertyNode of objectExpressionProperties) {
  775. if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) {
  776. continue;
  777. }
  778. if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {
  779. continue;
  780. }
  781. if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) {
  782. return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);
  783. }
  784. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) {
  785. return propertyNode.value.body;
  786. }
  787. }
  788. return null;
  789. }
  790. };
  791. ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([
  792. inversify_1.injectable()
  793. ], ObjectExpressionCalleeDataExtractor);
  794. exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;
  795. /***/ }),
  796. /***/ "./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts":
  797. /*!*************************************************************************************************!*\
  798. !*** ./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts ***!
  799. \*************************************************************************************************/
  800. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  801. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  802. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  803. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  804. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  805. return c > 3 && r && Object.defineProperty(target, key, r), r;
  806. };
  807. var __metadata = (this && this.__metadata) || function (k, v) {
  808. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  809. };
  810. var __param = (this && this.__param) || function (paramIndex, decorator) {
  811. return function (target, key) { decorator(target, key, paramIndex); }
  812. };
  813. var NumberNumericalExpressionAnalyzer_1, _a;
  814. Object.defineProperty(exports, "__esModule", ({ value: true }));
  815. exports.NumberNumericalExpressionAnalyzer = void 0;
  816. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  817. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  818. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  819. const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  820. let NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = class NumberNumericalExpressionAnalyzer {
  821. constructor(randomGenerator) {
  822. this.numberFactorsMap = new Map();
  823. this.randomGenerator = randomGenerator;
  824. }
  825. analyze(number, additionalPartsCount) {
  826. if (isNaN(number)) {
  827. throw new Error('Given value is NaN');
  828. }
  829. if (NumberUtils_1.NumberUtils.isUnsafeNumber(number)) {
  830. return [number];
  831. }
  832. const additionParts = this.generateAdditionParts(number, additionalPartsCount);
  833. return additionParts.map((addition) => this.mixWithMultiplyParts(addition));
  834. }
  835. generateAdditionParts(number, additionalPartsCount) {
  836. const additionParts = [];
  837. const upperNumberLimit = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER);
  838. const from = Math.min(-NumberNumericalExpressionAnalyzer_1.delta, -upperNumberLimit);
  839. const to = Math.max(NumberNumericalExpressionAnalyzer_1.delta, upperNumberLimit);
  840. let temporarySum = 0;
  841. for (let i = 0; i < additionalPartsCount; i++) {
  842. if (i < additionalPartsCount - 1) {
  843. let addition = this.randomGenerator.getRandomInteger(from, to);
  844. const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(temporarySum + addition);
  845. if (isUnsafeCombination) {
  846. addition = -addition;
  847. }
  848. additionParts.push(addition);
  849. temporarySum += addition;
  850. }
  851. else {
  852. const combination = number - temporarySum;
  853. const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(combination);
  854. if (isUnsafeCombination) {
  855. additionParts.push(0 - temporarySum);
  856. additionParts.push(number);
  857. }
  858. else {
  859. additionParts.push(combination);
  860. }
  861. }
  862. }
  863. return additionParts;
  864. }
  865. mixWithMultiplyParts(number) {
  866. var _a;
  867. const shouldMixWithMultiplyParts = this.randomGenerator.getMathRandom() > 0.5;
  868. if (!shouldMixWithMultiplyParts || number === 0) {
  869. return number;
  870. }
  871. let factors = (_a = this.numberFactorsMap.get(number)) !== null && _a !== void 0 ? _a : null;
  872. if (!factors) {
  873. factors = NumberUtils_1.NumberUtils.getFactors(number);
  874. this.numberFactorsMap.set(number, factors);
  875. }
  876. if (!factors.length) {
  877. return number;
  878. }
  879. const factor = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)];
  880. return [factor, number / factor];
  881. }
  882. };
  883. NumberNumericalExpressionAnalyzer.defaultAdditionalPartsCount = 3;
  884. NumberNumericalExpressionAnalyzer.delta = 10000;
  885. NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = __decorate([
  886. inversify_1.injectable(),
  887. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  888. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object])
  889. ], NumberNumericalExpressionAnalyzer);
  890. exports.NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer;
  891. /***/ }),
  892. /***/ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts":
  893. /*!**************************************************************************************************!*\
  894. !*** ./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts ***!
  895. \**************************************************************************************************/
  896. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  897. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  898. if (k2 === undefined) k2 = k;
  899. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  900. }) : (function(o, m, k, k2) {
  901. if (k2 === undefined) k2 = k;
  902. o[k2] = m[k];
  903. }));
  904. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  905. Object.defineProperty(o, "default", { enumerable: true, value: v });
  906. }) : function(o, v) {
  907. o["default"] = v;
  908. });
  909. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  910. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  911. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  912. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  913. return c > 3 && r && Object.defineProperty(target, key, r), r;
  914. };
  915. var __importStar = (this && this.__importStar) || function (mod) {
  916. if (mod && mod.__esModule) return mod;
  917. var result = {};
  918. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  919. __setModuleDefault(result, mod);
  920. return result;
  921. };
  922. var __metadata = (this && this.__metadata) || function (k, v) {
  923. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  924. };
  925. var __param = (this && this.__param) || function (paramIndex, decorator) {
  926. return function (target, key) { decorator(target, key, paramIndex); }
  927. };
  928. var PrevailingKindOfVariablesAnalyzer_1, _a;
  929. Object.defineProperty(exports, "__esModule", ({ value: true }));
  930. exports.PrevailingKindOfVariablesAnalyzer = void 0;
  931. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  932. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  933. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  934. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  935. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  936. let PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer {
  937. constructor(arrayUtils) {
  938. this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;
  939. this.arrayUtils = arrayUtils;
  940. }
  941. analyze(astTree) {
  942. var _a;
  943. const variableKinds = [];
  944. estraverse.traverse(astTree, {
  945. enter: (node) => {
  946. if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {
  947. return;
  948. }
  949. variableKinds.push(node.kind);
  950. }
  951. });
  952. this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;
  953. }
  954. getPrevailingKind() {
  955. return this.prevailingKindOfVariables;
  956. }
  957. };
  958. PrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var';
  959. PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([
  960. inversify_1.injectable(),
  961. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  962. __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _a : Object])
  963. ], PrevailingKindOfVariablesAnalyzer);
  964. exports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer;
  965. /***/ }),
  966. /***/ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts":
  967. /*!*******************************************************!*\
  968. !*** ./src/analyzers/scope-analyzer/ScopeAnalyzer.ts ***!
  969. \*******************************************************/
  970. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  971. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  972. if (k2 === undefined) k2 = k;
  973. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  974. }) : (function(o, m, k, k2) {
  975. if (k2 === undefined) k2 = k;
  976. o[k2] = m[k];
  977. }));
  978. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  979. Object.defineProperty(o, "default", { enumerable: true, value: v });
  980. }) : function(o, v) {
  981. o["default"] = v;
  982. });
  983. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  984. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  985. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  986. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  987. return c > 3 && r && Object.defineProperty(target, key, r), r;
  988. };
  989. var __importStar = (this && this.__importStar) || function (mod) {
  990. if (mod && mod.__esModule) return mod;
  991. var result = {};
  992. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  993. __setModuleDefault(result, mod);
  994. return result;
  995. };
  996. var ScopeAnalyzer_1;
  997. Object.defineProperty(exports, "__esModule", ({ value: true }));
  998. exports.ScopeAnalyzer = void 0;
  999. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1000. const eslintScope = __importStar(__webpack_require__(/*! eslint-scope */ "eslint-scope"));
  1001. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  1002. const EcmaVersion_1 = __webpack_require__(/*! ../../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts");
  1003. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  1004. let ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer {
  1005. constructor() {
  1006. this.scopeManager = null;
  1007. }
  1008. static attachMissingRanges(astTree) {
  1009. estraverse.replace(astTree, {
  1010. enter: (node, parentNode) => {
  1011. var _a, _b, _c, _d;
  1012. if (!node.range) {
  1013. node.range = [
  1014. (_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : ScopeAnalyzer_1.emptyRangeValue,
  1015. (_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ScopeAnalyzer_1.emptyRangeValue
  1016. ];
  1017. }
  1018. return node;
  1019. }
  1020. });
  1021. }
  1022. static isRootNode(node) {
  1023. return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node;
  1024. }
  1025. analyze(astTree) {
  1026. const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length;
  1027. ScopeAnalyzer_1.attachMissingRanges(astTree);
  1028. for (let i = 0; i < sourceTypeLength; i++) {
  1029. try {
  1030. this.scopeManager = eslintScope.analyze(astTree, {
  1031. ...ScopeAnalyzer_1.eslintScopeOptions,
  1032. sourceType: ScopeAnalyzer_1.sourceTypes[i]
  1033. });
  1034. return;
  1035. }
  1036. catch (error) {
  1037. if (i < sourceTypeLength - 1) {
  1038. continue;
  1039. }
  1040. throw new Error(error);
  1041. }
  1042. }
  1043. throw new Error('Scope analyzing error');
  1044. }
  1045. acquireScope(node) {
  1046. if (!this.scopeManager) {
  1047. throw new Error('Scope manager is not defined');
  1048. }
  1049. const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node));
  1050. if (!scope) {
  1051. throw new Error('Cannot acquire scope for node');
  1052. }
  1053. this.sanitizeScopes(scope);
  1054. return scope;
  1055. }
  1056. sanitizeScopes(scope) {
  1057. scope.childScopes.forEach((childScope) => {
  1058. if (childScope.type === 'class' && childScope.upper) {
  1059. if (!childScope.variables.length) {
  1060. return;
  1061. }
  1062. const classNameVariable = childScope.variables[0];
  1063. const upperVariable = childScope.upper.variables
  1064. .find((variable) => {
  1065. const isValidClassNameVariable = classNameVariable.defs
  1066. .some((definition) => definition.type === 'ClassName');
  1067. return isValidClassNameVariable && variable.name === classNameVariable.name;
  1068. });
  1069. upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references);
  1070. }
  1071. });
  1072. for (const childScope of scope.childScopes) {
  1073. this.sanitizeScopes(childScope);
  1074. }
  1075. }
  1076. };
  1077. ScopeAnalyzer.eslintScopeOptions = {
  1078. ecmaVersion: EcmaVersion_1.ecmaVersion,
  1079. optimistic: true
  1080. };
  1081. ScopeAnalyzer.sourceTypes = [
  1082. 'script',
  1083. 'module'
  1084. ];
  1085. ScopeAnalyzer.emptyRangeValue = 0;
  1086. ScopeAnalyzer = ScopeAnalyzer_1 = __decorate([
  1087. inversify_1.injectable()
  1088. ], ScopeAnalyzer);
  1089. exports.ScopeAnalyzer = ScopeAnalyzer;
  1090. /***/ }),
  1091. /***/ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts":
  1092. /*!***********************************************************************************!*\
  1093. !*** ./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts ***!
  1094. \***********************************************************************************/
  1095. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1096. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  1097. if (k2 === undefined) k2 = k;
  1098. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  1099. }) : (function(o, m, k, k2) {
  1100. if (k2 === undefined) k2 = k;
  1101. o[k2] = m[k];
  1102. }));
  1103. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  1104. Object.defineProperty(o, "default", { enumerable: true, value: v });
  1105. }) : function(o, v) {
  1106. o["default"] = v;
  1107. });
  1108. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  1109. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  1110. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  1111. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1112. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1113. };
  1114. var __importStar = (this && this.__importStar) || function (mod) {
  1115. if (mod && mod.__esModule) return mod;
  1116. var result = {};
  1117. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  1118. __setModuleDefault(result, mod);
  1119. return result;
  1120. };
  1121. var __metadata = (this && this.__metadata) || function (k, v) {
  1122. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  1123. };
  1124. var __param = (this && this.__param) || function (paramIndex, decorator) {
  1125. return function (target, key) { decorator(target, key, paramIndex); }
  1126. };
  1127. var StringArrayStorageAnalyzer_1, _a, _b, _c;
  1128. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1129. exports.StringArrayStorageAnalyzer = void 0;
  1130. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1131. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1132. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  1133. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  1134. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  1135. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  1136. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  1137. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  1138. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  1139. let StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer {
  1140. constructor(stringArrayStorage, randomGenerator, options) {
  1141. this.stringArrayStorageData = new Map();
  1142. this.stringArrayStorage = stringArrayStorage;
  1143. this.randomGenerator = randomGenerator;
  1144. this.options = options;
  1145. }
  1146. analyze(astTree) {
  1147. if (!this.options.stringArray) {
  1148. return;
  1149. }
  1150. estraverse.traverse(astTree, {
  1151. enter: (node, parentNode) => {
  1152. if (!parentNode) {
  1153. return;
  1154. }
  1155. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  1156. return estraverse.VisitorOption.Skip;
  1157. }
  1158. if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  1159. return;
  1160. }
  1161. this.analyzeLiteralNode(node, parentNode);
  1162. }
  1163. });
  1164. }
  1165. analyzeLiteralNode(literalNode, parentNode) {
  1166. if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {
  1167. return;
  1168. }
  1169. if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
  1170. return;
  1171. }
  1172. if (!this.shouldAddValueToStringArray(literalNode)) {
  1173. return;
  1174. }
  1175. this.addItemDataForLiteralNode(literalNode);
  1176. }
  1177. addItemDataForLiteralNode(literalNode) {
  1178. this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value));
  1179. }
  1180. getItemDataForLiteralNode(literalNode) {
  1181. return this.stringArrayStorageData.get(literalNode);
  1182. }
  1183. shouldAddValueToStringArray(literalNode) {
  1184. const isForceTransformNode = NodeMetadata_1.NodeMetadata.isForceTransformNode(literalNode);
  1185. if (isForceTransformNode) {
  1186. return true;
  1187. }
  1188. return literalNode.value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray
  1189. && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;
  1190. }
  1191. };
  1192. StringArrayStorageAnalyzer.minimumLengthForStringArray = 3;
  1193. StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([
  1194. inversify_1.injectable(),
  1195. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  1196. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  1197. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  1198. __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  1199. ], StringArrayStorageAnalyzer);
  1200. exports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer;
  1201. /***/ }),
  1202. /***/ "./src/code-transformers/AbstractCodeTransformer.ts":
  1203. /*!**********************************************************!*\
  1204. !*** ./src/code-transformers/AbstractCodeTransformer.ts ***!
  1205. \**********************************************************/
  1206. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1207. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  1208. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  1209. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  1210. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1211. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1212. };
  1213. var __metadata = (this && this.__metadata) || function (k, v) {
  1214. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  1215. };
  1216. var __param = (this && this.__param) || function (paramIndex, decorator) {
  1217. return function (target, key) { decorator(target, key, paramIndex); }
  1218. };
  1219. var _a, _b;
  1220. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1221. exports.AbstractCodeTransformer = void 0;
  1222. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1223. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1224. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  1225. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  1226. let AbstractCodeTransformer = class AbstractCodeTransformer {
  1227. constructor(randomGenerator, options) {
  1228. this.randomGenerator = randomGenerator;
  1229. this.options = options;
  1230. }
  1231. };
  1232. AbstractCodeTransformer = __decorate([
  1233. inversify_1.injectable(),
  1234. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  1235. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  1236. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  1237. ], AbstractCodeTransformer);
  1238. exports.AbstractCodeTransformer = AbstractCodeTransformer;
  1239. /***/ }),
  1240. /***/ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts":
  1241. /*!********************************************************************!*\
  1242. !*** ./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts ***!
  1243. \********************************************************************/
  1244. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1245. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  1246. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  1247. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  1248. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1249. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1250. };
  1251. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1252. exports.CodeTransformerNamesGroupsBuilder = void 0;
  1253. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1254. const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts");
  1255. let CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {
  1256. };
  1257. CodeTransformerNamesGroupsBuilder = __decorate([
  1258. inversify_1.injectable()
  1259. ], CodeTransformerNamesGroupsBuilder);
  1260. exports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder;
  1261. /***/ }),
  1262. /***/ "./src/code-transformers/CodeTransformersRunner.ts":
  1263. /*!*********************************************************!*\
  1264. !*** ./src/code-transformers/CodeTransformersRunner.ts ***!
  1265. \*********************************************************/
  1266. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1267. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  1268. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  1269. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  1270. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1271. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1272. };
  1273. var __metadata = (this && this.__metadata) || function (k, v) {
  1274. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  1275. };
  1276. var __param = (this && this.__param) || function (paramIndex, decorator) {
  1277. return function (target, key) { decorator(target, key, paramIndex); }
  1278. };
  1279. var _a, _b;
  1280. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1281. exports.CodeTransformersRunner = void 0;
  1282. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1283. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1284. const TCodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/code-transformers/TCodeTransformerFactory */ "./src/types/container/code-transformers/TCodeTransformerFactory.ts");
  1285. const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts");
  1286. let CodeTransformersRunner = class CodeTransformersRunner {
  1287. constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) {
  1288. this.codeTransformerFactory = codeTransformerFactory;
  1289. this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder;
  1290. }
  1291. transform(code, codeTransformerNames, codeTransformationStage) {
  1292. if (!codeTransformerNames.length) {
  1293. return code;
  1294. }
  1295. const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage);
  1296. const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers);
  1297. for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) {
  1298. for (const nodeTransformerName of nodeTransformerNamesGroup) {
  1299. const codeTransformer = normalizedCodeTransformers[nodeTransformerName];
  1300. code = codeTransformer.transformCode(code, codeTransformationStage);
  1301. }
  1302. }
  1303. return code;
  1304. }
  1305. buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) {
  1306. return codeTransformerNames
  1307. .reduce((acc, codeTransformerName) => {
  1308. const codeTransformer = this.codeTransformerFactory(codeTransformerName);
  1309. return {
  1310. ...acc,
  1311. [codeTransformerName]: codeTransformer
  1312. };
  1313. }, {});
  1314. }
  1315. };
  1316. CodeTransformersRunner = __decorate([
  1317. inversify_1.injectable(),
  1318. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)),
  1319. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),
  1320. __metadata("design:paramtypes", [typeof (_a = typeof TCodeTransformerFactory_1.TCodeTransformerFactory !== "undefined" && TCodeTransformerFactory_1.TCodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object])
  1321. ], CodeTransformersRunner);
  1322. exports.CodeTransformersRunner = CodeTransformersRunner;
  1323. /***/ }),
  1324. /***/ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts":
  1325. /*!*************************************************************************************!*\
  1326. !*** ./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts ***!
  1327. \*************************************************************************************/
  1328. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1329. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  1330. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  1331. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  1332. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1333. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1334. };
  1335. var __metadata = (this && this.__metadata) || function (k, v) {
  1336. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  1337. };
  1338. var __param = (this && this.__param) || function (paramIndex, decorator) {
  1339. return function (target, key) { decorator(target, key, paramIndex); }
  1340. };
  1341. var _a, _b;
  1342. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1343. exports.HashbangOperatorTransformer = void 0;
  1344. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1345. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1346. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  1347. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  1348. const CodeTransformationStage_1 = __webpack_require__(/*! ../../enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts");
  1349. const AbstractCodeTransformer_1 = __webpack_require__(/*! ../AbstractCodeTransformer */ "./src/code-transformers/AbstractCodeTransformer.ts");
  1350. let HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer {
  1351. constructor(randomGenerator, options) {
  1352. super(randomGenerator, options);
  1353. this.hashbangOperatorLine = null;
  1354. }
  1355. transformCode(code, codeTransformationStage) {
  1356. switch (codeTransformationStage) {
  1357. case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers:
  1358. return this.removeAndSaveHashbangOperatorLine(code);
  1359. case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers:
  1360. return this.appendSavedHashbangOperatorLine(code);
  1361. default:
  1362. return code;
  1363. }
  1364. }
  1365. removeAndSaveHashbangOperatorLine(code) {
  1366. return code
  1367. .replace(/^#!.*$(\r?\n)*/m, (substring) => {
  1368. if (substring) {
  1369. this.hashbangOperatorLine = substring;
  1370. }
  1371. return '';
  1372. })
  1373. .trim();
  1374. }
  1375. appendSavedHashbangOperatorLine(code) {
  1376. var _a;
  1377. return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`;
  1378. }
  1379. };
  1380. HashbangOperatorTransformer = __decorate([
  1381. inversify_1.injectable(),
  1382. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  1383. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  1384. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  1385. ], HashbangOperatorTransformer);
  1386. exports.HashbangOperatorTransformer = HashbangOperatorTransformer;
  1387. /***/ }),
  1388. /***/ "./src/constants/AlphabetString.ts":
  1389. /*!*****************************************!*\
  1390. !*** ./src/constants/AlphabetString.ts ***!
  1391. \*****************************************/
  1392. /***/ ((__unused_webpack_module, exports) => {
  1393. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1394. exports.alphabetString = void 0;
  1395. exports.alphabetString = 'abcdefghijklmnopqrstuvwxyz';
  1396. /***/ }),
  1397. /***/ "./src/constants/AlphabetStringUppercase.ts":
  1398. /*!**************************************************!*\
  1399. !*** ./src/constants/AlphabetStringUppercase.ts ***!
  1400. \**************************************************/
  1401. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1402. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1403. exports.alphabetStringUppercase = void 0;
  1404. const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts");
  1405. exports.alphabetStringUppercase = AlphabetString_1.alphabetString.toUpperCase();
  1406. /***/ }),
  1407. /***/ "./src/constants/Base64Alphabet.ts":
  1408. /*!*****************************************!*\
  1409. !*** ./src/constants/Base64Alphabet.ts ***!
  1410. \*****************************************/
  1411. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1412. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1413. exports.base64alphabet = void 0;
  1414. const AlphabetStringUppercase_1 = __webpack_require__(/*! ./AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts");
  1415. const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts");
  1416. const NumbersString_1 = __webpack_require__(/*! ./NumbersString */ "./src/constants/NumbersString.ts");
  1417. exports.base64alphabet = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`;
  1418. /***/ }),
  1419. /***/ "./src/constants/Base64AlphabetSwapped.ts":
  1420. /*!************************************************!*\
  1421. !*** ./src/constants/Base64AlphabetSwapped.ts ***!
  1422. \************************************************/
  1423. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1424. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1425. exports.base64alphabetSwapped = void 0;
  1426. const AlphabetStringUppercase_1 = __webpack_require__(/*! ./AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts");
  1427. const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts");
  1428. const NumbersString_1 = __webpack_require__(/*! ./NumbersString */ "./src/constants/NumbersString.ts");
  1429. exports.base64alphabetSwapped = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}${NumbersString_1.numbersString}+/=`;
  1430. /***/ }),
  1431. /***/ "./src/constants/EcmaVersion.ts":
  1432. /*!**************************************!*\
  1433. !*** ./src/constants/EcmaVersion.ts ***!
  1434. \**************************************/
  1435. /***/ ((__unused_webpack_module, exports) => {
  1436. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1437. exports.ecmaVersion = void 0;
  1438. exports.ecmaVersion = 13;
  1439. /***/ }),
  1440. /***/ "./src/constants/NumbersString.ts":
  1441. /*!****************************************!*\
  1442. !*** ./src/constants/NumbersString.ts ***!
  1443. \****************************************/
  1444. /***/ ((__unused_webpack_module, exports) => {
  1445. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1446. exports.numbersString = void 0;
  1447. exports.numbersString = '0123456789';
  1448. /***/ }),
  1449. /***/ "./src/container/InversifyContainerFacade.ts":
  1450. /*!***************************************************!*\
  1451. !*** ./src/container/InversifyContainerFacade.ts ***!
  1452. \***************************************************/
  1453. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1454. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1455. exports.InversifyContainerFacade = void 0;
  1456. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1457. const ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1458. const AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts");
  1459. const CodeTransformersModule_1 = __webpack_require__(/*! ./modules/code-transformers/CodeTransformersModule */ "./src/container/modules/code-transformers/CodeTransformersModule.ts");
  1460. const ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts");
  1461. const ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts");
  1462. const CustomCodeHelpersModule_1 = __webpack_require__(/*! ./modules/custom-code-helpers/CustomCodeHelpersModule */ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts");
  1463. const CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts");
  1464. const DeadCodeInjectionTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/DeadCodeInjectionTransformersModule */ "./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts");
  1465. const FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts");
  1466. const GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts");
  1467. const InitializingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/InitializingTransformersModule */ "./src/container/modules/node-transformers/InitializingTransformersModule.ts");
  1468. const NodeModule_1 = __webpack_require__(/*! ./modules/node/NodeModule */ "./src/container/modules/node/NodeModule.ts");
  1469. const NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts");
  1470. const OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts");
  1471. const PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts");
  1472. const RenameIdentifiersTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenameIdentifiersTransformersModule */ "./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts");
  1473. const RenamePropertiesTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenamePropertiesTransformersModule */ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts");
  1474. const SimplifyingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/SimplifyingTransformersModule */ "./src/container/modules/node-transformers/SimplifyingTransformersModule.ts");
  1475. const StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts");
  1476. const StringArrayTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/StringArrayTransformersModule */ "./src/container/modules/node-transformers/StringArrayTransformersModule.ts");
  1477. const UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts");
  1478. const CodeTransformersRunner_1 = __webpack_require__(/*! ../code-transformers/CodeTransformersRunner */ "./src/code-transformers/CodeTransformersRunner.ts");
  1479. const JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts");
  1480. const Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts");
  1481. const NodeTransformersRunner_1 = __webpack_require__(/*! ../node-transformers/NodeTransformersRunner */ "./src/node-transformers/NodeTransformersRunner.ts");
  1482. const ObfuscationResult_1 = __webpack_require__(/*! ../source-code/ObfuscationResult */ "./src/source-code/ObfuscationResult.ts");
  1483. const SourceCode_1 = __webpack_require__(/*! ../source-code/SourceCode */ "./src/source-code/SourceCode.ts");
  1484. class InversifyContainerFacade {
  1485. constructor() {
  1486. this.container = new inversify_1.Container();
  1487. }
  1488. static getFactory(serviceIdentifier) {
  1489. return (context) => {
  1490. return (bindingName) => {
  1491. return context.container.getNamed(serviceIdentifier, bindingName);
  1492. };
  1493. };
  1494. }
  1495. static getCacheFactory(serviceIdentifier) {
  1496. return (context) => {
  1497. const cache = new Map();
  1498. return (bindingName) => {
  1499. if (cache.has(bindingName)) {
  1500. return cache.get(bindingName);
  1501. }
  1502. const object = context.container.getNamed(serviceIdentifier, bindingName);
  1503. cache.set(bindingName, object);
  1504. return object;
  1505. };
  1506. };
  1507. }
  1508. static getConstructorFactory(serviceIdentifier, ...dependencies) {
  1509. return (context) => {
  1510. const cache = new Map();
  1511. const cachedDependencies = [];
  1512. return (bindingName) => {
  1513. dependencies.forEach((dependency, index) => {
  1514. if (!cachedDependencies[index]) {
  1515. cachedDependencies[index] = context.container.get(dependency);
  1516. }
  1517. });
  1518. if (cache.has(bindingName)) {
  1519. return new (cache.get(bindingName))(...cachedDependencies);
  1520. }
  1521. const constructor = context.container
  1522. .getNamed(serviceIdentifier, bindingName);
  1523. cache.set(bindingName, constructor);
  1524. return new constructor(...cachedDependencies);
  1525. };
  1526. };
  1527. }
  1528. get(serviceIdentifier) {
  1529. return this.container.get(serviceIdentifier);
  1530. }
  1531. getNamed(serviceIdentifier, named) {
  1532. return this.container.getNamed(serviceIdentifier, named);
  1533. }
  1534. load(sourceCode, sourceMap, options) {
  1535. this.container
  1536. .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)
  1537. .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap))
  1538. .inSingletonScope();
  1539. this.container
  1540. .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)
  1541. .toDynamicValue(() => options)
  1542. .inSingletonScope();
  1543. this.container
  1544. .bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)
  1545. .to(Logger_1.Logger)
  1546. .inSingletonScope();
  1547. this.container
  1548. .bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator)
  1549. .to(JavaScriptObfuscator_1.JavaScriptObfuscator)
  1550. .inSingletonScope();
  1551. this.container
  1552. .bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)
  1553. .to(CodeTransformersRunner_1.CodeTransformersRunner)
  1554. .inSingletonScope();
  1555. this.container
  1556. .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)
  1557. .to(NodeTransformersRunner_1.NodeTransformersRunner)
  1558. .inSingletonScope();
  1559. this.container
  1560. .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult)
  1561. .to(ObfuscationResult_1.ObfuscationResult);
  1562. this.container
  1563. .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult)
  1564. .toFactory((context) => {
  1565. return (obfuscatedCodeAsString, sourceMapAsString) => {
  1566. const obfuscationResult = context.container
  1567. .get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult);
  1568. obfuscationResult.initialize(obfuscatedCodeAsString, sourceMapAsString);
  1569. return obfuscationResult;
  1570. };
  1571. });
  1572. this.container.load(AnalyzersModule_1.analyzersModule);
  1573. this.container.load(CodeTransformersModule_1.codeTransformersModule);
  1574. this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);
  1575. this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);
  1576. this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule);
  1577. this.container.load(CustomNodesModule_1.customNodesModule);
  1578. this.container.load(DeadCodeInjectionTransformersModule_1.deadCodeInjectionTransformersModule);
  1579. this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);
  1580. this.container.load(GeneratorsModule_1.generatorsModule);
  1581. this.container.load(InitializingTransformersModule_1.initializingTransformersModule);
  1582. this.container.load(NodeModule_1.nodeModule);
  1583. this.container.load(NodeTransformersModule_1.nodeTransformersModule);
  1584. this.container.load(OptionsModule_1.optionsModule);
  1585. this.container.load(PreparingTransformersModule_1.preparingTransformersModule);
  1586. this.container.load(RenameIdentifiersTransformersModule_1.renameIdentifiersTransformersModule);
  1587. this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule);
  1588. this.container.load(SimplifyingTransformersModule_1.simplifyingTransformersModule);
  1589. this.container.load(StoragesModule_1.storagesModule);
  1590. this.container.load(StringArrayTransformersModule_1.stringArrayTransformersModule);
  1591. this.container.load(UtilsModule_1.utilsModule);
  1592. }
  1593. unload() {
  1594. this.container.unbindAll();
  1595. }
  1596. }
  1597. exports.InversifyContainerFacade = InversifyContainerFacade;
  1598. /***/ }),
  1599. /***/ "./src/container/ServiceIdentifiers.ts":
  1600. /*!*********************************************!*\
  1601. !*** ./src/container/ServiceIdentifiers.ts ***!
  1602. \*********************************************/
  1603. /***/ ((__unused_webpack_module, exports) => {
  1604. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1605. exports.ServiceIdentifiers = void 0;
  1606. var ServiceIdentifiers;
  1607. (function (ServiceIdentifiers) {
  1608. ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory<ICalleeDataExtractor>";
  1609. ServiceIdentifiers["Factory__ICodeTransformer"] = "Factory<ICodeTransformer[]>";
  1610. ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory<IControlFlowCustomNode>";
  1611. ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory<IControlFlowReplacer>";
  1612. ServiceIdentifiers["Factory__ICustomCodeHelper"] = "Factory<ICustomCodeHelper>";
  1613. ServiceIdentifiers["Factory__ICustomCodeHelperGroup"] = "Factory<ICustomCodeHelperGroup>";
  1614. ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory<IDeadCodeInjectionCustomNode>";
  1615. ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory<IIdentifierNamesGenerator>";
  1616. ServiceIdentifiers["Factory__INodeGuard"] = "Factory<INodeGuard>";
  1617. ServiceIdentifiers["Factory__INodeTransformer"] = "Factory<INodeTransformer[]>";
  1618. ServiceIdentifiers["Factory__IObfuscationResult"] = "Factory<IObfuscationResult>";
  1619. ServiceIdentifiers["Factory__IObjectExpressionKeysTransformerCustomNode"] = "Factory<IObjectExpressionKeysTransformerCustomNode>";
  1620. ServiceIdentifiers["Factory__IObjectExpressionExtractor"] = "Factory<IObjectExpressionExtractor>";
  1621. ServiceIdentifiers["Factory__IStringArrayCustomNode"] = "Factory<IStringArrayCustomNode>";
  1622. ServiceIdentifiers["Factory__IStringArrayIndexNode"] = "Factory<IStringArrayIndexNode>";
  1623. ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory<TControlFlowStorage>";
  1624. ServiceIdentifiers["IArrayUtils"] = "IArrayUtils";
  1625. ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor";
  1626. ServiceIdentifiers["ICallsGraphAnalyzer"] = "ICallsGraphAnalyzer";
  1627. ServiceIdentifiers["ICodeTransformer"] = "ICodeTransformer";
  1628. ServiceIdentifiers["ICodeTransformerNamesGroupsBuilder"] = "ICodeTransformerNamesGroupsBuilder";
  1629. ServiceIdentifiers["ICodeTransformersRunner"] = "ICodeTransformersRunner";
  1630. ServiceIdentifiers["ICryptUtils"] = "ICryptUtils";
  1631. ServiceIdentifiers["ICryptUtilsStringArray"] = "ICryptUtilsStringArray";
  1632. ServiceIdentifiers["ICustomCodeHelper"] = "ICustomCodeHelper";
  1633. ServiceIdentifiers["ICustomCodeHelperGroup"] = "ICustomCodeHelperGroup";
  1634. ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer";
  1635. ServiceIdentifiers["ICustomCodeHelperFormatter"] = "ICustomCodeHelperFormatter";
  1636. ServiceIdentifiers["ICustomCodeHelperObfuscator"] = "ICustomCodeHelperObfuscator";
  1637. ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder";
  1638. ServiceIdentifiers["IGlobalIdentifierNamesCacheStorage"] = "IGlobalIdentifierNamesCacheStorage";
  1639. ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator";
  1640. ServiceIdentifiers["IIdentifierReplacer"] = "IIdentifierReplacer";
  1641. ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator";
  1642. ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter";
  1643. ServiceIdentifiers["ILiteralNodesCacheStorage"] = "ILiteralNodesCacheStorage";
  1644. ServiceIdentifiers["ILogger"] = "ILogger";
  1645. ServiceIdentifiers["INodeGuard"] = "INodeGuard";
  1646. ServiceIdentifiers["INodeTransformer"] = "INodeTransformer";
  1647. ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder";
  1648. ServiceIdentifiers["INodeTransformersRunner"] = "INodeTransformersRunner";
  1649. ServiceIdentifiers["INumberNumericalExpressionAnalyzer"] = "INumberNumericalExpressionAnalyzer";
  1650. ServiceIdentifiers["IObfuscationResult"] = "IObfuscationResult";
  1651. ServiceIdentifiers["IOptions"] = "IOptions";
  1652. ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer";
  1653. ServiceIdentifiers["IPrevailingKindOfVariablesAnalyzer"] = "IPrevailingKindOfVariablesAnalyzer";
  1654. ServiceIdentifiers["IPropertyIdentifierNamesCacheStorage"] = "IPropertyIdentifierNamesCacheStorage";
  1655. ServiceIdentifiers["IObjectExpressionExtractor"] = "IObjectExpressionExtractor";
  1656. ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator";
  1657. ServiceIdentifiers["IRenamePropertiesReplacer"] = "IRenamePropertiesReplacer";
  1658. ServiceIdentifiers["IScopeIdentifiersTraverser"] = "IScopeIdentifiersTraverser";
  1659. ServiceIdentifiers["ISourceCode"] = "ISourceCode";
  1660. ServiceIdentifiers["IScopeAnalyzer"] = "IScopeAnalyzer";
  1661. ServiceIdentifiers["IStringArrayIndexNode"] = "IStringArrayIndexNode";
  1662. ServiceIdentifiers["IStringArrayScopeCallsWrapperLexicalScopeDataStorage"] = "IStringArrayScopeCallsWrapperLexicalScopeDataStorage";
  1663. ServiceIdentifiers["IStringArrayScopeCallsWrapperNamesDataStorage"] = "IStringArrayScopeCallsWrapperNamesDataStorage";
  1664. ServiceIdentifiers["IStringArrayStorage"] = "IStringArrayStorage";
  1665. ServiceIdentifiers["IStringArrayStorageAnalyzer"] = "IStringArrayStorageAnalyzer";
  1666. ServiceIdentifiers["IThroughIdentifierReplacer"] = "IThroughIdentifierReplacer";
  1667. ServiceIdentifiers["IVisitedLexicalScopeNodesStackStorage"] = "IVisitedLexicalScopeNodesStackStorage";
  1668. ServiceIdentifiers["Newable__ICustomNode"] = "Newable<ICustomNode>";
  1669. ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable<TControlFlowStorage>";
  1670. ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage";
  1671. ServiceIdentifiers["TInputOptions"] = "TInputOptions";
  1672. })(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));
  1673. /***/ }),
  1674. /***/ "./src/container/modules/analyzers/AnalyzersModule.ts":
  1675. /*!************************************************************!*\
  1676. !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***!
  1677. \************************************************************/
  1678. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1679. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1680. exports.analyzersModule = void 0;
  1681. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1682. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1683. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1684. const CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts");
  1685. const CallsGraphAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer */ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts");
  1686. const FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts");
  1687. const FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts");
  1688. const NumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer */ "./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts");
  1689. const ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts");
  1690. const PrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer */ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts");
  1691. const ScopeAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/scope-analyzer/ScopeAnalyzer */ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts");
  1692. const StringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer */ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts");
  1693. exports.analyzersModule = new inversify_1.ContainerModule((bind) => {
  1694. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)
  1695. .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer)
  1696. .inSingletonScope();
  1697. bind(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)
  1698. .to(NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer)
  1699. .inSingletonScope();
  1700. bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)
  1701. .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer)
  1702. .inSingletonScope();
  1703. bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)
  1704. .to(ScopeAnalyzer_1.ScopeAnalyzer)
  1705. .inSingletonScope();
  1706. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)
  1707. .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer)
  1708. .inSingletonScope();
  1709. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)
  1710. .to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor)
  1711. .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);
  1712. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)
  1713. .to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor)
  1714. .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);
  1715. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)
  1716. .to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor)
  1717. .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);
  1718. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)
  1719. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1720. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));
  1721. });
  1722. /***/ }),
  1723. /***/ "./src/container/modules/code-transformers/CodeTransformersModule.ts":
  1724. /*!***************************************************************************!*\
  1725. !*** ./src/container/modules/code-transformers/CodeTransformersModule.ts ***!
  1726. \***************************************************************************/
  1727. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1728. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1729. exports.codeTransformersModule = void 0;
  1730. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1731. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1732. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1733. const CodeTransformer_1 = __webpack_require__(/*! ../../../enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts");
  1734. const CodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../code-transformers/CodeTransformerNamesGroupsBuilder */ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts");
  1735. const HashbangOperatorTransformer_1 = __webpack_require__(/*! ../../../code-transformers/preparing-transformers/HashbangOperatorTransformer */ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts");
  1736. exports.codeTransformersModule = new inversify_1.ContainerModule((bind) => {
  1737. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)
  1738. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1739. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer));
  1740. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)
  1741. .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder)
  1742. .inSingletonScope();
  1743. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)
  1744. .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer)
  1745. .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer);
  1746. });
  1747. /***/ }),
  1748. /***/ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts":
  1749. /*!******************************************************************************!*\
  1750. !*** ./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts ***!
  1751. \******************************************************************************/
  1752. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1753. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1754. exports.customCodeHelpersModule = void 0;
  1755. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1756. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1757. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1758. const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  1759. const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts");
  1760. const ConsoleOutputCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup */ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts");
  1761. const DebugProtectionCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup */ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts");
  1762. const DomainLockCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup */ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts");
  1763. const SelfDefendingCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup */ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts");
  1764. const StringArrayCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup */ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts");
  1765. const ConsoleOutputDisableCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper */ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts");
  1766. const CustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperFormatter */ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts");
  1767. const CustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperObfuscator */ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts");
  1768. const DebugProtectionFunctionCallCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts");
  1769. const DebugProtectionFunctionIntervalCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts");
  1770. const DebugProtectionFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts");
  1771. const DomainLockCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/DomainLockCodeHelper */ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts");
  1772. const CallsControllerFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper */ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts");
  1773. const SelfDefendingUnicodeCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper */ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts");
  1774. const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts");
  1775. const StringArrayCallsWrapperBase64CodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts");
  1776. const StringArrayCallsWrapperRc4CodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts");
  1777. const StringArrayCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts");
  1778. const StringArrayRotateFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts");
  1779. exports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => {
  1780. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1781. .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper)
  1782. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);
  1783. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1784. .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper)
  1785. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);
  1786. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1787. .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper)
  1788. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);
  1789. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1790. .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper)
  1791. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);
  1792. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1793. .to(DomainLockCodeHelper_1.DomainLockCodeHelper)
  1794. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock);
  1795. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1796. .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper)
  1797. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
  1798. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1799. .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper)
  1800. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);
  1801. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1802. .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper)
  1803. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper);
  1804. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1805. .to(StringArrayCallsWrapperBase64CodeHelper_1.StringArrayCallsWrapperBase64CodeHelper)
  1806. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64);
  1807. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1808. .to(StringArrayCallsWrapperRc4CodeHelper_1.StringArrayCallsWrapperRc4CodeHelper)
  1809. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4);
  1810. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1811. .to(StringArrayCodeHelper_1.StringArrayCodeHelper)
  1812. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray);
  1813. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)
  1814. .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper)
  1815. .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);
  1816. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
  1817. .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup)
  1818. .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput);
  1819. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
  1820. .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup)
  1821. .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection);
  1822. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
  1823. .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup)
  1824. .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock);
  1825. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
  1826. .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup)
  1827. .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending);
  1828. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)
  1829. .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup)
  1830. .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray);
  1831. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)
  1832. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1833. .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper));
  1834. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)
  1835. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1836. .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup));
  1837. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)
  1838. .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter)
  1839. .inSingletonScope();
  1840. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)
  1841. .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator)
  1842. .inSingletonScope();
  1843. });
  1844. /***/ }),
  1845. /***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts":
  1846. /*!*****************************************************************!*\
  1847. !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***!
  1848. \*****************************************************************/
  1849. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1850. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1851. exports.customNodesModule = void 0;
  1852. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1853. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1854. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1855. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  1856. const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
  1857. const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts");
  1858. const StringArrayCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts");
  1859. const BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts");
  1860. const BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts");
  1861. const BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts");
  1862. const CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts");
  1863. const CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts");
  1864. const ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts");
  1865. const ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts");
  1866. const LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts");
  1867. const ObjectExpressionVariableDeclarationHostNode_1 = __webpack_require__(/*! ../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode */ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts");
  1868. const StringArrayCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallNode */ "./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts");
  1869. const StringArrayHexadecimalNumberIndexNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts");
  1870. const StringArrayHexadecimalNumericStringIndexNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts");
  1871. const StringArrayIndexNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode */ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts");
  1872. const StringArrayScopeCallsWrapperFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts");
  1873. const StringArrayScopeCallsWrapperVariableNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode */ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts");
  1874. const StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts");
  1875. const StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts");
  1876. exports.customNodesModule = new inversify_1.ContainerModule((bind) => {
  1877. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1878. .toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode)
  1879. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
  1880. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1881. .toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode)
  1882. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
  1883. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1884. .toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode)
  1885. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
  1886. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1887. .toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode)
  1888. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
  1889. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1890. .toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode)
  1891. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
  1892. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1893. .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode)
  1894. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
  1895. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1896. .toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode)
  1897. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
  1898. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1899. .toConstructor(StringLiteralNode_1.StringLiteralNode)
  1900. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
  1901. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1902. .toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode)
  1903. .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
  1904. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1905. .toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode)
  1906. .whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
  1907. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1908. .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode)
  1909. .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);
  1910. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1911. .toConstructor(StringArrayCallNode_1.StringArrayCallNode)
  1912. .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);
  1913. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1914. .toConstructor(StringArrayScopeCallsWrapperFunctionNode_1.StringArrayScopeCallsWrapperFunctionNode)
  1915. .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);
  1916. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)
  1917. .toConstructor(StringArrayScopeCallsWrapperVariableNode_1.StringArrayScopeCallsWrapperVariableNode)
  1918. .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);
  1919. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)
  1920. .to(StringArrayHexadecimalNumberIndexNode_1.StringArrayHexadecimalNumberIndexNode)
  1921. .inSingletonScope()
  1922. .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode);
  1923. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)
  1924. .to(StringArrayHexadecimalNumericStringIndexNode_1.StringArrayHexadecimalNumericStringIndexNode)
  1925. .inSingletonScope()
  1926. .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode);
  1927. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)
  1928. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1929. .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1930. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)
  1931. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1932. .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1933. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)
  1934. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1935. .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1936. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)
  1937. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1938. .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage, ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1939. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)
  1940. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  1941. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode));
  1942. });
  1943. /***/ }),
  1944. /***/ "./src/container/modules/generators/GeneratorsModule.ts":
  1945. /*!**************************************************************!*\
  1946. !*** ./src/container/modules/generators/GeneratorsModule.ts ***!
  1947. \**************************************************************/
  1948. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  1949. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1950. exports.generatorsModule = void 0;
  1951. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1952. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1953. const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  1954. const DictionaryIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts");
  1955. const HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts");
  1956. const MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts");
  1957. const MangledShuffledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts");
  1958. exports.generatorsModule = new inversify_1.ContainerModule((bind) => {
  1959. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)
  1960. .to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator)
  1961. .inSingletonScope()
  1962. .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
  1963. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)
  1964. .to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator)
  1965. .inSingletonScope()
  1966. .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
  1967. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)
  1968. .to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator)
  1969. .inSingletonScope()
  1970. .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
  1971. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)
  1972. .to(MangledShuffledIdentifierNamesGenerator_1.MangledShuffledIdentifierNamesGenerator)
  1973. .inSingletonScope()
  1974. .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);
  1975. function identifierNameGeneratorFactory() {
  1976. let cachedIdentifierNamesGenerator = null;
  1977. return (context) => (options) => {
  1978. if (cachedIdentifierNamesGenerator) {
  1979. return cachedIdentifierNamesGenerator;
  1980. }
  1981. let identifierNamesGenerator;
  1982. switch (options.identifierNamesGenerator) {
  1983. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:
  1984. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
  1985. break;
  1986. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:
  1987. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
  1988. break;
  1989. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:
  1990. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);
  1991. break;
  1992. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:
  1993. default:
  1994. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
  1995. }
  1996. cachedIdentifierNamesGenerator = identifierNamesGenerator;
  1997. return identifierNamesGenerator;
  1998. };
  1999. }
  2000. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
  2001. .toFactory(identifierNameGeneratorFactory());
  2002. });
  2003. /***/ }),
  2004. /***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts":
  2005. /*!**********************************************************************************!*\
  2006. !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***!
  2007. \**********************************************************************************/
  2008. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2009. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2010. exports.controlFlowTransformersModule = void 0;
  2011. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  2012. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2013. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2014. const ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts");
  2015. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2016. const BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts");
  2017. const BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts");
  2018. const CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts");
  2019. const FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts");
  2020. const LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts");
  2021. const StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts");
  2022. exports.controlFlowTransformersModule = new inversify_1.ContainerModule((bind) => {
  2023. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2024. .to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer)
  2025. .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);
  2026. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2027. .to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer)
  2028. .whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);
  2029. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)
  2030. .to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer)
  2031. .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);
  2032. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)
  2033. .to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer)
  2034. .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);
  2035. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)
  2036. .to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer)
  2037. .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);
  2038. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)
  2039. .to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer)
  2040. .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);
  2041. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)
  2042. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  2043. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));
  2044. });
  2045. /***/ }),
  2046. /***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts":
  2047. /*!*********************************************************************************!*\
  2048. !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***!
  2049. \*********************************************************************************/
  2050. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2051. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2052. exports.convertingTransformersModule = void 0;
  2053. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2054. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  2055. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2056. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2057. const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts");
  2058. const BasePropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts");
  2059. const BooleanLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/BooleanLiteralTransformer */ "./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts");
  2060. const ExportSpecifierTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ExportSpecifierTransformer */ "./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts");
  2061. const MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts");
  2062. const MethodAndPropertyDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodAndPropertyDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodAndPropertyDefinitionTransformer.ts");
  2063. const NumberLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/NumberLiteralTransformer */ "./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts");
  2064. const NumberToNumericalExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer */ "./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts");
  2065. const ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts");
  2066. const ObjectExpressionToVariableDeclarationExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts");
  2067. const ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts");
  2068. const ObjectPatternPropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer */ "./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts");
  2069. const SplitStringTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/SplitStringTransformer */ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts");
  2070. const TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts");
  2071. exports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => {
  2072. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2073. .to(BooleanLiteralTransformer_1.BooleanLiteralTransformer)
  2074. .whenTargetNamed(NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer);
  2075. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2076. .to(ExportSpecifierTransformer_1.ExportSpecifierTransformer)
  2077. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer);
  2078. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2079. .to(MemberExpressionTransformer_1.MemberExpressionTransformer)
  2080. .whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);
  2081. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2082. .to(MethodAndPropertyDefinitionTransformer_1.MethodAndPropertyDefinitionTransformer)
  2083. .whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);
  2084. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2085. .to(NumberLiteralTransformer_1.NumberLiteralTransformer)
  2086. .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberLiteralTransformer);
  2087. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2088. .to(NumberToNumericalExpressionTransformer_1.NumberToNumericalExpressionTransformer)
  2089. .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer);
  2090. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2091. .to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer)
  2092. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);
  2093. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2094. .to(ObjectExpressionTransformer_1.ObjectExpressionTransformer)
  2095. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);
  2096. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2097. .to(ObjectPatternPropertiesTransformer_1.ObjectPatternPropertiesTransformer)
  2098. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer);
  2099. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2100. .to(SplitStringTransformer_1.SplitStringTransformer)
  2101. .whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer);
  2102. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2103. .to(TemplateLiteralTransformer_1.TemplateLiteralTransformer)
  2104. .whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);
  2105. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)
  2106. .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor)
  2107. .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor);
  2108. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)
  2109. .to(BasePropertiesExtractor_1.BasePropertiesExtractor)
  2110. .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor);
  2111. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)
  2112. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  2113. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor));
  2114. });
  2115. /***/ }),
  2116. /***/ "./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts":
  2117. /*!****************************************************************************************!*\
  2118. !*** ./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts ***!
  2119. \****************************************************************************************/
  2120. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2121. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2122. exports.deadCodeInjectionTransformersModule = void 0;
  2123. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2124. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2125. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2126. const DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts");
  2127. exports.deadCodeInjectionTransformersModule = new inversify_1.ContainerModule((bind) => {
  2128. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2129. .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer)
  2130. .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);
  2131. });
  2132. /***/ }),
  2133. /***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts":
  2134. /*!*********************************************************************************!*\
  2135. !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***!
  2136. \*********************************************************************************/
  2137. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2138. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2139. exports.finalizingTransformersModule = void 0;
  2140. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2141. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2142. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2143. const DirectivePlacementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/finalizing-transformers/DirectivePlacementTransformer */ "./src/node-transformers/finalizing-transformers/DirectivePlacementTransformer.ts");
  2144. const EscapeSequenceTransformer_1 = __webpack_require__(/*! ../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer */ "./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts");
  2145. exports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => {
  2146. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2147. .to(DirectivePlacementTransformer_1.DirectivePlacementTransformer)
  2148. .whenTargetNamed(NodeTransformer_1.NodeTransformer.DirectivePlacementTransformer);
  2149. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2150. .to(EscapeSequenceTransformer_1.EscapeSequenceTransformer)
  2151. .whenTargetNamed(NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer);
  2152. });
  2153. /***/ }),
  2154. /***/ "./src/container/modules/node-transformers/InitializingTransformersModule.ts":
  2155. /*!***********************************************************************************!*\
  2156. !*** ./src/container/modules/node-transformers/InitializingTransformersModule.ts ***!
  2157. \***********************************************************************************/
  2158. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2159. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2160. exports.initializingTransformersModule = void 0;
  2161. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2162. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2163. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2164. const CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/initializing-transformers/CommentsTransformer */ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts");
  2165. exports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => {
  2166. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2167. .to(CommentsTransformer_1.CommentsTransformer)
  2168. .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);
  2169. });
  2170. /***/ }),
  2171. /***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts":
  2172. /*!***************************************************************************!*\
  2173. !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***!
  2174. \***************************************************************************/
  2175. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2176. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2177. exports.nodeTransformersModule = void 0;
  2178. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  2179. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2180. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2181. const NodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../node-transformers/NodeTransformerNamesGroupsBuilder */ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts");
  2182. exports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => {
  2183. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)
  2184. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  2185. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));
  2186. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)
  2187. .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder)
  2188. .inSingletonScope();
  2189. });
  2190. /***/ }),
  2191. /***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts":
  2192. /*!********************************************************************************!*\
  2193. !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***!
  2194. \********************************************************************************/
  2195. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2196. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2197. exports.preparingTransformersModule = void 0;
  2198. const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  2199. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2200. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2201. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2202. const ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
  2203. const BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts");
  2204. const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
  2205. const CustomCodeHelpersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer */ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts");
  2206. const EvalCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts");
  2207. const ForceTransformStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts");
  2208. const IgnoredRequireImportObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts");
  2209. const MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts");
  2210. const ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts");
  2211. const ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts");
  2212. const ReservedStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts");
  2213. const VariablePreserveTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/VariablePreserveTransformer */ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts");
  2214. exports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => {
  2215. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2216. .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer)
  2217. .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer);
  2218. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2219. .to(EvalCallExpressionTransformer_1.EvalCallExpressionTransformer)
  2220. .whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);
  2221. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2222. .to(MetadataTransformer_1.MetadataTransformer)
  2223. .whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);
  2224. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2225. .to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer)
  2226. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);
  2227. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2228. .to(ParentificationTransformer_1.ParentificationTransformer)
  2229. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);
  2230. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2231. .to(VariablePreserveTransformer_1.VariablePreserveTransformer)
  2232. .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);
  2233. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
  2234. .to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard)
  2235. .inSingletonScope()
  2236. .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard);
  2237. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
  2238. .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard)
  2239. .inSingletonScope()
  2240. .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard);
  2241. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
  2242. .to(ForceTransformStringObfuscatingGuard_1.ForceTransformStringObfuscatingGuard)
  2243. .inSingletonScope()
  2244. .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard);
  2245. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
  2246. .to(IgnoredRequireImportObfuscatingGuard_1.IgnoredRequireImportObfuscatingGuard)
  2247. .inSingletonScope()
  2248. .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard);
  2249. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)
  2250. .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard)
  2251. .inSingletonScope()
  2252. .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard);
  2253. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)
  2254. .toFactory(InversifyContainerFacade_1.InversifyContainerFacade
  2255. .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));
  2256. });
  2257. /***/ }),
  2258. /***/ "./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts":
  2259. /*!****************************************************************************************!*\
  2260. !*** ./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts ***!
  2261. \****************************************************************************************/
  2262. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2263. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2264. exports.renameIdentifiersTransformersModule = void 0;
  2265. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2266. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2267. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2268. const DeadCodeInjectionIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionIdentifiersTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionIdentifiersTransformer.ts");
  2269. const IdentifierReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer */ "./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts");
  2270. const LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer */ "./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts");
  2271. const ScopeIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer */ "./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts");
  2272. const ScopeThroughIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer */ "./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts");
  2273. const ThroughIdentifierReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/through-replacer/ThroughIdentifierReplacer */ "./src/node-transformers/rename-identifiers-transformers/through-replacer/ThroughIdentifierReplacer.ts");
  2274. exports.renameIdentifiersTransformersModule = new inversify_1.ContainerModule((bind) => {
  2275. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2276. .to(DeadCodeInjectionIdentifiersTransformer_1.DeadCodeInjectionIdentifiersTransformer)
  2277. .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionIdentifiersTransformer);
  2278. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2279. .to(LabeledStatementTransformer_1.LabeledStatementTransformer)
  2280. .whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);
  2281. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2282. .to(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer)
  2283. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer);
  2284. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2285. .to(ScopeThroughIdentifiersTransformer_1.ScopeThroughIdentifiersTransformer)
  2286. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer);
  2287. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)
  2288. .to(IdentifierReplacer_1.IdentifierReplacer)
  2289. .inSingletonScope();
  2290. bind(ServiceIdentifiers_1.ServiceIdentifiers.IThroughIdentifierReplacer)
  2291. .to(ThroughIdentifierReplacer_1.ThroughIdentifierReplacer)
  2292. .inSingletonScope();
  2293. });
  2294. /***/ }),
  2295. /***/ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts":
  2296. /*!***************************************************************************************!*\
  2297. !*** ./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts ***!
  2298. \***************************************************************************************/
  2299. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2300. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2301. exports.renamePropertiesTransformersModule = void 0;
  2302. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2303. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2304. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2305. const RenamePropertiesReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer */ "./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts");
  2306. const RenamePropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer */ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts");
  2307. exports.renamePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => {
  2308. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2309. .to(RenamePropertiesTransformer_1.RenamePropertiesTransformer)
  2310. .whenTargetNamed(NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer);
  2311. bind(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)
  2312. .to(RenamePropertiesReplacer_1.RenamePropertiesReplacer);
  2313. });
  2314. /***/ }),
  2315. /***/ "./src/container/modules/node-transformers/SimplifyingTransformersModule.ts":
  2316. /*!**********************************************************************************!*\
  2317. !*** ./src/container/modules/node-transformers/SimplifyingTransformersModule.ts ***!
  2318. \**********************************************************************************/
  2319. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2320. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2321. exports.simplifyingTransformersModule = void 0;
  2322. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2323. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2324. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2325. const BlockStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts");
  2326. const ExpressionStatementsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer */ "./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts");
  2327. const IfStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts");
  2328. const VariableDeclarationsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer */ "./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts");
  2329. exports.simplifyingTransformersModule = new inversify_1.ContainerModule((bind) => {
  2330. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2331. .to(BlockStatementSimplifyTransformer_1.BlockStatementSimplifyTransformer)
  2332. .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer);
  2333. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2334. .to(ExpressionStatementsMergeTransformer_1.ExpressionStatementsMergeTransformer)
  2335. .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer);
  2336. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2337. .to(IfStatementSimplifyTransformer_1.IfStatementSimplifyTransformer)
  2338. .whenTargetNamed(NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer);
  2339. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2340. .to(VariableDeclarationsMergeTransformer_1.VariableDeclarationsMergeTransformer)
  2341. .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer);
  2342. });
  2343. /***/ }),
  2344. /***/ "./src/container/modules/node-transformers/StringArrayTransformersModule.ts":
  2345. /*!**********************************************************************************!*\
  2346. !*** ./src/container/modules/node-transformers/StringArrayTransformersModule.ts ***!
  2347. \**********************************************************************************/
  2348. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2349. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2350. exports.stringArrayTransformersModule = void 0;
  2351. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2352. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2353. const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  2354. const StringArrayRotateFunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer */ "./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts");
  2355. const StringArrayScopeCallsWrapperTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer */ "./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts");
  2356. const StringArrayTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayTransformer */ "./src/node-transformers/string-array-transformers/StringArrayTransformer.ts");
  2357. exports.stringArrayTransformersModule = new inversify_1.ContainerModule((bind) => {
  2358. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2359. .to(StringArrayRotateFunctionTransformer_1.StringArrayRotateFunctionTransformer)
  2360. .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer);
  2361. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2362. .to(StringArrayScopeCallsWrapperTransformer_1.StringArrayScopeCallsWrapperTransformer)
  2363. .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer);
  2364. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)
  2365. .to(StringArrayTransformer_1.StringArrayTransformer)
  2366. .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayTransformer);
  2367. });
  2368. /***/ }),
  2369. /***/ "./src/container/modules/node/NodeModule.ts":
  2370. /*!**************************************************!*\
  2371. !*** ./src/container/modules/node/NodeModule.ts ***!
  2372. \**************************************************/
  2373. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2374. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2375. exports.nodeModule = void 0;
  2376. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2377. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2378. const ScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../../node/ScopeIdentifiersTraverser */ "./src/node/ScopeIdentifiersTraverser.ts");
  2379. exports.nodeModule = new inversify_1.ContainerModule((bind) => {
  2380. bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)
  2381. .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser)
  2382. .inSingletonScope();
  2383. });
  2384. /***/ }),
  2385. /***/ "./src/container/modules/options/OptionsModule.ts":
  2386. /*!********************************************************!*\
  2387. !*** ./src/container/modules/options/OptionsModule.ts ***!
  2388. \********************************************************/
  2389. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2390. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2391. exports.optionsModule = void 0;
  2392. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2393. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2394. const Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts");
  2395. const OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts");
  2396. exports.optionsModule = new inversify_1.ContainerModule((bind) => {
  2397. bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)
  2398. .to(Options_1.Options)
  2399. .inSingletonScope();
  2400. bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)
  2401. .to(OptionsNormalizer_1.OptionsNormalizer)
  2402. .inSingletonScope();
  2403. });
  2404. /***/ }),
  2405. /***/ "./src/container/modules/storages/StoragesModule.ts":
  2406. /*!**********************************************************!*\
  2407. !*** ./src/container/modules/storages/StoragesModule.ts ***!
  2408. \**********************************************************/
  2409. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2410. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2411. exports.storagesModule = void 0;
  2412. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2413. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2414. const ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/custom-nodes/ControlFlowStorage */ "./src/storages/custom-nodes/ControlFlowStorage.ts");
  2415. const CustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage */ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts");
  2416. const GlobalIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../../../storages/identifier-names-cache/GlobalIdentifierNamesCacheStorage */ "./src/storages/identifier-names-cache/GlobalIdentifierNamesCacheStorage.ts");
  2417. const LiteralNodesCacheStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/LiteralNodesCacheStorage */ "./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts");
  2418. const PropertyIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../../../storages/identifier-names-cache/PropertyIdentifierNamesCacheStorage */ "./src/storages/identifier-names-cache/PropertyIdentifierNamesCacheStorage.ts");
  2419. const StringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts");
  2420. const StringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage */ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts");
  2421. const StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayStorage */ "./src/storages/string-array-transformers/StringArrayStorage.ts");
  2422. const VisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage */ "./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts");
  2423. exports.storagesModule = new inversify_1.ContainerModule((bind) => {
  2424. bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)
  2425. .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage)
  2426. .inSingletonScope();
  2427. bind(ServiceIdentifiers_1.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)
  2428. .to(GlobalIdentifierNamesCacheStorage_1.GlobalIdentifierNamesCacheStorage)
  2429. .inSingletonScope();
  2430. bind(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)
  2431. .to(LiteralNodesCacheStorage_1.LiteralNodesCacheStorage)
  2432. .inSingletonScope();
  2433. bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertyIdentifierNamesCacheStorage)
  2434. .to(PropertyIdentifierNamesCacheStorage_1.PropertyIdentifierNamesCacheStorage)
  2435. .inSingletonScope();
  2436. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)
  2437. .to(StringArrayStorage_1.StringArrayStorage)
  2438. .inSingletonScope();
  2439. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)
  2440. .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage_1.StringArrayScopeCallsWrapperLexicalScopeDataStorage)
  2441. .inSingletonScope();
  2442. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)
  2443. .to(StringArrayScopeCallsWrapperNamesDataStorage_1.StringArrayScopeCallsWrapperNamesDataStorage)
  2444. .inSingletonScope();
  2445. bind(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)
  2446. .to(VisitedLexicalScopeNodesStackStorage_1.VisitedLexicalScopeNodesStackStorage)
  2447. .inSingletonScope();
  2448. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage)
  2449. .toConstructor(ControlFlowStorage_1.ControlFlowStorage);
  2450. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)
  2451. .toFactory((context) => {
  2452. return () => {
  2453. const constructor = context.container
  2454. .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);
  2455. const randomGenerator = context.container
  2456. .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);
  2457. const options = context.container
  2458. .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);
  2459. const storage = new constructor(randomGenerator, options);
  2460. storage.initialize();
  2461. return storage;
  2462. };
  2463. });
  2464. });
  2465. /***/ }),
  2466. /***/ "./src/container/modules/utils/UtilsModule.ts":
  2467. /*!****************************************************!*\
  2468. !*** ./src/container/modules/utils/UtilsModule.ts ***!
  2469. \****************************************************/
  2470. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  2471. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2472. exports.utilsModule = void 0;
  2473. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2474. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2475. const ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts");
  2476. const CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts");
  2477. const CryptUtilsStringArray_1 = __webpack_require__(/*! ../../../utils/CryptUtilsStringArray */ "./src/utils/CryptUtilsStringArray.ts");
  2478. const EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts");
  2479. const LevelledTopologicalSorter_1 = __webpack_require__(/*! ../../../utils/LevelledTopologicalSorter */ "./src/utils/LevelledTopologicalSorter.ts");
  2480. const RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts");
  2481. exports.utilsModule = new inversify_1.ContainerModule((bind) => {
  2482. bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)
  2483. .to(ArrayUtils_1.ArrayUtils)
  2484. .inSingletonScope();
  2485. bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)
  2486. .to(RandomGenerator_1.RandomGenerator)
  2487. .inSingletonScope();
  2488. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)
  2489. .to(CryptUtils_1.CryptUtils)
  2490. .inSingletonScope();
  2491. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsStringArray)
  2492. .to(CryptUtilsStringArray_1.CryptUtilsStringArray)
  2493. .inSingletonScope();
  2494. bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)
  2495. .to(EscapeSequenceEncoder_1.EscapeSequenceEncoder)
  2496. .inSingletonScope();
  2497. bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)
  2498. .to(LevelledTopologicalSorter_1.LevelledTopologicalSorter);
  2499. });
  2500. /***/ }),
  2501. /***/ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts":
  2502. /*!*************************************************************!*\
  2503. !*** ./src/custom-code-helpers/AbstractCustomCodeHelper.ts ***!
  2504. \*************************************************************/
  2505. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2506. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2507. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2508. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2509. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2510. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2511. };
  2512. var __metadata = (this && this.__metadata) || function (k, v) {
  2513. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  2514. };
  2515. var __param = (this && this.__param) || function (paramIndex, decorator) {
  2516. return function (target, key) { decorator(target, key, paramIndex); }
  2517. };
  2518. var AbstractCustomCodeHelper_1, _a, _b, _c, _d, _e;
  2519. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2520. exports.AbstractCustomCodeHelper = void 0;
  2521. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2522. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2523. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  2524. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  2525. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  2526. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  2527. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  2528. const GlobalVariableTemplate1_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate1 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts");
  2529. const GlobalVariableTemplate2_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate2 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts");
  2530. let AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper {
  2531. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  2532. this.cachedNode = null;
  2533. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  2534. this.customCodeHelperFormatter = customCodeHelperFormatter;
  2535. this.customCodeHelperObfuscator = customCodeHelperObfuscator;
  2536. this.randomGenerator = randomGenerator;
  2537. this.options = options;
  2538. }
  2539. getNode() {
  2540. if (!this.cachedNode) {
  2541. const codeHelperTemplate = this.getCodeHelperTemplate();
  2542. this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate));
  2543. }
  2544. return this.cachedNode;
  2545. }
  2546. getGlobalVariableTemplate() {
  2547. return this.randomGenerator
  2548. .getRandomGenerator()
  2549. .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions);
  2550. }
  2551. getCodeHelperTemplate() {
  2552. return '';
  2553. }
  2554. };
  2555. AbstractCustomCodeHelper.globalVariableTemplateFunctions = [
  2556. GlobalVariableTemplate1_1.GlobalVariableTemplate1(),
  2557. GlobalVariableTemplate2_1.GlobalVariableTemplate2()
  2558. ];
  2559. AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([
  2560. inversify_1.injectable(),
  2561. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  2562. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  2563. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  2564. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  2565. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  2566. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  2567. ], AbstractCustomCodeHelper);
  2568. exports.AbstractCustomCodeHelper = AbstractCustomCodeHelper;
  2569. /***/ }),
  2570. /***/ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts":
  2571. /*!******************************************************************!*\
  2572. !*** ./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts ***!
  2573. \******************************************************************/
  2574. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2575. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2576. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2577. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2578. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2579. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2580. };
  2581. var __metadata = (this && this.__metadata) || function (k, v) {
  2582. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  2583. };
  2584. var __param = (this && this.__param) || function (paramIndex, decorator) {
  2585. return function (target, key) { decorator(target, key, paramIndex); }
  2586. };
  2587. var _a, _b, _c;
  2588. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2589. exports.AbstractCustomCodeHelperGroup = void 0;
  2590. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2591. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2592. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  2593. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  2594. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  2595. let AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup {
  2596. constructor(identifierNamesGeneratorFactory, randomGenerator, options) {
  2597. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  2598. this.randomGenerator = randomGenerator;
  2599. this.options = options;
  2600. }
  2601. getCustomCodeHelpers() {
  2602. return this.customCodeHelpers;
  2603. }
  2604. appendCustomNodeIfExist(customCodeHelperName, callback) {
  2605. const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName);
  2606. if (!customCodeHelper) {
  2607. return;
  2608. }
  2609. callback(customCodeHelper);
  2610. }
  2611. getRandomCallsGraphIndex(callsGraphLength) {
  2612. return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1)));
  2613. }
  2614. };
  2615. AbstractCustomCodeHelperGroup = __decorate([
  2616. inversify_1.injectable(),
  2617. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  2618. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  2619. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  2620. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  2621. ], AbstractCustomCodeHelperGroup);
  2622. exports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup;
  2623. /***/ }),
  2624. /***/ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts":
  2625. /*!**************************************************************!*\
  2626. !*** ./src/custom-code-helpers/CustomCodeHelperFormatter.ts ***!
  2627. \**************************************************************/
  2628. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2629. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  2630. if (k2 === undefined) k2 = k;
  2631. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  2632. }) : (function(o, m, k, k2) {
  2633. if (k2 === undefined) k2 = k;
  2634. o[k2] = m[k];
  2635. }));
  2636. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  2637. Object.defineProperty(o, "default", { enumerable: true, value: v });
  2638. }) : function(o, v) {
  2639. o["default"] = v;
  2640. });
  2641. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2642. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2643. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2644. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2645. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2646. };
  2647. var __importStar = (this && this.__importStar) || function (mod) {
  2648. if (mod && mod.__esModule) return mod;
  2649. var result = {};
  2650. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  2651. __setModuleDefault(result, mod);
  2652. return result;
  2653. };
  2654. var __metadata = (this && this.__metadata) || function (k, v) {
  2655. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  2656. };
  2657. var __param = (this && this.__param) || function (paramIndex, decorator) {
  2658. return function (target, key) { decorator(target, key, paramIndex); }
  2659. };
  2660. var __importDefault = (this && this.__importDefault) || function (mod) {
  2661. return (mod && mod.__esModule) ? mod : { "default": mod };
  2662. };
  2663. var _a;
  2664. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2665. exports.CustomCodeHelperFormatter = void 0;
  2666. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2667. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2668. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  2669. const string_template_1 = __importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2670. const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts");
  2671. const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
  2672. let CustomCodeHelperFormatter = class CustomCodeHelperFormatter {
  2673. constructor(prevailingKindOfVariablesAnalyzer) {
  2674. this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind();
  2675. }
  2676. formatTemplate(template, mapping) {
  2677. return string_template_1.default(template, mapping);
  2678. }
  2679. formatStructure(statements) {
  2680. for (const statement of statements) {
  2681. estraverse.replace(statement, {
  2682. enter: (node) => {
  2683. if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {
  2684. return;
  2685. }
  2686. if (this.prevailingKindOfVariables === 'var') {
  2687. node.kind = 'var';
  2688. }
  2689. return node;
  2690. }
  2691. });
  2692. }
  2693. return statements;
  2694. }
  2695. };
  2696. CustomCodeHelperFormatter = __decorate([
  2697. inversify_1.injectable(),
  2698. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),
  2699. __metadata("design:paramtypes", [typeof (_a = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _a : Object])
  2700. ], CustomCodeHelperFormatter);
  2701. exports.CustomCodeHelperFormatter = CustomCodeHelperFormatter;
  2702. /***/ }),
  2703. /***/ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts":
  2704. /*!***************************************************************!*\
  2705. !*** ./src/custom-code-helpers/CustomCodeHelperObfuscator.ts ***!
  2706. \***************************************************************/
  2707. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2708. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2709. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2710. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2711. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2712. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2713. };
  2714. var __metadata = (this && this.__metadata) || function (k, v) {
  2715. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  2716. };
  2717. var __param = (this && this.__param) || function (paramIndex, decorator) {
  2718. return function (target, key) { decorator(target, key, paramIndex); }
  2719. };
  2720. var _a, _b;
  2721. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2722. exports.CustomCodeHelperObfuscator = void 0;
  2723. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2724. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2725. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  2726. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  2727. const NoCustomNodes_1 = __webpack_require__(/*! ../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  2728. const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  2729. let CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator {
  2730. constructor(randomGenerator, options) {
  2731. this.randomGenerator = randomGenerator;
  2732. this.options = options;
  2733. }
  2734. obfuscateTemplate(template, additionalOptions = {}) {
  2735. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, {
  2736. ...NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET,
  2737. identifierNamesGenerator: this.options.identifierNamesGenerator,
  2738. identifiersDictionary: this.options.identifiersDictionary,
  2739. numbersToExpressions: this.options.numbersToExpressions,
  2740. simplify: this.options.simplify,
  2741. seed: this.randomGenerator.getRawSeed(),
  2742. ...additionalOptions
  2743. }).getObfuscatedCode();
  2744. }
  2745. };
  2746. CustomCodeHelperObfuscator = __decorate([
  2747. inversify_1.injectable(),
  2748. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  2749. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  2750. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  2751. ], CustomCodeHelperObfuscator);
  2752. exports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator;
  2753. /***/ }),
  2754. /***/ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts":
  2755. /*!***************************************************************************************!*\
  2756. !*** ./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts ***!
  2757. \***************************************************************************************/
  2758. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2759. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2760. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2761. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2762. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2763. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2764. };
  2765. var __metadata = (this && this.__metadata) || function (k, v) {
  2766. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  2767. };
  2768. var __param = (this && this.__param) || function (paramIndex, decorator) {
  2769. return function (target, key) { decorator(target, key, paramIndex); }
  2770. };
  2771. var _a, _b, _c, _d, _e, _f;
  2772. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2773. exports.CallsControllerFunctionCodeHelper = void 0;
  2774. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2775. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2776. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  2777. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  2778. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  2779. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  2780. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  2781. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  2782. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2783. const SingleCallControllerTemplate_1 = __webpack_require__(/*! ../common/templates/SingleCallControllerTemplate */ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts");
  2784. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  2785. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2786. let CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  2787. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  2788. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  2789. }
  2790. initialize(nodeTransformationStage, callsControllerFunctionName) {
  2791. this.nodeTransformationStage = nodeTransformationStage;
  2792. this.callsControllerFunctionName = callsControllerFunctionName;
  2793. }
  2794. getNodeStructure(codeHelperTemplate) {
  2795. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  2796. }
  2797. getCodeHelperTemplate() {
  2798. if (this.nodeTransformationStage === NodeTransformationStage_1.NodeTransformationStage.Finalizing) {
  2799. return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {
  2800. callControllerFunctionName: this.callsControllerFunctionName
  2801. }));
  2802. }
  2803. return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {
  2804. callControllerFunctionName: this.callsControllerFunctionName
  2805. });
  2806. }
  2807. };
  2808. __decorate([
  2809. Initializable_1.initializable(),
  2810. __metadata("design:type", String)
  2811. ], CallsControllerFunctionCodeHelper.prototype, "callsControllerFunctionName", void 0);
  2812. __decorate([
  2813. Initializable_1.initializable(),
  2814. __metadata("design:type", typeof (_a = typeof NodeTransformationStage_1.NodeTransformationStage !== "undefined" && NodeTransformationStage_1.NodeTransformationStage) === "function" ? _a : Object)
  2815. ], CallsControllerFunctionCodeHelper.prototype, "nodeTransformationStage", void 0);
  2816. CallsControllerFunctionCodeHelper = __decorate([
  2817. inversify_1.injectable(),
  2818. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  2819. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  2820. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  2821. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  2822. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  2823. __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
  2824. ], CallsControllerFunctionCodeHelper);
  2825. exports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper;
  2826. /***/ }),
  2827. /***/ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts":
  2828. /*!**********************************************************************************!*\
  2829. !*** ./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts ***!
  2830. \**********************************************************************************/
  2831. /***/ ((__unused_webpack_module, exports) => {
  2832. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2833. exports.GlobalVariableNoEvalTemplate = void 0;
  2834. function GlobalVariableNoEvalTemplate() {
  2835. return `
  2836. const that = (typeof window !== 'undefined'
  2837. ? window
  2838. : (typeof process === 'object' &&
  2839. typeof require === 'function' &&
  2840. typeof global === 'object')
  2841. ? global
  2842. : this);
  2843. `;
  2844. }
  2845. exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;
  2846. /***/ }),
  2847. /***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts":
  2848. /*!*****************************************************************************!*\
  2849. !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts ***!
  2850. \*****************************************************************************/
  2851. /***/ ((__unused_webpack_module, exports) => {
  2852. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2853. exports.GlobalVariableTemplate1 = void 0;
  2854. function GlobalVariableTemplate1() {
  2855. return `
  2856. let that;
  2857. try {
  2858. const getGlobal = Function('return (function() ' + '{}.constructor("return this")( )' + ');');
  2859. that = getGlobal();
  2860. } catch (e) {
  2861. that = window;
  2862. }
  2863. `;
  2864. }
  2865. exports.GlobalVariableTemplate1 = GlobalVariableTemplate1;
  2866. /***/ }),
  2867. /***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts":
  2868. /*!*****************************************************************************!*\
  2869. !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts ***!
  2870. \*****************************************************************************/
  2871. /***/ ((__unused_webpack_module, exports) => {
  2872. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2873. exports.GlobalVariableTemplate2 = void 0;
  2874. function GlobalVariableTemplate2() {
  2875. return `
  2876. const getGlobal = function () {
  2877. let globalObject;
  2878. try {
  2879. globalObject = Function('return (function() ' + '{}.constructor("return this")( )' + ');')();
  2880. } catch (e) {
  2881. globalObject = window;
  2882. }
  2883. return globalObject;
  2884. };
  2885. const that = getGlobal();
  2886. `;
  2887. }
  2888. exports.GlobalVariableTemplate2 = GlobalVariableTemplate2;
  2889. /***/ }),
  2890. /***/ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts":
  2891. /*!**********************************************************************************!*\
  2892. !*** ./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts ***!
  2893. \**********************************************************************************/
  2894. /***/ ((__unused_webpack_module, exports) => {
  2895. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2896. exports.SingleCallControllerTemplate = void 0;
  2897. function SingleCallControllerTemplate() {
  2898. return `
  2899. const {callControllerFunctionName} = (function(){
  2900. let firstCall = true;
  2901. return function (context, fn){
  2902. const rfn = firstCall ? function(){
  2903. if(fn){
  2904. const res = fn.apply(context, arguments);
  2905. fn = null;
  2906. return res;
  2907. }
  2908. } : function(){}
  2909. firstCall = false;
  2910. return rfn;
  2911. }
  2912. })();
  2913. `;
  2914. }
  2915. exports.SingleCallControllerTemplate = SingleCallControllerTemplate;
  2916. /***/ }),
  2917. /***/ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts":
  2918. /*!**********************************************************************************!*\
  2919. !*** ./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts ***!
  2920. \**********************************************************************************/
  2921. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2922. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2923. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2924. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2925. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2926. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2927. };
  2928. var __metadata = (this && this.__metadata) || function (k, v) {
  2929. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  2930. };
  2931. var __param = (this && this.__param) || function (paramIndex, decorator) {
  2932. return function (target, key) { decorator(target, key, paramIndex); }
  2933. };
  2934. var _a, _b, _c, _d, _e;
  2935. Object.defineProperty(exports, "__esModule", ({ value: true }));
  2936. exports.ConsoleOutputDisableCodeHelper = void 0;
  2937. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2938. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2939. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  2940. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  2941. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  2942. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  2943. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  2944. const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  2945. const ConsoleOutputDisableTemplate_1 = __webpack_require__(/*! ./templates/ConsoleOutputDisableTemplate */ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts");
  2946. const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
  2947. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2948. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  2949. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2950. let ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  2951. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  2952. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  2953. }
  2954. initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) {
  2955. this.callsControllerFunctionName = callsControllerFunctionName;
  2956. this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName;
  2957. }
  2958. getNodeStructure(codeHelperTemplate) {
  2959. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  2960. }
  2961. getCodeHelperTemplate() {
  2962. const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
  2963. ? this.getGlobalVariableTemplate()
  2964. : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  2965. return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableTemplate_1.ConsoleOutputDisableTemplate(), {
  2966. callControllerFunctionName: this.callsControllerFunctionName,
  2967. consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName,
  2968. globalVariableTemplate
  2969. });
  2970. }
  2971. };
  2972. __decorate([
  2973. Initializable_1.initializable(),
  2974. __metadata("design:type", String)
  2975. ], ConsoleOutputDisableCodeHelper.prototype, "callsControllerFunctionName", void 0);
  2976. __decorate([
  2977. Initializable_1.initializable(),
  2978. __metadata("design:type", String)
  2979. ], ConsoleOutputDisableCodeHelper.prototype, "consoleOutputDisableFunctionName", void 0);
  2980. ConsoleOutputDisableCodeHelper = __decorate([
  2981. inversify_1.injectable(),
  2982. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  2983. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  2984. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  2985. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  2986. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  2987. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  2988. ], ConsoleOutputDisableCodeHelper);
  2989. exports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper;
  2990. /***/ }),
  2991. /***/ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts":
  2992. /*!**************************************************************************************!*\
  2993. !*** ./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts ***!
  2994. \**************************************************************************************/
  2995. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  2996. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2997. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  2998. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  2999. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3000. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3001. };
  3002. var __metadata = (this && this.__metadata) || function (k, v) {
  3003. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3004. };
  3005. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3006. return function (target, key) { decorator(target, key, paramIndex); }
  3007. };
  3008. var _a, _b, _c, _d, _e;
  3009. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3010. exports.ConsoleOutputCodeHelperGroup = void 0;
  3011. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3012. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3013. const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
  3014. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3015. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3016. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3017. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3018. const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  3019. const NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  3020. const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
  3021. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3022. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  3023. let ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
  3024. constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  3025. super(identifierNamesGeneratorFactory, randomGenerator, options);
  3026. this.customCodeHelperFactory = customCodeHelperFactory;
  3027. }
  3028. appendOnPreparingStage(nodeWithStatements, callsGraphData) {
  3029. var _a;
  3030. if (!this.options.disableConsoleOutput) {
  3031. return;
  3032. }
  3033. const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
  3034. const consoleOutputDisableHostNode = callsGraphData.length
  3035. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
  3036. : nodeWithStatements;
  3037. const callsControllerHostNode = callsGraphData.length
  3038. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
  3039. : nodeWithStatements;
  3040. const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
  3041. .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null;
  3042. const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode
  3043. ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)
  3044. : this.identifierNamesGenerator.generateNext();
  3045. const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode
  3046. ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)
  3047. : this.identifierNamesGenerator.generateNext();
  3048. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => {
  3049. customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName);
  3050. NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode());
  3051. });
  3052. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
  3053. customCodeHelper.initialize(NodeTransformationStage_1.NodeTransformationStage.Preparing, callsControllerFunctionName);
  3054. NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
  3055. });
  3056. }
  3057. initialize() {
  3058. this.customCodeHelpers = new Map();
  3059. if (!this.options.disableConsoleOutput) {
  3060. return;
  3061. }
  3062. const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);
  3063. const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
  3064. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper);
  3065. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
  3066. }
  3067. };
  3068. __decorate([
  3069. Initializable_1.initializable(),
  3070. __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
  3071. ], ConsoleOutputCodeHelperGroup.prototype, "customCodeHelpers", void 0);
  3072. ConsoleOutputCodeHelperGroup = __decorate([
  3073. inversify_1.injectable(),
  3074. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
  3075. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3076. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3077. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3078. __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3079. ], ConsoleOutputCodeHelperGroup);
  3080. exports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup;
  3081. /***/ }),
  3082. /***/ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts":
  3083. /*!******************************************************************************************!*\
  3084. !*** ./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts ***!
  3085. \******************************************************************************************/
  3086. /***/ ((__unused_webpack_module, exports) => {
  3087. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3088. exports.ConsoleOutputDisableTemplate = void 0;
  3089. function ConsoleOutputDisableTemplate() {
  3090. return `
  3091. const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {
  3092. {globalVariableTemplate}
  3093. const consoleObject = (that.console = that.console || {});
  3094. const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];
  3095. for (let index = 0; index < methods.length; index++){
  3096. const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});
  3097. const methodName = methods[index];
  3098. const originalFunction = consoleObject[methodName] || func;
  3099. func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});
  3100. func.toString = originalFunction.toString.bind(originalFunction);
  3101. consoleObject[methodName] = func;
  3102. }
  3103. });
  3104. {consoleLogDisableFunctionName}();
  3105. `;
  3106. }
  3107. exports.ConsoleOutputDisableTemplate = ConsoleOutputDisableTemplate;
  3108. /***/ }),
  3109. /***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts":
  3110. /*!*******************************************************************************************!*\
  3111. !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts ***!
  3112. \*******************************************************************************************/
  3113. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3114. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3115. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3116. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3117. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3118. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3119. };
  3120. var __metadata = (this && this.__metadata) || function (k, v) {
  3121. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3122. };
  3123. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3124. return function (target, key) { decorator(target, key, paramIndex); }
  3125. };
  3126. var _a, _b, _c, _d, _e;
  3127. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3128. exports.DebugProtectionFunctionCallCodeHelper = void 0;
  3129. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3130. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3131. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3132. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  3133. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  3134. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3135. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3136. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3137. const DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts");
  3138. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  3139. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3140. let DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  3141. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  3142. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  3143. }
  3144. initialize(debugProtectionFunctionName, callsControllerFunctionName) {
  3145. this.debugProtectionFunctionName = debugProtectionFunctionName;
  3146. this.callsControllerFunctionName = callsControllerFunctionName;
  3147. }
  3148. getNodeStructure(codeHelperTemplate) {
  3149. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  3150. }
  3151. getCodeHelperTemplate() {
  3152. return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {
  3153. debugProtectionFunctionName: this.debugProtectionFunctionName,
  3154. callControllerFunctionName: this.callsControllerFunctionName
  3155. });
  3156. }
  3157. };
  3158. __decorate([
  3159. Initializable_1.initializable(),
  3160. __metadata("design:type", String)
  3161. ], DebugProtectionFunctionCallCodeHelper.prototype, "callsControllerFunctionName", void 0);
  3162. __decorate([
  3163. Initializable_1.initializable(),
  3164. __metadata("design:type", String)
  3165. ], DebugProtectionFunctionCallCodeHelper.prototype, "debugProtectionFunctionName", void 0);
  3166. DebugProtectionFunctionCallCodeHelper = __decorate([
  3167. inversify_1.injectable(),
  3168. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3169. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  3170. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  3171. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3172. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3173. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3174. ], DebugProtectionFunctionCallCodeHelper);
  3175. exports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper;
  3176. /***/ }),
  3177. /***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts":
  3178. /*!***************************************************************************************!*\
  3179. !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts ***!
  3180. \***************************************************************************************/
  3181. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3182. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3183. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3184. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3185. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3186. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3187. };
  3188. var __metadata = (this && this.__metadata) || function (k, v) {
  3189. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3190. };
  3191. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3192. return function (target, key) { decorator(target, key, paramIndex); }
  3193. };
  3194. var _a, _b, _c, _d, _e;
  3195. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3196. exports.DebugProtectionFunctionCodeHelper = void 0;
  3197. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3198. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3199. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3200. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  3201. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  3202. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3203. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3204. const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  3205. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3206. const DebuggerTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts");
  3207. const DebuggerTemplateNoEval_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplateNoEval */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts");
  3208. const DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebugProtectionFunctionTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts");
  3209. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  3210. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3211. let DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  3212. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  3213. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  3214. }
  3215. initialize(debugProtectionFunctionName) {
  3216. this.debugProtectionFunctionName = debugProtectionFunctionName;
  3217. }
  3218. getNodeStructure(codeHelperTemplate) {
  3219. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  3220. }
  3221. getCodeHelperTemplate() {
  3222. const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
  3223. ? DebuggerTemplate_1.DebuggerTemplate()
  3224. : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();
  3225. return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {
  3226. debuggerTemplate,
  3227. debugProtectionFunctionName: this.debugProtectionFunctionName
  3228. });
  3229. }
  3230. };
  3231. __decorate([
  3232. Initializable_1.initializable(),
  3233. __metadata("design:type", String)
  3234. ], DebugProtectionFunctionCodeHelper.prototype, "debugProtectionFunctionName", void 0);
  3235. DebugProtectionFunctionCodeHelper = __decorate([
  3236. inversify_1.injectable(),
  3237. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3238. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  3239. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  3240. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3241. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3242. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3243. ], DebugProtectionFunctionCodeHelper);
  3244. exports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper;
  3245. /***/ }),
  3246. /***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts":
  3247. /*!***********************************************************************************************!*\
  3248. !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts ***!
  3249. \***********************************************************************************************/
  3250. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3251. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3252. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3253. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3254. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3255. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3256. };
  3257. var __metadata = (this && this.__metadata) || function (k, v) {
  3258. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3259. };
  3260. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3261. return function (target, key) { decorator(target, key, paramIndex); }
  3262. };
  3263. var _a, _b, _c, _d, _e;
  3264. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3265. exports.DebugProtectionFunctionIntervalCodeHelper = void 0;
  3266. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3267. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3268. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3269. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  3270. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  3271. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3272. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3273. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3274. const DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts");
  3275. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  3276. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3277. let DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  3278. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  3279. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  3280. }
  3281. initialize(debugProtectionFunctionName) {
  3282. this.debugProtectionFunctionName = debugProtectionFunctionName;
  3283. }
  3284. getNodeStructure(codeHelperTemplate) {
  3285. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  3286. }
  3287. getCodeHelperTemplate() {
  3288. return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {
  3289. debugProtectionFunctionName: this.debugProtectionFunctionName
  3290. });
  3291. }
  3292. };
  3293. __decorate([
  3294. Initializable_1.initializable(),
  3295. __metadata("design:type", String)
  3296. ], DebugProtectionFunctionIntervalCodeHelper.prototype, "debugProtectionFunctionName", void 0);
  3297. DebugProtectionFunctionIntervalCodeHelper = __decorate([
  3298. inversify_1.injectable(),
  3299. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3300. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  3301. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  3302. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3303. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3304. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3305. ], DebugProtectionFunctionIntervalCodeHelper);
  3306. exports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper;
  3307. /***/ }),
  3308. /***/ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts":
  3309. /*!******************************************************************************************!*\
  3310. !*** ./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts ***!
  3311. \******************************************************************************************/
  3312. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3313. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3314. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3315. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3316. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3317. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3318. };
  3319. var __metadata = (this && this.__metadata) || function (k, v) {
  3320. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3321. };
  3322. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3323. return function (target, key) { decorator(target, key, paramIndex); }
  3324. };
  3325. var _a, _b, _c, _d, _e;
  3326. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3327. exports.DebugProtectionCodeHelperGroup = void 0;
  3328. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3329. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3330. const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
  3331. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3332. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3333. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3334. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3335. const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  3336. const NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  3337. const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
  3338. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3339. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  3340. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  3341. let DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
  3342. constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  3343. super(identifierNamesGeneratorFactory, randomGenerator, options);
  3344. this.customCodeHelperFactory = customCodeHelperFactory;
  3345. }
  3346. appendOnPreparingStage(nodeWithStatements, callsGraphData) {
  3347. var _a;
  3348. if (!this.options.debugProtection) {
  3349. return;
  3350. }
  3351. const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
  3352. const debugProtectionFunctionCallHostNode = callsGraphData.length
  3353. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
  3354. : nodeWithStatements;
  3355. const callsControllerHostNode = callsGraphData.length
  3356. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
  3357. : nodeWithStatements;
  3358. const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
  3359. .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null;
  3360. const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode
  3361. ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)
  3362. : this.identifierNamesGenerator.generateNext();
  3363. const callsControllerFunctionName = debugProtectionFunctionCallScopeNode
  3364. ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)
  3365. : this.identifierNamesGenerator.generateNext();
  3366. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => {
  3367. customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName);
  3368. NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode());
  3369. });
  3370. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
  3371. customCodeHelper.initialize(NodeTransformationStage_1.NodeTransformationStage.Preparing, callsControllerFunctionName);
  3372. NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
  3373. });
  3374. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => {
  3375. customCodeHelper.initialize(debugProtectionFunctionName);
  3376. NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode());
  3377. });
  3378. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => {
  3379. const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)
  3380. ? nodeWithStatements.consequent.length
  3381. : nodeWithStatements.body.length;
  3382. const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength);
  3383. customCodeHelper.initialize(debugProtectionFunctionName);
  3384. NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);
  3385. });
  3386. }
  3387. initialize() {
  3388. this.customCodeHelpers = new Map();
  3389. if (!this.options.debugProtection) {
  3390. return;
  3391. }
  3392. const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);
  3393. const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);
  3394. const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);
  3395. const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
  3396. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper);
  3397. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper);
  3398. if (this.options.debugProtectionInterval) {
  3399. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper);
  3400. }
  3401. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
  3402. }
  3403. };
  3404. __decorate([
  3405. Initializable_1.initializable(),
  3406. __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
  3407. ], DebugProtectionCodeHelperGroup.prototype, "customCodeHelpers", void 0);
  3408. DebugProtectionCodeHelperGroup = __decorate([
  3409. inversify_1.injectable(),
  3410. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
  3411. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3412. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3413. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3414. __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3415. ], DebugProtectionCodeHelperGroup);
  3416. exports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup;
  3417. /***/ }),
  3418. /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts":
  3419. /*!**********************************************************************************************************************************!*\
  3420. !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts ***!
  3421. \**********************************************************************************************************************************/
  3422. /***/ ((__unused_webpack_module, exports) => {
  3423. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3424. exports.DebugProtectionFunctionCallTemplate = void 0;
  3425. function DebugProtectionFunctionCallTemplate() {
  3426. return `
  3427. (function () {
  3428. {callControllerFunctionName}(
  3429. this,
  3430. function () {
  3431. const regExp1 = new RegExp('function *\\\\( *\\\\)');
  3432. const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');
  3433. const result = {debugProtectionFunctionName}('init');
  3434. if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {
  3435. result('0');
  3436. } else {
  3437. {debugProtectionFunctionName}();
  3438. }
  3439. }
  3440. )();
  3441. })();
  3442. `;
  3443. }
  3444. exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;
  3445. /***/ }),
  3446. /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts":
  3447. /*!******************************************************************************************************************************************!*\
  3448. !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts ***!
  3449. \******************************************************************************************************************************************/
  3450. /***/ ((__unused_webpack_module, exports) => {
  3451. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3452. exports.DebugProtectionFunctionIntervalTemplate = void 0;
  3453. function DebugProtectionFunctionIntervalTemplate() {
  3454. return `
  3455. setInterval(function () {
  3456. {debugProtectionFunctionName}();
  3457. }, 4000);
  3458. `;
  3459. }
  3460. exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;
  3461. /***/ }),
  3462. /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts":
  3463. /*!*************************************************************************************************************************!*\
  3464. !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts ***!
  3465. \*************************************************************************************************************************/
  3466. /***/ ((__unused_webpack_module, exports) => {
  3467. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3468. exports.DebugProtectionFunctionTemplate = void 0;
  3469. function DebugProtectionFunctionTemplate() {
  3470. return `
  3471. function {debugProtectionFunctionName} (ret) {
  3472. function debuggerProtection (counter) {
  3473. {debuggerTemplate}
  3474. debuggerProtection(++counter);
  3475. }
  3476. try {
  3477. if (ret) {
  3478. return debuggerProtection;
  3479. } else {
  3480. debuggerProtection(0);
  3481. }
  3482. } catch (y) {}
  3483. }
  3484. `;
  3485. }
  3486. exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
  3487. /***/ }),
  3488. /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts":
  3489. /*!**********************************************************************************************************!*\
  3490. !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts ***!
  3491. \**********************************************************************************************************/
  3492. /***/ ((__unused_webpack_module, exports) => {
  3493. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3494. exports.DebuggerTemplate = void 0;
  3495. function DebuggerTemplate() {
  3496. return `
  3497. if (typeof counter === 'string') {
  3498. return (function (arg) {}.constructor('while (true) {}').apply('counter'));
  3499. } else {
  3500. if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {
  3501. (function () {return true;}.constructor('debu' + 'gger').call('action'));
  3502. } else {
  3503. (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));
  3504. }
  3505. }
  3506. `;
  3507. }
  3508. exports.DebuggerTemplate = DebuggerTemplate;
  3509. /***/ }),
  3510. /***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts":
  3511. /*!****************************************************************************************************************!*\
  3512. !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts ***!
  3513. \****************************************************************************************************************/
  3514. /***/ ((__unused_webpack_module, exports) => {
  3515. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3516. exports.DebuggerTemplateNoEval = void 0;
  3517. function DebuggerTemplateNoEval() {
  3518. return `
  3519. if (typeof counter === 'string') {
  3520. const func = function () {
  3521. while (true) {}
  3522. };
  3523. return func();
  3524. } else {
  3525. if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {
  3526. debugger;
  3527. } else {
  3528. debugger;
  3529. }
  3530. }
  3531. `;
  3532. }
  3533. exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;
  3534. /***/ }),
  3535. /***/ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts":
  3536. /*!*********************************************************************!*\
  3537. !*** ./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts ***!
  3538. \*********************************************************************/
  3539. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3540. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3541. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3542. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3543. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3544. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3545. };
  3546. var __metadata = (this && this.__metadata) || function (k, v) {
  3547. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3548. };
  3549. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3550. return function (target, key) { decorator(target, key, paramIndex); }
  3551. };
  3552. var _a, _b, _c, _d, _e, _f;
  3553. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3554. exports.DomainLockCodeHelper = void 0;
  3555. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3556. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3557. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3558. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  3559. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  3560. const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts");
  3561. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3562. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3563. const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  3564. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3565. const DomainLockTemplate_1 = __webpack_require__(/*! ./templates/DomainLockTemplate */ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts");
  3566. const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
  3567. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  3568. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3569. let DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  3570. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) {
  3571. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  3572. this.cryptUtils = cryptUtils;
  3573. }
  3574. initialize(callsControllerFunctionName, domainLockFunctionName) {
  3575. this.callsControllerFunctionName = callsControllerFunctionName;
  3576. this.domainLockFunctionName = domainLockFunctionName;
  3577. }
  3578. getNodeStructure(codeHelperTemplate) {
  3579. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  3580. }
  3581. getCodeHelperTemplate() {
  3582. const domainsString = this.options.domainLock.join(';');
  3583. const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3);
  3584. const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
  3585. ? this.getGlobalVariableTemplate()
  3586. : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  3587. return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), {
  3588. callControllerFunctionName: this.callsControllerFunctionName,
  3589. domainLockFunctionName: this.domainLockFunctionName,
  3590. diff,
  3591. domains: hiddenDomainsString,
  3592. globalVariableTemplate
  3593. });
  3594. }
  3595. };
  3596. __decorate([
  3597. Initializable_1.initializable(),
  3598. __metadata("design:type", String)
  3599. ], DomainLockCodeHelper.prototype, "callsControllerFunctionName", void 0);
  3600. __decorate([
  3601. Initializable_1.initializable(),
  3602. __metadata("design:type", String)
  3603. ], DomainLockCodeHelper.prototype, "domainLockFunctionName", void 0);
  3604. DomainLockCodeHelper = __decorate([
  3605. inversify_1.injectable(),
  3606. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3607. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  3608. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  3609. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3610. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3611. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),
  3612. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _f : Object])
  3613. ], DomainLockCodeHelper);
  3614. exports.DomainLockCodeHelper = DomainLockCodeHelper;
  3615. /***/ }),
  3616. /***/ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts":
  3617. /*!**************************************************************************************!*\
  3618. !*** ./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts ***!
  3619. \**************************************************************************************/
  3620. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3621. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3622. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3623. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3624. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3625. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3626. };
  3627. var __metadata = (this && this.__metadata) || function (k, v) {
  3628. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3629. };
  3630. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3631. return function (target, key) { decorator(target, key, paramIndex); }
  3632. };
  3633. var _a, _b, _c, _d, _e;
  3634. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3635. exports.DomainLockCustomCodeHelperGroup = void 0;
  3636. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3637. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3638. const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
  3639. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3640. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3641. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3642. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3643. const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  3644. const NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  3645. const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
  3646. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3647. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  3648. let DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
  3649. constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  3650. super(identifierNamesGeneratorFactory, randomGenerator, options);
  3651. this.customCodeHelperFactory = customCodeHelperFactory;
  3652. }
  3653. appendOnPreparingStage(nodeWithStatements, callsGraphData) {
  3654. var _a;
  3655. if (!this.options.domainLock.length) {
  3656. return;
  3657. }
  3658. const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
  3659. const domainLockFunctionHostNode = callsGraphData.length
  3660. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
  3661. : nodeWithStatements;
  3662. const callsControllerHostNode = callsGraphData.length
  3663. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
  3664. : nodeWithStatements;
  3665. const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
  3666. .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null;
  3667. const domainLockFunctionName = domainLockFunctionLexicalScopeNode
  3668. ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)
  3669. : this.identifierNamesGenerator.generateNext();
  3670. const callsControllerFunctionName = domainLockFunctionLexicalScopeNode
  3671. ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)
  3672. : this.identifierNamesGenerator.generateNext();
  3673. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => {
  3674. customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName);
  3675. NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode());
  3676. });
  3677. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
  3678. customCodeHelper.initialize(NodeTransformationStage_1.NodeTransformationStage.Preparing, callsControllerFunctionName);
  3679. NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
  3680. });
  3681. }
  3682. initialize() {
  3683. this.customCodeHelpers = new Map();
  3684. if (!this.options.domainLock.length) {
  3685. return;
  3686. }
  3687. const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock);
  3688. const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
  3689. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper);
  3690. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
  3691. }
  3692. };
  3693. __decorate([
  3694. Initializable_1.initializable(),
  3695. __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
  3696. ], DomainLockCustomCodeHelperGroup.prototype, "customCodeHelpers", void 0);
  3697. DomainLockCustomCodeHelperGroup = __decorate([
  3698. inversify_1.injectable(),
  3699. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
  3700. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3701. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3702. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3703. __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3704. ], DomainLockCustomCodeHelperGroup);
  3705. exports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup;
  3706. /***/ }),
  3707. /***/ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts":
  3708. /*!*****************************************************************************!*\
  3709. !*** ./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts ***!
  3710. \*****************************************************************************/
  3711. /***/ ((__unused_webpack_module, exports) => {
  3712. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3713. exports.DomainLockTemplate = void 0;
  3714. function DomainLockTemplate() {
  3715. return `
  3716. const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {
  3717. {globalVariableTemplate}
  3718. const func = function () {
  3719. return {
  3720. key: 'item',
  3721. value: 'attribute',
  3722. getAttribute: function () {
  3723. for (let i = 0; i < 1000; i--) {
  3724. const isPositive = i > 0;
  3725. switch (isPositive) {
  3726. case true:
  3727. return this.item + '_' + this.value + '_' + i;
  3728. default:
  3729. this.item + '_' + this.value;
  3730. }
  3731. }
  3732. }()
  3733. };
  3734. };
  3735. const regExp = new RegExp("[{diff}]", "g");
  3736. const domains = "{domains}".replace(regExp, "").split(";");
  3737. let document;
  3738. let domain;
  3739. let location;
  3740. let hostname;
  3741. for (let d in that) {
  3742. if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {
  3743. document = d;
  3744. break;
  3745. }
  3746. }
  3747. for (let d1 in that[document]) {
  3748. if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {
  3749. domain = d1;
  3750. break;
  3751. }
  3752. }
  3753. if (!("~" > domain)) {
  3754. for (let d2 in that[document]) {
  3755. if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {
  3756. location = d2;
  3757. break;
  3758. }
  3759. }
  3760. for (let d3 in that[document][location]) {
  3761. if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {
  3762. hostname = d3;
  3763. break;
  3764. }
  3765. }
  3766. }
  3767. if (!document || !that[document]) {
  3768. return;
  3769. }
  3770. const documentDomain = that[document][domain];
  3771. const documentLocationHostName = !!that[document][location] && that[document][location][hostname];
  3772. const currentDomain = documentDomain || documentLocationHostName;
  3773. if (!currentDomain) {
  3774. return;
  3775. }
  3776. let ok = false;
  3777. for (let i = 0; i < domains.length; i++) {
  3778. const domain = domains[i];
  3779. const domainNormalized = domain[0] === String.fromCharCode(46)
  3780. ? domain.slice(1)
  3781. : domain;
  3782. const position = currentDomain.length - domainNormalized.length;
  3783. const lastIndex = currentDomain.indexOf(domainNormalized, position);
  3784. const endsWith = lastIndex !== -1 && lastIndex === position;
  3785. if (endsWith) {
  3786. if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {
  3787. ok = true;
  3788. }
  3789. }
  3790. }
  3791. if (!ok) {
  3792. data;
  3793. } else {
  3794. return;
  3795. }
  3796. func();
  3797. });
  3798. {domainLockFunctionName}();
  3799. `;
  3800. }
  3801. exports.DomainLockTemplate = DomainLockTemplate;
  3802. /***/ }),
  3803. /***/ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts":
  3804. /*!**********************************************************************************!*\
  3805. !*** ./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts ***!
  3806. \**********************************************************************************/
  3807. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3808. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3809. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3810. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3811. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3812. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3813. };
  3814. var __metadata = (this && this.__metadata) || function (k, v) {
  3815. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3816. };
  3817. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3818. return function (target, key) { decorator(target, key, paramIndex); }
  3819. };
  3820. var _a, _b, _c, _d, _e;
  3821. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3822. exports.SelfDefendingUnicodeCodeHelper = void 0;
  3823. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3824. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3825. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3826. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  3827. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  3828. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3829. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3830. const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  3831. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3832. const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts");
  3833. const SelfDefendingNoEvalTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingNoEvalTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts");
  3834. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  3835. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3836. const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts");
  3837. let SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  3838. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  3839. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  3840. }
  3841. initialize(callsControllerFunctionName, selfDefendingFunctionName) {
  3842. this.callsControllerFunctionName = callsControllerFunctionName;
  3843. this.selfDefendingFunctionName = selfDefendingFunctionName;
  3844. }
  3845. getNodeStructure(codeHelperTemplate) {
  3846. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  3847. }
  3848. getCodeHelperTemplate() {
  3849. const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
  3850. ? this.getGlobalVariableTemplate()
  3851. : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  3852. const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval
  3853. ? SelfDefendingTemplate_1.SelfDefendingTemplate()
  3854. : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate();
  3855. return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, {
  3856. callControllerFunctionName: this.callsControllerFunctionName,
  3857. selfDefendingFunctionName: this.selfDefendingFunctionName,
  3858. globalVariableTemplate
  3859. });
  3860. }
  3861. };
  3862. __decorate([
  3863. Initializable_1.initializable(),
  3864. __metadata("design:type", String)
  3865. ], SelfDefendingUnicodeCodeHelper.prototype, "callsControllerFunctionName", void 0);
  3866. __decorate([
  3867. Initializable_1.initializable(),
  3868. __metadata("design:type", String)
  3869. ], SelfDefendingUnicodeCodeHelper.prototype, "selfDefendingFunctionName", void 0);
  3870. SelfDefendingUnicodeCodeHelper = __decorate([
  3871. inversify_1.injectable(),
  3872. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3873. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  3874. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  3875. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3876. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3877. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3878. ], SelfDefendingUnicodeCodeHelper);
  3879. exports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper;
  3880. /***/ }),
  3881. /***/ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts":
  3882. /*!**************************************************************************************!*\
  3883. !*** ./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts ***!
  3884. \**************************************************************************************/
  3885. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  3886. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3887. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3888. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  3889. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  3890. return c > 3 && r && Object.defineProperty(target, key, r), r;
  3891. };
  3892. var __metadata = (this && this.__metadata) || function (k, v) {
  3893. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  3894. };
  3895. var __param = (this && this.__param) || function (paramIndex, decorator) {
  3896. return function (target, key) { decorator(target, key, paramIndex); }
  3897. };
  3898. var _a, _b, _c, _d, _e;
  3899. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3900. exports.SelfDefendingCodeHelperGroup = void 0;
  3901. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3902. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3903. const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
  3904. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  3905. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  3906. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  3907. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3908. const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  3909. const NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  3910. const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
  3911. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3912. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  3913. let SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
  3914. constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  3915. super(identifierNamesGeneratorFactory, randomGenerator, options);
  3916. this.customCodeHelperFactory = customCodeHelperFactory;
  3917. }
  3918. appendOnPreparingStage(nodeWithStatements, callsGraphData) {
  3919. var _a;
  3920. if (!this.options.selfDefending) {
  3921. return;
  3922. }
  3923. const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);
  3924. const selfDefendingFunctionHostNode = callsGraphData.length
  3925. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
  3926. : nodeWithStatements;
  3927. const callsControllerHostNode = callsGraphData.length
  3928. ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
  3929. : nodeWithStatements;
  3930. const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils
  3931. .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null;
  3932. const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode
  3933. ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)
  3934. : this.identifierNamesGenerator.generateNext();
  3935. const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode
  3936. ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)
  3937. : this.identifierNamesGenerator.generateNext();
  3938. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => {
  3939. customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName);
  3940. NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode());
  3941. });
  3942. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {
  3943. customCodeHelper.initialize(NodeTransformationStage_1.NodeTransformationStage.Preparing, callsControllerFunctionName);
  3944. NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
  3945. });
  3946. }
  3947. initialize() {
  3948. this.customCodeHelpers = new Map();
  3949. if (!this.options.selfDefending) {
  3950. return;
  3951. }
  3952. const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);
  3953. const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);
  3954. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper);
  3955. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
  3956. }
  3957. };
  3958. __decorate([
  3959. Initializable_1.initializable(),
  3960. __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
  3961. ], SelfDefendingCodeHelperGroup.prototype, "customCodeHelpers", void 0);
  3962. SelfDefendingCodeHelperGroup = __decorate([
  3963. inversify_1.injectable(),
  3964. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
  3965. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  3966. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  3967. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  3968. __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  3969. ], SelfDefendingCodeHelperGroup);
  3970. exports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup;
  3971. /***/ }),
  3972. /***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts":
  3973. /*!*****************************************************************************************!*\
  3974. !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts ***!
  3975. \*****************************************************************************************/
  3976. /***/ ((__unused_webpack_module, exports) => {
  3977. Object.defineProperty(exports, "__esModule", ({ value: true }));
  3978. exports.SelfDefendingNoEvalTemplate = void 0;
  3979. function SelfDefendingNoEvalTemplate() {
  3980. return `
  3981. const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {
  3982. {globalVariableTemplate}
  3983. const test = function () {
  3984. const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');
  3985. return !regExp.test({selfDefendingFunctionName});
  3986. };
  3987. return test();
  3988. });
  3989. {selfDefendingFunctionName}();
  3990. `;
  3991. }
  3992. exports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate;
  3993. /***/ }),
  3994. /***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts":
  3995. /*!***********************************************************************************!*\
  3996. !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts ***!
  3997. \***********************************************************************************/
  3998. /***/ ((__unused_webpack_module, exports) => {
  3999. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4000. exports.SelfDefendingTemplate = void 0;
  4001. function SelfDefendingTemplate() {
  4002. return `
  4003. const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {
  4004. const test = function () {
  4005. const regExp = test
  4006. .constructor('return /" + this + "/')()
  4007. .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');
  4008. return !regExp.test({selfDefendingFunctionName});
  4009. };
  4010. return test();
  4011. });
  4012. {selfDefendingFunctionName}();
  4013. `;
  4014. }
  4015. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  4016. /***/ }),
  4017. /***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts":
  4018. /*!*****************************************************************************************!*\
  4019. !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts ***!
  4020. \*****************************************************************************************/
  4021. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4022. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4023. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4024. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4025. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4026. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4027. };
  4028. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4029. exports.StringArrayCallsWrapperBase64CodeHelper = void 0;
  4030. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4031. const AtobTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/AtobTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts");
  4032. const StringArrayBase64DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts");
  4033. const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ./StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts");
  4034. let StringArrayCallsWrapperBase64CodeHelper = class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {
  4035. getDecodeStringArrayTemplate() {
  4036. const atobFunctionName = this.randomGenerator.getRandomString(6);
  4037. const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {
  4038. atobFunctionName: atobFunctionName
  4039. });
  4040. const selfDefendingCode = this.getSelfDefendingTemplate();
  4041. return this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), {
  4042. atobPolyfill,
  4043. atobFunctionName,
  4044. selfDefendingCode,
  4045. stringArrayName: this.stringArrayName,
  4046. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  4047. });
  4048. }
  4049. };
  4050. StringArrayCallsWrapperBase64CodeHelper = __decorate([
  4051. inversify_1.injectable()
  4052. ], StringArrayCallsWrapperBase64CodeHelper);
  4053. exports.StringArrayCallsWrapperBase64CodeHelper = StringArrayCallsWrapperBase64CodeHelper;
  4054. /***/ }),
  4055. /***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts":
  4056. /*!***********************************************************************************!*\
  4057. !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts ***!
  4058. \***********************************************************************************/
  4059. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4060. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4061. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4062. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4063. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4064. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4065. };
  4066. var __metadata = (this && this.__metadata) || function (k, v) {
  4067. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4068. };
  4069. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4070. return function (target, key) { decorator(target, key, paramIndex); }
  4071. };
  4072. var _a, _b, _c, _d, _e, _f;
  4073. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4074. exports.StringArrayCallsWrapperCodeHelper = void 0;
  4075. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4076. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4077. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4078. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4079. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  4080. const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts");
  4081. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4082. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4083. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4084. const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts");
  4085. const StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts");
  4086. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  4087. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4088. let StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  4089. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {
  4090. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  4091. this.escapeSequenceEncoder = escapeSequenceEncoder;
  4092. }
  4093. initialize(stringArrayName, stringArrayCallsWrapperName, indexShiftAmount) {
  4094. this.stringArrayName = stringArrayName;
  4095. this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
  4096. this.indexShiftAmount = indexShiftAmount;
  4097. }
  4098. getNodeStructure(codeHelperTemplate) {
  4099. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  4100. }
  4101. getCodeHelperTemplate() {
  4102. const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate();
  4103. const preservedNames = [`^${this.stringArrayName}$`];
  4104. return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {
  4105. decodeCodeHelperTemplate,
  4106. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  4107. stringArrayName: this.stringArrayName,
  4108. indexShiftAmount: this.indexShiftAmount
  4109. }), {
  4110. reservedNames: preservedNames
  4111. });
  4112. }
  4113. getDecodeStringArrayTemplate() {
  4114. return '';
  4115. }
  4116. getSelfDefendingTemplate() {
  4117. if (!this.options.selfDefending) {
  4118. return '';
  4119. }
  4120. return this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {
  4121. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  4122. stringArrayName: this.stringArrayName
  4123. });
  4124. }
  4125. };
  4126. __decorate([
  4127. Initializable_1.initializable(),
  4128. __metadata("design:type", Number)
  4129. ], StringArrayCallsWrapperCodeHelper.prototype, "indexShiftAmount", void 0);
  4130. __decorate([
  4131. Initializable_1.initializable(),
  4132. __metadata("design:type", String)
  4133. ], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayName", void 0);
  4134. __decorate([
  4135. Initializable_1.initializable(),
  4136. __metadata("design:type", String)
  4137. ], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayCallsWrapperName", void 0);
  4138. StringArrayCallsWrapperCodeHelper = __decorate([
  4139. inversify_1.injectable(),
  4140. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4141. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4142. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  4143. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4144. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4145. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),
  4146. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object])
  4147. ], StringArrayCallsWrapperCodeHelper);
  4148. exports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper;
  4149. /***/ }),
  4150. /***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts":
  4151. /*!**************************************************************************************!*\
  4152. !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts ***!
  4153. \**************************************************************************************/
  4154. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4155. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4156. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4157. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4158. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4159. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4160. };
  4161. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4162. exports.StringArrayCallsWrapperRc4CodeHelper = void 0;
  4163. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4164. const AtobTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/AtobTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts");
  4165. const Rc4Template_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/Rc4Template */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts");
  4166. const StringArrayRC4DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts");
  4167. const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ./StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts");
  4168. let StringArrayCallsWrapperRc4CodeHelper = class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {
  4169. getDecodeStringArrayTemplate() {
  4170. const atobFunctionName = this.randomGenerator.getRandomString(6);
  4171. const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {
  4172. atobFunctionName
  4173. });
  4174. const rc4Polyfill = this.customCodeHelperFormatter.formatTemplate(Rc4Template_1.Rc4Template(), {
  4175. atobFunctionName
  4176. });
  4177. const selfDefendingCode = this.getSelfDefendingTemplate();
  4178. return this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), {
  4179. atobPolyfill,
  4180. rc4Polyfill,
  4181. selfDefendingCode,
  4182. stringArrayName: this.stringArrayName,
  4183. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  4184. });
  4185. }
  4186. };
  4187. StringArrayCallsWrapperRc4CodeHelper = __decorate([
  4188. inversify_1.injectable()
  4189. ], StringArrayCallsWrapperRc4CodeHelper);
  4190. exports.StringArrayCallsWrapperRc4CodeHelper = StringArrayCallsWrapperRc4CodeHelper;
  4191. /***/ }),
  4192. /***/ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts":
  4193. /*!***********************************************************************!*\
  4194. !*** ./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts ***!
  4195. \***********************************************************************/
  4196. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4197. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4198. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4199. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4200. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4201. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4202. };
  4203. var __metadata = (this && this.__metadata) || function (k, v) {
  4204. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4205. };
  4206. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4207. return function (target, key) { decorator(target, key, paramIndex); }
  4208. };
  4209. var _a, _b, _c, _d, _e, _f;
  4210. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4211. exports.StringArrayCodeHelper = void 0;
  4212. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4213. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4214. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4215. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4216. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  4217. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4218. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4219. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  4220. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4221. const StringArrayTemplate_1 = __webpack_require__(/*! ./templates/string-array/StringArrayTemplate */ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts");
  4222. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  4223. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4224. const StringUtils_1 = __webpack_require__(/*! ../../utils/StringUtils */ "./src/utils/StringUtils.ts");
  4225. let StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  4226. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  4227. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  4228. }
  4229. initialize(stringArrayStorage, stringArrayName) {
  4230. this.stringArrayStorage = stringArrayStorage;
  4231. this.stringArrayName = stringArrayName;
  4232. }
  4233. getNodeStructure(codeHelperTemplate) {
  4234. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  4235. }
  4236. getCodeHelperTemplate() {
  4237. return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), {
  4238. stringArrayName: this.stringArrayName,
  4239. stringArrayStorageItems: this.getEncodedStringArrayStorageItems()
  4240. });
  4241. }
  4242. getEncodedStringArrayStorageItems() {
  4243. return Array
  4244. .from(this.stringArrayStorage.getStorage().values())
  4245. .map((stringArrayStorageItemData) => {
  4246. const escapedEncodedValue = StringUtils_1.StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue);
  4247. return `'${escapedEncodedValue}'`;
  4248. })
  4249. .toString();
  4250. }
  4251. };
  4252. __decorate([
  4253. Initializable_1.initializable(),
  4254. __metadata("design:type", typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object)
  4255. ], StringArrayCodeHelper.prototype, "stringArrayStorage", void 0);
  4256. __decorate([
  4257. Initializable_1.initializable(),
  4258. __metadata("design:type", String)
  4259. ], StringArrayCodeHelper.prototype, "stringArrayName", void 0);
  4260. StringArrayCodeHelper = __decorate([
  4261. inversify_1.injectable(),
  4262. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4263. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4264. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  4265. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4266. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4267. __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
  4268. ], StringArrayCodeHelper);
  4269. exports.StringArrayCodeHelper = StringArrayCodeHelper;
  4270. /***/ }),
  4271. /***/ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts":
  4272. /*!*************************************************************************************!*\
  4273. !*** ./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts ***!
  4274. \*************************************************************************************/
  4275. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4276. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4277. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4278. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4279. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4280. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4281. };
  4282. var __metadata = (this && this.__metadata) || function (k, v) {
  4283. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4284. };
  4285. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4286. return function (target, key) { decorator(target, key, paramIndex); }
  4287. };
  4288. var _a, _b, _c, _d, _e;
  4289. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4290. exports.StringArrayRotateFunctionCodeHelper = void 0;
  4291. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4292. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4293. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4294. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4295. const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts");
  4296. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4297. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4298. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4299. const StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts");
  4300. const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts");
  4301. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4302. let StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {
  4303. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {
  4304. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);
  4305. }
  4306. initialize(stringArrayName, comparisonValue, comparisonExpressionNode) {
  4307. this.stringArrayName = stringArrayName;
  4308. this.comparisonValue = comparisonValue;
  4309. this.comparisonExpressionNode = comparisonExpressionNode;
  4310. }
  4311. getNodeStructure(codeHelperTemplate) {
  4312. return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);
  4313. }
  4314. getCodeHelperTemplate() {
  4315. const comparisonExpressionCode = NodeUtils_1.NodeUtils.convertStructureToCode([this.comparisonExpressionNode]);
  4316. return this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {
  4317. comparisonExpressionCode,
  4318. comparisonValue: this.comparisonValue,
  4319. stringArrayName: this.stringArrayName
  4320. });
  4321. }
  4322. };
  4323. __decorate([
  4324. Initializable_1.initializable(),
  4325. __metadata("design:type", Number)
  4326. ], StringArrayRotateFunctionCodeHelper.prototype, "comparisonValue", void 0);
  4327. __decorate([
  4328. Initializable_1.initializable(),
  4329. __metadata("design:type", Object)
  4330. ], StringArrayRotateFunctionCodeHelper.prototype, "comparisonExpressionNode", void 0);
  4331. __decorate([
  4332. Initializable_1.initializable(),
  4333. __metadata("design:type", String)
  4334. ], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayName", void 0);
  4335. StringArrayRotateFunctionCodeHelper = __decorate([
  4336. inversify_1.injectable(),
  4337. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4338. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4339. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),
  4340. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4341. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4342. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  4343. ], StringArrayRotateFunctionCodeHelper);
  4344. exports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper;
  4345. /***/ }),
  4346. /***/ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts":
  4347. /*!**********************************************************************************!*\
  4348. !*** ./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts ***!
  4349. \**********************************************************************************/
  4350. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4351. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4352. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4353. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4354. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4355. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4356. };
  4357. var __metadata = (this && this.__metadata) || function (k, v) {
  4358. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4359. };
  4360. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4361. return function (target, key) { decorator(target, key, paramIndex); }
  4362. };
  4363. var StringArrayCodeHelperGroup_1, _a, _b, _c, _d, _e, _f;
  4364. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4365. exports.StringArrayCodeHelperGroup = void 0;
  4366. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4367. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4368. const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
  4369. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4370. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4371. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4372. const IStringArrayStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  4373. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4374. const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  4375. const StringArrayEncoding_1 = __webpack_require__(/*! ../../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  4376. const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts");
  4377. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  4378. let StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {
  4379. constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {
  4380. super(identifierNamesGeneratorFactory, randomGenerator, options);
  4381. this.customCodeHelperFactory = customCodeHelperFactory;
  4382. this.stringArrayStorage = stringArrayStorage;
  4383. }
  4384. appendOnFinalizingStage(nodeWithStatements, callsGraphData) {
  4385. if (!this.stringArrayStorage.getLength()) {
  4386. return;
  4387. }
  4388. this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => {
  4389. NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode());
  4390. });
  4391. const stringArrayEncodingsLength = this.options.stringArrayEncoding.length;
  4392. let randomIndex = 1;
  4393. for (let i = 0; i < stringArrayEncodingsLength; i++, randomIndex++) {
  4394. const stringArrayEncoding = this.options.stringArrayEncoding[i];
  4395. const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);
  4396. const scopeStatements = NodeAppender_1.NodeAppender.getScopeStatements(nodeWithStatements);
  4397. randomIndex = this.randomGenerator.getRandomInteger(randomIndex, scopeStatements.length - 1);
  4398. this.appendCustomNodeIfExist(stringArrayCallsWrapperCodeHelperName, (customCodeHelper) => {
  4399. NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);
  4400. });
  4401. }
  4402. }
  4403. initialize() {
  4404. this.customCodeHelpers = new Map();
  4405. if (!this.options.stringArray) {
  4406. return;
  4407. }
  4408. const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray);
  4409. const stringArrayName = this.stringArrayStorage.getStorageName();
  4410. stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName);
  4411. this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper);
  4412. for (const stringArrayEncoding of this.options.stringArrayEncoding) {
  4413. const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);
  4414. const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName);
  4415. const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding);
  4416. stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName, this.stringArrayStorage.getIndexShiftAmount());
  4417. this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper);
  4418. }
  4419. }
  4420. getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding) {
  4421. var _a;
  4422. return (_a = StringArrayCodeHelperGroup_1
  4423. .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper;
  4424. }
  4425. };
  4426. StringArrayCodeHelperGroup.stringArrayCallsWrapperCodeHelperMap = new Map([
  4427. [StringArrayEncoding_1.StringArrayEncoding.None, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper],
  4428. [StringArrayEncoding_1.StringArrayEncoding.Base64, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64],
  4429. [StringArrayEncoding_1.StringArrayEncoding.Rc4, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4]
  4430. ]);
  4431. __decorate([
  4432. Initializable_1.initializable(),
  4433. __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
  4434. ], StringArrayCodeHelperGroup.prototype, "customCodeHelpers", void 0);
  4435. StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = __decorate([
  4436. inversify_1.injectable(),
  4437. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
  4438. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  4439. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4440. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4441. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4442. __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _c : Object, typeof (_d = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object])
  4443. ], StringArrayCodeHelperGroup);
  4444. exports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup;
  4445. /***/ }),
  4446. /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts":
  4447. /*!***************************************************************************************************!*\
  4448. !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts ***!
  4449. \***************************************************************************************************/
  4450. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  4451. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4452. exports.AtobTemplate = void 0;
  4453. const Base64AlphabetSwapped_1 = __webpack_require__(/*! ../../../../constants/Base64AlphabetSwapped */ "./src/constants/Base64AlphabetSwapped.ts");
  4454. function AtobTemplate() {
  4455. return `
  4456. var {atobFunctionName} = function (input) {
  4457. const chars = '${Base64AlphabetSwapped_1.base64alphabetSwapped}';
  4458. let output = '';
  4459. for (
  4460. let bc = 0, bs, buffer, idx = 0;
  4461. buffer = input.charAt(idx++);
  4462. ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
  4463. bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
  4464. ) {
  4465. buffer = chars.indexOf(buffer);
  4466. }
  4467. return output;
  4468. };
  4469. `;
  4470. }
  4471. exports.AtobTemplate = AtobTemplate;
  4472. /***/ }),
  4473. /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts":
  4474. /*!**************************************************************************************************!*\
  4475. !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts ***!
  4476. \**************************************************************************************************/
  4477. /***/ ((__unused_webpack_module, exports) => {
  4478. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4479. exports.Rc4Template = void 0;
  4480. function Rc4Template() {
  4481. return `
  4482. const rc4 = function (str, key) {
  4483. let s = [], j = 0, x, res = '', newStr = '';
  4484. str = {atobFunctionName}(str);
  4485. for (let k = 0, length = str.length; k < length; k++) {
  4486. newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);
  4487. }
  4488. str = decodeURIComponent(newStr);
  4489. let i;
  4490. for (i = 0; i < 256; i++) {
  4491. s[i] = i;
  4492. }
  4493. for (i = 0; i < 256; i++) {
  4494. j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
  4495. x = s[i];
  4496. s[i] = s[j];
  4497. s[j] = x;
  4498. }
  4499. i = 0;
  4500. j = 0;
  4501. for (let y = 0; y < str.length; y++) {
  4502. i = (i + 1) % 256;
  4503. j = (j + s[i]) % 256;
  4504. x = s[i];
  4505. s[i] = s[j];
  4506. s[j] = x;
  4507. res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
  4508. }
  4509. return res;
  4510. }
  4511. `;
  4512. }
  4513. exports.Rc4Template = Rc4Template;
  4514. /***/ }),
  4515. /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts":
  4516. /*!************************************************************************************************************!*\
  4517. !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts ***!
  4518. \************************************************************************************************************/
  4519. /***/ ((__unused_webpack_module, exports) => {
  4520. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4521. exports.SelfDefendingTemplate = void 0;
  4522. function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {
  4523. const identifierLength = 6;
  4524. const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);
  4525. const statesIdentifier = randomGenerator.getRandomString(identifierLength);
  4526. const newStateIdentifier = randomGenerator.getRandomString(identifierLength);
  4527. const firstStateIdentifier = randomGenerator.getRandomString(identifierLength);
  4528. const secondStateIdentifier = randomGenerator.getRandomString(identifierLength);
  4529. const checkStateIdentifier = randomGenerator.getRandomString(identifierLength);
  4530. const runStateIdentifier = randomGenerator.getRandomString(identifierLength);
  4531. const getStateIdentifier = randomGenerator.getRandomString(identifierLength);
  4532. const stateResultIdentifier = randomGenerator.getRandomString(identifierLength);
  4533. return `
  4534. const StatesClass = function (${rc4BytesIdentifier}) {
  4535. this.${rc4BytesIdentifier} = ${rc4BytesIdentifier};
  4536. this.${statesIdentifier} = [1, 0, 0];
  4537. this.${newStateIdentifier} = function(){return 'newState';};
  4538. this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *', true)}';
  4539. this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\'|"].+[\'|"];? *}', true)}';
  4540. };
  4541. StatesClass.prototype.${checkStateIdentifier} = function () {
  4542. const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier});
  4543. const expression = regExp.test(this.${newStateIdentifier}.toString())
  4544. ? --this.${statesIdentifier}[1]
  4545. : --this.${statesIdentifier}[0];
  4546. return this.${runStateIdentifier}(expression);
  4547. };
  4548. StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) {
  4549. if (!Boolean(~${stateResultIdentifier})) {
  4550. return ${stateResultIdentifier};
  4551. }
  4552. return this.${getStateIdentifier}(this.${rc4BytesIdentifier});
  4553. };
  4554. StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) {
  4555. for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) {
  4556. this.${statesIdentifier}.push(Math.round(Math.random()));
  4557. len = this.${statesIdentifier}.length;
  4558. }
  4559. return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]);
  4560. };
  4561. new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}();
  4562. `;
  4563. }
  4564. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  4565. /***/ }),
  4566. /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts":
  4567. /*!**********************************************************************************************************************!*\
  4568. !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts ***!
  4569. \**********************************************************************************************************************/
  4570. /***/ ((__unused_webpack_module, exports) => {
  4571. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4572. exports.StringArrayBase64DecodeTemplate = void 0;
  4573. function StringArrayBase64DecodeTemplate(randomGenerator) {
  4574. const identifierLength = 6;
  4575. const initializedIdentifier = randomGenerator.getRandomString(identifierLength);
  4576. const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);
  4577. const dataIdentifier = randomGenerator.getRandomString(identifierLength);
  4578. return `
  4579. if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {
  4580. {atobPolyfill}
  4581. {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) {
  4582. const string = {atobFunctionName}(str);
  4583. let newStringChars = [];
  4584. for (let i = 0, length = string.length; i < length; i++) {
  4585. newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);
  4586. }
  4587. return decodeURIComponent(newStringChars);
  4588. };
  4589. {stringArrayCallsWrapperName}.${dataIdentifier} = {};
  4590. {stringArrayCallsWrapperName}.${initializedIdentifier} = true;
  4591. }
  4592. const firstValue = {stringArrayName}[0];
  4593. const cacheKey = index + firstValue;
  4594. const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[cacheKey];
  4595. if (cachedValue === undefined) {
  4596. {selfDefendingCode}
  4597. value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value);
  4598. {stringArrayCallsWrapperName}.${dataIdentifier}[cacheKey] = value;
  4599. } else {
  4600. value = cachedValue;
  4601. }
  4602. `;
  4603. }
  4604. exports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate;
  4605. /***/ }),
  4606. /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts":
  4607. /*!**********************************************************************************************************************!*\
  4608. !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***!
  4609. \**********************************************************************************************************************/
  4610. /***/ ((__unused_webpack_module, exports) => {
  4611. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4612. exports.StringArrayCallsWrapperTemplate = void 0;
  4613. function StringArrayCallsWrapperTemplate() {
  4614. return `
  4615. function {stringArrayCallsWrapperName} (index, key) {
  4616. index = index - {indexShiftAmount};
  4617. let value = {stringArrayName}[index];
  4618. {decodeCodeHelperTemplate}
  4619. return value;
  4620. }
  4621. `;
  4622. }
  4623. exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;
  4624. /***/ }),
  4625. /***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts":
  4626. /*!*******************************************************************************************************************!*\
  4627. !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts ***!
  4628. \*******************************************************************************************************************/
  4629. /***/ ((__unused_webpack_module, exports) => {
  4630. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4631. exports.StringArrayRC4DecodeTemplate = void 0;
  4632. function StringArrayRC4DecodeTemplate(randomGenerator) {
  4633. const identifierLength = 6;
  4634. const initializedIdentifier = randomGenerator.getRandomString(identifierLength);
  4635. const rc4Identifier = randomGenerator.getRandomString(identifierLength);
  4636. const dataIdentifier = randomGenerator.getRandomString(identifierLength);
  4637. const onceIdentifier = randomGenerator.getRandomString(identifierLength);
  4638. return `
  4639. if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {
  4640. {atobPolyfill}
  4641. {rc4Polyfill}
  4642. {stringArrayCallsWrapperName}.${rc4Identifier} = rc4;
  4643. {stringArrayCallsWrapperName}.${dataIdentifier} = {};
  4644. {stringArrayCallsWrapperName}.${initializedIdentifier} = true;
  4645. }
  4646. const firstValue = {stringArrayName}[0];
  4647. const cacheKey = index + firstValue;
  4648. const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[cacheKey];
  4649. if (cachedValue === undefined) {
  4650. if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) {
  4651. {selfDefendingCode}
  4652. {stringArrayCallsWrapperName}.${onceIdentifier} = true;
  4653. }
  4654. value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key);
  4655. {stringArrayCallsWrapperName}.${dataIdentifier}[cacheKey] = value;
  4656. } else {
  4657. value = cachedValue;
  4658. }
  4659. `;
  4660. }
  4661. exports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate;
  4662. /***/ }),
  4663. /***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts":
  4664. /*!**************************************************************************************************************************!*\
  4665. !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts ***!
  4666. \**************************************************************************************************************************/
  4667. /***/ ((__unused_webpack_module, exports) => {
  4668. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4669. exports.StringArrayRotateFunctionTemplate = void 0;
  4670. function StringArrayRotateFunctionTemplate() {
  4671. return `
  4672. (function (array, comparisonValue) {
  4673. while (true) {
  4674. try {
  4675. const expression = {comparisonExpressionCode};
  4676. if (expression === comparisonValue) {
  4677. break;
  4678. } else {
  4679. array['push'](array['shift']());
  4680. }
  4681. } catch (e) {
  4682. array['push'](array['shift']());
  4683. }
  4684. }
  4685. })({stringArrayName}, {comparisonValue});
  4686. `;
  4687. }
  4688. exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;
  4689. /***/ }),
  4690. /***/ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts":
  4691. /*!********************************************************************************************!*\
  4692. !*** ./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts ***!
  4693. \********************************************************************************************/
  4694. /***/ ((__unused_webpack_module, exports) => {
  4695. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4696. exports.StringArrayTemplate = void 0;
  4697. function StringArrayTemplate() {
  4698. return `
  4699. const {stringArrayName} = [{stringArrayStorageItems}];
  4700. `;
  4701. }
  4702. exports.StringArrayTemplate = StringArrayTemplate;
  4703. /***/ }),
  4704. /***/ "./src/custom-nodes/AbstractCustomNode.ts":
  4705. /*!************************************************!*\
  4706. !*** ./src/custom-nodes/AbstractCustomNode.ts ***!
  4707. \************************************************/
  4708. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4709. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4710. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4711. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4712. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4713. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4714. };
  4715. var __metadata = (this && this.__metadata) || function (k, v) {
  4716. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4717. };
  4718. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4719. return function (target, key) { decorator(target, key, paramIndex); }
  4720. };
  4721. var _a, _b, _c, _d;
  4722. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4723. exports.AbstractCustomNode = void 0;
  4724. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4725. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4726. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4727. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4728. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4729. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4730. let AbstractCustomNode = class AbstractCustomNode {
  4731. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  4732. this.cachedNode = null;
  4733. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  4734. this.customCodeHelperFormatter = customCodeHelperFormatter;
  4735. this.randomGenerator = randomGenerator;
  4736. this.options = options;
  4737. }
  4738. getNode() {
  4739. if (!this.cachedNode) {
  4740. this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure());
  4741. }
  4742. return this.cachedNode;
  4743. }
  4744. };
  4745. AbstractCustomNode = __decorate([
  4746. inversify_1.injectable(),
  4747. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4748. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4749. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4750. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4751. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  4752. ], AbstractCustomNode);
  4753. exports.AbstractCustomNode = AbstractCustomNode;
  4754. /***/ }),
  4755. /***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts":
  4756. /*!****************************************************************************************!*\
  4757. !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***!
  4758. \****************************************************************************************/
  4759. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4760. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4761. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4762. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4763. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4764. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4765. };
  4766. var __metadata = (this && this.__metadata) || function (k, v) {
  4767. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4768. };
  4769. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4770. return function (target, key) { decorator(target, key, paramIndex); }
  4771. };
  4772. var _a, _b, _c, _d;
  4773. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4774. exports.BinaryExpressionFunctionNode = void 0;
  4775. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4776. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4777. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4778. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4779. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4780. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4781. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  4782. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  4783. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4784. let BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {
  4785. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  4786. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  4787. }
  4788. initialize(operator) {
  4789. this.operator = operator;
  4790. }
  4791. getNodeStructure() {
  4792. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([
  4793. NodeFactory_1.NodeFactory.identifierNode('x'),
  4794. NodeFactory_1.NodeFactory.identifierNode('y')
  4795. ], NodeFactory_1.NodeFactory.blockStatementNode([
  4796. NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))
  4797. ])));
  4798. NodeUtils_1.NodeUtils.parentizeAst(structure);
  4799. return [structure];
  4800. }
  4801. };
  4802. BinaryExpressionFunctionNode = __decorate([
  4803. inversify_1.injectable(),
  4804. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4805. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4806. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4807. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4808. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  4809. ], BinaryExpressionFunctionNode);
  4810. exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;
  4811. /***/ }),
  4812. /***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts":
  4813. /*!***************************************************************************************************!*\
  4814. !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***!
  4815. \***************************************************************************************************/
  4816. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4817. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4818. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4819. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4820. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4821. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4822. };
  4823. var __metadata = (this && this.__metadata) || function (k, v) {
  4824. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4825. };
  4826. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4827. return function (target, key) { decorator(target, key, paramIndex); }
  4828. };
  4829. var _a, _b, _c, _d;
  4830. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4831. exports.BlockStatementControlFlowFlatteningNode = void 0;
  4832. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4833. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4834. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4835. const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
  4836. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4837. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4838. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4839. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4840. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  4841. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  4842. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4843. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4844. let BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode {
  4845. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  4846. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  4847. }
  4848. initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {
  4849. this.blockStatementBody = blockStatementBody;
  4850. this.shuffledKeys = shuffledKeys;
  4851. this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;
  4852. }
  4853. getNodeStructure() {
  4854. const controllerIdentifierName = this.randomGenerator.getRandomString(6);
  4855. const indexIdentifierName = this.randomGenerator.getRandomString(6);
  4856. const structure = NodeFactory_1.NodeFactory.blockStatementNode([
  4857. NodeFactory_1.NodeFactory.variableDeclarationNode([
  4858. NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(StringSeparator_1.StringSeparator.VerticalLine)), NodeFactory_1.NodeFactory.identifierNode('split')), [
  4859. NodeFactory_1.NodeFactory.literalNode(StringSeparator_1.StringSeparator.VerticalLine)
  4860. ]))
  4861. ], 'const'),
  4862. NodeFactory_1.NodeFactory.variableDeclarationNode([
  4863. NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))
  4864. ], 'let'),
  4865. NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([
  4866. NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map((key, index) => {
  4867. const statement = this.blockStatementBody[key];
  4868. const consequent = [statement];
  4869. if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {
  4870. consequent.push(NodeFactory_1.NodeFactory.continueStatement());
  4871. }
  4872. return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);
  4873. })),
  4874. NodeFactory_1.NodeFactory.breakStatement()
  4875. ]))
  4876. ]);
  4877. NodeUtils_1.NodeUtils.parentizeAst(structure);
  4878. return [structure];
  4879. }
  4880. };
  4881. __decorate([
  4882. Initializable_1.initializable(),
  4883. __metadata("design:type", Array)
  4884. ], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0);
  4885. __decorate([
  4886. Initializable_1.initializable(),
  4887. __metadata("design:type", Array)
  4888. ], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0);
  4889. __decorate([
  4890. Initializable_1.initializable(),
  4891. __metadata("design:type", Array)
  4892. ], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0);
  4893. BlockStatementControlFlowFlatteningNode = __decorate([
  4894. inversify_1.injectable(),
  4895. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4896. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4897. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4898. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4899. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  4900. ], BlockStatementControlFlowFlatteningNode);
  4901. exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;
  4902. /***/ }),
  4903. /***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts":
  4904. /*!**************************************************************************************!*\
  4905. !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***!
  4906. \**************************************************************************************/
  4907. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4908. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4909. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4910. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4911. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4912. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4913. };
  4914. var __metadata = (this && this.__metadata) || function (k, v) {
  4915. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  4916. };
  4917. var __param = (this && this.__param) || function (paramIndex, decorator) {
  4918. return function (target, key) { decorator(target, key, paramIndex); }
  4919. };
  4920. var _a, _b, _c, _d;
  4921. Object.defineProperty(exports, "__esModule", ({ value: true }));
  4922. exports.CallExpressionFunctionNode = void 0;
  4923. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4924. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4925. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  4926. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  4927. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  4928. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  4929. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4930. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  4931. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  4932. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4933. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4934. let CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {
  4935. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  4936. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  4937. }
  4938. initialize(expressionArguments) {
  4939. this.expressionArguments = expressionArguments;
  4940. }
  4941. getNodeStructure() {
  4942. const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');
  4943. const params = [];
  4944. const callArguments = [];
  4945. const argumentsLength = this.expressionArguments.length;
  4946. for (let i = 0; i < argumentsLength; i++) {
  4947. const argument = this.expressionArguments[i];
  4948. const isSpreadCallArgument = NodeGuards_1.NodeGuards.isSpreadElementNode(argument);
  4949. const baseIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`);
  4950. if (isSpreadCallArgument) {
  4951. params.push(NodeFactory_1.NodeFactory.restElementNode(baseIdentifierNode));
  4952. callArguments.push(NodeFactory_1.NodeFactory.spreadElementNode(baseIdentifierNode));
  4953. const isMiddleSpreadCallArgument = i < argumentsLength - 1;
  4954. if (isMiddleSpreadCallArgument) {
  4955. break;
  4956. }
  4957. }
  4958. else {
  4959. params.push(baseIdentifierNode);
  4960. callArguments.push(baseIdentifierNode);
  4961. }
  4962. }
  4963. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([
  4964. calleeIdentifier,
  4965. ...params
  4966. ], NodeFactory_1.NodeFactory.blockStatementNode([
  4967. NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, callArguments))
  4968. ])));
  4969. NodeUtils_1.NodeUtils.parentizeAst(structure);
  4970. return [structure];
  4971. }
  4972. };
  4973. __decorate([
  4974. Initializable_1.initializable(),
  4975. __metadata("design:type", Array)
  4976. ], CallExpressionFunctionNode.prototype, "expressionArguments", void 0);
  4977. CallExpressionFunctionNode = __decorate([
  4978. inversify_1.injectable(),
  4979. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  4980. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  4981. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  4982. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  4983. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  4984. ], CallExpressionFunctionNode);
  4985. exports.CallExpressionFunctionNode = CallExpressionFunctionNode;
  4986. /***/ }),
  4987. /***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts":
  4988. /*!*****************************************************************************************!*\
  4989. !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***!
  4990. \*****************************************************************************************/
  4991. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  4992. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  4993. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4994. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4995. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  4996. return c > 3 && r && Object.defineProperty(target, key, r), r;
  4997. };
  4998. var __metadata = (this && this.__metadata) || function (k, v) {
  4999. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5000. };
  5001. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5002. return function (target, key) { decorator(target, key, paramIndex); }
  5003. };
  5004. var _a, _b, _c, _d;
  5005. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5006. exports.LogicalExpressionFunctionNode = void 0;
  5007. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5008. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5009. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5010. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5011. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5012. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5013. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5014. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5015. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5016. let LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {
  5017. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5018. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5019. }
  5020. initialize(operator) {
  5021. this.operator = operator;
  5022. }
  5023. getNodeStructure() {
  5024. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([
  5025. NodeFactory_1.NodeFactory.identifierNode('x'),
  5026. NodeFactory_1.NodeFactory.identifierNode('y')
  5027. ], NodeFactory_1.NodeFactory.blockStatementNode([
  5028. NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))
  5029. ])));
  5030. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5031. return [structure];
  5032. }
  5033. };
  5034. LogicalExpressionFunctionNode = __decorate([
  5035. inversify_1.injectable(),
  5036. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5037. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5038. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5039. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5040. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  5041. ], LogicalExpressionFunctionNode);
  5042. exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;
  5043. /***/ }),
  5044. /***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts":
  5045. /*!*****************************************************************************!*\
  5046. !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***!
  5047. \*****************************************************************************/
  5048. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5049. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5050. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5051. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5052. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5053. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5054. };
  5055. var __metadata = (this && this.__metadata) || function (k, v) {
  5056. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5057. };
  5058. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5059. return function (target, key) { decorator(target, key, paramIndex); }
  5060. };
  5061. var _a, _b, _c, _d;
  5062. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5063. exports.StringLiteralNode = void 0;
  5064. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5065. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5066. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5067. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5068. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5069. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5070. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5071. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5072. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5073. let StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode {
  5074. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5075. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5076. }
  5077. initialize(literalValue) {
  5078. this.literalValue = literalValue;
  5079. }
  5080. getNodeStructure() {
  5081. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));
  5082. return [structure];
  5083. }
  5084. };
  5085. __decorate([
  5086. Initializable_1.initializable(),
  5087. __metadata("design:type", String)
  5088. ], StringLiteralNode.prototype, "literalValue", void 0);
  5089. StringLiteralNode = __decorate([
  5090. inversify_1.injectable(),
  5091. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5092. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5093. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5094. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5095. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  5096. ], StringLiteralNode);
  5097. exports.StringLiteralNode = StringLiteralNode;
  5098. /***/ }),
  5099. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts":
  5100. /*!*******************************************************************************************************************************!*\
  5101. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***!
  5102. \*******************************************************************************************************************************/
  5103. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5104. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5105. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5106. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5107. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5108. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5109. };
  5110. var __metadata = (this && this.__metadata) || function (k, v) {
  5111. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5112. };
  5113. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5114. return function (target, key) { decorator(target, key, paramIndex); }
  5115. };
  5116. var _a, _b, _c, _d, _e;
  5117. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5118. exports.CallExpressionControlFlowStorageCallNode = void 0;
  5119. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5120. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5121. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5122. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5123. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5124. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5125. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5126. const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5127. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5128. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5129. let CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {
  5130. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5131. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5132. }
  5133. initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {
  5134. this.controlFlowStorageName = controlFlowStorageName;
  5135. this.controlFlowStorageKey = controlFlowStorageKey;
  5136. this.callee = callee;
  5137. this.expressionArguments = expressionArguments;
  5138. }
  5139. getNodeStructure() {
  5140. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [
  5141. this.callee,
  5142. ...this.expressionArguments
  5143. ]));
  5144. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5145. return [structure];
  5146. }
  5147. };
  5148. __decorate([
  5149. Initializable_1.initializable(),
  5150. __metadata("design:type", typeof (_a = typeof ESTree !== "undefined" && ESTree.Expression) === "function" ? _a : Object)
  5151. ], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0);
  5152. __decorate([
  5153. Initializable_1.initializable(),
  5154. __metadata("design:type", String)
  5155. ], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  5156. __decorate([
  5157. Initializable_1.initializable(),
  5158. __metadata("design:type", String)
  5159. ], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  5160. __decorate([
  5161. Initializable_1.initializable(),
  5162. __metadata("design:type", Array)
  5163. ], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0);
  5164. CallExpressionControlFlowStorageCallNode = __decorate([
  5165. inversify_1.injectable(),
  5166. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5167. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5168. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5169. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5170. __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  5171. ], CallExpressionControlFlowStorageCallNode);
  5172. exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;
  5173. /***/ }),
  5174. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts":
  5175. /*!*************************************************************************************************************!*\
  5176. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***!
  5177. \*************************************************************************************************************/
  5178. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5179. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5180. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5181. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5182. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5183. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5184. };
  5185. var __metadata = (this && this.__metadata) || function (k, v) {
  5186. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5187. };
  5188. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5189. return function (target, key) { decorator(target, key, paramIndex); }
  5190. };
  5191. var _a, _b, _c, _d, _e;
  5192. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5193. exports.ControlFlowStorageNode = void 0;
  5194. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5195. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5196. const TControlFlowStorage_1 = __webpack_require__(/*! ../../../types/storages/TControlFlowStorage */ "./src/types/storages/TControlFlowStorage.ts");
  5197. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5198. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5199. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5200. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5201. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5202. const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5203. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5204. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5205. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5206. let ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode {
  5207. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5208. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5209. }
  5210. initialize(controlFlowStorage) {
  5211. this.controlFlowStorage = controlFlowStorage;
  5212. }
  5213. getNodeStructure() {
  5214. const propertyNodes = Array
  5215. .from(this.controlFlowStorage.getStorage())
  5216. .map(([key, value]) => {
  5217. const node = value.getNode()[0];
  5218. if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {
  5219. throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');
  5220. }
  5221. return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);
  5222. });
  5223. let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([
  5224. NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))
  5225. ], 'const');
  5226. structure = NodeUtils_1.NodeUtils.parentizeAst(structure);
  5227. return [structure];
  5228. }
  5229. };
  5230. __decorate([
  5231. Initializable_1.initializable(),
  5232. __metadata("design:type", typeof (_a = typeof TControlFlowStorage_1.TControlFlowStorage !== "undefined" && TControlFlowStorage_1.TControlFlowStorage) === "function" ? _a : Object)
  5233. ], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0);
  5234. ControlFlowStorageNode = __decorate([
  5235. inversify_1.injectable(),
  5236. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5237. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5238. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5239. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5240. __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  5241. ], ControlFlowStorageNode);
  5242. exports.ControlFlowStorageNode = ControlFlowStorageNode;
  5243. /***/ }),
  5244. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts":
  5245. /*!***************************************************************************************************************************************!*\
  5246. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***!
  5247. \***************************************************************************************************************************************/
  5248. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5249. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5250. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5251. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5252. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5253. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5254. };
  5255. var __metadata = (this && this.__metadata) || function (k, v) {
  5256. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5257. };
  5258. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5259. return function (target, key) { decorator(target, key, paramIndex); }
  5260. };
  5261. var _a, _b, _c, _d;
  5262. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5263. exports.ExpressionWithOperatorControlFlowStorageCallNode = void 0;
  5264. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5265. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5266. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5267. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5268. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5269. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5270. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5271. const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5272. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5273. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5274. let ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {
  5275. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5276. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5277. }
  5278. initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {
  5279. this.controlFlowStorageName = controlFlowStorageName;
  5280. this.controlFlowStorageKey = controlFlowStorageKey;
  5281. this.leftValue = leftValue;
  5282. this.rightValue = rightValue;
  5283. }
  5284. getNodeStructure() {
  5285. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [
  5286. this.leftValue,
  5287. this.rightValue
  5288. ]));
  5289. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5290. return [structure];
  5291. }
  5292. };
  5293. __decorate([
  5294. Initializable_1.initializable(),
  5295. __metadata("design:type", String)
  5296. ], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  5297. __decorate([
  5298. Initializable_1.initializable(),
  5299. __metadata("design:type", String)
  5300. ], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  5301. ExpressionWithOperatorControlFlowStorageCallNode = __decorate([
  5302. inversify_1.injectable(),
  5303. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5304. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5305. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5306. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5307. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  5308. ], ExpressionWithOperatorControlFlowStorageCallNode);
  5309. exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;
  5310. /***/ }),
  5311. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts":
  5312. /*!******************************************************************************************************************************!*\
  5313. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***!
  5314. \******************************************************************************************************************************/
  5315. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5316. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5317. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5318. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5319. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5320. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5321. };
  5322. var __metadata = (this && this.__metadata) || function (k, v) {
  5323. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5324. };
  5325. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5326. return function (target, key) { decorator(target, key, paramIndex); }
  5327. };
  5328. var _a, _b, _c, _d;
  5329. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5330. exports.StringLiteralControlFlowStorageCallNode = void 0;
  5331. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5332. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5333. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5334. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5335. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5336. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5337. const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5338. const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5339. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5340. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5341. let StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {
  5342. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5343. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5344. }
  5345. initialize(controlFlowStorageName, controlFlowStorageKey) {
  5346. this.controlFlowStorageName = controlFlowStorageName;
  5347. this.controlFlowStorageKey = controlFlowStorageKey;
  5348. }
  5349. getNodeStructure() {
  5350. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));
  5351. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5352. return [structure];
  5353. }
  5354. };
  5355. __decorate([
  5356. Initializable_1.initializable(),
  5357. __metadata("design:type", String)
  5358. ], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  5359. __decorate([
  5360. Initializable_1.initializable(),
  5361. __metadata("design:type", String)
  5362. ], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  5363. StringLiteralControlFlowStorageCallNode = __decorate([
  5364. inversify_1.injectable(),
  5365. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5366. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5367. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5368. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5369. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  5370. ], StringLiteralControlFlowStorageCallNode);
  5371. exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;
  5372. /***/ }),
  5373. /***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts":
  5374. /*!*******************************************************************************************!*\
  5375. !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***!
  5376. \*******************************************************************************************/
  5377. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5378. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5379. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5380. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5381. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5382. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5383. };
  5384. var __metadata = (this && this.__metadata) || function (k, v) {
  5385. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5386. };
  5387. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5388. return function (target, key) { decorator(target, key, paramIndex); }
  5389. };
  5390. var _a, _b, _c, _d;
  5391. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5392. exports.BlockStatementDeadCodeInjectionNode = void 0;
  5393. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5394. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5395. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5396. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5397. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5398. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5399. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5400. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5401. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5402. let BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode {
  5403. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5404. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5405. }
  5406. initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {
  5407. this.blockStatementNode = blockStatementNode;
  5408. this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;
  5409. }
  5410. getNode() {
  5411. return this.getNodeStructure();
  5412. }
  5413. getNodeStructure() {
  5414. const random1 = this.randomGenerator.getMathRandom() > 0.5;
  5415. const random2 = this.randomGenerator.getMathRandom() > 0.5;
  5416. const operator = random1 ? '===' : '!==';
  5417. const leftString = this.randomGenerator.getRandomString(5);
  5418. const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);
  5419. const [consequent, alternate] = random1 === random2
  5420. ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode]
  5421. : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode];
  5422. const structure = NodeFactory_1.NodeFactory.blockStatementNode([
  5423. NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)
  5424. ]);
  5425. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5426. return [structure];
  5427. }
  5428. };
  5429. BlockStatementDeadCodeInjectionNode = __decorate([
  5430. inversify_1.injectable(),
  5431. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5432. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5433. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5434. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5435. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  5436. ], BlockStatementDeadCodeInjectionNode);
  5437. exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;
  5438. /***/ }),
  5439. /***/ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts":
  5440. /*!******************************************************************************************************************!*\
  5441. !*** ./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts ***!
  5442. \******************************************************************************************************************/
  5443. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5444. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5445. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5446. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5447. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5448. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5449. };
  5450. var __metadata = (this && this.__metadata) || function (k, v) {
  5451. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5452. };
  5453. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5454. return function (target, key) { decorator(target, key, paramIndex); }
  5455. };
  5456. var _a, _b, _c, _d;
  5457. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5458. exports.ObjectExpressionVariableDeclarationHostNode = void 0;
  5459. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5460. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5461. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5462. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5463. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5464. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5465. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5466. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5467. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5468. let ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode {
  5469. constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {
  5470. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5471. }
  5472. initialize(lexicalScopeNode, properties) {
  5473. this.lexicalScopeNode = lexicalScopeNode;
  5474. this.properties = properties;
  5475. }
  5476. getNodeStructure() {
  5477. const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode)
  5478. ? this.identifierNamesGenerator.generateForGlobalScope()
  5479. : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);
  5480. const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([
  5481. NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties))
  5482. ], 'const');
  5483. return [structure];
  5484. }
  5485. };
  5486. ObjectExpressionVariableDeclarationHostNode = __decorate([
  5487. inversify_1.injectable(),
  5488. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5489. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5490. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5491. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5492. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  5493. ], ObjectExpressionVariableDeclarationHostNode);
  5494. exports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode;
  5495. /***/ }),
  5496. /***/ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts":
  5497. /*!****************************************************************************!*\
  5498. !*** ./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts ***!
  5499. \****************************************************************************/
  5500. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5501. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5502. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5503. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5504. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5505. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5506. };
  5507. var __metadata = (this && this.__metadata) || function (k, v) {
  5508. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5509. };
  5510. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5511. return function (target, key) { decorator(target, key, paramIndex); }
  5512. };
  5513. var AbstractStringArrayCallNode_1, _a, _b, _c, _d, _e, _f, _g;
  5514. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5515. exports.AbstractStringArrayCallNode = void 0;
  5516. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5517. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5518. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5519. const TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts");
  5520. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5521. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5522. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5523. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  5524. const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts");
  5525. const StringArrayIndexNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode */ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts");
  5526. const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  5527. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5528. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  5529. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5530. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  5531. let AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = class AbstractStringArrayCallNode extends AbstractCustomNode_1.AbstractCustomNode {
  5532. constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {
  5533. super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);
  5534. this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory;
  5535. this.stringArrayStorage = stringArrayStorage;
  5536. this.arrayUtils = arrayUtils;
  5537. }
  5538. getStringArrayIndexNode(index) {
  5539. var _a;
  5540. const isPositive = index >= 0;
  5541. const normalizedIndex = Math.abs(index);
  5542. const stringArrayCallsIndexType = this.randomGenerator
  5543. .getRandomGenerator()
  5544. .pickone(this.options.stringArrayIndexesType);
  5545. const stringArrayIndexNodeName = (_a = AbstractStringArrayCallNode_1.stringArrayIndexNodesMap.get(stringArrayCallsIndexType)) !== null && _a !== void 0 ? _a : null;
  5546. if (!stringArrayIndexNodeName) {
  5547. throw new Error('Invalid string array index node name');
  5548. }
  5549. const stringArrayCallIndexNode = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName)
  5550. .getNode(normalizedIndex);
  5551. NodeMetadata_1.NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true });
  5552. const hexadecimalNode = isPositive
  5553. ? stringArrayCallIndexNode
  5554. : NodeFactory_1.NodeFactory.unaryExpressionNode('-', stringArrayCallIndexNode);
  5555. NodeUtils_1.NodeUtils.parentizeAst(hexadecimalNode);
  5556. return hexadecimalNode;
  5557. }
  5558. getRc4KeyLiteralNode(decodeKey) {
  5559. const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(decodeKey);
  5560. NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });
  5561. return rc4KeyLiteralNode;
  5562. }
  5563. };
  5564. AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount = 2;
  5565. AbstractStringArrayCallNode.stringArrayIndexNodesMap = new Map([
  5566. [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],
  5567. [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]
  5568. ]);
  5569. AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = __decorate([
  5570. inversify_1.injectable(),
  5571. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5572. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),
  5573. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5574. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  5575. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  5576. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5577. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5578. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _g : Object])
  5579. ], AbstractStringArrayCallNode);
  5580. exports.AbstractStringArrayCallNode = AbstractStringArrayCallNode;
  5581. /***/ }),
  5582. /***/ "./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts":
  5583. /*!********************************************************************!*\
  5584. !*** ./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts ***!
  5585. \********************************************************************/
  5586. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5587. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5588. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5589. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5590. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5591. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5592. };
  5593. var __metadata = (this && this.__metadata) || function (k, v) {
  5594. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5595. };
  5596. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5597. return function (target, key) { decorator(target, key, paramIndex); }
  5598. };
  5599. var _a, _b, _c, _d, _e, _f, _g, _h;
  5600. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5601. exports.StringArrayCallNode = void 0;
  5602. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5603. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5604. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5605. const TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts");
  5606. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  5607. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5608. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5609. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5610. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  5611. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5612. const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts");
  5613. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5614. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5615. let StringArrayCallNode = class StringArrayCallNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {
  5616. constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {
  5617. super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);
  5618. }
  5619. initialize(stringArrayCallsWrapperName, stringArrayCallsWrapperParameterIndexesData, index, indexShiftAmount, decodeKey) {
  5620. this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
  5621. this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData;
  5622. this.index = index;
  5623. this.indexShiftAmount = indexShiftAmount;
  5624. this.decodeKey = decodeKey;
  5625. }
  5626. getNodeStructure() {
  5627. var _a, _b;
  5628. const resultIndex = this.indexShiftAmount + this.index;
  5629. const indexNode = this.getStringArrayIndexNode(resultIndex);
  5630. const rc4KeyLiteralNode = this.decodeKey
  5631. ? this.getRc4KeyLiteralNode(this.decodeKey)
  5632. : null;
  5633. const callExpressionArgs = this.arrayUtils.fillWithRange(!this.stringArrayCallsWrapperParameterIndexesData
  5634. ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount
  5635. : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeStringArrayIndexNode(resultIndex));
  5636. callExpressionArgs.splice((_b = (_a = this.stringArrayCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, indexNode);
  5637. if (this.stringArrayCallsWrapperParameterIndexesData) {
  5638. callExpressionArgs.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex, 1, rc4KeyLiteralNode !== null && rc4KeyLiteralNode !== void 0 ? rc4KeyLiteralNode : this.getFakeStringArrayIndexNode(resultIndex));
  5639. }
  5640. else if (rc4KeyLiteralNode) {
  5641. callExpressionArgs.splice(1, 1, rc4KeyLiteralNode);
  5642. }
  5643. else {
  5644. callExpressionArgs.splice(1, 1);
  5645. }
  5646. const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName), callExpressionArgs));
  5647. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5648. return [structure];
  5649. }
  5650. getFakeStringArrayIndexNode(actualIndex) {
  5651. return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex));
  5652. }
  5653. getFakeStringArrayIndex(actualIndex) {
  5654. const stringArrayStorageLength = this.stringArrayStorage.getLength();
  5655. const fakeIndexOffset = stringArrayStorageLength / 2;
  5656. const minimumIndex = actualIndex - fakeIndexOffset;
  5657. const maximumIndex = actualIndex + fakeIndexOffset;
  5658. return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex);
  5659. }
  5660. };
  5661. __decorate([
  5662. Initializable_1.initializable(),
  5663. __metadata("design:type", Object)
  5664. ], StringArrayCallNode.prototype, "decodeKey", void 0);
  5665. __decorate([
  5666. Initializable_1.initializable(),
  5667. __metadata("design:type", Number)
  5668. ], StringArrayCallNode.prototype, "index", void 0);
  5669. __decorate([
  5670. Initializable_1.initializable(),
  5671. __metadata("design:type", Number)
  5672. ], StringArrayCallNode.prototype, "indexShiftAmount", void 0);
  5673. __decorate([
  5674. Initializable_1.initializable(),
  5675. __metadata("design:type", String)
  5676. ], StringArrayCallNode.prototype, "stringArrayCallsWrapperName", void 0);
  5677. __decorate([
  5678. Initializable_1.initializable(),
  5679. __metadata("design:type", Object)
  5680. ], StringArrayCallNode.prototype, "stringArrayCallsWrapperParameterIndexesData", void 0);
  5681. StringArrayCallNode = __decorate([
  5682. inversify_1.injectable(),
  5683. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5684. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),
  5685. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5686. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  5687. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  5688. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5689. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5690. __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _e : Object, typeof (_f = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _f : Object, typeof (_g = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _g : Object, typeof (_h = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _h : Object])
  5691. ], StringArrayCallNode);
  5692. exports.StringArrayCallNode = StringArrayCallNode;
  5693. /***/ }),
  5694. /***/ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts":
  5695. /*!*****************************************************************************************!*\
  5696. !*** ./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts ***!
  5697. \*****************************************************************************************/
  5698. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5699. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5700. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5701. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5702. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5703. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5704. };
  5705. var __metadata = (this && this.__metadata) || function (k, v) {
  5706. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5707. };
  5708. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5709. return function (target, key) { decorator(target, key, paramIndex); }
  5710. };
  5711. var _a, _b, _c, _d, _e, _f, _g, _h, _j;
  5712. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5713. exports.StringArrayScopeCallsWrapperFunctionNode = void 0;
  5714. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5715. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5716. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5717. const TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts");
  5718. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  5719. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5720. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5721. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5722. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  5723. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5724. const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts");
  5725. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5726. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5727. let StringArrayScopeCallsWrapperFunctionNode = class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {
  5728. constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {
  5729. super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);
  5730. }
  5731. initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexesData, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexesData, shiftedIndex) {
  5732. this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;
  5733. this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData;
  5734. this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName;
  5735. this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData;
  5736. this.shiftedIndex = shiftedIndex;
  5737. }
  5738. getNodeStructure() {
  5739. var _a, _b, _c, _d, _e, _f, _g, _h;
  5740. const stringArrayCallIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));
  5741. const decodeKeyIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));
  5742. const stringArrayCallNode = this.getUpperStringArrayCallNode(stringArrayCallIdentifierNode, this.getStringArrayIndexNode(this.shiftedIndex));
  5743. const parameters = this.arrayUtils.fillWithRange(!this.stringArrayScopeCallsWrapperParameterIndexesData
  5744. ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount
  5745. : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeParameterNode());
  5746. parameters.splice((_b = (_a = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, stringArrayCallIdentifierNode);
  5747. parameters.splice((_d = (_c = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _c === void 0 ? void 0 : _c.decodeKeyParameterIndex) !== null && _d !== void 0 ? _d : 1, 1, decodeKeyIdentifierNode);
  5748. const callExpressionArgs = this.arrayUtils.fillWithRange(!this.upperStringArrayCallsWrapperParameterIndexesData
  5749. ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount
  5750. : this.options.stringArrayWrappersParametersMaxCount, (index) => this.getUpperStringArrayCallNode(parameters[index], this.getFakeUpperStringArrayIndexNode()));
  5751. callExpressionArgs.splice((_f = (_e = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _e === void 0 ? void 0 : _e.valueIndexParameterIndex) !== null && _f !== void 0 ? _f : 0, 1, stringArrayCallNode);
  5752. callExpressionArgs.splice((_h = (_g = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _g === void 0 ? void 0 : _g.decodeKeyParameterIndex) !== null && _h !== void 0 ? _h : 1, 1, decodeKeyIdentifierNode);
  5753. const functionExpressionNode = NodeFactory_1.NodeFactory.functionExpressionNode(parameters, NodeFactory_1.NodeFactory.blockStatementNode([
  5754. NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName), callExpressionArgs))
  5755. ]));
  5756. const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([
  5757. NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), functionExpressionNode)
  5758. ], 'const');
  5759. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5760. for (const parameter of parameters) {
  5761. parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode);
  5762. }
  5763. return [structure];
  5764. }
  5765. getUpperStringArrayCallNode(indexParameterIdentifierNode, indexShiftNode) {
  5766. return NodeFactory_1.NodeFactory.binaryExpressionNode('-', indexParameterIdentifierNode, indexShiftNode);
  5767. }
  5768. getFakeParameterNode() {
  5769. return NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));
  5770. }
  5771. getFakeUpperStringArrayIndexNode() {
  5772. return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500));
  5773. }
  5774. };
  5775. __decorate([
  5776. Initializable_1.initializable(),
  5777. __metadata("design:type", Number)
  5778. ], StringArrayScopeCallsWrapperFunctionNode.prototype, "shiftedIndex", void 0);
  5779. __decorate([
  5780. Initializable_1.initializable(),
  5781. __metadata("design:type", String)
  5782. ], StringArrayScopeCallsWrapperFunctionNode.prototype, "upperStringArrayCallsWrapperName", void 0);
  5783. __decorate([
  5784. Initializable_1.initializable(),
  5785. __metadata("design:type", Object)
  5786. ], StringArrayScopeCallsWrapperFunctionNode.prototype, "upperStringArrayCallsWrapperParameterIndexesData", void 0);
  5787. __decorate([
  5788. Initializable_1.initializable(),
  5789. __metadata("design:type", String)
  5790. ], StringArrayScopeCallsWrapperFunctionNode.prototype, "stringArrayScopeCallsWrapperName", void 0);
  5791. __decorate([
  5792. Initializable_1.initializable(),
  5793. __metadata("design:type", Object)
  5794. ], StringArrayScopeCallsWrapperFunctionNode.prototype, "stringArrayScopeCallsWrapperParameterIndexesData", void 0);
  5795. StringArrayScopeCallsWrapperFunctionNode = __decorate([
  5796. inversify_1.injectable(),
  5797. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5798. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),
  5799. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5800. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  5801. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  5802. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5803. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5804. __metadata("design:paramtypes", [typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _d : Object, typeof (_e = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _e : Object, typeof (_f = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _f : Object, typeof (_g = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _g : Object, typeof (_h = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _h : Object, typeof (_j = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _j : Object])
  5805. ], StringArrayScopeCallsWrapperFunctionNode);
  5806. exports.StringArrayScopeCallsWrapperFunctionNode = StringArrayScopeCallsWrapperFunctionNode;
  5807. /***/ }),
  5808. /***/ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts":
  5809. /*!*****************************************************************************************!*\
  5810. !*** ./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts ***!
  5811. \*****************************************************************************************/
  5812. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5813. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5814. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5815. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5816. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5817. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5818. };
  5819. var __metadata = (this && this.__metadata) || function (k, v) {
  5820. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5821. };
  5822. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5823. return function (target, key) { decorator(target, key, paramIndex); }
  5824. };
  5825. var _a, _b, _c, _d, _e, _f, _g;
  5826. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5827. exports.StringArrayScopeCallsWrapperVariableNode = void 0;
  5828. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5829. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5830. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  5831. const TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts");
  5832. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  5833. const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts");
  5834. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5835. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5836. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  5837. const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  5838. const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts");
  5839. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5840. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5841. let StringArrayScopeCallsWrapperVariableNode = class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {
  5842. constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {
  5843. super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);
  5844. }
  5845. initialize(stringArrayScopeCallsWrapperName, stringArrayCallsWrapperName) {
  5846. this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;
  5847. this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
  5848. }
  5849. getNodeStructure() {
  5850. const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([
  5851. NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))
  5852. ], 'const');
  5853. NodeUtils_1.NodeUtils.parentizeAst(structure);
  5854. return [structure];
  5855. }
  5856. };
  5857. __decorate([
  5858. Initializable_1.initializable(),
  5859. __metadata("design:type", String)
  5860. ], StringArrayScopeCallsWrapperVariableNode.prototype, "stringArrayCallsWrapperName", void 0);
  5861. __decorate([
  5862. Initializable_1.initializable(),
  5863. __metadata("design:type", String)
  5864. ], StringArrayScopeCallsWrapperVariableNode.prototype, "stringArrayScopeCallsWrapperName", void 0);
  5865. StringArrayScopeCallsWrapperVariableNode = __decorate([
  5866. inversify_1.injectable(),
  5867. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  5868. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),
  5869. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),
  5870. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  5871. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  5872. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5873. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5874. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _g : Object])
  5875. ], StringArrayScopeCallsWrapperVariableNode);
  5876. exports.StringArrayScopeCallsWrapperVariableNode = StringArrayScopeCallsWrapperVariableNode;
  5877. /***/ }),
  5878. /***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts":
  5879. /*!******************************************************************************************************!*\
  5880. !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts ***!
  5881. \******************************************************************************************************/
  5882. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5883. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5884. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5885. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5886. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5887. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5888. };
  5889. var __metadata = (this && this.__metadata) || function (k, v) {
  5890. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5891. };
  5892. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5893. return function (target, key) { decorator(target, key, paramIndex); }
  5894. };
  5895. var _a, _b;
  5896. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5897. exports.AbstractStringArrayIndexNode = void 0;
  5898. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5899. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5900. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5901. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5902. let AbstractStringArrayIndexNode = class AbstractStringArrayIndexNode {
  5903. constructor(randomGenerator, options) {
  5904. this.randomGenerator = randomGenerator;
  5905. this.options = options;
  5906. }
  5907. };
  5908. AbstractStringArrayIndexNode = __decorate([
  5909. inversify_1.injectable(),
  5910. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5911. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5912. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  5913. ], AbstractStringArrayIndexNode);
  5914. exports.AbstractStringArrayIndexNode = AbstractStringArrayIndexNode;
  5915. /***/ }),
  5916. /***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts":
  5917. /*!***************************************************************************************************************!*\
  5918. !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts ***!
  5919. \***************************************************************************************************************/
  5920. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5921. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5922. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5923. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5924. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5925. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5926. };
  5927. var __metadata = (this && this.__metadata) || function (k, v) {
  5928. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5929. };
  5930. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5931. return function (target, key) { decorator(target, key, paramIndex); }
  5932. };
  5933. var _a, _b;
  5934. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5935. exports.StringArrayHexadecimalNumberIndexNode = void 0;
  5936. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5937. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5938. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5939. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5940. const AbstractStringArrayIndexNode_1 = __webpack_require__(/*! ./AbstractStringArrayIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts");
  5941. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5942. const NumberUtils_1 = __webpack_require__(/*! ../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  5943. let StringArrayHexadecimalNumberIndexNode = class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {
  5944. constructor(randomGenerator, options) {
  5945. super(randomGenerator, options);
  5946. }
  5947. getNode(index) {
  5948. const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);
  5949. return NodeFactory_1.NodeFactory.literalNode(index, hexadecimalIndex);
  5950. }
  5951. };
  5952. StringArrayHexadecimalNumberIndexNode = __decorate([
  5953. inversify_1.injectable(),
  5954. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5955. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  5956. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  5957. ], StringArrayHexadecimalNumberIndexNode);
  5958. exports.StringArrayHexadecimalNumberIndexNode = StringArrayHexadecimalNumberIndexNode;
  5959. /***/ }),
  5960. /***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts":
  5961. /*!**********************************************************************************************************************!*\
  5962. !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts ***!
  5963. \**********************************************************************************************************************/
  5964. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  5965. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  5966. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  5967. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5968. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5969. return c > 3 && r && Object.defineProperty(target, key, r), r;
  5970. };
  5971. var __metadata = (this && this.__metadata) || function (k, v) {
  5972. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  5973. };
  5974. var __param = (this && this.__param) || function (paramIndex, decorator) {
  5975. return function (target, key) { decorator(target, key, paramIndex); }
  5976. };
  5977. var _a, _b;
  5978. Object.defineProperty(exports, "__esModule", ({ value: true }));
  5979. exports.StringArrayHexadecimalNumericStringIndexNode = void 0;
  5980. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5981. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  5982. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  5983. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5984. const AbstractStringArrayIndexNode_1 = __webpack_require__(/*! ./AbstractStringArrayIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts");
  5985. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5986. const NumberUtils_1 = __webpack_require__(/*! ../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  5987. let StringArrayHexadecimalNumericStringIndexNode = class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {
  5988. constructor(randomGenerator, options) {
  5989. super(randomGenerator, options);
  5990. }
  5991. getNode(index) {
  5992. const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);
  5993. return NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);
  5994. }
  5995. };
  5996. StringArrayHexadecimalNumericStringIndexNode = __decorate([
  5997. inversify_1.injectable(),
  5998. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  5999. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  6000. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  6001. ], StringArrayHexadecimalNumericStringIndexNode);
  6002. exports.StringArrayHexadecimalNumericStringIndexNode = StringArrayHexadecimalNumericStringIndexNode;
  6003. /***/ }),
  6004. /***/ "./src/decorators/Initializable.ts":
  6005. /*!*****************************************!*\
  6006. !*** ./src/decorators/Initializable.ts ***!
  6007. \*****************************************/
  6008. /***/ ((__unused_webpack_module, exports) => {
  6009. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6010. exports.initializable = void 0;
  6011. const decoratorName = 'initializable';
  6012. const defaultDescriptor = {
  6013. configurable: true,
  6014. enumerable: true
  6015. };
  6016. const initializedTargetMetadataKey = '_initialized';
  6017. const initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';
  6018. const wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';
  6019. const constructorMethodName = 'constructor';
  6020. const initializeMethodName = 'initialize';
  6021. function initializable() {
  6022. return (target, propertyKey) => {
  6023. const initializeMethod = target[initializeMethodName];
  6024. if (!initializeMethod || typeof initializeMethod !== 'function') {
  6025. throw new Error(`\`${initializeMethodName}\` method with initialization logic not ` +
  6026. `found. \`@${decoratorName}\` decorator requires \`${initializeMethodName}\` method`);
  6027. }
  6028. initializeTargetMetadata(initializedTargetMetadataKey, false, target);
  6029. initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);
  6030. initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);
  6031. wrapTargetMethodsInInitializedCheck(target);
  6032. wrapInitializeMethodInInitializeCheck(target, propertyKey);
  6033. return wrapInitializableProperty(target, propertyKey);
  6034. };
  6035. }
  6036. exports.initializable = initializable;
  6037. function initializeTargetMetadata(metadataKey, metadataValue, target) {
  6038. const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);
  6039. if (!hasInitializedMetadata) {
  6040. Reflect.defineMetadata(metadataKey, metadataValue, target);
  6041. }
  6042. }
  6043. function wrapTargetMethodsInInitializedCheck(target) {
  6044. const ownPropertyNames = Object.getOwnPropertyNames(target);
  6045. const prohibitedPropertyNames = new Set([initializeMethodName, constructorMethodName]);
  6046. ownPropertyNames.forEach((propertyName) => {
  6047. var _a;
  6048. const initializablePropertiesSet = Reflect
  6049. .getMetadata(initializablePropertiesSetMetadataKey, target);
  6050. const wrappedMethodsSet = Reflect
  6051. .getMetadata(wrappedMethodsSetMetadataKey, target);
  6052. const isProhibitedPropertyName = prohibitedPropertyNames.has(propertyName)
  6053. || initializablePropertiesSet.has(propertyName)
  6054. || wrappedMethodsSet.has(propertyName);
  6055. if (isProhibitedPropertyName) {
  6056. return;
  6057. }
  6058. const targetProperty = target[propertyName];
  6059. if (typeof targetProperty !== 'function') {
  6060. return;
  6061. }
  6062. const methodDescriptor = (_a = Object
  6063. .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor;
  6064. const originalMethod = methodDescriptor.value;
  6065. Object.defineProperty(target, propertyName, {
  6066. ...methodDescriptor,
  6067. value() {
  6068. if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {
  6069. throw new Error(`Class should be initialized with \`${initializeMethodName}()\` method`);
  6070. }
  6071. return originalMethod.apply(this, arguments);
  6072. }
  6073. });
  6074. wrappedMethodsSet.add(propertyName);
  6075. });
  6076. }
  6077. function wrapInitializeMethodInInitializeCheck(target, propertyKey) {
  6078. var _a;
  6079. const methodDescriptor = (_a = Object
  6080. .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor;
  6081. const originalMethod = methodDescriptor.value;
  6082. Object.defineProperty(target, initializeMethodName, {
  6083. ...methodDescriptor,
  6084. value: function () {
  6085. Reflect.defineMetadata(initializedTargetMetadataKey, true, this);
  6086. const result = originalMethod.apply(this, arguments);
  6087. if (this[propertyKey]) { }
  6088. return result;
  6089. }
  6090. });
  6091. }
  6092. function wrapInitializableProperty(target, propertyKey) {
  6093. var _a;
  6094. const initializablePropertiesSet = Reflect
  6095. .getMetadata(initializablePropertiesSetMetadataKey, target);
  6096. initializablePropertiesSet.add(propertyKey);
  6097. const initializablePropertyMetadataKey = `_${propertyKey.toString()}`;
  6098. const propertyDescriptor = (_a = Object
  6099. .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor;
  6100. Object.defineProperty(target, propertyKey, {
  6101. ...propertyDescriptor,
  6102. get: function () {
  6103. if (this[initializablePropertyMetadataKey] === undefined) {
  6104. throw new Error(`Property \`${propertyKey.toString()}\` is not initialized! Initialize it first!`);
  6105. }
  6106. return this[initializablePropertyMetadataKey];
  6107. },
  6108. set: function (newVal) {
  6109. this[initializablePropertyMetadataKey] = newVal;
  6110. }
  6111. });
  6112. return propertyDescriptor;
  6113. }
  6114. /***/ }),
  6115. /***/ "./src/enums/ObfuscationTarget.ts":
  6116. /*!****************************************!*\
  6117. !*** ./src/enums/ObfuscationTarget.ts ***!
  6118. \****************************************/
  6119. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6120. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6121. exports.ObfuscationTarget = void 0;
  6122. const Utils_1 = __webpack_require__(/*! ../utils/Utils */ "./src/utils/Utils.ts");
  6123. exports.ObfuscationTarget = Utils_1.Utils.makeEnum({
  6124. Browser: 'browser',
  6125. BrowserNoEval: 'browser-no-eval',
  6126. Node: 'node'
  6127. });
  6128. /***/ }),
  6129. /***/ "./src/enums/StringSeparator.ts":
  6130. /*!**************************************!*\
  6131. !*** ./src/enums/StringSeparator.ts ***!
  6132. \**************************************/
  6133. /***/ ((__unused_webpack_module, exports) => {
  6134. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6135. exports.StringSeparator = void 0;
  6136. var StringSeparator;
  6137. (function (StringSeparator) {
  6138. StringSeparator["Comma"] = ",";
  6139. StringSeparator["Dot"] = ".";
  6140. StringSeparator["VerticalLine"] = "|";
  6141. })(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {}));
  6142. /***/ }),
  6143. /***/ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts":
  6144. /*!*************************************************************************!*\
  6145. !*** ./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts ***!
  6146. \*************************************************************************/
  6147. /***/ ((__unused_webpack_module, exports) => {
  6148. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6149. exports.CalleeDataExtractor = void 0;
  6150. var CalleeDataExtractor;
  6151. (function (CalleeDataExtractor) {
  6152. CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor";
  6153. CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor";
  6154. CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor";
  6155. })(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));
  6156. /***/ }),
  6157. /***/ "./src/enums/code-transformers/CodeTransformationStage.ts":
  6158. /*!****************************************************************!*\
  6159. !*** ./src/enums/code-transformers/CodeTransformationStage.ts ***!
  6160. \****************************************************************/
  6161. /***/ ((__unused_webpack_module, exports) => {
  6162. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6163. exports.CodeTransformationStage = void 0;
  6164. var CodeTransformationStage;
  6165. (function (CodeTransformationStage) {
  6166. CodeTransformationStage["PreparingTransformers"] = "PreparingTransformers";
  6167. CodeTransformationStage["FinalizingTransformers"] = "FinalizingTransformers";
  6168. })(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {}));
  6169. /***/ }),
  6170. /***/ "./src/enums/code-transformers/CodeTransformer.ts":
  6171. /*!********************************************************!*\
  6172. !*** ./src/enums/code-transformers/CodeTransformer.ts ***!
  6173. \********************************************************/
  6174. /***/ ((__unused_webpack_module, exports) => {
  6175. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6176. exports.CodeTransformer = void 0;
  6177. var CodeTransformer;
  6178. (function (CodeTransformer) {
  6179. CodeTransformer["HashbangOperatorTransformer"] = "HashbangOperatorTransformer";
  6180. })(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {}));
  6181. /***/ }),
  6182. /***/ "./src/enums/custom-code-helpers/CustomCodeHelper.ts":
  6183. /*!***********************************************************!*\
  6184. !*** ./src/enums/custom-code-helpers/CustomCodeHelper.ts ***!
  6185. \***********************************************************/
  6186. /***/ ((__unused_webpack_module, exports) => {
  6187. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6188. exports.CustomCodeHelper = void 0;
  6189. var CustomCodeHelper;
  6190. (function (CustomCodeHelper) {
  6191. CustomCodeHelper["CallsControllerFunction"] = "CallsControllerFunction";
  6192. CustomCodeHelper["ConsoleOutputDisable"] = "ConsoleOutputDisable";
  6193. CustomCodeHelper["DebugProtectionFunctionCall"] = "DebugProtectionFunctionCall";
  6194. CustomCodeHelper["DebugProtectionFunctionInterval"] = "DebugProtectionFunctionInterval";
  6195. CustomCodeHelper["DebugProtectionFunction"] = "DebugProtectionFunction";
  6196. CustomCodeHelper["DomainLock"] = "DomainLock";
  6197. CustomCodeHelper["SelfDefendingUnicode"] = "SelfDefendingUnicode";
  6198. CustomCodeHelper["StringArray"] = "StringArray";
  6199. CustomCodeHelper["StringArrayCallsWrapper"] = "StringArrayCallsWrapper";
  6200. CustomCodeHelper["StringArrayCallsWrapperBase64"] = "StringArrayCallsWrapperBase64";
  6201. CustomCodeHelper["StringArrayCallsWrapperRc4"] = "StringArrayCallsWrapperRc4";
  6202. CustomCodeHelper["StringArrayRotateFunction"] = "StringArrayRotateFunction";
  6203. })(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {}));
  6204. /***/ }),
  6205. /***/ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts":
  6206. /*!****************************************************************!*\
  6207. !*** ./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts ***!
  6208. \****************************************************************/
  6209. /***/ ((__unused_webpack_module, exports) => {
  6210. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6211. exports.CustomCodeHelperGroup = void 0;
  6212. var CustomCodeHelperGroup;
  6213. (function (CustomCodeHelperGroup) {
  6214. CustomCodeHelperGroup["ConsoleOutput"] = "ConsoleOutput";
  6215. CustomCodeHelperGroup["DebugProtection"] = "DebugProtection";
  6216. CustomCodeHelperGroup["DomainLock"] = "DomainLock";
  6217. CustomCodeHelperGroup["SelfDefending"] = "SelfDefending";
  6218. CustomCodeHelperGroup["StringArray"] = "StringArray";
  6219. })(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {}));
  6220. /***/ }),
  6221. /***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts":
  6222. /*!*********************************************************!*\
  6223. !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***!
  6224. \*********************************************************/
  6225. /***/ ((__unused_webpack_module, exports) => {
  6226. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6227. exports.ControlFlowCustomNode = void 0;
  6228. var ControlFlowCustomNode;
  6229. (function (ControlFlowCustomNode) {
  6230. ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode";
  6231. ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode";
  6232. ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode";
  6233. ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode";
  6234. ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode";
  6235. ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode";
  6236. ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode";
  6237. ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode";
  6238. ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode";
  6239. })(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));
  6240. /***/ }),
  6241. /***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts":
  6242. /*!***************************************************************!*\
  6243. !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***!
  6244. \***************************************************************/
  6245. /***/ ((__unused_webpack_module, exports) => {
  6246. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6247. exports.DeadCodeInjectionCustomNode = void 0;
  6248. var DeadCodeInjectionCustomNode;
  6249. (function (DeadCodeInjectionCustomNode) {
  6250. DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode";
  6251. })(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));
  6252. /***/ }),
  6253. /***/ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts":
  6254. /*!*****************************************************************************!*\
  6255. !*** ./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts ***!
  6256. \*****************************************************************************/
  6257. /***/ ((__unused_webpack_module, exports) => {
  6258. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6259. exports.ObjectExpressionKeysTransformerCustomNode = void 0;
  6260. var ObjectExpressionKeysTransformerCustomNode;
  6261. (function (ObjectExpressionKeysTransformerCustomNode) {
  6262. ObjectExpressionKeysTransformerCustomNode["ObjectExpressionVariableDeclarationHostNode"] = "ObjectExpressionVariableDeclarationHostNode";
  6263. })(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {}));
  6264. /***/ }),
  6265. /***/ "./src/enums/custom-nodes/StringArrayCustomNode.ts":
  6266. /*!*********************************************************!*\
  6267. !*** ./src/enums/custom-nodes/StringArrayCustomNode.ts ***!
  6268. \*********************************************************/
  6269. /***/ ((__unused_webpack_module, exports) => {
  6270. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6271. exports.StringArrayCustomNode = void 0;
  6272. var StringArrayCustomNode;
  6273. (function (StringArrayCustomNode) {
  6274. StringArrayCustomNode["StringArrayCallNode"] = "StringArrayCallNode";
  6275. StringArrayCustomNode["StringArrayScopeCallsWrapperFunctionNode"] = "StringArrayScopeCallsWrapperFunctionNode";
  6276. StringArrayCustomNode["StringArrayScopeCallsWrapperVariableNode"] = "StringArrayScopeCallsWrapperVariableNode";
  6277. })(StringArrayCustomNode = exports.StringArrayCustomNode || (exports.StringArrayCustomNode = {}));
  6278. /***/ }),
  6279. /***/ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts":
  6280. /*!*********************************************************************************!*\
  6281. !*** ./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts ***!
  6282. \*********************************************************************************/
  6283. /***/ ((__unused_webpack_module, exports) => {
  6284. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6285. exports.StringArrayIndexNode = void 0;
  6286. var StringArrayIndexNode;
  6287. (function (StringArrayIndexNode) {
  6288. StringArrayIndexNode["StringArrayHexadecimalNumberIndexNode"] = "StringArrayHexadecimalNumberIndexNode";
  6289. StringArrayIndexNode["StringArrayHexadecimalNumericStringIndexNode"] = "StringArrayHexadecimalNumericStringIndexNode";
  6290. })(StringArrayIndexNode = exports.StringArrayIndexNode || (exports.StringArrayIndexNode = {}));
  6291. /***/ }),
  6292. /***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts":
  6293. /*!**************************************************************************************!*\
  6294. !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***!
  6295. \**************************************************************************************/
  6296. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6297. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6298. exports.IdentifierNamesGenerator = void 0;
  6299. const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts");
  6300. exports.IdentifierNamesGenerator = Utils_1.Utils.makeEnum({
  6301. DictionaryIdentifierNamesGenerator: 'dictionary',
  6302. HexadecimalIdentifierNamesGenerator: 'hexadecimal',
  6303. MangledIdentifierNamesGenerator: 'mangled',
  6304. MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled'
  6305. });
  6306. /***/ }),
  6307. /***/ "./src/enums/logger/LoggingMessage.ts":
  6308. /*!********************************************!*\
  6309. !*** ./src/enums/logger/LoggingMessage.ts ***!
  6310. \********************************************/
  6311. /***/ ((__unused_webpack_module, exports) => {
  6312. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6313. exports.LoggingMessage = void 0;
  6314. var LoggingMessage;
  6315. (function (LoggingMessage) {
  6316. LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled...";
  6317. LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec.";
  6318. LoggingMessage["ObfuscationStarted"] = "Obfuscation started...";
  6319. LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s...";
  6320. LoggingMessage["CodeTransformationStage"] = "Code transformation stage: %s...";
  6321. LoggingMessage["NodeTransformationStage"] = "AST transformation stage: %s...";
  6322. LoggingMessage["Version"] = "Version: %s";
  6323. })(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));
  6324. /***/ }),
  6325. /***/ "./src/enums/logger/LoggingPrefix.ts":
  6326. /*!*******************************************!*\
  6327. !*** ./src/enums/logger/LoggingPrefix.ts ***!
  6328. \*******************************************/
  6329. /***/ ((__unused_webpack_module, exports) => {
  6330. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6331. exports.LoggingPrefix = void 0;
  6332. var LoggingPrefix;
  6333. (function (LoggingPrefix) {
  6334. LoggingPrefix["Base"] = "[javascript-obfuscator]";
  6335. LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]";
  6336. })(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));
  6337. /***/ }),
  6338. /***/ "./src/enums/node-transformers/NodeTransformationStage.ts":
  6339. /*!****************************************************************!*\
  6340. !*** ./src/enums/node-transformers/NodeTransformationStage.ts ***!
  6341. \****************************************************************/
  6342. /***/ ((__unused_webpack_module, exports) => {
  6343. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6344. exports.NodeTransformationStage = void 0;
  6345. var NodeTransformationStage;
  6346. (function (NodeTransformationStage) {
  6347. NodeTransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening";
  6348. NodeTransformationStage["Converting"] = "Converting";
  6349. NodeTransformationStage["DeadCodeInjection"] = "DeadCodeInjection";
  6350. NodeTransformationStage["Finalizing"] = "Finalizing";
  6351. NodeTransformationStage["Initializing"] = "Initializing";
  6352. NodeTransformationStage["Preparing"] = "Preparing";
  6353. NodeTransformationStage["RenameIdentifiers"] = "RenameIdentifiers";
  6354. NodeTransformationStage["RenameProperties"] = "RenameProperties";
  6355. NodeTransformationStage["Simplifying"] = "Simplifying";
  6356. NodeTransformationStage["StringArray"] = "StringArray";
  6357. })(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {}));
  6358. /***/ }),
  6359. /***/ "./src/enums/node-transformers/NodeTransformer.ts":
  6360. /*!********************************************************!*\
  6361. !*** ./src/enums/node-transformers/NodeTransformer.ts ***!
  6362. \********************************************************/
  6363. /***/ ((__unused_webpack_module, exports) => {
  6364. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6365. exports.NodeTransformer = void 0;
  6366. var NodeTransformer;
  6367. (function (NodeTransformer) {
  6368. NodeTransformer["BooleanLiteralTransformer"] = "BooleanLiteralTransformer";
  6369. NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer";
  6370. NodeTransformer["BlockStatementSimplifyTransformer"] = "BlockStatementSimplifyTransformer";
  6371. NodeTransformer["CommentsTransformer"] = "CommentsTransformer";
  6372. NodeTransformer["CustomCodeHelpersTransformer"] = "CustomCodeHelpersTransformer";
  6373. NodeTransformer["DeadCodeInjectionIdentifiersTransformer"] = "DeadCodeInjectionIdentifiersTransformer";
  6374. NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer";
  6375. NodeTransformer["DirectivePlacementTransformer"] = "DirectivePlacementTransformer";
  6376. NodeTransformer["EscapeSequenceTransformer"] = "EscapeSequenceTransformer";
  6377. NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer";
  6378. NodeTransformer["ExportSpecifierTransformer"] = "ExportSpecifierTransformer";
  6379. NodeTransformer["ExpressionStatementsMergeTransformer"] = "ExpressionStatementsMergeTransformer";
  6380. NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer";
  6381. NodeTransformer["IfStatementSimplifyTransformer"] = "IfStatementSimplifyTransformer";
  6382. NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer";
  6383. NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer";
  6384. NodeTransformer["MetadataTransformer"] = "MetadataTransformer";
  6385. NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer";
  6386. NodeTransformer["NumberLiteralTransformer"] = "NumberLiteralTransformer";
  6387. NodeTransformer["NumberToNumericalExpressionTransformer"] = "NumberToNumericalExpressionTransformer";
  6388. NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer";
  6389. NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer";
  6390. NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer";
  6391. NodeTransformer["ObjectPatternPropertiesTransformer"] = "ObjectPatternPropertiesTransformer";
  6392. NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer";
  6393. NodeTransformer["RenamePropertiesTransformer"] = "RenamePropertiesTransformer";
  6394. NodeTransformer["ScopeIdentifiersTransformer"] = "ScopeIdentifiersTransformer";
  6395. NodeTransformer["ScopeThroughIdentifiersTransformer"] = "ScopeThroughIdentifiersTransformer";
  6396. NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer";
  6397. NodeTransformer["StringArrayTransformer"] = "StringArrayTransformer";
  6398. NodeTransformer["StringArrayRotateFunctionTransformer"] = "StringArrayRotateFunctionTransformer";
  6399. NodeTransformer["StringArrayScopeCallsWrapperTransformer"] = "StringArrayScopeCallsWrapperTransformer";
  6400. NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer";
  6401. NodeTransformer["VariableDeclarationsMergeTransformer"] = "VariableDeclarationsMergeTransformer";
  6402. NodeTransformer["VariablePreserveTransformer"] = "VariablePreserveTransformer";
  6403. })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
  6404. /***/ }),
  6405. /***/ "./src/enums/node-transformers/VisitorDirection.ts":
  6406. /*!*********************************************************!*\
  6407. !*** ./src/enums/node-transformers/VisitorDirection.ts ***!
  6408. \*********************************************************/
  6409. /***/ ((__unused_webpack_module, exports) => {
  6410. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6411. exports.VisitorDirection = void 0;
  6412. var VisitorDirection;
  6413. (function (VisitorDirection) {
  6414. VisitorDirection["Enter"] = "enter";
  6415. VisitorDirection["Leave"] = "leave";
  6416. })(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));
  6417. /***/ }),
  6418. /***/ "./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts":
  6419. /*!*************************************************************************************************************!*\
  6420. !*** ./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts ***!
  6421. \*************************************************************************************************************/
  6422. /***/ ((__unused_webpack_module, exports) => {
  6423. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6424. exports.ControlFlowReplacer = void 0;
  6425. var ControlFlowReplacer;
  6426. (function (ControlFlowReplacer) {
  6427. ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer";
  6428. ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer";
  6429. ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer";
  6430. ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer";
  6431. })(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));
  6432. /***/ }),
  6433. /***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts":
  6434. /*!****************************************************************************************************************!*\
  6435. !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts ***!
  6436. \****************************************************************************************************************/
  6437. /***/ ((__unused_webpack_module, exports) => {
  6438. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6439. exports.ObjectExpressionExtractor = void 0;
  6440. var ObjectExpressionExtractor;
  6441. (function (ObjectExpressionExtractor) {
  6442. ObjectExpressionExtractor["BasePropertiesExtractor"] = "BasePropertiesExtractor";
  6443. ObjectExpressionExtractor["ObjectExpressionToVariableDeclarationExtractor"] = "ObjectExpressionToVariableDeclarationExtractor";
  6444. })(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {}));
  6445. /***/ }),
  6446. /***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts":
  6447. /*!***************************************************************************************************!*\
  6448. !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***!
  6449. \***************************************************************************************************/
  6450. /***/ ((__unused_webpack_module, exports) => {
  6451. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6452. exports.ObfuscatingGuard = void 0;
  6453. var ObfuscatingGuard;
  6454. (function (ObfuscatingGuard) {
  6455. ObfuscatingGuard["BlackListObfuscatingGuard"] = "BlackListObfuscatingGuard";
  6456. ObfuscatingGuard["ConditionalCommentObfuscatingGuard"] = "ConditionalCommentObfuscatingGuard";
  6457. ObfuscatingGuard["ForceTransformStringObfuscatingGuard"] = "ForceTransformStringObfuscatingGuard";
  6458. ObfuscatingGuard["IgnoredRequireImportObfuscatingGuard"] = "IgnoredRequireImportObfuscatingGuard";
  6459. ObfuscatingGuard["ReservedStringObfuscatingGuard"] = "ReservedStringObfuscatingGuard";
  6460. })(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));
  6461. /***/ }),
  6462. /***/ "./src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode.ts":
  6463. /*!********************************************************************************************!*\
  6464. !*** ./src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode.ts ***!
  6465. \********************************************************************************************/
  6466. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6467. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6468. exports.RenamePropertiesMode = void 0;
  6469. const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts");
  6470. exports.RenamePropertiesMode = Utils_1.Utils.makeEnum({
  6471. Safe: 'safe',
  6472. Unsafe: 'unsafe'
  6473. });
  6474. /***/ }),
  6475. /***/ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts":
  6476. /*!**************************************************************************************!*\
  6477. !*** ./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts ***!
  6478. \**************************************************************************************/
  6479. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6480. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6481. exports.StringArrayEncoding = void 0;
  6482. const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts");
  6483. exports.StringArrayEncoding = Utils_1.Utils.makeEnum({
  6484. None: 'none',
  6485. Base64: 'base64',
  6486. Rc4: 'rc4'
  6487. });
  6488. /***/ }),
  6489. /***/ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts":
  6490. /*!*****************************************************************************************!*\
  6491. !*** ./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts ***!
  6492. \*****************************************************************************************/
  6493. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6494. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6495. exports.StringArrayIndexesType = void 0;
  6496. const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts");
  6497. exports.StringArrayIndexesType = Utils_1.Utils.makeEnum({
  6498. HexadecimalNumber: 'hexadecimal-number',
  6499. HexadecimalNumericString: 'hexadecimal-numeric-string'
  6500. });
  6501. /***/ }),
  6502. /***/ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts":
  6503. /*!******************************************************************************************!*\
  6504. !*** ./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts ***!
  6505. \******************************************************************************************/
  6506. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6507. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6508. exports.StringArrayWrappersType = void 0;
  6509. const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts");
  6510. exports.StringArrayWrappersType = Utils_1.Utils.makeEnum({
  6511. Variable: 'variable',
  6512. Function: 'function',
  6513. });
  6514. /***/ }),
  6515. /***/ "./src/enums/node/NodeType.ts":
  6516. /*!************************************!*\
  6517. !*** ./src/enums/node/NodeType.ts ***!
  6518. \************************************/
  6519. /***/ ((__unused_webpack_module, exports) => {
  6520. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6521. exports.NodeType = void 0;
  6522. var NodeType;
  6523. (function (NodeType) {
  6524. NodeType["ArrayExpression"] = "ArrayExpression";
  6525. NodeType["ArrayPattern"] = "ArrayPattern";
  6526. NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression";
  6527. NodeType["AssignmentExpression"] = "AssignmentExpression";
  6528. NodeType["AssignmentPattern"] = "AssignmentPattern";
  6529. NodeType["AwaitExpression"] = "AwaitExpression";
  6530. NodeType["BinaryExpression"] = "BinaryExpression";
  6531. NodeType["BlockStatement"] = "BlockStatement";
  6532. NodeType["BreakStatement"] = "BreakStatement";
  6533. NodeType["CallExpression"] = "CallExpression";
  6534. NodeType["CatchClause"] = "CatchClause";
  6535. NodeType["ChainExpression"] = "ChainExpression";
  6536. NodeType["ClassDeclaration"] = "ClassDeclaration";
  6537. NodeType["ConditionalExpression"] = "ConditionalExpression";
  6538. NodeType["ContinueStatement"] = "ContinueStatement";
  6539. NodeType["DoWhileStatement"] = "DoWhileStatement";
  6540. NodeType["ExportAllDeclaration"] = "ExportAllDeclaration";
  6541. NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration";
  6542. NodeType["ExportSpecifier"] = "ExportSpecifier";
  6543. NodeType["ExpressionStatement"] = "ExpressionStatement";
  6544. NodeType["ForStatement"] = "ForStatement";
  6545. NodeType["ForInStatement"] = "ForInStatement";
  6546. NodeType["ForOfStatement"] = "ForOfStatement";
  6547. NodeType["FunctionDeclaration"] = "FunctionDeclaration";
  6548. NodeType["FunctionExpression"] = "FunctionExpression";
  6549. NodeType["Identifier"] = "Identifier";
  6550. NodeType["IfStatement"] = "IfStatement";
  6551. NodeType["ImportDeclaration"] = "ImportDeclaration";
  6552. NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier";
  6553. NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier";
  6554. NodeType["ImportSpecifier"] = "ImportSpecifier";
  6555. NodeType["LabeledStatement"] = "LabeledStatement";
  6556. NodeType["Literal"] = "Literal";
  6557. NodeType["LogicalExpression"] = "LogicalExpression";
  6558. NodeType["MemberExpression"] = "MemberExpression";
  6559. NodeType["MethodDefinition"] = "MethodDefinition";
  6560. NodeType["ObjectExpression"] = "ObjectExpression";
  6561. NodeType["ObjectPattern"] = "ObjectPattern";
  6562. NodeType["Program"] = "Program";
  6563. NodeType["Property"] = "Property";
  6564. NodeType["PropertyDefinition"] = "PropertyDefinition";
  6565. NodeType["RestElement"] = "RestElement";
  6566. NodeType["ReturnStatement"] = "ReturnStatement";
  6567. NodeType["SequenceExpression"] = "SequenceExpression";
  6568. NodeType["SpreadElement"] = "SpreadElement";
  6569. NodeType["Super"] = "Super";
  6570. NodeType["SwitchCase"] = "SwitchCase";
  6571. NodeType["SwitchStatement"] = "SwitchStatement";
  6572. NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression";
  6573. NodeType["TemplateElement"] = "TemplateElement";
  6574. NodeType["TemplateLiteral"] = "TemplateLiteral";
  6575. NodeType["ThrowStatement"] = "ThrowStatement";
  6576. NodeType["TryStatement"] = "TryStatement";
  6577. NodeType["UnaryExpression"] = "UnaryExpression";
  6578. NodeType["UpdateExpression"] = "UpdateExpression";
  6579. NodeType["VariableDeclaration"] = "VariableDeclaration";
  6580. NodeType["VariableDeclarator"] = "VariableDeclarator";
  6581. NodeType["WithStatement"] = "WithStatement";
  6582. NodeType["WhileStatement"] = "WhileStatement";
  6583. NodeType["YieldExpression"] = "YieldExpression";
  6584. })(NodeType = exports.NodeType || (exports.NodeType = {}));
  6585. /***/ }),
  6586. /***/ "./src/enums/node/ObfuscatingGuardResult.ts":
  6587. /*!**************************************************!*\
  6588. !*** ./src/enums/node/ObfuscatingGuardResult.ts ***!
  6589. \**************************************************/
  6590. /***/ ((__unused_webpack_module, exports) => {
  6591. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6592. exports.ObfuscatingGuardResult = void 0;
  6593. var ObfuscatingGuardResult;
  6594. (function (ObfuscatingGuardResult) {
  6595. ObfuscatingGuardResult["ForceTransform"] = "ForceTransform";
  6596. ObfuscatingGuardResult["Ignore"] = "Ignore";
  6597. ObfuscatingGuardResult["Transform"] = "Transform";
  6598. })(ObfuscatingGuardResult = exports.ObfuscatingGuardResult || (exports.ObfuscatingGuardResult = {}));
  6599. /***/ }),
  6600. /***/ "./src/enums/options/presets/OptionsPreset.ts":
  6601. /*!****************************************************!*\
  6602. !*** ./src/enums/options/presets/OptionsPreset.ts ***!
  6603. \****************************************************/
  6604. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6605. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6606. exports.OptionsPreset = void 0;
  6607. const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts");
  6608. exports.OptionsPreset = Utils_1.Utils.makeEnum({
  6609. Default: 'default',
  6610. LowObfuscation: 'low-obfuscation',
  6611. MediumObfuscation: 'medium-obfuscation',
  6612. HighObfuscation: 'high-obfuscation'
  6613. });
  6614. /***/ }),
  6615. /***/ "./src/enums/source-map/SourceMapMode.ts":
  6616. /*!***********************************************!*\
  6617. !*** ./src/enums/source-map/SourceMapMode.ts ***!
  6618. \***********************************************/
  6619. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  6620. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6621. exports.SourceMapMode = void 0;
  6622. const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  6623. exports.SourceMapMode = Utils_1.Utils.makeEnum({
  6624. Inline: 'inline',
  6625. Separate: 'separate'
  6626. });
  6627. /***/ }),
  6628. /***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts":
  6629. /*!****************************************************************************************!*\
  6630. !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***!
  6631. \****************************************************************************************/
  6632. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  6633. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  6634. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  6635. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  6636. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  6637. return c > 3 && r && Object.defineProperty(target, key, r), r;
  6638. };
  6639. var __metadata = (this && this.__metadata) || function (k, v) {
  6640. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  6641. };
  6642. var __param = (this && this.__param) || function (paramIndex, decorator) {
  6643. return function (target, key) { decorator(target, key, paramIndex); }
  6644. };
  6645. var _a, _b;
  6646. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6647. exports.AbstractIdentifierNamesGenerator = void 0;
  6648. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6649. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6650. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  6651. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  6652. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6653. let AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator {
  6654. constructor(randomGenerator, options) {
  6655. this.preservedNamesSet = new Set();
  6656. this.lexicalScopesPreservedNamesMap = new Map();
  6657. this.randomGenerator = randomGenerator;
  6658. this.options = options;
  6659. }
  6660. generate(lexicalScopeNode, nameLength) {
  6661. return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode)
  6662. ? this.generateForGlobalScope()
  6663. : this.generateForLexicalScope(lexicalScopeNode);
  6664. }
  6665. preserveName(name) {
  6666. this.preservedNamesSet.add(name);
  6667. }
  6668. preserveNameForLexicalScope(name, lexicalScopeNode) {
  6669. var _a;
  6670. const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set();
  6671. preservedNamesForLexicalScopeSet.add(name);
  6672. this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet);
  6673. }
  6674. isValidIdentifierName(name) {
  6675. return this.notReservedName(name) && !this.preservedNamesSet.has(name);
  6676. }
  6677. isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) {
  6678. var _a;
  6679. if (!this.isValidIdentifierName(name)) {
  6680. return false;
  6681. }
  6682. for (const lexicalScope of lexicalScopeNodes) {
  6683. const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null;
  6684. if (!preservedNamesForLexicalScopeSet) {
  6685. continue;
  6686. }
  6687. if (preservedNamesForLexicalScopeSet.has(name)) {
  6688. return false;
  6689. }
  6690. }
  6691. return true;
  6692. }
  6693. notReservedName(name) {
  6694. return this.options.reservedNames.length
  6695. ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null)
  6696. : true;
  6697. }
  6698. };
  6699. AbstractIdentifierNamesGenerator = __decorate([
  6700. inversify_1.injectable(),
  6701. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  6702. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  6703. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  6704. ], AbstractIdentifierNamesGenerator);
  6705. exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;
  6706. /***/ }),
  6707. /***/ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts":
  6708. /*!******************************************************************************************!*\
  6709. !*** ./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts ***!
  6710. \******************************************************************************************/
  6711. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  6712. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  6713. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  6714. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  6715. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  6716. return c > 3 && r && Object.defineProperty(target, key, r), r;
  6717. };
  6718. var __metadata = (this && this.__metadata) || function (k, v) {
  6719. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  6720. };
  6721. var __param = (this && this.__param) || function (paramIndex, decorator) {
  6722. return function (target, key) { decorator(target, key, paramIndex); }
  6723. };
  6724. var DictionaryIdentifierNamesGenerator_1, _a, _b, _c;
  6725. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6726. exports.DictionaryIdentifierNamesGenerator = void 0;
  6727. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6728. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6729. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  6730. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  6731. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  6732. const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  6733. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6734. let DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {
  6735. constructor(randomGenerator, options, arrayUtils) {
  6736. super(randomGenerator, options);
  6737. this.arrayUtils = arrayUtils;
  6738. this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary));
  6739. this.identifiersIterator = this.identifierNamesSet.values();
  6740. }
  6741. static incrementIdentifierName(identifierName) {
  6742. let newIdentifierName = '';
  6743. let isSuccess = false;
  6744. for (const character of identifierName) {
  6745. if (!isSuccess && character === character.toUpperCase()) {
  6746. newIdentifierName += character.toLowerCase();
  6747. }
  6748. else if (!isSuccess && character === character.toLowerCase()) {
  6749. newIdentifierName += character.toUpperCase();
  6750. isSuccess = true;
  6751. }
  6752. else {
  6753. newIdentifierName += character;
  6754. }
  6755. }
  6756. if (isSuccess) {
  6757. return newIdentifierName;
  6758. }
  6759. return null;
  6760. }
  6761. generateNext() {
  6762. const identifierName = this.generateNewDictionaryName();
  6763. this.preserveName(identifierName);
  6764. return identifierName;
  6765. }
  6766. generateForGlobalScope() {
  6767. const prefix = this.options.identifiersPrefix ?
  6768. `${this.options.identifiersPrefix}`
  6769. : '';
  6770. const identifierName = this.generateNewDictionaryName();
  6771. const identifierNameWithPrefix = `${prefix}${identifierName}`;
  6772. if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
  6773. return this.generateForGlobalScope();
  6774. }
  6775. this.preserveName(identifierNameWithPrefix);
  6776. return identifierNameWithPrefix;
  6777. }
  6778. generateForLexicalScope(lexicalScopeNode) {
  6779. const lexicalScopes = [
  6780. lexicalScopeNode,
  6781. ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)
  6782. ];
  6783. const identifierName = this.generateNewDictionaryName();
  6784. if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) {
  6785. return this.generateForLexicalScope(lexicalScopeNode);
  6786. }
  6787. this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
  6788. return identifierName;
  6789. }
  6790. generateNewDictionaryName() {
  6791. if (!this.identifierNamesSet.size) {
  6792. throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');
  6793. }
  6794. const iteratorResult = this.identifiersIterator.next();
  6795. if (!iteratorResult.done) {
  6796. const identifierName = iteratorResult.value;
  6797. if (!this.isValidIdentifierName(identifierName)) {
  6798. return this.generateNewDictionaryName();
  6799. }
  6800. return iteratorResult.value;
  6801. }
  6802. this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet]));
  6803. this.identifiersIterator = this.identifierNamesSet.values();
  6804. return this.generateNewDictionaryName();
  6805. }
  6806. getInitialIdentifierNames(identifierNames) {
  6807. const formattedIdentifierNames = identifierNames
  6808. .filter(Boolean)
  6809. .map((identifierName) => identifierName.toLowerCase());
  6810. return this.arrayUtils.shuffle(formattedIdentifierNames);
  6811. }
  6812. getIncrementedIdentifierNames(identifierNames) {
  6813. const formattedIdentifierNames = [];
  6814. for (const identifierName of identifierNames) {
  6815. const newIdentifierName = DictionaryIdentifierNamesGenerator_1
  6816. .incrementIdentifierName(identifierName);
  6817. if (newIdentifierName) {
  6818. formattedIdentifierNames.push(newIdentifierName);
  6819. }
  6820. }
  6821. return this.arrayUtils.shuffle(formattedIdentifierNames);
  6822. }
  6823. };
  6824. DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([
  6825. inversify_1.injectable(),
  6826. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  6827. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  6828. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  6829. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _c : Object])
  6830. ], DictionaryIdentifierNamesGenerator);
  6831. exports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator;
  6832. /***/ }),
  6833. /***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts":
  6834. /*!*******************************************************************************************!*\
  6835. !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***!
  6836. \*******************************************************************************************/
  6837. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  6838. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  6839. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  6840. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  6841. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  6842. return c > 3 && r && Object.defineProperty(target, key, r), r;
  6843. };
  6844. var __metadata = (this && this.__metadata) || function (k, v) {
  6845. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  6846. };
  6847. var __param = (this && this.__param) || function (paramIndex, decorator) {
  6848. return function (target, key) { decorator(target, key, paramIndex); }
  6849. };
  6850. var HexadecimalIdentifierNamesGenerator_1, _a, _b;
  6851. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6852. exports.HexadecimalIdentifierNamesGenerator = void 0;
  6853. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6854. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6855. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  6856. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  6857. const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  6858. const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  6859. const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  6860. let HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {
  6861. constructor(randomGenerator, options) {
  6862. super(randomGenerator, options);
  6863. }
  6864. generateNext(nameLength) {
  6865. const rangeMinInteger = 10000;
  6866. const rangeMaxInteger = 99999999;
  6867. const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);
  6868. const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);
  6869. const prefixLength = Utils_1.Utils.hexadecimalPrefix.length;
  6870. const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength)
  6871. + prefixLength;
  6872. const baseIdentifierName = hexadecimalNumber.slice(0, baseNameLength);
  6873. const identifierName = `_${baseIdentifierName}`;
  6874. if (!this.isValidIdentifierName(identifierName)) {
  6875. return this.generateNext(nameLength);
  6876. }
  6877. this.preserveName(identifierName);
  6878. return identifierName;
  6879. }
  6880. generateForGlobalScope(nameLength) {
  6881. const identifierName = this.generateNext(nameLength);
  6882. return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_');
  6883. }
  6884. generateForLexicalScope(lexicalScopeNode, nameLength) {
  6885. return this.generateNext(nameLength);
  6886. }
  6887. };
  6888. HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;
  6889. HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([
  6890. inversify_1.injectable(),
  6891. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  6892. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  6893. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  6894. ], HexadecimalIdentifierNamesGenerator);
  6895. exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;
  6896. /***/ }),
  6897. /***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts":
  6898. /*!***************************************************************************************!*\
  6899. !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***!
  6900. \***************************************************************************************/
  6901. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  6902. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  6903. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  6904. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  6905. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  6906. return c > 3 && r && Object.defineProperty(target, key, r), r;
  6907. };
  6908. var __metadata = (this && this.__metadata) || function (k, v) {
  6909. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  6910. };
  6911. var __param = (this && this.__param) || function (paramIndex, decorator) {
  6912. return function (target, key) { decorator(target, key, paramIndex); }
  6913. };
  6914. var MangledIdentifierNamesGenerator_1, _a, _b;
  6915. Object.defineProperty(exports, "__esModule", ({ value: true }));
  6916. exports.MangledIdentifierNamesGenerator = void 0;
  6917. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6918. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6919. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  6920. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  6921. const NumbersString_1 = __webpack_require__(/*! ../../constants/NumbersString */ "./src/constants/NumbersString.ts");
  6922. const AlphabetString_1 = __webpack_require__(/*! ../../constants/AlphabetString */ "./src/constants/AlphabetString.ts");
  6923. const AlphabetStringUppercase_1 = __webpack_require__(/*! ../../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts");
  6924. const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  6925. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6926. let MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {
  6927. constructor(randomGenerator, options) {
  6928. super(randomGenerator, options);
  6929. this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
  6930. }
  6931. generateNext(nameLength) {
  6932. const identifierName = this.generateNewMangledName(this.previousMangledName);
  6933. this.updatePreviousMangledName(identifierName);
  6934. this.preserveName(identifierName);
  6935. return identifierName;
  6936. }
  6937. generateForGlobalScope(nameLength) {
  6938. const prefix = this.options.identifiersPrefix ?
  6939. `${this.options.identifiersPrefix}`
  6940. : '';
  6941. const identifierName = this.generateNewMangledName(this.previousMangledName);
  6942. const identifierNameWithPrefix = `${prefix}${identifierName}`;
  6943. this.updatePreviousMangledName(identifierName);
  6944. if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
  6945. return this.generateForGlobalScope(nameLength);
  6946. }
  6947. this.preserveName(identifierNameWithPrefix);
  6948. return identifierNameWithPrefix;
  6949. }
  6950. generateForLexicalScope(lexicalScopeNode, nameLength) {
  6951. const lexicalScopes = [
  6952. lexicalScopeNode,
  6953. ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)
  6954. ];
  6955. const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes);
  6956. let identifierName = lastMangledNameForScope;
  6957. do {
  6958. identifierName = this.generateNewMangledName(identifierName);
  6959. } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes));
  6960. MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);
  6961. this.updatePreviousMangledName(identifierName);
  6962. this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
  6963. return identifierName;
  6964. }
  6965. isIncrementedMangledName(nextName, prevName) {
  6966. if (nextName === prevName) {
  6967. return false;
  6968. }
  6969. const nextNameLength = nextName.length;
  6970. const prevNameLength = prevName.length;
  6971. if (nextNameLength !== prevNameLength) {
  6972. return nextNameLength > prevNameLength;
  6973. }
  6974. const nameSequence = this.getNameSequence();
  6975. for (let i = 0; i < nextNameLength; i++) {
  6976. const nextNameCharacter = nextName[i];
  6977. const prevNameCharacter = prevName[i];
  6978. if (nextNameCharacter === prevNameCharacter) {
  6979. continue;
  6980. }
  6981. const indexOfNextNameCharacter = nameSequence.indexOf(nextNameCharacter);
  6982. const indexOfPrevNameCharacter = nameSequence.indexOf(prevNameCharacter);
  6983. return indexOfNextNameCharacter > indexOfPrevNameCharacter;
  6984. }
  6985. throw new Error('Something goes wrong during comparison of mangled names');
  6986. }
  6987. isValidIdentifierName(mangledName) {
  6988. return super.isValidIdentifierName(mangledName)
  6989. && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName);
  6990. }
  6991. getNameSequence() {
  6992. return MangledIdentifierNamesGenerator_1.nameSequence;
  6993. }
  6994. updatePreviousMangledName(name) {
  6995. if (!this.isIncrementedMangledName(name, this.previousMangledName)) {
  6996. return;
  6997. }
  6998. this.previousMangledName = name;
  6999. }
  7000. generateNewMangledName(previousMangledName) {
  7001. const generateNewMangledName = (name) => {
  7002. const nameSequence = this.getNameSequence();
  7003. const nameSequenceLength = nameSequence.length;
  7004. const nameLength = name.length;
  7005. const zeroSequence = (num) => {
  7006. return '0'.repeat(num);
  7007. };
  7008. let index = nameLength - 1;
  7009. do {
  7010. const character = name[index];
  7011. const indexInSequence = nameSequence.indexOf(character);
  7012. const lastNameSequenceIndex = nameSequenceLength - 1;
  7013. if (indexInSequence !== lastNameSequenceIndex) {
  7014. const previousNamePart = name.slice(0, index);
  7015. const nextCharacter = nameSequence[indexInSequence + 1];
  7016. const zeroSequenceLength = nameLength - (index + 1);
  7017. const zeroSequenceCharacters = zeroSequence(zeroSequenceLength);
  7018. return previousNamePart + nextCharacter + zeroSequenceCharacters;
  7019. }
  7020. --index;
  7021. } while (index >= 0);
  7022. const firstLetterCharacter = nameSequence[NumbersString_1.numbersString.length];
  7023. return `${firstLetterCharacter}${zeroSequence(nameLength)}`;
  7024. };
  7025. let newMangledName = generateNewMangledName(previousMangledName);
  7026. if (!this.isValidIdentifierName(newMangledName)) {
  7027. newMangledName = this.generateNewMangledName(newMangledName);
  7028. }
  7029. return newMangledName;
  7030. }
  7031. getLastMangledNameForScopes(lexicalScopeNodes) {
  7032. var _a;
  7033. for (const lexicalScope of lexicalScopeNodes) {
  7034. const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap
  7035. .get(lexicalScope)) !== null && _a !== void 0 ? _a : null;
  7036. if (!lastMangledName) {
  7037. continue;
  7038. }
  7039. return lastMangledName;
  7040. }
  7041. return MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
  7042. }
  7043. };
  7044. MangledIdentifierNamesGenerator.initMangledNameCharacter = '9';
  7045. MangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap();
  7046. MangledIdentifierNamesGenerator.nameSequence = [
  7047. ...`${NumbersString_1.numbersString}${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`
  7048. ];
  7049. MangledIdentifierNamesGenerator.reservedNamesSet = new Set([
  7050. 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto',
  7051. 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try',
  7052. 'var', 'void', 'with'
  7053. ]);
  7054. MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = __decorate([
  7055. inversify_1.injectable(),
  7056. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  7057. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7058. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  7059. ], MangledIdentifierNamesGenerator);
  7060. exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;
  7061. /***/ }),
  7062. /***/ "./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts":
  7063. /*!***********************************************************************************************!*\
  7064. !*** ./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts ***!
  7065. \***********************************************************************************************/
  7066. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7067. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7068. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7069. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7070. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7071. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7072. };
  7073. var __metadata = (this && this.__metadata) || function (k, v) {
  7074. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7075. };
  7076. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7077. return function (target, key) { decorator(target, key, paramIndex); }
  7078. };
  7079. var MangledShuffledIdentifierNamesGenerator_1, _a, _b, _c;
  7080. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7081. exports.MangledShuffledIdentifierNamesGenerator = void 0;
  7082. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7083. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7084. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  7085. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  7086. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  7087. const NumbersString_1 = __webpack_require__(/*! ../../constants/NumbersString */ "./src/constants/NumbersString.ts");
  7088. const AlphabetString_1 = __webpack_require__(/*! ../../constants/AlphabetString */ "./src/constants/AlphabetString.ts");
  7089. const AlphabetStringUppercase_1 = __webpack_require__(/*! ../../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts");
  7090. const MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ./MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts");
  7091. let MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator {
  7092. constructor(arrayUtils, randomGenerator, options) {
  7093. super(randomGenerator, options);
  7094. this.arrayUtils = arrayUtils;
  7095. }
  7096. initialize() {
  7097. this.initializeNameSequence([
  7098. ...`${NumbersString_1.numbersString}`,
  7099. ...this.arrayUtils.shuffle([...`${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`])
  7100. ]);
  7101. }
  7102. initializeNameSequence(nameSequence) {
  7103. if (!this.getNameSequence()) {
  7104. MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence = nameSequence;
  7105. }
  7106. }
  7107. getNameSequence() {
  7108. return MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence;
  7109. }
  7110. generateNewMangledName(previousMangledName) {
  7111. return super.generateNewMangledName(previousMangledName);
  7112. }
  7113. };
  7114. __decorate([
  7115. inversify_1.postConstruct(),
  7116. __metadata("design:type", Function),
  7117. __metadata("design:paramtypes", []),
  7118. __metadata("design:returntype", void 0)
  7119. ], MangledShuffledIdentifierNamesGenerator.prototype, "initialize", null);
  7120. MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = __decorate([
  7121. inversify_1.injectable(),
  7122. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  7123. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  7124. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7125. __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  7126. ], MangledShuffledIdentifierNamesGenerator);
  7127. exports.MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator;
  7128. /***/ }),
  7129. /***/ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts":
  7130. /*!******************************************************************************!*\
  7131. !*** ./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts ***!
  7132. \******************************************************************************/
  7133. /***/ ((__unused_webpack_module, exports) => {
  7134. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7135. /***/ }),
  7136. /***/ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts":
  7137. /*!*********************************************************************************************!*\
  7138. !*** ./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts ***!
  7139. \*********************************************************************************************/
  7140. /***/ ((__unused_webpack_module, exports) => {
  7141. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7142. /***/ }),
  7143. /***/ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts":
  7144. /*!*************************************************************************************************************!*\
  7145. !*** ./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts ***!
  7146. \*************************************************************************************************************/
  7147. /***/ ((__unused_webpack_module, exports) => {
  7148. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7149. /***/ }),
  7150. /***/ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts":
  7151. /*!*******************************************************************!*\
  7152. !*** ./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts ***!
  7153. \*******************************************************************/
  7154. /***/ ((__unused_webpack_module, exports) => {
  7155. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7156. /***/ }),
  7157. /***/ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts":
  7158. /*!***********************************************************************************************!*\
  7159. !*** ./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts ***!
  7160. \***********************************************************************************************/
  7161. /***/ ((__unused_webpack_module, exports) => {
  7162. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7163. /***/ }),
  7164. /***/ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts":
  7165. /*!*********************************************************************!*\
  7166. !*** ./src/interfaces/code-transformers/ICodeTransformersRunner.ts ***!
  7167. \*********************************************************************/
  7168. /***/ ((__unused_webpack_module, exports) => {
  7169. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7170. /***/ }),
  7171. /***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts":
  7172. /*!**************************************************************************!*\
  7173. !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts ***!
  7174. \**************************************************************************/
  7175. /***/ ((__unused_webpack_module, exports) => {
  7176. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7177. /***/ }),
  7178. /***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts":
  7179. /*!***************************************************************************!*\
  7180. !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts ***!
  7181. \***************************************************************************/
  7182. /***/ ((__unused_webpack_module, exports) => {
  7183. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7184. /***/ }),
  7185. /***/ "./src/interfaces/logger/ILogger.ts":
  7186. /*!******************************************!*\
  7187. !*** ./src/interfaces/logger/ILogger.ts ***!
  7188. \******************************************/
  7189. /***/ ((__unused_webpack_module, exports) => {
  7190. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7191. /***/ }),
  7192. /***/ "./src/interfaces/node-transformers/INodeTransformersRunner.ts":
  7193. /*!*********************************************************************!*\
  7194. !*** ./src/interfaces/node-transformers/INodeTransformersRunner.ts ***!
  7195. \*********************************************************************/
  7196. /***/ ((__unused_webpack_module, exports) => {
  7197. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7198. /***/ }),
  7199. /***/ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts":
  7200. /*!**********************************************************************************************************!*\
  7201. !*** ./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts ***!
  7202. \**********************************************************************************************************/
  7203. /***/ ((__unused_webpack_module, exports) => {
  7204. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7205. /***/ }),
  7206. /***/ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IThroughIdentifierReplacer.ts":
  7207. /*!*****************************************************************************************************************!*\
  7208. !*** ./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IThroughIdentifierReplacer.ts ***!
  7209. \*****************************************************************************************************************/
  7210. /***/ ((__unused_webpack_module, exports) => {
  7211. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7212. /***/ }),
  7213. /***/ "./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts":
  7214. /*!***************************************************************************************************************!*\
  7215. !*** ./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts ***!
  7216. \***************************************************************************************************************/
  7217. /***/ ((__unused_webpack_module, exports) => {
  7218. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7219. /***/ }),
  7220. /***/ "./src/interfaces/node/IScopeIdentifiersTraverser.ts":
  7221. /*!***********************************************************!*\
  7222. !*** ./src/interfaces/node/IScopeIdentifiersTraverser.ts ***!
  7223. \***********************************************************/
  7224. /***/ ((__unused_webpack_module, exports) => {
  7225. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7226. /***/ }),
  7227. /***/ "./src/interfaces/options/IOptions.ts":
  7228. /*!********************************************!*\
  7229. !*** ./src/interfaces/options/IOptions.ts ***!
  7230. \********************************************/
  7231. /***/ ((__unused_webpack_module, exports) => {
  7232. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7233. /***/ }),
  7234. /***/ "./src/interfaces/options/IOptionsNormalizer.ts":
  7235. /*!******************************************************!*\
  7236. !*** ./src/interfaces/options/IOptionsNormalizer.ts ***!
  7237. \******************************************************/
  7238. /***/ ((__unused_webpack_module, exports) => {
  7239. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7240. /***/ }),
  7241. /***/ "./src/interfaces/source-code/ISourceCode.ts":
  7242. /*!***************************************************!*\
  7243. !*** ./src/interfaces/source-code/ISourceCode.ts ***!
  7244. \***************************************************/
  7245. /***/ ((__unused_webpack_module, exports) => {
  7246. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7247. /***/ }),
  7248. /***/ "./src/interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage.ts":
  7249. /*!**********************************************************************************************!*\
  7250. !*** ./src/interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage.ts ***!
  7251. \**********************************************************************************************/
  7252. /***/ ((__unused_webpack_module, exports) => {
  7253. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7254. /***/ }),
  7255. /***/ "./src/interfaces/storages/identifier-names-cache/IPropertyIdentifierNamesCacheStorage.ts":
  7256. /*!************************************************************************************************!*\
  7257. !*** ./src/interfaces/storages/identifier-names-cache/IPropertyIdentifierNamesCacheStorage.ts ***!
  7258. \************************************************************************************************/
  7259. /***/ ((__unused_webpack_module, exports) => {
  7260. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7261. /***/ }),
  7262. /***/ "./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts":
  7263. /*!****************************************************************************************!*\
  7264. !*** ./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts ***!
  7265. \****************************************************************************************/
  7266. /***/ ((__unused_webpack_module, exports) => {
  7267. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7268. /***/ }),
  7269. /***/ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts":
  7270. /*!*******************************************************************************************************************!*\
  7271. !*** ./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts ***!
  7272. \*******************************************************************************************************************/
  7273. /***/ ((__unused_webpack_module, exports) => {
  7274. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7275. /***/ }),
  7276. /***/ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts":
  7277. /*!************************************************************************************************************!*\
  7278. !*** ./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts ***!
  7279. \************************************************************************************************************/
  7280. /***/ ((__unused_webpack_module, exports) => {
  7281. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7282. /***/ }),
  7283. /***/ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts":
  7284. /*!**********************************************************************************!*\
  7285. !*** ./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts ***!
  7286. \**********************************************************************************/
  7287. /***/ ((__unused_webpack_module, exports) => {
  7288. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7289. /***/ }),
  7290. /***/ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts":
  7291. /*!****************************************************************************************************!*\
  7292. !*** ./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts ***!
  7293. \****************************************************************************************************/
  7294. /***/ ((__unused_webpack_module, exports) => {
  7295. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7296. /***/ }),
  7297. /***/ "./src/interfaces/utils/IArrayUtils.ts":
  7298. /*!*********************************************!*\
  7299. !*** ./src/interfaces/utils/IArrayUtils.ts ***!
  7300. \*********************************************/
  7301. /***/ ((__unused_webpack_module, exports) => {
  7302. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7303. /***/ }),
  7304. /***/ "./src/interfaces/utils/ICryptUtils.ts":
  7305. /*!*********************************************!*\
  7306. !*** ./src/interfaces/utils/ICryptUtils.ts ***!
  7307. \*********************************************/
  7308. /***/ ((__unused_webpack_module, exports) => {
  7309. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7310. /***/ }),
  7311. /***/ "./src/interfaces/utils/ICryptUtilsStringArray.ts":
  7312. /*!********************************************************!*\
  7313. !*** ./src/interfaces/utils/ICryptUtilsStringArray.ts ***!
  7314. \********************************************************/
  7315. /***/ ((__unused_webpack_module, exports) => {
  7316. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7317. /***/ }),
  7318. /***/ "./src/interfaces/utils/IEscapeSequenceEncoder.ts":
  7319. /*!********************************************************!*\
  7320. !*** ./src/interfaces/utils/IEscapeSequenceEncoder.ts ***!
  7321. \********************************************************/
  7322. /***/ ((__unused_webpack_module, exports) => {
  7323. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7324. /***/ }),
  7325. /***/ "./src/interfaces/utils/ILevelledTopologicalSorter.ts":
  7326. /*!************************************************************!*\
  7327. !*** ./src/interfaces/utils/ILevelledTopologicalSorter.ts ***!
  7328. \************************************************************/
  7329. /***/ ((__unused_webpack_module, exports) => {
  7330. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7331. /***/ }),
  7332. /***/ "./src/interfaces/utils/IRandomGenerator.ts":
  7333. /*!**************************************************!*\
  7334. !*** ./src/interfaces/utils/IRandomGenerator.ts ***!
  7335. \**************************************************/
  7336. /***/ ((__unused_webpack_module, exports) => {
  7337. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7338. /***/ }),
  7339. /***/ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts":
  7340. /*!****************************************************************!*\
  7341. !*** ./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts ***!
  7342. \****************************************************************/
  7343. /***/ ((__unused_webpack_module, exports) => {
  7344. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7345. /***/ }),
  7346. /***/ "./src/logger/Logger.ts":
  7347. /*!******************************!*\
  7348. !*** ./src/logger/Logger.ts ***!
  7349. \******************************/
  7350. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7351. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7352. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7353. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7354. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7355. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7356. };
  7357. var __metadata = (this && this.__metadata) || function (k, v) {
  7358. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7359. };
  7360. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7361. return function (target, key) { decorator(target, key, paramIndex); }
  7362. };
  7363. var __importDefault = (this && this.__importDefault) || function (mod) {
  7364. return (mod && mod.__esModule) ? mod : { "default": mod };
  7365. };
  7366. var Logger_1, _a;
  7367. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7368. exports.Logger = void 0;
  7369. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7370. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7371. const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
  7372. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  7373. const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
  7374. let Logger = Logger_1 = class Logger {
  7375. constructor(options) {
  7376. this.options = options;
  7377. }
  7378. static log(loggingLevelColor, loggingPrefix, loggingMessage, value) {
  7379. const processedMessage = loggingLevelColor(`\n${loggingPrefix} ${loggingMessage}`);
  7380. console.log(processedMessage, value !== null && value !== void 0 ? value : '');
  7381. }
  7382. info(loggingMessage, value) {
  7383. if (!this.options.log) {
  7384. return;
  7385. }
  7386. Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  7387. }
  7388. success(loggingMessage, value) {
  7389. if (!this.options.log) {
  7390. return;
  7391. }
  7392. Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  7393. }
  7394. warn(loggingMessage, value) {
  7395. if (!this.options.log) {
  7396. return;
  7397. }
  7398. Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  7399. }
  7400. };
  7401. Logger.colorInfo = chalk_1.default.cyan;
  7402. Logger.colorSuccess = chalk_1.default.green;
  7403. Logger.colorWarn = chalk_1.default.yellow;
  7404. Logger = Logger_1 = __decorate([
  7405. inversify_1.injectable(),
  7406. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7407. __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object])
  7408. ], Logger);
  7409. exports.Logger = Logger;
  7410. /***/ }),
  7411. /***/ "./src/node-transformers/AbstractNodeTransformer.ts":
  7412. /*!**********************************************************!*\
  7413. !*** ./src/node-transformers/AbstractNodeTransformer.ts ***!
  7414. \**********************************************************/
  7415. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7416. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7417. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7418. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7419. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7420. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7421. };
  7422. var __metadata = (this && this.__metadata) || function (k, v) {
  7423. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7424. };
  7425. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7426. return function (target, key) { decorator(target, key, paramIndex); }
  7427. };
  7428. var _a, _b;
  7429. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7430. exports.AbstractNodeTransformer = void 0;
  7431. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7432. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7433. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  7434. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  7435. let AbstractNodeTransformer = class AbstractNodeTransformer {
  7436. constructor(randomGenerator, options) {
  7437. this.randomGenerator = randomGenerator;
  7438. this.options = options;
  7439. }
  7440. };
  7441. AbstractNodeTransformer = __decorate([
  7442. inversify_1.injectable(),
  7443. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  7444. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7445. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  7446. ], AbstractNodeTransformer);
  7447. exports.AbstractNodeTransformer = AbstractNodeTransformer;
  7448. /***/ }),
  7449. /***/ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts":
  7450. /*!********************************************************************!*\
  7451. !*** ./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts ***!
  7452. \********************************************************************/
  7453. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7454. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7455. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7456. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7457. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7458. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7459. };
  7460. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7461. exports.NodeTransformerNamesGroupsBuilder = void 0;
  7462. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7463. const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts");
  7464. let NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {
  7465. };
  7466. NodeTransformerNamesGroupsBuilder = __decorate([
  7467. inversify_1.injectable()
  7468. ], NodeTransformerNamesGroupsBuilder);
  7469. exports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;
  7470. /***/ }),
  7471. /***/ "./src/node-transformers/NodeTransformersRunner.ts":
  7472. /*!*********************************************************!*\
  7473. !*** ./src/node-transformers/NodeTransformersRunner.ts ***!
  7474. \*********************************************************/
  7475. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7476. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  7477. if (k2 === undefined) k2 = k;
  7478. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  7479. }) : (function(o, m, k, k2) {
  7480. if (k2 === undefined) k2 = k;
  7481. o[k2] = m[k];
  7482. }));
  7483. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  7484. Object.defineProperty(o, "default", { enumerable: true, value: v });
  7485. }) : function(o, v) {
  7486. o["default"] = v;
  7487. });
  7488. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7489. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7490. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7491. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7492. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7493. };
  7494. var __importStar = (this && this.__importStar) || function (mod) {
  7495. if (mod && mod.__esModule) return mod;
  7496. var result = {};
  7497. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  7498. __setModuleDefault(result, mod);
  7499. return result;
  7500. };
  7501. var __metadata = (this && this.__metadata) || function (k, v) {
  7502. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7503. };
  7504. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7505. return function (target, key) { decorator(target, key, paramIndex); }
  7506. };
  7507. var _a, _b;
  7508. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7509. exports.NodeTransformersRunner = void 0;
  7510. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7511. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7512. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  7513. const TNodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/node-transformers/TNodeTransformerFactory */ "./src/types/container/node-transformers/TNodeTransformerFactory.ts");
  7514. const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts");
  7515. const VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts");
  7516. const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7517. const NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7518. let NodeTransformersRunner = class NodeTransformersRunner {
  7519. constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {
  7520. this.nodeTransformerFactory = nodeTransformerFactory;
  7521. this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;
  7522. }
  7523. transform(astTree, nodeTransformerNames, nodeTransformationStage) {
  7524. if (!nodeTransformerNames.length) {
  7525. return astTree;
  7526. }
  7527. const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage);
  7528. const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);
  7529. for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) {
  7530. const enterVisitors = [];
  7531. const leaveVisitors = [];
  7532. for (const nodeTransformerName of nodeTransformerNamesGroup) {
  7533. const nodeTransformer = normalizedNodeTransformers[nodeTransformerName];
  7534. const visitor = nodeTransformer.getVisitor(nodeTransformationStage);
  7535. if (!visitor) {
  7536. continue;
  7537. }
  7538. if (visitor.enter) {
  7539. enterVisitors.push({ enter: visitor.enter });
  7540. }
  7541. if (visitor.leave) {
  7542. leaveVisitors.push({ leave: visitor.leave });
  7543. }
  7544. }
  7545. if (!enterVisitors.length && !leaveVisitors.length) {
  7546. continue;
  7547. }
  7548. estraverse.replace(astTree, {
  7549. enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),
  7550. leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)
  7551. });
  7552. }
  7553. return astTree;
  7554. }
  7555. buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) {
  7556. return nodeTransformerNames
  7557. .reduce((acc, nodeTransformerName) => {
  7558. const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName);
  7559. if (!nodeTransformer.getVisitor(nodeTransformationStage)) {
  7560. return acc;
  7561. }
  7562. return {
  7563. ...acc,
  7564. [nodeTransformerName]: nodeTransformer
  7565. };
  7566. }, {});
  7567. }
  7568. mergeVisitorsForDirection(visitors, direction) {
  7569. const visitorsLength = visitors.length;
  7570. if (!visitorsLength) {
  7571. return (node, parentNode) => node;
  7572. }
  7573. return (node, parentNode) => {
  7574. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  7575. return estraverse.VisitorOption.Skip;
  7576. }
  7577. for (let i = 0; i < visitorsLength; i++) {
  7578. const visitorFunction = visitors[i][direction];
  7579. if (!visitorFunction) {
  7580. continue;
  7581. }
  7582. const visitorResult = visitorFunction(node, parentNode);
  7583. if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {
  7584. continue;
  7585. }
  7586. node = visitorResult;
  7587. }
  7588. return node;
  7589. };
  7590. }
  7591. };
  7592. NodeTransformersRunner = __decorate([
  7593. inversify_1.injectable(),
  7594. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)),
  7595. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),
  7596. __metadata("design:paramtypes", [typeof (_a = typeof TNodeTransformerFactory_1.TNodeTransformerFactory !== "undefined" && TNodeTransformerFactory_1.TNodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object])
  7597. ], NodeTransformersRunner);
  7598. exports.NodeTransformersRunner = NodeTransformersRunner;
  7599. /***/ }),
  7600. /***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts":
  7601. /*!*************************************************************************************************!*\
  7602. !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***!
  7603. \*************************************************************************************************/
  7604. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7605. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  7606. if (k2 === undefined) k2 = k;
  7607. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  7608. }) : (function(o, m, k, k2) {
  7609. if (k2 === undefined) k2 = k;
  7610. o[k2] = m[k];
  7611. }));
  7612. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  7613. Object.defineProperty(o, "default", { enumerable: true, value: v });
  7614. }) : function(o, v) {
  7615. o["default"] = v;
  7616. });
  7617. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7618. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7619. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7620. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7621. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7622. };
  7623. var __importStar = (this && this.__importStar) || function (mod) {
  7624. if (mod && mod.__esModule) return mod;
  7625. var result = {};
  7626. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  7627. __setModuleDefault(result, mod);
  7628. return result;
  7629. };
  7630. var __metadata = (this && this.__metadata) || function (k, v) {
  7631. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7632. };
  7633. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7634. return function (target, key) { decorator(target, key, paramIndex); }
  7635. };
  7636. var BlockStatementControlFlowTransformer_1, _a, _b, _c, _d;
  7637. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7638. exports.BlockStatementControlFlowTransformer = void 0;
  7639. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7640. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7641. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  7642. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  7643. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  7644. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  7645. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  7646. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  7647. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  7648. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7649. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7650. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  7651. let BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  7652. constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {
  7653. super(randomGenerator, options);
  7654. this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  7655. this.arrayUtils = arrayUtils;
  7656. }
  7657. static isProhibitedStatementNode(node) {
  7658. const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node)
  7659. || NodeGuards_1.NodeGuards.isContinueStatementNode(node);
  7660. const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)
  7661. && (node.kind === 'const' || node.kind === 'let');
  7662. const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);
  7663. return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node)
  7664. || isBreakOrContinueStatement
  7665. || isVariableDeclarationWithLetOrConstKind
  7666. || isClassDeclaration;
  7667. }
  7668. static canTransformBlockStatementNode(blockStatementNode) {
  7669. let canTransform = true;
  7670. estraverse.traverse(blockStatementNode, {
  7671. enter: (node) => {
  7672. if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {
  7673. return estraverse.VisitorOption.Skip;
  7674. }
  7675. if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) {
  7676. canTransform = false;
  7677. }
  7678. }
  7679. });
  7680. if (blockStatementNode.body.length <= 4) {
  7681. canTransform = false;
  7682. }
  7683. return canTransform;
  7684. }
  7685. getVisitor(nodeTransformationStage) {
  7686. switch (nodeTransformationStage) {
  7687. case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:
  7688. return {
  7689. leave: (node, parentNode) => {
  7690. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  7691. return this.transformNode(node, parentNode);
  7692. }
  7693. }
  7694. };
  7695. default:
  7696. return null;
  7697. }
  7698. }
  7699. transformNode(blockStatementNode, parentNode) {
  7700. if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold ||
  7701. !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {
  7702. return blockStatementNode;
  7703. }
  7704. const blockStatementBody = blockStatementNode.body;
  7705. const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);
  7706. const shuffledKeys = this.arrayUtils.shuffle(originalKeys);
  7707. const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key));
  7708. const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
  7709. blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);
  7710. const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];
  7711. NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
  7712. return newBlockStatementNode;
  7713. }
  7714. };
  7715. BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([
  7716. inversify_1.injectable(),
  7717. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  7718. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  7719. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  7720. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7721. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  7722. ], BlockStatementControlFlowTransformer);
  7723. exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;
  7724. /***/ }),
  7725. /***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts":
  7726. /*!*******************************************************************************************!*\
  7727. !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***!
  7728. \*******************************************************************************************/
  7729. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7730. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  7731. if (k2 === undefined) k2 = k;
  7732. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  7733. }) : (function(o, m, k, k2) {
  7734. if (k2 === undefined) k2 = k;
  7735. o[k2] = m[k];
  7736. }));
  7737. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  7738. Object.defineProperty(o, "default", { enumerable: true, value: v });
  7739. }) : function(o, v) {
  7740. o["default"] = v;
  7741. });
  7742. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7743. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7744. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7745. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7746. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7747. };
  7748. var __importStar = (this && this.__importStar) || function (mod) {
  7749. if (mod && mod.__esModule) return mod;
  7750. var result = {};
  7751. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  7752. __setModuleDefault(result, mod);
  7753. return result;
  7754. };
  7755. var __metadata = (this && this.__metadata) || function (k, v) {
  7756. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7757. };
  7758. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7759. return function (target, key) { decorator(target, key, paramIndex); }
  7760. };
  7761. var FunctionControlFlowTransformer_1, _a, _b, _c, _d, _e;
  7762. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7763. exports.FunctionControlFlowTransformer = void 0;
  7764. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7765. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7766. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  7767. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  7768. const TControlFlowReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowReplacerFactory */ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts");
  7769. const TControlFlowStorageFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowStorageFactory */ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts");
  7770. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  7771. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  7772. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  7773. const ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts");
  7774. const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  7775. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  7776. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7777. const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  7778. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7779. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7780. const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  7781. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  7782. let FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  7783. constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {
  7784. super(randomGenerator, options);
  7785. this.controlFlowData = new Map();
  7786. this.visitedFunctionNodes = new Set();
  7787. this.hostNodesWithControlFlowNode = new Set();
  7788. this.controlFlowStorageFactory = controlFlowStorageFactory;
  7789. this.controlFlowReplacerFactory = controlFlowReplacerFactory;
  7790. this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  7791. }
  7792. getVisitor(nodeTransformationStage) {
  7793. switch (nodeTransformationStage) {
  7794. case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:
  7795. return {
  7796. leave: (node, parentNode) => {
  7797. if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||
  7798. NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||
  7799. NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {
  7800. return this.transformNode(node, parentNode);
  7801. }
  7802. }
  7803. };
  7804. default:
  7805. return null;
  7806. }
  7807. }
  7808. transformNode(functionNode, parentNode) {
  7809. this.visitedFunctionNodes.add(functionNode);
  7810. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {
  7811. return functionNode;
  7812. }
  7813. const hostNode = this.getHostNode(functionNode.body);
  7814. const controlFlowStorage = this.getControlFlowStorage(hostNode);
  7815. this.controlFlowData.set(hostNode, controlFlowStorage);
  7816. this.transformFunctionBody(functionNode.body, controlFlowStorage);
  7817. if (!controlFlowStorage.getLength()) {
  7818. return functionNode;
  7819. }
  7820. const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
  7821. controlFlowStorageCustomNode.initialize(controlFlowStorage);
  7822. NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());
  7823. this.hostNodesWithControlFlowNode.add(hostNode);
  7824. NodeUtils_1.NodeUtils.parentizeAst(functionNode);
  7825. return functionNode;
  7826. }
  7827. getControlFlowStorage(hostNode) {
  7828. const controlFlowStorage = this.controlFlowStorageFactory();
  7829. if (this.controlFlowData.has(hostNode)) {
  7830. if (this.hostNodesWithControlFlowNode.has(hostNode)) {
  7831. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) {
  7832. hostNode.consequent.shift();
  7833. }
  7834. else {
  7835. hostNode.body.shift();
  7836. }
  7837. }
  7838. const hostControlFlowStorage = this.controlFlowData.get(hostNode);
  7839. controlFlowStorage.mergeWith(hostControlFlowStorage, true);
  7840. }
  7841. return controlFlowStorage;
  7842. }
  7843. getHostNode(functionNodeBody) {
  7844. const blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);
  7845. if (blockScopesOfNode.length === 1) {
  7846. return functionNodeBody;
  7847. }
  7848. else {
  7849. blockScopesOfNode.pop();
  7850. }
  7851. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {
  7852. blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);
  7853. }
  7854. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {
  7855. blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;
  7856. }
  7857. return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);
  7858. }
  7859. isVisitedFunctionNode(node) {
  7860. return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||
  7861. NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||
  7862. NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);
  7863. }
  7864. transformFunctionBody(functionNodeBody, controlFlowStorage) {
  7865. estraverse.replace(functionNodeBody, {
  7866. enter: (node, parentNode) => {
  7867. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  7868. return estraverse.VisitorOption.Skip;
  7869. }
  7870. if (this.isVisitedFunctionNode(node) || !parentNode) {
  7871. return estraverse.VisitorOption.Skip;
  7872. }
  7873. if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {
  7874. return node;
  7875. }
  7876. if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) {
  7877. return node;
  7878. }
  7879. const controlFlowReplacerName = FunctionControlFlowTransformer_1
  7880. .controlFlowReplacersMap.get(node.type);
  7881. if (controlFlowReplacerName === undefined) {
  7882. return node;
  7883. }
  7884. return {
  7885. ...this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage),
  7886. parentNode
  7887. };
  7888. }
  7889. });
  7890. }
  7891. };
  7892. FunctionControlFlowTransformer.controlFlowReplacersMap = new Map([
  7893. [NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],
  7894. [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer],
  7895. [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],
  7896. [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]
  7897. ]);
  7898. FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;
  7899. FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;
  7900. FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = __decorate([
  7901. inversify_1.injectable(),
  7902. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)),
  7903. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)),
  7904. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  7905. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  7906. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7907. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowStorageFactory_1.TControlFlowStorageFactory !== "undefined" && TControlFlowStorageFactory_1.TControlFlowStorageFactory) === "function" ? _a : Object, typeof (_b = typeof TControlFlowReplacerFactory_1.TControlFlowReplacerFactory !== "undefined" && TControlFlowReplacerFactory_1.TControlFlowReplacerFactory) === "function" ? _b : Object, typeof (_c = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  7908. ], FunctionControlFlowTransformer);
  7909. exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;
  7910. /***/ }),
  7911. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts":
  7912. /*!***************************************************************************************************************!*\
  7913. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***!
  7914. \***************************************************************************************************************/
  7915. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7916. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7917. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7918. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7919. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7920. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7921. };
  7922. var __metadata = (this && this.__metadata) || function (k, v) {
  7923. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7924. };
  7925. var __param = (this && this.__param) || function (paramIndex, decorator) {
  7926. return function (target, key) { decorator(target, key, paramIndex); }
  7927. };
  7928. var AbstractControlFlowReplacer_1, _a, _b, _c;
  7929. Object.defineProperty(exports, "__esModule", ({ value: true }));
  7930. exports.AbstractControlFlowReplacer = void 0;
  7931. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7932. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7933. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  7934. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  7935. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  7936. let AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer {
  7937. constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
  7938. this.replacerDataByControlFlowStorageId = new Map();
  7939. this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  7940. this.randomGenerator = randomGenerator;
  7941. this.options = options;
  7942. }
  7943. static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {
  7944. let storageKeysById;
  7945. if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {
  7946. storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);
  7947. }
  7948. else {
  7949. storageKeysById = new Map();
  7950. }
  7951. return storageKeysById;
  7952. }
  7953. insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {
  7954. const controlFlowStorageId = controlFlowStorage.getStorageId();
  7955. const storageKeysById = AbstractControlFlowReplacer_1
  7956. .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);
  7957. const storageKeysForCurrentId = storageKeysById.get(replacerId);
  7958. if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance &&
  7959. storageKeysForCurrentId &&
  7960. storageKeysForCurrentId.length) {
  7961. return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);
  7962. }
  7963. const generateStorageKey = (length) => {
  7964. const key = this.randomGenerator.getRandomString(length);
  7965. if (controlFlowStorage.getStorage().has(key)) {
  7966. return generateStorageKey(length);
  7967. }
  7968. return key;
  7969. };
  7970. const storageKey = generateStorageKey(5);
  7971. storageKeysById.set(replacerId, [storageKey]);
  7972. this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);
  7973. controlFlowStorage.set(storageKey, customNode);
  7974. return storageKey;
  7975. }
  7976. };
  7977. AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([
  7978. inversify_1.injectable(),
  7979. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  7980. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  7981. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  7982. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  7983. ], AbstractControlFlowReplacer);
  7984. exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;
  7985. /***/ }),
  7986. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts":
  7987. /*!***********************************************************************************************************************!*\
  7988. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***!
  7989. \***********************************************************************************************************************/
  7990. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  7991. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  7992. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  7993. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  7994. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  7995. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7996. };
  7997. var __metadata = (this && this.__metadata) || function (k, v) {
  7998. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  7999. };
  8000. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8001. return function (target, key) { decorator(target, key, paramIndex); }
  8002. };
  8003. var BinaryExpressionControlFlowReplacer_1, _a, _b, _c;
  8004. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8005. exports.BinaryExpressionControlFlowReplacer = void 0;
  8006. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8007. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8008. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  8009. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8010. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8011. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  8012. const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
  8013. let BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {
  8014. constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
  8015. super(controlFlowCustomNodeFactory, randomGenerator, options);
  8016. }
  8017. replace(binaryExpressionNode, parentNode, controlFlowStorage) {
  8018. const operator = binaryExpressionNode.operator;
  8019. const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
  8020. binaryExpressionFunctionCustomNode.initialize(operator);
  8021. const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  8022. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);
  8023. }
  8024. };
  8025. BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  8026. BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([
  8027. inversify_1.injectable(),
  8028. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  8029. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8030. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8031. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8032. ], BinaryExpressionControlFlowReplacer);
  8033. exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;
  8034. /***/ }),
  8035. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts":
  8036. /*!*********************************************************************************************************************!*\
  8037. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***!
  8038. \*********************************************************************************************************************/
  8039. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8040. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8041. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8042. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8043. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8044. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8045. };
  8046. var __metadata = (this && this.__metadata) || function (k, v) {
  8047. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8048. };
  8049. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8050. return function (target, key) { decorator(target, key, paramIndex); }
  8051. };
  8052. var CallExpressionControlFlowReplacer_1, _a, _b, _c;
  8053. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8054. exports.CallExpressionControlFlowReplacer = void 0;
  8055. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8056. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8057. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  8058. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8059. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8060. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  8061. const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  8062. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8063. let CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {
  8064. constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
  8065. super(controlFlowCustomNodeFactory, randomGenerator, options);
  8066. }
  8067. replace(callExpressionNode, parentNode, controlFlowStorage) {
  8068. const callee = callExpressionNode.callee;
  8069. if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  8070. return callExpressionNode;
  8071. }
  8072. const replacerId = String(callExpressionNode.arguments.length);
  8073. const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
  8074. const expressionArguments = callExpressionNode.arguments;
  8075. callExpressionFunctionCustomNode.initialize(expressionArguments);
  8076. const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  8077. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);
  8078. }
  8079. getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {
  8080. const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
  8081. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);
  8082. const statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  8083. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  8084. throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
  8085. }
  8086. return statementNode.expression;
  8087. }
  8088. };
  8089. CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  8090. CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([
  8091. inversify_1.injectable(),
  8092. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  8093. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8094. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8095. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8096. ], CallExpressionControlFlowReplacer);
  8097. exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;
  8098. /***/ }),
  8099. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts":
  8100. /*!*****************************************************************************************************************************!*\
  8101. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***!
  8102. \*****************************************************************************************************************************/
  8103. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8104. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8105. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8106. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8107. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8108. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8109. };
  8110. var __metadata = (this && this.__metadata) || function (k, v) {
  8111. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8112. };
  8113. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8114. return function (target, key) { decorator(target, key, paramIndex); }
  8115. };
  8116. var _a, _b, _c;
  8117. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8118. exports.ExpressionWithOperatorControlFlowReplacer = void 0;
  8119. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8120. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8121. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  8122. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8123. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8124. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  8125. const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  8126. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8127. let ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {
  8128. constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
  8129. super(controlFlowCustomNodeFactory, randomGenerator, options);
  8130. }
  8131. getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {
  8132. const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
  8133. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);
  8134. const statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  8135. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  8136. throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
  8137. }
  8138. return statementNode.expression;
  8139. }
  8140. };
  8141. ExpressionWithOperatorControlFlowReplacer = __decorate([
  8142. inversify_1.injectable(),
  8143. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  8144. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8145. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8146. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8147. ], ExpressionWithOperatorControlFlowReplacer);
  8148. exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;
  8149. /***/ }),
  8150. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts":
  8151. /*!************************************************************************************************************************!*\
  8152. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***!
  8153. \************************************************************************************************************************/
  8154. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8155. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8156. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8157. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8158. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8159. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8160. };
  8161. var __metadata = (this && this.__metadata) || function (k, v) {
  8162. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8163. };
  8164. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8165. return function (target, key) { decorator(target, key, paramIndex); }
  8166. };
  8167. var LogicalExpressionControlFlowReplacer_1, _a, _b, _c;
  8168. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8169. exports.LogicalExpressionControlFlowReplacer = void 0;
  8170. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8171. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8172. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  8173. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8174. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8175. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  8176. const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
  8177. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8178. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  8179. let LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {
  8180. constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
  8181. super(controlFlowCustomNodeFactory, randomGenerator, options);
  8182. }
  8183. replace(logicalExpressionNode, parentNode, controlFlowStorage) {
  8184. if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {
  8185. return logicalExpressionNode;
  8186. }
  8187. const operator = logicalExpressionNode.operator;
  8188. const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
  8189. logicalExpressionFunctionCustomNode.initialize(operator);
  8190. const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  8191. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);
  8192. }
  8193. checkForProhibitedExpressions(leftExpression, rightExpression) {
  8194. return [leftExpression, rightExpression].some((expressionNode) => {
  8195. let nodeForCheck;
  8196. if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {
  8197. nodeForCheck = expressionNode;
  8198. }
  8199. else {
  8200. nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);
  8201. }
  8202. return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) &&
  8203. !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) &&
  8204. !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) &&
  8205. !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);
  8206. });
  8207. }
  8208. };
  8209. LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  8210. LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([
  8211. inversify_1.injectable(),
  8212. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  8213. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8214. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8215. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8216. ], LogicalExpressionControlFlowReplacer);
  8217. exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;
  8218. /***/ }),
  8219. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts":
  8220. /*!********************************************************************************************************************!*\
  8221. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***!
  8222. \********************************************************************************************************************/
  8223. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8224. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8225. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8226. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8227. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8228. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8229. };
  8230. var __metadata = (this && this.__metadata) || function (k, v) {
  8231. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8232. };
  8233. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8234. return function (target, key) { decorator(target, key, paramIndex); }
  8235. };
  8236. var StringLiteralControlFlowReplacer_1, _a, _b, _c;
  8237. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8238. exports.StringLiteralControlFlowReplacer = void 0;
  8239. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8240. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8241. const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts");
  8242. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8243. const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8244. const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  8245. const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  8246. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8247. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  8248. let StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {
  8249. constructor(controlFlowCustomNodeFactory, randomGenerator, options) {
  8250. super(controlFlowCustomNodeFactory, randomGenerator, options);
  8251. }
  8252. replace(literalNode, parentNode, controlFlowStorage) {
  8253. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
  8254. return literalNode;
  8255. }
  8256. if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) || literalNode.value.length < 3) {
  8257. return literalNode;
  8258. }
  8259. const replacerId = String(literalNode.value);
  8260. const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
  8261. literalFunctionCustomNode.initialize(literalNode.value);
  8262. const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);
  8263. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);
  8264. }
  8265. getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {
  8266. const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
  8267. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);
  8268. const statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  8269. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  8270. throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
  8271. }
  8272. return statementNode.expression;
  8273. }
  8274. };
  8275. StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;
  8276. StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([
  8277. inversify_1.injectable(),
  8278. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),
  8279. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8280. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8281. __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8282. ], StringLiteralControlFlowReplacer);
  8283. exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;
  8284. /***/ }),
  8285. /***/ "./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts":
  8286. /*!************************************************************************************!*\
  8287. !*** ./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts ***!
  8288. \************************************************************************************/
  8289. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8290. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8291. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8292. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8293. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8294. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8295. };
  8296. var __metadata = (this && this.__metadata) || function (k, v) {
  8297. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8298. };
  8299. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8300. return function (target, key) { decorator(target, key, paramIndex); }
  8301. };
  8302. var _a, _b;
  8303. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8304. exports.BooleanLiteralTransformer = void 0;
  8305. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8306. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8307. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8308. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8309. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8310. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8311. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8312. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  8313. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  8314. let BooleanLiteralTransformer = class BooleanLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8315. constructor(randomGenerator, options) {
  8316. super(randomGenerator, options);
  8317. }
  8318. getVisitor(nodeTransformationStage) {
  8319. switch (nodeTransformationStage) {
  8320. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8321. return {
  8322. enter: (node, parentNode) => {
  8323. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  8324. return this.transformNode(node, parentNode);
  8325. }
  8326. }
  8327. };
  8328. default:
  8329. return null;
  8330. }
  8331. }
  8332. transformNode(literalNode, parentNode) {
  8333. if (typeof literalNode.value !== 'boolean') {
  8334. return literalNode;
  8335. }
  8336. const literalValue = literalNode.value;
  8337. const unaryExpressionNode = literalValue
  8338. ? this.getTrueUnaryExpressionNode()
  8339. : this.getFalseUnaryExpressionNode();
  8340. NodeUtils_1.NodeUtils.parentizeNode(unaryExpressionNode, parentNode);
  8341. return unaryExpressionNode;
  8342. }
  8343. getTrueUnaryExpressionNode() {
  8344. return NodeFactory_1.NodeFactory.unaryExpressionNode('!', this.getFalseUnaryExpressionNode());
  8345. }
  8346. getFalseUnaryExpressionNode() {
  8347. return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());
  8348. }
  8349. };
  8350. BooleanLiteralTransformer = __decorate([
  8351. inversify_1.injectable(),
  8352. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8353. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8354. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  8355. ], BooleanLiteralTransformer);
  8356. exports.BooleanLiteralTransformer = BooleanLiteralTransformer;
  8357. /***/ }),
  8358. /***/ "./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts":
  8359. /*!*************************************************************************************!*\
  8360. !*** ./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts ***!
  8361. \*************************************************************************************/
  8362. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8363. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8364. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8365. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8366. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8367. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8368. };
  8369. var __metadata = (this && this.__metadata) || function (k, v) {
  8370. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8371. };
  8372. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8373. return function (target, key) { decorator(target, key, paramIndex); }
  8374. };
  8375. var _a, _b;
  8376. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8377. exports.ExportSpecifierTransformer = void 0;
  8378. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8379. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8380. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8381. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8382. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8383. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8384. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8385. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  8386. let ExportSpecifierTransformer = class ExportSpecifierTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8387. constructor(randomGenerator, options) {
  8388. super(randomGenerator, options);
  8389. }
  8390. getVisitor(nodeTransformationStage) {
  8391. switch (nodeTransformationStage) {
  8392. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8393. return {
  8394. enter: (node, parentNode) => {
  8395. if (parentNode && NodeGuards_1.NodeGuards.isExportSpecifierNode(node)) {
  8396. return this.transformNode(node, parentNode);
  8397. }
  8398. }
  8399. };
  8400. default:
  8401. return null;
  8402. }
  8403. }
  8404. transformNode(exportSpecifierNode, parentNode) {
  8405. if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) {
  8406. exportSpecifierNode.exported = NodeUtils_1.NodeUtils.clone(exportSpecifierNode.local);
  8407. }
  8408. return exportSpecifierNode;
  8409. }
  8410. };
  8411. ExportSpecifierTransformer = __decorate([
  8412. inversify_1.injectable(),
  8413. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8414. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8415. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  8416. ], ExportSpecifierTransformer);
  8417. exports.ExportSpecifierTransformer = ExportSpecifierTransformer;
  8418. /***/ }),
  8419. /***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts":
  8420. /*!**************************************************************************************!*\
  8421. !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***!
  8422. \**************************************************************************************/
  8423. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8424. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8425. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8426. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8427. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8428. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8429. };
  8430. var __metadata = (this && this.__metadata) || function (k, v) {
  8431. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8432. };
  8433. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8434. return function (target, key) { decorator(target, key, paramIndex); }
  8435. };
  8436. var _a, _b;
  8437. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8438. exports.MemberExpressionTransformer = void 0;
  8439. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8440. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8441. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8442. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8443. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8444. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8445. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  8446. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8447. let MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8448. constructor(randomGenerator, options) {
  8449. super(randomGenerator, options);
  8450. }
  8451. getVisitor(nodeTransformationStage) {
  8452. switch (nodeTransformationStage) {
  8453. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8454. return {
  8455. enter: (node, parentNode) => {
  8456. if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
  8457. return this.transformNode(node, parentNode);
  8458. }
  8459. }
  8460. };
  8461. default:
  8462. return null;
  8463. }
  8464. }
  8465. transformNode(memberExpressionNode, parentNode) {
  8466. if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {
  8467. if (memberExpressionNode.computed) {
  8468. return memberExpressionNode;
  8469. }
  8470. memberExpressionNode.computed = true;
  8471. memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);
  8472. }
  8473. return memberExpressionNode;
  8474. }
  8475. };
  8476. MemberExpressionTransformer = __decorate([
  8477. inversify_1.injectable(),
  8478. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8479. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8480. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  8481. ], MemberExpressionTransformer);
  8482. exports.MemberExpressionTransformer = MemberExpressionTransformer;
  8483. /***/ }),
  8484. /***/ "./src/node-transformers/converting-transformers/MethodAndPropertyDefinitionTransformer.ts":
  8485. /*!*************************************************************************************************!*\
  8486. !*** ./src/node-transformers/converting-transformers/MethodAndPropertyDefinitionTransformer.ts ***!
  8487. \*************************************************************************************************/
  8488. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8489. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8490. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8491. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8492. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8493. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8494. };
  8495. var __metadata = (this && this.__metadata) || function (k, v) {
  8496. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8497. };
  8498. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8499. return function (target, key) { decorator(target, key, paramIndex); }
  8500. };
  8501. var MethodAndPropertyDefinitionTransformer_1, _a, _b;
  8502. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8503. exports.MethodAndPropertyDefinitionTransformer = void 0;
  8504. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8505. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8506. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8507. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8508. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8509. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8510. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  8511. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8512. let MethodAndPropertyDefinitionTransformer = MethodAndPropertyDefinitionTransformer_1 = class MethodAndPropertyDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8513. constructor(randomGenerator, options) {
  8514. super(randomGenerator, options);
  8515. }
  8516. getVisitor(nodeTransformationStage) {
  8517. switch (nodeTransformationStage) {
  8518. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8519. return {
  8520. enter: (node, parentNode) => {
  8521. if (parentNode
  8522. && (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)
  8523. || NodeGuards_1.NodeGuards.isPropertyDefinitionNode(node))) {
  8524. return this.transformNode(node, parentNode);
  8525. }
  8526. }
  8527. };
  8528. default:
  8529. return null;
  8530. }
  8531. }
  8532. transformNode(classFieldNode, parentNode) {
  8533. if (NodeGuards_1.NodeGuards.isIdentifierNode(classFieldNode.key)) {
  8534. return this.replaceIdentifierKey(classFieldNode, classFieldNode.key);
  8535. }
  8536. if (NodeGuards_1.NodeGuards.isLiteralNode(classFieldNode.key)) {
  8537. return this.replaceLiteralKey(classFieldNode, classFieldNode.key);
  8538. }
  8539. return classFieldNode;
  8540. }
  8541. replaceIdentifierKey(classFieldNode, keyNode) {
  8542. if (!MethodAndPropertyDefinitionTransformer_1.ignoredNames.includes(keyNode.name)
  8543. && !classFieldNode.computed) {
  8544. classFieldNode.computed = true;
  8545. classFieldNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name);
  8546. }
  8547. return classFieldNode;
  8548. }
  8549. replaceLiteralKey(classFieldNode, keyNode) {
  8550. if (typeof keyNode.value === 'string'
  8551. && !MethodAndPropertyDefinitionTransformer_1.ignoredNames.includes(keyNode.value)
  8552. && !classFieldNode.computed) {
  8553. classFieldNode.computed = true;
  8554. }
  8555. return classFieldNode;
  8556. }
  8557. };
  8558. MethodAndPropertyDefinitionTransformer.ignoredNames = ['constructor'];
  8559. MethodAndPropertyDefinitionTransformer = MethodAndPropertyDefinitionTransformer_1 = __decorate([
  8560. inversify_1.injectable(),
  8561. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8562. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8563. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  8564. ], MethodAndPropertyDefinitionTransformer);
  8565. exports.MethodAndPropertyDefinitionTransformer = MethodAndPropertyDefinitionTransformer;
  8566. /***/ }),
  8567. /***/ "./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts":
  8568. /*!***********************************************************************************!*\
  8569. !*** ./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts ***!
  8570. \***********************************************************************************/
  8571. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8572. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8573. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8574. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8575. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8576. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8577. };
  8578. var __metadata = (this && this.__metadata) || function (k, v) {
  8579. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8580. };
  8581. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8582. return function (target, key) { decorator(target, key, paramIndex); }
  8583. };
  8584. var _a, _b;
  8585. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8586. exports.NumberLiteralTransformer = void 0;
  8587. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8588. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8589. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8590. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8591. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  8592. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8593. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8594. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  8595. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8596. const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  8597. let NumberLiteralTransformer = class NumberLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8598. constructor(randomGenerator, options) {
  8599. super(randomGenerator, options);
  8600. this.runAfter = [
  8601. NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer
  8602. ];
  8603. this.numberLiteralCache = new Map();
  8604. }
  8605. getVisitor(nodeTransformationStage) {
  8606. switch (nodeTransformationStage) {
  8607. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8608. return {
  8609. enter: (node, parentNode) => {
  8610. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  8611. return this.transformNode(node, parentNode);
  8612. }
  8613. }
  8614. };
  8615. default:
  8616. return null;
  8617. }
  8618. }
  8619. transformNode(literalNode, parentNode) {
  8620. if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') {
  8621. return literalNode;
  8622. }
  8623. const literalValue = literalNode.value;
  8624. let rawValue;
  8625. if (this.numberLiteralCache.has(literalValue)) {
  8626. rawValue = this.numberLiteralCache.get(literalValue);
  8627. }
  8628. else {
  8629. if (NumberUtils_1.NumberUtils.isCeil(literalValue)) {
  8630. rawValue = NumberUtils_1.NumberUtils.toHex(literalValue);
  8631. }
  8632. else {
  8633. rawValue = String(literalValue);
  8634. }
  8635. this.numberLiteralCache.set(literalValue, rawValue);
  8636. }
  8637. return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue);
  8638. }
  8639. };
  8640. NumberLiteralTransformer = __decorate([
  8641. inversify_1.injectable(),
  8642. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8643. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8644. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  8645. ], NumberLiteralTransformer);
  8646. exports.NumberLiteralTransformer = NumberLiteralTransformer;
  8647. /***/ }),
  8648. /***/ "./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts":
  8649. /*!*************************************************************************************************!*\
  8650. !*** ./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts ***!
  8651. \*************************************************************************************************/
  8652. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8653. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8654. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8655. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8656. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8657. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8658. };
  8659. var __metadata = (this && this.__metadata) || function (k, v) {
  8660. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8661. };
  8662. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8663. return function (target, key) { decorator(target, key, paramIndex); }
  8664. };
  8665. var _a, _b, _c;
  8666. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8667. exports.NumberToNumericalExpressionTransformer = void 0;
  8668. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8669. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8670. const INumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer */ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts");
  8671. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8672. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8673. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8674. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8675. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8676. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  8677. const NumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer */ "./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts");
  8678. const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  8679. const NumericalExpressionDataToNodeConverter_1 = __webpack_require__(/*! ../../node/NumericalExpressionDataToNodeConverter */ "./src/node/NumericalExpressionDataToNodeConverter.ts");
  8680. let NumberToNumericalExpressionTransformer = class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8681. constructor(numberNumericalExpressionAnalyzer, randomGenerator, options) {
  8682. super(randomGenerator, options);
  8683. this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer;
  8684. }
  8685. getVisitor(nodeTransformationStage) {
  8686. if (!this.options.numbersToExpressions) {
  8687. return null;
  8688. }
  8689. switch (nodeTransformationStage) {
  8690. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8691. return {
  8692. leave: (node, parentNode) => {
  8693. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  8694. return this.transformNode(node, parentNode);
  8695. }
  8696. }
  8697. };
  8698. default:
  8699. return null;
  8700. }
  8701. }
  8702. transformNode(literalNode, parentNode) {
  8703. if (typeof literalNode.value !== 'number') {
  8704. return literalNode;
  8705. }
  8706. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) {
  8707. return literalNode;
  8708. }
  8709. const baseNumber = literalNode.value;
  8710. const [integerPart, decimalPart] = NumberUtils_1.NumberUtils.extractIntegerAndDecimalParts(baseNumber);
  8711. const integerNumberNumericalExpressionData = this.numberNumericalExpressionAnalyzer
  8712. .analyze(integerPart, NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer.defaultAdditionalPartsCount);
  8713. if (decimalPart) {
  8714. return NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convertFloatNumberData(integerNumberNumericalExpressionData, decimalPart, this.getNumberNumericalExpressionLiteralNode);
  8715. }
  8716. else {
  8717. return NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convertIntegerNumberData(integerNumberNumericalExpressionData, this.getNumberNumericalExpressionLiteralNode);
  8718. }
  8719. }
  8720. getNumberNumericalExpressionLiteralNode(number, isPositiveNumber) {
  8721. const numberLiteralNode = NodeFactory_1.NodeFactory.literalNode(number);
  8722. return isPositiveNumber
  8723. ? numberLiteralNode
  8724. : NodeFactory_1.NodeFactory.unaryExpressionNode('-', numberLiteralNode);
  8725. }
  8726. };
  8727. NumberToNumericalExpressionTransformer = __decorate([
  8728. inversify_1.injectable(),
  8729. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),
  8730. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8731. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8732. __metadata("design:paramtypes", [typeof (_a = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== "undefined" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8733. ], NumberToNumericalExpressionTransformer);
  8734. exports.NumberToNumericalExpressionTransformer = NumberToNumericalExpressionTransformer;
  8735. /***/ }),
  8736. /***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts":
  8737. /*!******************************************************************************************!*\
  8738. !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***!
  8739. \******************************************************************************************/
  8740. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8741. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  8742. if (k2 === undefined) k2 = k;
  8743. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  8744. }) : (function(o, m, k, k2) {
  8745. if (k2 === undefined) k2 = k;
  8746. o[k2] = m[k];
  8747. }));
  8748. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  8749. Object.defineProperty(o, "default", { enumerable: true, value: v });
  8750. }) : function(o, v) {
  8751. o["default"] = v;
  8752. });
  8753. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8754. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8755. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8756. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8757. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8758. };
  8759. var __importStar = (this && this.__importStar) || function (mod) {
  8760. if (mod && mod.__esModule) return mod;
  8761. var result = {};
  8762. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  8763. __setModuleDefault(result, mod);
  8764. return result;
  8765. };
  8766. var __metadata = (this && this.__metadata) || function (k, v) {
  8767. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8768. };
  8769. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8770. return function (target, key) { decorator(target, key, paramIndex); }
  8771. };
  8772. var ObjectExpressionKeysTransformer_1, _a, _b, _c;
  8773. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8774. exports.ObjectExpressionKeysTransformer = void 0;
  8775. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8776. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8777. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  8778. const TObjectExpressionExtractorFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObjectExpressionExtractorFactory */ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts");
  8779. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8780. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8781. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8782. const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts");
  8783. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8784. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8785. const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  8786. let ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8787. constructor(objectExpressionExtractorFactory, randomGenerator, options) {
  8788. super(randomGenerator, options);
  8789. this.objectExpressionExtractorFactory = objectExpressionExtractorFactory;
  8790. }
  8791. static isProhibitedObjectExpressionNode(objectExpressionNode, objectExpressionParentNode, objectExpressionHostStatement) {
  8792. return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, objectExpressionHostStatement)
  8793. || ObjectExpressionKeysTransformer_1.isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionParentNode)
  8794. || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostStatement);
  8795. }
  8796. static isReferencedIdentifierName(objectExpressionNode, objectExpressionHostNode) {
  8797. const identifierNamesSet = [];
  8798. let isReferencedIdentifierName = false;
  8799. let isCurrentNode = false;
  8800. estraverse.traverse(objectExpressionHostNode, {
  8801. enter: (node) => {
  8802. if (node === objectExpressionNode) {
  8803. isCurrentNode = true;
  8804. }
  8805. if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  8806. return;
  8807. }
  8808. if (!isCurrentNode) {
  8809. identifierNamesSet.push(node.name);
  8810. return;
  8811. }
  8812. if (identifierNamesSet.includes(node.name)) {
  8813. isReferencedIdentifierName = true;
  8814. }
  8815. },
  8816. leave: (node) => {
  8817. if (node === objectExpressionNode) {
  8818. isCurrentNode = false;
  8819. return estraverse.VisitorOption.Break;
  8820. }
  8821. }
  8822. });
  8823. return isReferencedIdentifierName;
  8824. }
  8825. static isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionNodeParentNode) {
  8826. return NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode)
  8827. && objectExpressionNodeParentNode.body === objectExpressionNode;
  8828. }
  8829. static isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostNode) {
  8830. return NodeGuards_1.NodeGuards.isExpressionStatementNode(objectExpressionHostNode)
  8831. && NodeGuards_1.NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression)
  8832. && objectExpressionHostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode)
  8833. && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee));
  8834. }
  8835. getVisitor(nodeTransformationStage) {
  8836. if (!this.options.transformObjectKeys) {
  8837. return null;
  8838. }
  8839. switch (nodeTransformationStage) {
  8840. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8841. return {
  8842. leave: (node, parentNode) => {
  8843. if (parentNode
  8844. && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
  8845. return this.transformNode(node, parentNode);
  8846. }
  8847. }
  8848. };
  8849. default:
  8850. return null;
  8851. }
  8852. }
  8853. transformNode(objectExpressionNode, parentNode) {
  8854. if (!objectExpressionNode.properties.length) {
  8855. return objectExpressionNode;
  8856. }
  8857. const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
  8858. if (ObjectExpressionKeysTransformer_1.isProhibitedObjectExpressionNode(objectExpressionNode, parentNode, hostStatement)) {
  8859. return objectExpressionNode;
  8860. }
  8861. return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement);
  8862. }
  8863. applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) {
  8864. const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames];
  8865. const objectExpressionExtractor = newObjectExpressionExtractorNames.shift();
  8866. if (!objectExpressionExtractor) {
  8867. return objectExpressionNode;
  8868. }
  8869. const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor)
  8870. .extract(objectExpressionNode, hostStatement);
  8871. this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement);
  8872. return nodeToReplace;
  8873. }
  8874. };
  8875. ObjectExpressionKeysTransformer.objectExpressionExtractorNames = [
  8876. ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,
  8877. ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor
  8878. ];
  8879. ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([
  8880. inversify_1.injectable(),
  8881. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),
  8882. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8883. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8884. __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory !== "undefined" && TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  8885. ], ObjectExpressionKeysTransformer);
  8886. exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;
  8887. /***/ }),
  8888. /***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts":
  8889. /*!**************************************************************************************!*\
  8890. !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***!
  8891. \**************************************************************************************/
  8892. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8893. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8894. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8895. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8896. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8897. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8898. };
  8899. var __metadata = (this && this.__metadata) || function (k, v) {
  8900. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8901. };
  8902. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8903. return function (target, key) { decorator(target, key, paramIndex); }
  8904. };
  8905. var _a, _b;
  8906. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8907. exports.ObjectExpressionTransformer = void 0;
  8908. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8909. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8910. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8911. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  8912. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  8913. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  8914. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  8915. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  8916. let ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  8917. constructor(randomGenerator, options) {
  8918. super(randomGenerator, options);
  8919. }
  8920. getVisitor(nodeTransformationStage) {
  8921. switch (nodeTransformationStage) {
  8922. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  8923. return {
  8924. enter: (node, parentNode) => {
  8925. if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
  8926. return this.transformNode(node, parentNode);
  8927. }
  8928. }
  8929. };
  8930. default:
  8931. return null;
  8932. }
  8933. }
  8934. transformNode(objectExpressionNode, parentNode) {
  8935. objectExpressionNode.properties
  8936. .forEach((property) => {
  8937. if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {
  8938. return;
  8939. }
  8940. if (!property.key) {
  8941. return;
  8942. }
  8943. if (property.computed) {
  8944. this.transformComputedProperty(property);
  8945. }
  8946. else {
  8947. this.transformBaseProperty(property);
  8948. }
  8949. });
  8950. return objectExpressionNode;
  8951. }
  8952. transformComputedProperty(property) {
  8953. if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {
  8954. return;
  8955. }
  8956. property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value);
  8957. }
  8958. transformBaseProperty(property) {
  8959. if (property.shorthand) {
  8960. property.shorthand = false;
  8961. }
  8962. if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
  8963. return;
  8964. }
  8965. property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name);
  8966. }
  8967. };
  8968. ObjectExpressionTransformer = __decorate([
  8969. inversify_1.injectable(),
  8970. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  8971. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  8972. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  8973. ], ObjectExpressionTransformer);
  8974. exports.ObjectExpressionTransformer = ObjectExpressionTransformer;
  8975. /***/ }),
  8976. /***/ "./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts":
  8977. /*!*********************************************************************************************!*\
  8978. !*** ./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts ***!
  8979. \*********************************************************************************************/
  8980. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  8981. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  8982. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  8983. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  8984. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  8985. return c > 3 && r && Object.defineProperty(target, key, r), r;
  8986. };
  8987. var __metadata = (this && this.__metadata) || function (k, v) {
  8988. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  8989. };
  8990. var __param = (this && this.__param) || function (paramIndex, decorator) {
  8991. return function (target, key) { decorator(target, key, paramIndex); }
  8992. };
  8993. var _a, _b;
  8994. Object.defineProperty(exports, "__esModule", ({ value: true }));
  8995. exports.ObjectPatternPropertiesTransformer = void 0;
  8996. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8997. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8998. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  8999. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9000. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9001. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9002. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9003. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  9004. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9005. let ObjectPatternPropertiesTransformer = class ObjectPatternPropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9006. constructor(randomGenerator, options) {
  9007. super(randomGenerator, options);
  9008. }
  9009. getVisitor(nodeTransformationStage) {
  9010. switch (nodeTransformationStage) {
  9011. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  9012. return {
  9013. enter: (node, parentNode) => {
  9014. if (parentNode && NodeGuards_1.NodeGuards.isPropertyNode(node)) {
  9015. return this.transformNode(node, parentNode);
  9016. }
  9017. }
  9018. };
  9019. default:
  9020. return null;
  9021. }
  9022. }
  9023. transformNode(propertyNode, parentNode) {
  9024. if (!NodeGuards_1.NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) {
  9025. return propertyNode;
  9026. }
  9027. if (!this.options.renameGlobals) {
  9028. const lexicalScope = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(propertyNode);
  9029. const shouldNotTransformGlobalPropertyNode = !!lexicalScope && NodeGuards_1.NodeGuards.isProgramNode(lexicalScope);
  9030. if (shouldNotTransformGlobalPropertyNode) {
  9031. return propertyNode;
  9032. }
  9033. }
  9034. propertyNode.shorthand = false;
  9035. propertyNode.value = NodeUtils_1.NodeUtils.clone(propertyNode.value);
  9036. NodeUtils_1.NodeUtils.parentizeNode(propertyNode.value, propertyNode);
  9037. return propertyNode;
  9038. }
  9039. };
  9040. ObjectPatternPropertiesTransformer = __decorate([
  9041. inversify_1.injectable(),
  9042. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  9043. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  9044. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  9045. ], ObjectPatternPropertiesTransformer);
  9046. exports.ObjectPatternPropertiesTransformer = ObjectPatternPropertiesTransformer;
  9047. /***/ }),
  9048. /***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts":
  9049. /*!*********************************************************************************!*\
  9050. !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***!
  9051. \*********************************************************************************/
  9052. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9053. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  9054. if (k2 === undefined) k2 = k;
  9055. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  9056. }) : (function(o, m, k, k2) {
  9057. if (k2 === undefined) k2 = k;
  9058. o[k2] = m[k];
  9059. }));
  9060. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  9061. Object.defineProperty(o, "default", { enumerable: true, value: v });
  9062. }) : function(o, v) {
  9063. o["default"] = v;
  9064. });
  9065. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9066. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9067. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9068. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9069. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9070. };
  9071. var __importStar = (this && this.__importStar) || function (mod) {
  9072. if (mod && mod.__esModule) return mod;
  9073. var result = {};
  9074. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  9075. __setModuleDefault(result, mod);
  9076. return result;
  9077. };
  9078. var __metadata = (this && this.__metadata) || function (k, v) {
  9079. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9080. };
  9081. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9082. return function (target, key) { decorator(target, key, paramIndex); }
  9083. };
  9084. var SplitStringTransformer_1, _a, _b;
  9085. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9086. exports.SplitStringTransformer = void 0;
  9087. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9088. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9089. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  9090. const stringz = __importStar(__webpack_require__(/*! stringz */ "stringz"));
  9091. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  9092. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9093. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  9094. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9095. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9096. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  9097. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9098. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  9099. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9100. let SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9101. constructor(randomGenerator, options) {
  9102. super(randomGenerator, options);
  9103. this.runAfter = [
  9104. NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,
  9105. NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer
  9106. ];
  9107. }
  9108. static chunkString(string, stringLength, chunkSize) {
  9109. const chunksCount = Math.ceil(stringLength / chunkSize);
  9110. const chunks = [];
  9111. let nextChunkStartIndex = 0;
  9112. for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {
  9113. chunks[chunkIndex] = stringz.substr(string, nextChunkStartIndex, chunkSize);
  9114. }
  9115. return chunks;
  9116. }
  9117. getVisitor(nodeTransformationStage) {
  9118. switch (nodeTransformationStage) {
  9119. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  9120. return {
  9121. enter: (node, parentNode) => {
  9122. if (!this.options.splitStrings) {
  9123. return;
  9124. }
  9125. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  9126. return this.transformNode(node, parentNode);
  9127. }
  9128. }
  9129. };
  9130. default:
  9131. return null;
  9132. }
  9133. }
  9134. transformNode(literalNode, parentNode) {
  9135. if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
  9136. return literalNode;
  9137. }
  9138. const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength);
  9139. const secondPassChunksNode = estraverse.replace(firstPassChunksNode, {
  9140. enter: (node, parentNode) => {
  9141. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  9142. return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength);
  9143. }
  9144. }
  9145. });
  9146. return secondPassChunksNode;
  9147. }
  9148. transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) {
  9149. if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {
  9150. return literalNode;
  9151. }
  9152. const valueLength = stringz.length(literalNode.value);
  9153. if (chunkLength >= valueLength) {
  9154. return literalNode;
  9155. }
  9156. const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, valueLength, chunkLength);
  9157. const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks);
  9158. NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode);
  9159. NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode);
  9160. return binaryExpressionNode;
  9161. }
  9162. transformStringChunksToBinaryExpressionNode(chunks) {
  9163. const firstChunk = chunks.shift();
  9164. const secondChunk = chunks.shift();
  9165. if (!firstChunk || !secondChunk) {
  9166. throw new Error('First and second chunks values should not be empty');
  9167. }
  9168. const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk));
  9169. return chunks.reduce((binaryExpressionNode, chunk) => {
  9170. const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk);
  9171. return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode);
  9172. }, initialBinaryExpressionNode);
  9173. }
  9174. };
  9175. SplitStringTransformer.firstPassChunkLength = 1000;
  9176. SplitStringTransformer = SplitStringTransformer_1 = __decorate([
  9177. inversify_1.injectable(),
  9178. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  9179. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  9180. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  9181. ], SplitStringTransformer);
  9182. exports.SplitStringTransformer = SplitStringTransformer;
  9183. /***/ }),
  9184. /***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts":
  9185. /*!*************************************************************************************!*\
  9186. !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***!
  9187. \*************************************************************************************/
  9188. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9189. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9190. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9191. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9192. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9193. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9194. };
  9195. var __metadata = (this && this.__metadata) || function (k, v) {
  9196. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9197. };
  9198. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9199. return function (target, key) { decorator(target, key, paramIndex); }
  9200. };
  9201. var TemplateLiteralTransformer_1, _a, _b;
  9202. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9203. exports.TemplateLiteralTransformer = void 0;
  9204. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9205. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9206. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  9207. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9208. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9209. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9210. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  9211. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9212. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9213. let TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9214. constructor(randomGenerator, options) {
  9215. super(randomGenerator, options);
  9216. }
  9217. static isLiteralNodeWithStringValue(node) {
  9218. return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';
  9219. }
  9220. getVisitor(nodeTransformationStage) {
  9221. switch (nodeTransformationStage) {
  9222. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  9223. return {
  9224. enter: (node, parentNode) => {
  9225. if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
  9226. return this.transformNode(node, parentNode);
  9227. }
  9228. }
  9229. };
  9230. default:
  9231. return null;
  9232. }
  9233. }
  9234. transformNode(templateLiteralNode, parentNode) {
  9235. if (NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode)) {
  9236. return templateLiteralNode;
  9237. }
  9238. return this.transformTemplateLiteralNode(templateLiteralNode, parentNode);
  9239. }
  9240. transformTemplateLiteralNode(templateLiteralNode, parentNode) {
  9241. const templateLiteralExpressions = templateLiteralNode.expressions;
  9242. let nodes = [];
  9243. templateLiteralNode.quasis.forEach((templateElement) => {
  9244. if (templateElement.value.cooked === undefined || templateElement.value.cooked === null) {
  9245. return;
  9246. }
  9247. nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));
  9248. const expression = templateLiteralExpressions.shift();
  9249. if (!expression) {
  9250. return;
  9251. }
  9252. nodes.push(expression);
  9253. });
  9254. nodes = nodes.filter((node) => {
  9255. return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');
  9256. });
  9257. if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) &&
  9258. !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {
  9259. nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));
  9260. }
  9261. let transformedNode;
  9262. if (nodes.length > 1) {
  9263. let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());
  9264. nodes.forEach((node) => {
  9265. root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);
  9266. });
  9267. transformedNode = root;
  9268. }
  9269. else {
  9270. transformedNode = nodes[0];
  9271. }
  9272. NodeUtils_1.NodeUtils.parentizeAst(transformedNode);
  9273. NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);
  9274. return transformedNode;
  9275. }
  9276. };
  9277. TemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([
  9278. inversify_1.injectable(),
  9279. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  9280. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  9281. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  9282. ], TemplateLiteralTransformer);
  9283. exports.TemplateLiteralTransformer = TemplateLiteralTransformer;
  9284. /***/ }),
  9285. /***/ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts":
  9286. /*!***************************************************************************************************************!*\
  9287. !*** ./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts ***!
  9288. \***************************************************************************************************************/
  9289. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9290. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9291. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9292. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9293. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9294. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9295. };
  9296. var BasePropertiesExtractor_1;
  9297. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9298. exports.BasePropertiesExtractor = void 0;
  9299. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9300. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  9301. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  9302. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9303. const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  9304. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9305. let BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor {
  9306. static getPropertyNodeKeyName(propertyNode) {
  9307. const propertyKeyNode = propertyNode.key;
  9308. if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode)
  9309. && (typeof propertyKeyNode.value === 'string'
  9310. || typeof propertyKeyNode.value === 'number')) {
  9311. return propertyKeyNode.value.toString();
  9312. }
  9313. if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {
  9314. return propertyKeyNode.name;
  9315. }
  9316. return null;
  9317. }
  9318. static isProhibitedPropertyNode(node) {
  9319. return node.kind !== 'init';
  9320. }
  9321. static isProhibitedPattern(node) {
  9322. return !node
  9323. || NodeGuards_1.NodeGuards.isObjectPatternNode(node)
  9324. || NodeGuards_1.NodeGuards.isArrayPatternNode(node)
  9325. || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node)
  9326. || NodeGuards_1.NodeGuards.isRestElementNode(node);
  9327. }
  9328. static shouldCreateLiteralNode(property) {
  9329. return !property.computed
  9330. || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key));
  9331. }
  9332. extract(objectExpressionNode, hostStatement) {
  9333. const hostNode = objectExpressionNode.parentNode;
  9334. if (hostNode
  9335. && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode)
  9336. && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) {
  9337. return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id);
  9338. }
  9339. return {
  9340. nodeToReplace: objectExpressionNode,
  9341. objectExpressionHostStatement: hostStatement,
  9342. objectExpressionNode: objectExpressionNode
  9343. };
  9344. }
  9345. transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) {
  9346. const properties = objectExpressionNode.properties;
  9347. const [expressionStatements, removablePropertyIds] = this
  9348. .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode);
  9349. const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);
  9350. this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);
  9351. NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);
  9352. NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements);
  9353. return {
  9354. nodeToReplace: objectExpressionNode,
  9355. objectExpressionHostStatement: hostStatement,
  9356. objectExpressionNode: objectExpressionNode
  9357. };
  9358. }
  9359. extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) {
  9360. const propertiesLength = properties.length;
  9361. const expressionStatements = [];
  9362. const removablePropertyIds = [];
  9363. for (let i = propertiesLength - 1; i >= 0; i--) {
  9364. const property = properties[i];
  9365. if (NodeGuards_1.NodeGuards.isSpreadElementNode(property)) {
  9366. break;
  9367. }
  9368. if (BasePropertiesExtractor_1.isProhibitedPropertyNode(property)) {
  9369. continue;
  9370. }
  9371. const propertyValue = property.value;
  9372. if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) {
  9373. continue;
  9374. }
  9375. const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property);
  9376. if (!propertyKeyName) {
  9377. continue;
  9378. }
  9379. const shouldCreateLiteralNode = BasePropertiesExtractor_1.shouldCreateLiteralNode(property);
  9380. const memberExpressionProperty = shouldCreateLiteralNode
  9381. ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName)
  9382. : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);
  9383. const memberExpressionNode = NodeFactory_1.NodeFactory
  9384. .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);
  9385. const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));
  9386. if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {
  9387. this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode);
  9388. }
  9389. expressionStatements.unshift(expressionStatementNode);
  9390. removablePropertyIds.unshift(i);
  9391. }
  9392. return [expressionStatements, removablePropertyIds];
  9393. }
  9394. filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {
  9395. objectExpressionNode.properties = objectExpressionNode.properties
  9396. .filter((property, index) => !removablePropertyIds.includes(index));
  9397. }
  9398. };
  9399. BasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([
  9400. inversify_1.injectable()
  9401. ], BasePropertiesExtractor);
  9402. exports.BasePropertiesExtractor = BasePropertiesExtractor;
  9403. /***/ }),
  9404. /***/ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts":
  9405. /*!**************************************************************************************************************************************!*\
  9406. !*** ./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts ***!
  9407. \**************************************************************************************************************************************/
  9408. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9409. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9410. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9411. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9412. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9413. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9414. };
  9415. var __metadata = (this && this.__metadata) || function (k, v) {
  9416. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9417. };
  9418. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9419. return function (target, key) { decorator(target, key, paramIndex); }
  9420. };
  9421. var _a;
  9422. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9423. exports.ObjectExpressionToVariableDeclarationExtractor = void 0;
  9424. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9425. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9426. const TObjectExpressionKeysTransformerCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory */ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts");
  9427. const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts");
  9428. const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  9429. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9430. const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  9431. const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9432. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  9433. let ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor {
  9434. constructor(objectExpressionKeysTransformerCustomNodeFactory) {
  9435. this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory;
  9436. }
  9437. extract(objectExpressionNode, hostStatement) {
  9438. return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement);
  9439. }
  9440. transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) {
  9441. var _a;
  9442. const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);
  9443. const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements)
  9444. ? hostNodeWithStatements
  9445. : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null;
  9446. if (!lexicalScopeNode) {
  9447. throw new Error('Cannot find lexical scope node for the host statement node');
  9448. }
  9449. const properties = objectExpressionNode.properties;
  9450. const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties);
  9451. const statementsToInsert = [newObjectExpressionHostStatement];
  9452. NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement);
  9453. NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement);
  9454. NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements);
  9455. const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement);
  9456. const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement);
  9457. return {
  9458. nodeToReplace: newObjectExpressionIdentifier,
  9459. objectExpressionHostStatement: newObjectExpressionHostStatement,
  9460. objectExpressionNode: newObjectExpressionNode
  9461. };
  9462. }
  9463. getObjectExpressionHostNode(lexicalScopeNode, properties) {
  9464. const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);
  9465. variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties);
  9466. const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0];
  9467. if (!statementNode
  9468. || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) {
  9469. throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node');
  9470. }
  9471. return statementNode;
  9472. }
  9473. getObjectExpressionIdentifierNode(objectExpressionHostNode) {
  9474. const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id;
  9475. if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) {
  9476. throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property');
  9477. }
  9478. return newObjectExpressionIdentifierNode;
  9479. }
  9480. getObjectExpressionNode(objectExpressionHostNode) {
  9481. var _a;
  9482. const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null;
  9483. if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) {
  9484. throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property');
  9485. }
  9486. return newObjectExpressionNode;
  9487. }
  9488. };
  9489. ObjectExpressionToVariableDeclarationExtractor = __decorate([
  9490. inversify_1.injectable(),
  9491. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),
  9492. __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory !== "undefined" && TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory) === "function" ? _a : Object])
  9493. ], ObjectExpressionToVariableDeclarationExtractor);
  9494. exports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor;
  9495. /***/ }),
  9496. /***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionIdentifiersTransformer.ts":
  9497. /*!***********************************************************************************************************!*\
  9498. !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionIdentifiersTransformer.ts ***!
  9499. \***********************************************************************************************************/
  9500. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9501. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9502. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9503. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9504. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9505. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9506. };
  9507. var __metadata = (this && this.__metadata) || function (k, v) {
  9508. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9509. };
  9510. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9511. return function (target, key) { decorator(target, key, paramIndex); }
  9512. };
  9513. var _a, _b, _c, _d;
  9514. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9515. exports.DeadCodeInjectionIdentifiersTransformer = void 0;
  9516. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9517. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9518. const IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts");
  9519. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  9520. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9521. const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts");
  9522. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9523. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9524. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9525. let DeadCodeInjectionIdentifiersTransformer = class DeadCodeInjectionIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9526. constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {
  9527. super(randomGenerator, options);
  9528. this.identifierReplacer = identifierReplacer;
  9529. this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
  9530. }
  9531. getVisitor(nodeTransformationStage) {
  9532. switch (nodeTransformationStage) {
  9533. case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:
  9534. return {
  9535. enter: (node, parentNode) => {
  9536. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  9537. return this.transformNode(node, parentNode);
  9538. }
  9539. }
  9540. };
  9541. default:
  9542. return null;
  9543. }
  9544. }
  9545. transformNode(programNode, parentNode) {
  9546. this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => {
  9547. const { reference, variableLexicalScopeNode } = data;
  9548. this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode);
  9549. });
  9550. return programNode;
  9551. }
  9552. transformScopeThroughIdentifiers(reference, lexicalScopeNode) {
  9553. if (reference.resolved) {
  9554. return;
  9555. }
  9556. const identifier = reference.identifier;
  9557. this.storeIdentifierName(identifier, lexicalScopeNode);
  9558. this.replaceIdentifierName(identifier, lexicalScopeNode, reference);
  9559. }
  9560. storeIdentifierName(identifierNode, lexicalScopeNode) {
  9561. this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);
  9562. }
  9563. replaceIdentifierName(identifierNode, lexicalScopeNode, reference) {
  9564. const newIdentifier = this.identifierReplacer
  9565. .replace(identifierNode, lexicalScopeNode);
  9566. reference.identifier.name = newIdentifier.name;
  9567. }
  9568. };
  9569. DeadCodeInjectionIdentifiersTransformer = __decorate([
  9570. inversify_1.injectable(),
  9571. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),
  9572. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  9573. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  9574. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),
  9575. __metadata("design:paramtypes", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object])
  9576. ], DeadCodeInjectionIdentifiersTransformer);
  9577. exports.DeadCodeInjectionIdentifiersTransformer = DeadCodeInjectionIdentifiersTransformer;
  9578. /***/ }),
  9579. /***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts":
  9580. /*!************************************************************************************************!*\
  9581. !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***!
  9582. \************************************************************************************************/
  9583. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9584. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  9585. if (k2 === undefined) k2 = k;
  9586. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  9587. }) : (function(o, m, k, k2) {
  9588. if (k2 === undefined) k2 = k;
  9589. o[k2] = m[k];
  9590. }));
  9591. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  9592. Object.defineProperty(o, "default", { enumerable: true, value: v });
  9593. }) : function(o, v) {
  9594. o["default"] = v;
  9595. });
  9596. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9597. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9598. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9599. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9600. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9601. };
  9602. var __importStar = (this && this.__importStar) || function (mod) {
  9603. if (mod && mod.__esModule) return mod;
  9604. var result = {};
  9605. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  9606. __setModuleDefault(result, mod);
  9607. return result;
  9608. };
  9609. var __metadata = (this && this.__metadata) || function (k, v) {
  9610. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9611. };
  9612. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9613. return function (target, key) { decorator(target, key, paramIndex); }
  9614. };
  9615. var DeadCodeInjectionTransformer_1, _a, _b, _c, _d;
  9616. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9617. exports.DeadCodeInjectionTransformer = void 0;
  9618. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9619. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9620. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  9621. const TDeadNodeInjectionCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory */ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts");
  9622. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  9623. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9624. const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts");
  9625. const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
  9626. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  9627. const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  9628. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9629. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9630. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  9631. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9632. const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  9633. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9634. let DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9635. constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {
  9636. super(randomGenerator, options);
  9637. this.deadCodeInjectionRootAstHostNodeSet = new Set();
  9638. this.collectedBlockStatements = [];
  9639. this.collectedBlockStatementsTotalLength = 0;
  9640. this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;
  9641. this.transformersRunner = transformersRunner;
  9642. }
  9643. static isProhibitedNodeInsideCollectedBlockStatement(targetNode) {
  9644. return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)
  9645. || NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode)
  9646. || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode)
  9647. || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode)
  9648. || NodeGuards_1.NodeGuards.isYieldExpressionNode(targetNode)
  9649. || NodeGuards_1.NodeGuards.isSuperNode(targetNode)
  9650. || (NodeGuards_1.NodeGuards.isForOfStatementNode(targetNode) && targetNode.await);
  9651. }
  9652. static isScopeHoistingFunctionDeclaration(targetNode) {
  9653. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {
  9654. return false;
  9655. }
  9656. const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);
  9657. const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)
  9658. ? scopeNode.body
  9659. : scopeNode.consequent;
  9660. const indexInScope = scopeBody.indexOf(targetNode);
  9661. if (indexInScope === 0) {
  9662. return false;
  9663. }
  9664. const slicedBody = scopeBody.slice(0, indexInScope);
  9665. const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);
  9666. const functionDeclarationName = targetNode.id.name;
  9667. let isScopeHoistedFunctionDeclaration = false;
  9668. estraverse.traverse(hostBlockStatementNode, {
  9669. enter: (node) => {
  9670. if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {
  9671. isScopeHoistedFunctionDeclaration = true;
  9672. return estraverse.VisitorOption.Break;
  9673. }
  9674. }
  9675. });
  9676. return isScopeHoistedFunctionDeclaration;
  9677. }
  9678. static isValidCollectedBlockStatementNode(blockStatementNode) {
  9679. if (!blockStatementNode.body.length) {
  9680. return false;
  9681. }
  9682. let nestedBlockStatementsCount = 0;
  9683. let isValidBlockStatementNode = true;
  9684. estraverse.traverse(blockStatementNode, {
  9685. enter: (node) => {
  9686. if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  9687. nestedBlockStatementsCount++;
  9688. }
  9689. if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount
  9690. || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node)
  9691. || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
  9692. isValidBlockStatementNode = false;
  9693. return estraverse.VisitorOption.Break;
  9694. }
  9695. }
  9696. });
  9697. return isValidBlockStatementNode;
  9698. }
  9699. static isValidWrappedBlockStatementNode(blockStatementNode) {
  9700. if (!blockStatementNode.body.length) {
  9701. return false;
  9702. }
  9703. let isValidBlockStatementNode = true;
  9704. estraverse.traverse(blockStatementNode, {
  9705. enter: (node) => {
  9706. if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
  9707. isValidBlockStatementNode = false;
  9708. return estraverse.VisitorOption.Break;
  9709. }
  9710. }
  9711. });
  9712. if (!isValidBlockStatementNode) {
  9713. return false;
  9714. }
  9715. const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils
  9716. .getParentNodeWithStatements(blockStatementNode);
  9717. return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;
  9718. }
  9719. getVisitor(nodeTransformationStage) {
  9720. switch (nodeTransformationStage) {
  9721. case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection:
  9722. return {
  9723. enter: (node, parentNode) => {
  9724. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  9725. this.prepareNode(node, parentNode);
  9726. return node;
  9727. }
  9728. },
  9729. leave: (node, parentNode) => {
  9730. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  9731. return this.transformNode(node, parentNode);
  9732. }
  9733. }
  9734. };
  9735. case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
  9736. if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
  9737. return null;
  9738. }
  9739. return {
  9740. enter: (node, parentNode) => {
  9741. if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {
  9742. return this.restoreNode(node, parentNode);
  9743. }
  9744. }
  9745. };
  9746. default:
  9747. return null;
  9748. }
  9749. }
  9750. prepareNode(programNode, parentNode) {
  9751. estraverse.traverse(programNode, {
  9752. enter: (node) => {
  9753. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  9754. return;
  9755. }
  9756. const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);
  9757. if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {
  9758. return;
  9759. }
  9760. const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);
  9761. this.collectedBlockStatements.push(transformedBlockStatementNode);
  9762. }
  9763. });
  9764. this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;
  9765. }
  9766. transformNode(blockStatementNode, parentNode) {
  9767. const canBreakTraverse = !this.collectedBlockStatements.length
  9768. || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;
  9769. if (canBreakTraverse) {
  9770. return estraverse.VisitorOption.Break;
  9771. }
  9772. if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold
  9773. || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {
  9774. return blockStatementNode;
  9775. }
  9776. const minInteger = 0;
  9777. const maxInteger = this.collectedBlockStatements.length - 1;
  9778. const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);
  9779. const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];
  9780. const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;
  9781. if (isDuplicateBlockStatementNodes) {
  9782. return blockStatementNode;
  9783. }
  9784. return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);
  9785. }
  9786. restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {
  9787. const hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];
  9788. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {
  9789. throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');
  9790. }
  9791. return hostNodeFirstStatement.body;
  9792. }
  9793. isDeadCodeInjectionRootAstHostNode(node) {
  9794. return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);
  9795. }
  9796. makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {
  9797. const hostNode = NodeFactory_1.NodeFactory.programNode([
  9798. NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode))
  9799. ]);
  9800. NodeUtils_1.NodeUtils.parentizeAst(hostNode);
  9801. NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);
  9802. this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);
  9803. return clonedBlockStatementNode;
  9804. }
  9805. replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {
  9806. const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([
  9807. NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)
  9808. ]);
  9809. this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);
  9810. const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
  9811. blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);
  9812. const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];
  9813. NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
  9814. return newBlockStatementNode;
  9815. }
  9816. };
  9817. DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';
  9818. DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;
  9819. DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;
  9820. DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [
  9821. NodeTransformer_1.NodeTransformer.DeadCodeInjectionIdentifiersTransformer,
  9822. NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,
  9823. NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer
  9824. ];
  9825. DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([
  9826. inversify_1.injectable(),
  9827. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),
  9828. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),
  9829. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  9830. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  9831. __metadata("design:paramtypes", [typeof (_a = typeof TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory !== "undefined" && TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  9832. ], DeadCodeInjectionTransformer);
  9833. exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;
  9834. /***/ }),
  9835. /***/ "./src/node-transformers/finalizing-transformers/DirectivePlacementTransformer.ts":
  9836. /*!****************************************************************************************!*\
  9837. !*** ./src/node-transformers/finalizing-transformers/DirectivePlacementTransformer.ts ***!
  9838. \****************************************************************************************/
  9839. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9840. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  9841. if (k2 === undefined) k2 = k;
  9842. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  9843. }) : (function(o, m, k, k2) {
  9844. if (k2 === undefined) k2 = k;
  9845. o[k2] = m[k];
  9846. }));
  9847. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  9848. Object.defineProperty(o, "default", { enumerable: true, value: v });
  9849. }) : function(o, v) {
  9850. o["default"] = v;
  9851. });
  9852. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9853. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9854. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9855. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9856. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9857. };
  9858. var __importStar = (this && this.__importStar) || function (mod) {
  9859. if (mod && mod.__esModule) return mod;
  9860. var result = {};
  9861. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  9862. __setModuleDefault(result, mod);
  9863. return result;
  9864. };
  9865. var __metadata = (this && this.__metadata) || function (k, v) {
  9866. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9867. };
  9868. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9869. return function (target, key) { decorator(target, key, paramIndex); }
  9870. };
  9871. var _a, _b;
  9872. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9873. exports.DirectivePlacementTransformer = void 0;
  9874. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9875. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9876. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  9877. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  9878. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9879. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9880. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  9881. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9882. const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  9883. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9884. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9885. let DirectivePlacementTransformer = class DirectivePlacementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9886. constructor(randomGenerator, options) {
  9887. super(randomGenerator, options);
  9888. this.runAfter = [
  9889. NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer
  9890. ];
  9891. this.lexicalScopeDirectives = new WeakMap();
  9892. }
  9893. getVisitor(nodeTransformationStage) {
  9894. switch (nodeTransformationStage) {
  9895. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  9896. return {
  9897. enter: (node, parentNode) => {
  9898. if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {
  9899. return this.analyzeNode(node, parentNode);
  9900. }
  9901. }
  9902. };
  9903. case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
  9904. return {
  9905. enter: (node, parentNode) => {
  9906. if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {
  9907. return this.transformNode(node, parentNode);
  9908. }
  9909. }
  9910. };
  9911. default:
  9912. return null;
  9913. }
  9914. }
  9915. analyzeNode(nodeWithLexicalScopeStatements, parentNode) {
  9916. var _a;
  9917. if (!NodeGuards_1.NodeGuards.isNodeWithLexicalScope(parentNode)) {
  9918. return nodeWithLexicalScopeStatements;
  9919. }
  9920. const firstStatementNode = (_a = nodeWithLexicalScopeStatements.body[0]) !== null && _a !== void 0 ? _a : null;
  9921. if (firstStatementNode && NodeGuards_1.NodeGuards.isDirectiveNode(firstStatementNode)) {
  9922. this.lexicalScopeDirectives.set(parentNode, firstStatementNode);
  9923. }
  9924. return nodeWithLexicalScopeStatements;
  9925. }
  9926. transformNode(nodeWithLexicalScopeStatements, parentNode) {
  9927. if (!NodeGuards_1.NodeGuards.isNodeWithLexicalScope(parentNode)) {
  9928. return nodeWithLexicalScopeStatements;
  9929. }
  9930. const directiveNode = this.lexicalScopeDirectives.get(parentNode);
  9931. if (directiveNode) {
  9932. const newDirectiveNode = NodeUtils_1.NodeUtils.clone(directiveNode);
  9933. NodeAppender_1.NodeAppender.prepend(nodeWithLexicalScopeStatements, [newDirectiveNode]);
  9934. let isDirectiveNodeRemoved = false;
  9935. estraverse.replace(nodeWithLexicalScopeStatements, {
  9936. enter: (node) => {
  9937. if (isDirectiveNodeRemoved) {
  9938. return estraverse.VisitorOption.Break;
  9939. }
  9940. if (node === directiveNode) {
  9941. isDirectiveNodeRemoved = true;
  9942. return estraverse.VisitorOption.Remove;
  9943. }
  9944. }
  9945. });
  9946. }
  9947. return nodeWithLexicalScopeStatements;
  9948. }
  9949. };
  9950. DirectivePlacementTransformer = __decorate([
  9951. inversify_1.injectable(),
  9952. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  9953. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  9954. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  9955. ], DirectivePlacementTransformer);
  9956. exports.DirectivePlacementTransformer = DirectivePlacementTransformer;
  9957. /***/ }),
  9958. /***/ "./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts":
  9959. /*!************************************************************************************!*\
  9960. !*** ./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts ***!
  9961. \************************************************************************************/
  9962. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  9963. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  9964. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  9965. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  9966. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  9967. return c > 3 && r && Object.defineProperty(target, key, r), r;
  9968. };
  9969. var __metadata = (this && this.__metadata) || function (k, v) {
  9970. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  9971. };
  9972. var __param = (this && this.__param) || function (paramIndex, decorator) {
  9973. return function (target, key) { decorator(target, key, paramIndex); }
  9974. };
  9975. var _a, _b, _c;
  9976. Object.defineProperty(exports, "__esModule", ({ value: true }));
  9977. exports.EscapeSequenceTransformer = void 0;
  9978. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9979. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9980. const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts");
  9981. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  9982. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  9983. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  9984. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  9985. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  9986. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  9987. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  9988. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  9989. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  9990. let EscapeSequenceTransformer = class EscapeSequenceTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  9991. constructor(randomGenerator, options, escapeSequenceEncoder) {
  9992. super(randomGenerator, options);
  9993. this.runAfter = [
  9994. NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer
  9995. ];
  9996. this.escapeSequenceEncoder = escapeSequenceEncoder;
  9997. }
  9998. getVisitor(nodeTransformationStage) {
  9999. switch (nodeTransformationStage) {
  10000. case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
  10001. return {
  10002. enter: (node, parentNode) => {
  10003. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  10004. return this.transformNode(node, parentNode);
  10005. }
  10006. }
  10007. };
  10008. default:
  10009. return null;
  10010. }
  10011. }
  10012. transformNode(literalNode, parentNode) {
  10013. if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {
  10014. return literalNode;
  10015. }
  10016. const encodedValue = this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence);
  10017. const newLiteralNode = NodeFactory_1.NodeFactory.literalNode(encodedValue);
  10018. NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);
  10019. return newLiteralNode;
  10020. }
  10021. };
  10022. EscapeSequenceTransformer = __decorate([
  10023. inversify_1.injectable(),
  10024. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10025. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10026. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),
  10027. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _c : Object])
  10028. ], EscapeSequenceTransformer);
  10029. exports.EscapeSequenceTransformer = EscapeSequenceTransformer;
  10030. /***/ }),
  10031. /***/ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts":
  10032. /*!********************************************************************************!*\
  10033. !*** ./src/node-transformers/initializing-transformers/CommentsTransformer.ts ***!
  10034. \********************************************************************************/
  10035. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10036. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  10037. if (k2 === undefined) k2 = k;
  10038. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  10039. }) : (function(o, m, k, k2) {
  10040. if (k2 === undefined) k2 = k;
  10041. o[k2] = m[k];
  10042. }));
  10043. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  10044. Object.defineProperty(o, "default", { enumerable: true, value: v });
  10045. }) : function(o, v) {
  10046. o["default"] = v;
  10047. });
  10048. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10049. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10050. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10051. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10052. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10053. };
  10054. var __importStar = (this && this.__importStar) || function (mod) {
  10055. if (mod && mod.__esModule) return mod;
  10056. var result = {};
  10057. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  10058. __setModuleDefault(result, mod);
  10059. return result;
  10060. };
  10061. var __metadata = (this && this.__metadata) || function (k, v) {
  10062. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10063. };
  10064. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10065. return function (target, key) { decorator(target, key, paramIndex); }
  10066. };
  10067. var CommentsTransformer_1, _a, _b;
  10068. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10069. exports.CommentsTransformer = void 0;
  10070. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10071. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10072. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  10073. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10074. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10075. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10076. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10077. const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
  10078. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10079. let CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10080. constructor(randomGenerator, options) {
  10081. super(randomGenerator, options);
  10082. }
  10083. getVisitor(nodeTransformationStage) {
  10084. switch (nodeTransformationStage) {
  10085. case NodeTransformationStage_1.NodeTransformationStage.Initializing:
  10086. return {
  10087. leave: (node) => {
  10088. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  10089. return this.transformNode(node);
  10090. }
  10091. }
  10092. };
  10093. case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
  10094. return {
  10095. leave: (node) => {
  10096. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  10097. return this.filterCommentsOnFinalizingTraverse(node);
  10098. }
  10099. }
  10100. };
  10101. default:
  10102. return null;
  10103. }
  10104. }
  10105. transformNode(rootNode) {
  10106. rootNode = this.filterCommentsOnPrimaryTraverse(rootNode);
  10107. if (!rootNode.comments || !rootNode.comments.length) {
  10108. return rootNode;
  10109. }
  10110. const comments = rootNode.comments.reverse();
  10111. if (comments.length === 0) {
  10112. return rootNode;
  10113. }
  10114. if (!rootNode.body.length) {
  10115. rootNode.leadingComments = comments;
  10116. return rootNode;
  10117. }
  10118. let isFirstNode = true;
  10119. estraverse.traverse(rootNode, {
  10120. enter: (node) => {
  10121. if (node === rootNode) {
  10122. return;
  10123. }
  10124. const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]);
  10125. if (commentIdx >= 0) {
  10126. (isFirstNode ? rootNode : node).leadingComments =
  10127. comments.splice(commentIdx, comments.length - commentIdx).reverse();
  10128. }
  10129. isFirstNode = false;
  10130. }
  10131. });
  10132. if (comments.length > 0) {
  10133. rootNode.trailingComments = comments.reverse();
  10134. }
  10135. return rootNode;
  10136. }
  10137. filterCommentsOnPrimaryTraverse(rootNode) {
  10138. var _a;
  10139. rootNode.comments = (_a = rootNode.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, true));
  10140. return rootNode;
  10141. }
  10142. filterCommentsOnFinalizingTraverse(rootNode) {
  10143. estraverse.replace(rootNode, {
  10144. enter: (node) => {
  10145. var _a, _b;
  10146. if (node.leadingComments) {
  10147. node.leadingComments = (_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, false));
  10148. }
  10149. if (node.trailingComments) {
  10150. node.trailingComments = (_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.filter((comment) => this.filterComment(comment, false));
  10151. }
  10152. return node;
  10153. }
  10154. });
  10155. return rootNode;
  10156. }
  10157. filterComment(comment, keepConditionalComment) {
  10158. if (keepConditionalComment && ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) {
  10159. return true;
  10160. }
  10161. return CommentsTransformer_1.preservedWords
  10162. .some((preservedWord) => comment.value.includes(preservedWord));
  10163. }
  10164. };
  10165. CommentsTransformer.preservedWords = [
  10166. '@license',
  10167. '@preserve'
  10168. ];
  10169. CommentsTransformer = CommentsTransformer_1 = __decorate([
  10170. inversify_1.injectable(),
  10171. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10172. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10173. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  10174. ], CommentsTransformer);
  10175. exports.CommentsTransformer = CommentsTransformer;
  10176. /***/ }),
  10177. /***/ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts":
  10178. /*!**************************************************************************************!*\
  10179. !*** ./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts ***!
  10180. \**************************************************************************************/
  10181. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10182. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10183. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10184. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10185. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10186. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10187. };
  10188. var __metadata = (this && this.__metadata) || function (k, v) {
  10189. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10190. };
  10191. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10192. return function (target, key) { decorator(target, key, paramIndex); }
  10193. };
  10194. var _a, _b, _c, _d, _e;
  10195. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10196. exports.CustomCodeHelpersTransformer = void 0;
  10197. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10198. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10199. const TCustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../types/storages/TCustomCodeHelperGroupStorage */ "./src/types/storages/TCustomCodeHelperGroupStorage.ts");
  10200. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10201. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10202. const ICallsGraphAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts");
  10203. const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts");
  10204. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  10205. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10206. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10207. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10208. let CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10209. constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, customCodeHelperGroupStorage, randomGenerator, options) {
  10210. super(randomGenerator, options);
  10211. this.runAfter = [
  10212. NodeTransformer_1.NodeTransformer.ParentificationTransformer,
  10213. NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
  10214. ];
  10215. this.callsGraphData = [];
  10216. this.callsGraphAnalyzer = callsGraphAnalyzer;
  10217. this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer;
  10218. this.customCodeHelperGroupStorage = customCodeHelperGroupStorage;
  10219. }
  10220. getVisitor(nodeTransformationStage) {
  10221. switch (nodeTransformationStage) {
  10222. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  10223. return {
  10224. leave: (node, parentNode) => {
  10225. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  10226. this.prepareNode(node, parentNode);
  10227. this.appendCustomNodesForPreparingStage(node, parentNode);
  10228. return this.transformNode(node, parentNode);
  10229. }
  10230. }
  10231. };
  10232. default:
  10233. return {
  10234. leave: (node, parentNode) => {
  10235. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  10236. this.appendCustomNodesForStage(nodeTransformationStage, node, parentNode);
  10237. }
  10238. return node;
  10239. }
  10240. };
  10241. }
  10242. }
  10243. prepareNode(node, parentNode) {
  10244. this.callsGraphData = this.callsGraphAnalyzer.analyze(node);
  10245. this.prevailingKindOfVariablesAnalyzer.analyze(node);
  10246. }
  10247. transformNode(node, parentNode) {
  10248. return node;
  10249. }
  10250. appendCustomNodesForPreparingStage(node, parentNode) {
  10251. this.customCodeHelperGroupStorage
  10252. .getStorage()
  10253. .forEach((customCodeHelperGroup) => {
  10254. var _a;
  10255. customCodeHelperGroup.initialize();
  10256. (_a = customCodeHelperGroup.appendOnPreparingStage) === null || _a === void 0 ? void 0 : _a.call(customCodeHelperGroup, node, this.callsGraphData);
  10257. });
  10258. }
  10259. appendCustomNodesForStage(nodeTransformationStage, node, parentNode) {
  10260. this.customCodeHelperGroupStorage
  10261. .getStorage()
  10262. .forEach((customCodeHelperGroup) => {
  10263. var _a;
  10264. const methodName = `appendOn${nodeTransformationStage}Stage`;
  10265. (_a = customCodeHelperGroup[methodName]) === null || _a === void 0 ? void 0 : _a.call(customCodeHelperGroup, node, this.callsGraphData);
  10266. });
  10267. }
  10268. };
  10269. CustomCodeHelpersTransformer = __decorate([
  10270. inversify_1.injectable(),
  10271. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)),
  10272. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),
  10273. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)),
  10274. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10275. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10276. __metadata("design:paramtypes", [typeof (_a = typeof ICallsGraphAnalyzer_1.ICallsGraphAnalyzer !== "undefined" && ICallsGraphAnalyzer_1.ICallsGraphAnalyzer) === "function" ? _a : Object, typeof (_b = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _b : Object, typeof (_c = typeof TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== "undefined" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object])
  10277. ], CustomCodeHelpersTransformer);
  10278. exports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer;
  10279. /***/ }),
  10280. /***/ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts":
  10281. /*!***************************************************************************************!*\
  10282. !*** ./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts ***!
  10283. \***************************************************************************************/
  10284. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10285. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10286. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10287. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10288. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10289. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10290. };
  10291. var __metadata = (this && this.__metadata) || function (k, v) {
  10292. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10293. };
  10294. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10295. return function (target, key) { decorator(target, key, paramIndex); }
  10296. };
  10297. var EvalCallExpressionTransformer_1, _a, _b;
  10298. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10299. exports.EvalCallExpressionTransformer = void 0;
  10300. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10301. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10302. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10303. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10304. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  10305. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10306. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10307. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  10308. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10309. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  10310. const StringUtils_1 = __webpack_require__(/*! ../../utils/StringUtils */ "./src/utils/StringUtils.ts");
  10311. let EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10312. constructor(randomGenerator, options) {
  10313. super(randomGenerator, options);
  10314. this.runAfter = [
  10315. NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,
  10316. NodeTransformer_1.NodeTransformer.ParentificationTransformer,
  10317. NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
  10318. ];
  10319. this.evalRootAstHostNodeSet = new Set();
  10320. }
  10321. static extractEvalStringFromCallExpressionArgument(node) {
  10322. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  10323. return EvalCallExpressionTransformer_1
  10324. .extractEvalStringFromLiteralNode(node);
  10325. }
  10326. if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
  10327. return EvalCallExpressionTransformer_1
  10328. .extractEvalStringFromTemplateLiteralNode(node);
  10329. }
  10330. return null;
  10331. }
  10332. static extractEvalStringFromLiteralNode(node) {
  10333. return typeof node.value === 'string' ? node.value : null;
  10334. }
  10335. static extractEvalStringFromTemplateLiteralNode(node) {
  10336. var _a;
  10337. const quasis = node.quasis;
  10338. const allowedQuasisLength = 1;
  10339. if (quasis.length !== allowedQuasisLength || node.expressions.length) {
  10340. return null;
  10341. }
  10342. return (_a = quasis[0].value.cooked) !== null && _a !== void 0 ? _a : null;
  10343. }
  10344. getVisitor(nodeTransformationStage) {
  10345. switch (nodeTransformationStage) {
  10346. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  10347. return {
  10348. enter: (node, parentNode) => {
  10349. if (parentNode
  10350. && NodeGuards_1.NodeGuards.isCallExpressionNode(node)
  10351. && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)
  10352. && node.callee.name === 'eval') {
  10353. return this.transformNode(node, parentNode);
  10354. }
  10355. }
  10356. };
  10357. case NodeTransformationStage_1.NodeTransformationStage.Finalizing:
  10358. if (!this.evalRootAstHostNodeSet.size) {
  10359. return null;
  10360. }
  10361. return {
  10362. leave: (node, parentNode) => {
  10363. if (parentNode && this.isEvalRootAstHostNode(node)) {
  10364. return this.restoreNode(node, parentNode);
  10365. }
  10366. }
  10367. };
  10368. default:
  10369. return null;
  10370. }
  10371. }
  10372. transformNode(callExpressionNode, parentNode) {
  10373. const callExpressionFirstArgument = callExpressionNode.arguments[0];
  10374. if (!callExpressionFirstArgument) {
  10375. return callExpressionNode;
  10376. }
  10377. const evalString = EvalCallExpressionTransformer_1
  10378. .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);
  10379. if (!evalString) {
  10380. return callExpressionNode;
  10381. }
  10382. let ast;
  10383. try {
  10384. ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);
  10385. }
  10386. catch (_a) {
  10387. return callExpressionNode;
  10388. }
  10389. const evalRootAstHostNode = NodeFactory_1.NodeFactory
  10390. .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));
  10391. NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode);
  10392. NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode);
  10393. this.evalRootAstHostNodeSet.add(evalRootAstHostNode);
  10394. return evalRootAstHostNode;
  10395. }
  10396. restoreNode(evalRootAstHostNode, parentNode) {
  10397. const targetAst = evalRootAstHostNode.body.body;
  10398. const obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);
  10399. return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [
  10400. NodeFactory_1.NodeFactory.literalNode(StringUtils_1.StringUtils.escapeJsString(obfuscatedCode))
  10401. ]);
  10402. }
  10403. isEvalRootAstHostNode(node) {
  10404. return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);
  10405. }
  10406. };
  10407. EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([
  10408. inversify_1.injectable(),
  10409. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10410. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10411. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  10412. ], EvalCallExpressionTransformer);
  10413. exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;
  10414. /***/ }),
  10415. /***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts":
  10416. /*!*****************************************************************************!*\
  10417. !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***!
  10418. \*****************************************************************************/
  10419. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10420. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10421. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10422. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10423. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10424. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10425. };
  10426. var __metadata = (this && this.__metadata) || function (k, v) {
  10427. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10428. };
  10429. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10430. return function (target, key) { decorator(target, key, paramIndex); }
  10431. };
  10432. var _a, _b;
  10433. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10434. exports.MetadataTransformer = void 0;
  10435. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10436. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10437. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10438. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10439. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  10440. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10441. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10442. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10443. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  10444. let MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10445. constructor(randomGenerator, options) {
  10446. super(randomGenerator, options);
  10447. this.runAfter = [
  10448. NodeTransformer_1.NodeTransformer.ParentificationTransformer,
  10449. NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
  10450. ];
  10451. }
  10452. getVisitor(nodeTransformationStage) {
  10453. switch (nodeTransformationStage) {
  10454. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  10455. return {
  10456. enter: (node, parentNode) => {
  10457. return this.transformNode(node, parentNode);
  10458. }
  10459. };
  10460. default:
  10461. return null;
  10462. }
  10463. }
  10464. transformNode(node, parentNode) {
  10465. NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });
  10466. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  10467. NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false });
  10468. }
  10469. return node;
  10470. }
  10471. };
  10472. MetadataTransformer = __decorate([
  10473. inversify_1.injectable(),
  10474. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10475. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10476. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  10477. ], MetadataTransformer);
  10478. exports.MetadataTransformer = MetadataTransformer;
  10479. /***/ }),
  10480. /***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts":
  10481. /*!**************************************************************************************!*\
  10482. !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***!
  10483. \**************************************************************************************/
  10484. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10485. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10486. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10487. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10488. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10489. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10490. };
  10491. var __metadata = (this && this.__metadata) || function (k, v) {
  10492. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10493. };
  10494. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10495. return function (target, key) { decorator(target, key, paramIndex); }
  10496. };
  10497. var ObfuscatingGuardsTransformer_1, _a, _b, _c;
  10498. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10499. exports.ObfuscatingGuardsTransformer = void 0;
  10500. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10501. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10502. const TObfuscatingGuardFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObfuscatingGuardFactory */ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts");
  10503. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10504. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10505. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  10506. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10507. const ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
  10508. const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts");
  10509. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10510. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10511. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  10512. let ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10513. constructor(obfuscatingGuardFactory, randomGenerator, options) {
  10514. super(randomGenerator, options);
  10515. this.runAfter = [
  10516. NodeTransformer_1.NodeTransformer.ParentificationTransformer,
  10517. NodeTransformer_1.NodeTransformer.VariablePreserveTransformer
  10518. ];
  10519. this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);
  10520. }
  10521. getVisitor(nodeTransformationStage) {
  10522. switch (nodeTransformationStage) {
  10523. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  10524. return {
  10525. enter: (node, parentNode) => {
  10526. return this.transformNode(node, parentNode);
  10527. }
  10528. };
  10529. default:
  10530. return null;
  10531. }
  10532. }
  10533. transformNode(node, parentNode) {
  10534. const obfuscatingGuardResults = this.obfuscatingGuards
  10535. .map((obfuscatingGuard) => obfuscatingGuard.check(node));
  10536. this.setNodeMetadata(node, obfuscatingGuardResults);
  10537. return node;
  10538. }
  10539. setNodeMetadata(node, obfuscatingGuardResults) {
  10540. const isTransformNode = obfuscatingGuardResults
  10541. .every((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform);
  10542. let isForceTransformNode = false;
  10543. let isIgnoredNode = false;
  10544. if (!isTransformNode) {
  10545. isForceTransformNode = obfuscatingGuardResults
  10546. .includes(ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform);
  10547. isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults
  10548. .includes(ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore);
  10549. }
  10550. NodeMetadata_1.NodeMetadata.set(node, {
  10551. forceTransformNode: isForceTransformNode && !NodeGuards_1.NodeGuards.isProgramNode(node),
  10552. ignoredNode: isIgnoredNode && !NodeGuards_1.NodeGuards.isProgramNode(node)
  10553. });
  10554. }
  10555. };
  10556. ObfuscatingGuardsTransformer.obfuscatingGuardsList = [
  10557. ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard,
  10558. ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,
  10559. ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,
  10560. ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,
  10561. ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard
  10562. ];
  10563. ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([
  10564. inversify_1.injectable(),
  10565. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)),
  10566. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10567. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10568. __metadata("design:paramtypes", [typeof (_a = typeof TObfuscatingGuardFactory_1.TObfuscatingGuardFactory !== "undefined" && TObfuscatingGuardFactory_1.TObfuscatingGuardFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  10569. ], ObfuscatingGuardsTransformer);
  10570. exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;
  10571. /***/ }),
  10572. /***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts":
  10573. /*!************************************************************************************!*\
  10574. !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***!
  10575. \************************************************************************************/
  10576. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10577. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10578. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10579. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10580. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10581. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10582. };
  10583. var __metadata = (this && this.__metadata) || function (k, v) {
  10584. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10585. };
  10586. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10587. return function (target, key) { decorator(target, key, paramIndex); }
  10588. };
  10589. var _a, _b;
  10590. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10591. exports.ParentificationTransformer = void 0;
  10592. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10593. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10594. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10595. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10596. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10597. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10598. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  10599. let ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10600. constructor(randomGenerator, options) {
  10601. super(randomGenerator, options);
  10602. }
  10603. getVisitor(nodeTransformationStage) {
  10604. switch (nodeTransformationStage) {
  10605. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  10606. return {
  10607. enter: (node, parentNode) => {
  10608. return this.transformNode(node, parentNode);
  10609. }
  10610. };
  10611. default:
  10612. return null;
  10613. }
  10614. }
  10615. transformNode(node, parentNode) {
  10616. return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);
  10617. }
  10618. };
  10619. ParentificationTransformer = __decorate([
  10620. inversify_1.injectable(),
  10621. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10622. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10623. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  10624. ], ParentificationTransformer);
  10625. exports.ParentificationTransformer = ParentificationTransformer;
  10626. /***/ }),
  10627. /***/ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts":
  10628. /*!*************************************************************************************!*\
  10629. !*** ./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts ***!
  10630. \*************************************************************************************/
  10631. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10632. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10633. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10634. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10635. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10636. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10637. };
  10638. var __metadata = (this && this.__metadata) || function (k, v) {
  10639. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10640. };
  10641. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10642. return function (target, key) { decorator(target, key, paramIndex); }
  10643. };
  10644. var _a, _b, _c, _d;
  10645. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10646. exports.VariablePreserveTransformer = void 0;
  10647. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10648. const IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts");
  10649. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10650. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  10651. const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts");
  10652. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  10653. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10654. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  10655. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  10656. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10657. let VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  10658. constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {
  10659. super(randomGenerator, options);
  10660. this.runAfter = [
  10661. NodeTransformer_1.NodeTransformer.ParentificationTransformer
  10662. ];
  10663. this.identifierReplacer = identifierReplacer;
  10664. this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
  10665. this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this);
  10666. }
  10667. getVisitor(nodeTransformationStage) {
  10668. switch (nodeTransformationStage) {
  10669. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  10670. case NodeTransformationStage_1.NodeTransformationStage.Converting:
  10671. case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:
  10672. return {
  10673. enter: (node, parentNode) => {
  10674. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  10675. return this.transformNode(node, parentNode);
  10676. }
  10677. }
  10678. };
  10679. default:
  10680. return null;
  10681. }
  10682. }
  10683. transformNode(programNode, parentNode) {
  10684. this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, this.preserveScopeVariableIdentifiers);
  10685. return programNode;
  10686. }
  10687. preserveScopeVariableIdentifiers(data) {
  10688. const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data;
  10689. for (const identifier of variable.identifiers) {
  10690. if (isGlobalDeclaration || isBubblingDeclaration) {
  10691. this.preserveIdentifierNameForRootLexicalScope(identifier);
  10692. }
  10693. else {
  10694. this.preserveIdentifierNameForLexicalScope(identifier, variableScope);
  10695. }
  10696. }
  10697. }
  10698. preserveIdentifierNameForRootLexicalScope(identifierNode) {
  10699. this.identifierReplacer.preserveName(identifierNode);
  10700. }
  10701. preserveIdentifierNameForLexicalScope(identifierNode, variableScope) {
  10702. const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block)
  10703. ? variableScope.block
  10704. : null;
  10705. if (!lexicalScopeNode) {
  10706. return;
  10707. }
  10708. this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode);
  10709. }
  10710. };
  10711. VariablePreserveTransformer = __decorate([
  10712. inversify_1.injectable(),
  10713. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),
  10714. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  10715. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10716. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),
  10717. __metadata("design:paramtypes", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object])
  10718. ], VariablePreserveTransformer);
  10719. exports.VariablePreserveTransformer = VariablePreserveTransformer;
  10720. /***/ }),
  10721. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts":
  10722. /*!******************************************************************************************************!*\
  10723. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***!
  10724. \******************************************************************************************************/
  10725. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10726. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10727. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10728. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10729. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10730. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10731. };
  10732. var __metadata = (this && this.__metadata) || function (k, v) {
  10733. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10734. };
  10735. var BlackListObfuscatingGuard_1;
  10736. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10737. exports.BlackListObfuscatingGuard = void 0;
  10738. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10739. const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts");
  10740. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10741. let BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard {
  10742. constructor() {
  10743. this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;
  10744. }
  10745. check(node) {
  10746. for (let i = 0; i < this.blackListGuardsLength; i++) {
  10747. if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {
  10748. return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;
  10749. }
  10750. }
  10751. return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;
  10752. }
  10753. };
  10754. BlackListObfuscatingGuard.blackListGuards = [
  10755. NodeGuards_1.NodeGuards.isDirectiveNode
  10756. ];
  10757. BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([
  10758. inversify_1.injectable(),
  10759. __metadata("design:paramtypes", [])
  10760. ], BlackListObfuscatingGuard);
  10761. exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;
  10762. /***/ }),
  10763. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts":
  10764. /*!***************************************************************************************************************!*\
  10765. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***!
  10766. \***************************************************************************************************************/
  10767. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10768. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10769. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10770. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10771. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10772. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10773. };
  10774. var ConditionalCommentObfuscatingGuard_1;
  10775. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10776. exports.ConditionalCommentObfuscatingGuard = void 0;
  10777. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10778. const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts");
  10779. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10780. let ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard {
  10781. constructor() {
  10782. this.obfuscationAllowed = true;
  10783. }
  10784. static isConditionalComment(comment) {
  10785. return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) ||
  10786. ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);
  10787. }
  10788. check(node) {
  10789. if (NodeGuards_1.NodeGuards.isNodeWithComments(node)) {
  10790. const leadingComments = node.leadingComments;
  10791. if (leadingComments) {
  10792. this.obfuscationAllowed = this.checkComments(leadingComments);
  10793. }
  10794. }
  10795. return this.obfuscationAllowed
  10796. ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform
  10797. : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;
  10798. }
  10799. checkComments(comments) {
  10800. const commentsLength = comments.length;
  10801. let obfuscationAllowed = this.obfuscationAllowed;
  10802. for (let i = 0; i < commentsLength; i++) {
  10803. const comment = comments[i];
  10804. if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {
  10805. obfuscationAllowed = true;
  10806. continue;
  10807. }
  10808. if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {
  10809. obfuscationAllowed = false;
  10810. }
  10811. }
  10812. return obfuscationAllowed;
  10813. }
  10814. };
  10815. ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');
  10816. ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');
  10817. ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([
  10818. inversify_1.injectable()
  10819. ], ConditionalCommentObfuscatingGuard);
  10820. exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;
  10821. /***/ }),
  10822. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts":
  10823. /*!*****************************************************************************************************************!*\
  10824. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts ***!
  10825. \*****************************************************************************************************************/
  10826. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10827. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10828. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10829. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10830. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10831. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10832. };
  10833. var __metadata = (this && this.__metadata) || function (k, v) {
  10834. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10835. };
  10836. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10837. return function (target, key) { decorator(target, key, paramIndex); }
  10838. };
  10839. var _a;
  10840. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10841. exports.ForceTransformStringObfuscatingGuard = void 0;
  10842. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10843. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10844. const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts");
  10845. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10846. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10847. let ForceTransformStringObfuscatingGuard = class ForceTransformStringObfuscatingGuard {
  10848. constructor(options) {
  10849. this.options = options;
  10850. }
  10851. check(node) {
  10852. if (this.options.forceTransformStrings.length
  10853. && NodeGuards_1.NodeGuards.isLiteralNode(node)
  10854. && typeof node.value === 'string') {
  10855. return !this.isForceTransformString(node.value)
  10856. ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform
  10857. : ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform;
  10858. }
  10859. return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;
  10860. }
  10861. isForceTransformString(value) {
  10862. return this.options.forceTransformStrings
  10863. .some((forceTransformString) => {
  10864. return new RegExp(forceTransformString, 'g').exec(value) !== null;
  10865. });
  10866. }
  10867. };
  10868. ForceTransformStringObfuscatingGuard = __decorate([
  10869. inversify_1.injectable(),
  10870. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10871. __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object])
  10872. ], ForceTransformStringObfuscatingGuard);
  10873. exports.ForceTransformStringObfuscatingGuard = ForceTransformStringObfuscatingGuard;
  10874. /***/ }),
  10875. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts":
  10876. /*!*****************************************************************************************************************!*\
  10877. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts ***!
  10878. \*****************************************************************************************************************/
  10879. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10880. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10881. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10882. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10883. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10884. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10885. };
  10886. var __metadata = (this && this.__metadata) || function (k, v) {
  10887. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10888. };
  10889. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10890. return function (target, key) { decorator(target, key, paramIndex); }
  10891. };
  10892. var _a;
  10893. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10894. exports.IgnoredRequireImportObfuscatingGuard = void 0;
  10895. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10896. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10897. const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts");
  10898. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10899. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10900. let IgnoredRequireImportObfuscatingGuard = class IgnoredRequireImportObfuscatingGuard {
  10901. constructor(options) {
  10902. this.options = options;
  10903. }
  10904. check(node) {
  10905. if (this.options.ignoreRequireImports
  10906. && NodeGuards_1.NodeGuards.isCallExpressionNode(node)
  10907. && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)
  10908. && node.callee.name === 'require') {
  10909. return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;
  10910. }
  10911. return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;
  10912. }
  10913. };
  10914. IgnoredRequireImportObfuscatingGuard = __decorate([
  10915. inversify_1.injectable(),
  10916. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10917. __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object])
  10918. ], IgnoredRequireImportObfuscatingGuard);
  10919. exports.IgnoredRequireImportObfuscatingGuard = IgnoredRequireImportObfuscatingGuard;
  10920. /***/ }),
  10921. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts":
  10922. /*!***********************************************************************************************************!*\
  10923. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts ***!
  10924. \***********************************************************************************************************/
  10925. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10926. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10927. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10928. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10929. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10930. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10931. };
  10932. var __metadata = (this && this.__metadata) || function (k, v) {
  10933. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10934. };
  10935. var __param = (this && this.__param) || function (paramIndex, decorator) {
  10936. return function (target, key) { decorator(target, key, paramIndex); }
  10937. };
  10938. var _a;
  10939. Object.defineProperty(exports, "__esModule", ({ value: true }));
  10940. exports.ReservedStringObfuscatingGuard = void 0;
  10941. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10942. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  10943. const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts");
  10944. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10945. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  10946. let ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard {
  10947. constructor(options) {
  10948. this.options = options;
  10949. }
  10950. check(node) {
  10951. if (this.options.reservedStrings.length
  10952. && NodeGuards_1.NodeGuards.isLiteralNode(node)
  10953. && typeof node.value === 'string') {
  10954. return !this.isReservedString(node.value)
  10955. ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform
  10956. : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;
  10957. }
  10958. return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;
  10959. }
  10960. isReservedString(value) {
  10961. return this.options.reservedStrings
  10962. .some((reservedString) => {
  10963. return new RegExp(reservedString, 'g').exec(value) !== null;
  10964. });
  10965. }
  10966. };
  10967. ReservedStringObfuscatingGuard = __decorate([
  10968. inversify_1.injectable(),
  10969. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  10970. __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object])
  10971. ], ReservedStringObfuscatingGuard);
  10972. exports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard;
  10973. /***/ }),
  10974. /***/ "./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts":
  10975. /*!**********************************************************************************************!*\
  10976. !*** ./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts ***!
  10977. \**********************************************************************************************/
  10978. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  10979. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  10980. if (k2 === undefined) k2 = k;
  10981. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  10982. }) : (function(o, m, k, k2) {
  10983. if (k2 === undefined) k2 = k;
  10984. o[k2] = m[k];
  10985. }));
  10986. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  10987. Object.defineProperty(o, "default", { enumerable: true, value: v });
  10988. }) : function(o, v) {
  10989. o["default"] = v;
  10990. });
  10991. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  10992. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  10993. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  10994. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  10995. return c > 3 && r && Object.defineProperty(target, key, r), r;
  10996. };
  10997. var __importStar = (this && this.__importStar) || function (mod) {
  10998. if (mod && mod.__esModule) return mod;
  10999. var result = {};
  11000. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  11001. __setModuleDefault(result, mod);
  11002. return result;
  11003. };
  11004. var __metadata = (this && this.__metadata) || function (k, v) {
  11005. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11006. };
  11007. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11008. return function (target, key) { decorator(target, key, paramIndex); }
  11009. };
  11010. var _a, _b, _c;
  11011. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11012. exports.LabeledStatementTransformer = void 0;
  11013. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11014. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11015. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  11016. const IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts");
  11017. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11018. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  11019. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  11020. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  11021. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11022. const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  11023. let LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  11024. constructor(identifierReplacer, randomGenerator, options) {
  11025. super(randomGenerator, options);
  11026. this.identifierReplacer = identifierReplacer;
  11027. }
  11028. getVisitor(nodeTransformationStage) {
  11029. switch (nodeTransformationStage) {
  11030. case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:
  11031. return {
  11032. enter: (node, parentNode) => {
  11033. if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {
  11034. return this.transformNode(node, parentNode);
  11035. }
  11036. }
  11037. };
  11038. default:
  11039. return null;
  11040. }
  11041. }
  11042. transformNode(labeledStatementNode, parentNode) {
  11043. const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);
  11044. if (!lexicalScopeNode) {
  11045. return labeledStatementNode;
  11046. }
  11047. this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);
  11048. this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);
  11049. return labeledStatementNode;
  11050. }
  11051. storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
  11052. this.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode);
  11053. }
  11054. replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
  11055. estraverse.replace(labeledStatementNode, {
  11056. enter: (node, parentNode) => {
  11057. if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {
  11058. const newIdentifier = this.identifierReplacer
  11059. .replace(node, lexicalScopeNode);
  11060. node.name = newIdentifier.name;
  11061. }
  11062. }
  11063. });
  11064. }
  11065. };
  11066. LabeledStatementTransformer = __decorate([
  11067. inversify_1.injectable(),
  11068. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),
  11069. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  11070. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11071. __metadata("design:paramtypes", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  11072. ], LabeledStatementTransformer);
  11073. exports.LabeledStatementTransformer = LabeledStatementTransformer;
  11074. /***/ }),
  11075. /***/ "./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts":
  11076. /*!**********************************************************************************************!*\
  11077. !*** ./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts ***!
  11078. \**********************************************************************************************/
  11079. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11080. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  11081. if (k2 === undefined) k2 = k;
  11082. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  11083. }) : (function(o, m, k, k2) {
  11084. if (k2 === undefined) k2 = k;
  11085. o[k2] = m[k];
  11086. }));
  11087. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  11088. Object.defineProperty(o, "default", { enumerable: true, value: v });
  11089. }) : function(o, v) {
  11090. o["default"] = v;
  11091. });
  11092. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11093. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11094. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11095. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11096. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11097. };
  11098. var __importStar = (this && this.__importStar) || function (mod) {
  11099. if (mod && mod.__esModule) return mod;
  11100. var result = {};
  11101. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  11102. __setModuleDefault(result, mod);
  11103. return result;
  11104. };
  11105. var __metadata = (this && this.__metadata) || function (k, v) {
  11106. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11107. };
  11108. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11109. return function (target, key) { decorator(target, key, paramIndex); }
  11110. };
  11111. var _a, _b, _c, _d;
  11112. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11113. exports.ScopeIdentifiersTransformer = void 0;
  11114. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11115. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11116. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  11117. const IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts");
  11118. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11119. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  11120. const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts");
  11121. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  11122. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  11123. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11124. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  11125. let ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  11126. constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {
  11127. super(randomGenerator, options);
  11128. this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map();
  11129. this.identifierReplacer = identifierReplacer;
  11130. this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
  11131. }
  11132. getVisitor(nodeTransformationStage) {
  11133. switch (nodeTransformationStage) {
  11134. case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:
  11135. return {
  11136. enter: (node, parentNode) => {
  11137. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  11138. return this.transformNode(node, parentNode);
  11139. }
  11140. }
  11141. };
  11142. default:
  11143. return null;
  11144. }
  11145. }
  11146. transformNode(programNode, parentNode) {
  11147. this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, (data) => {
  11148. const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data;
  11149. if (!this.options.renameGlobals && isGlobalDeclaration) {
  11150. const isImportBindingOrCatchClauseIdentifier = variable.defs
  11151. .every((definition) => definition.type === 'ImportBinding'
  11152. || definition.type === 'CatchClause');
  11153. if (!isImportBindingOrCatchClauseIdentifier) {
  11154. return;
  11155. }
  11156. }
  11157. this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration);
  11158. });
  11159. return programNode;
  11160. }
  11161. transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) {
  11162. var _a;
  11163. const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null;
  11164. if (!firstIdentifier) {
  11165. return;
  11166. }
  11167. if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) {
  11168. return;
  11169. }
  11170. this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration);
  11171. this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable);
  11172. }
  11173. storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) {
  11174. if (isGlobalDeclaration) {
  11175. this.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode);
  11176. }
  11177. else {
  11178. this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);
  11179. }
  11180. }
  11181. replaceIdentifierName(identifierNode, lexicalScopeNode, variable) {
  11182. const newIdentifier = this.identifierReplacer
  11183. .replace(identifierNode, lexicalScopeNode);
  11184. variable.identifiers.forEach((identifier) => {
  11185. identifier.name = newIdentifier.name;
  11186. });
  11187. variable.references.forEach((reference) => {
  11188. reference.identifier.name = identifierNode.name;
  11189. });
  11190. }
  11191. isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) {
  11192. const parentNode = identifierNode.parentNode;
  11193. return !!parentNode
  11194. && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode)
  11195. && !this.isProhibitedPropertyIdentifierNode(identifierNode, parentNode)
  11196. && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(identifierNode, parentNode)
  11197. && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode)
  11198. && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode)
  11199. && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode)
  11200. && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode)
  11201. && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode)
  11202. && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode)
  11203. && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode);
  11204. }
  11205. isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) {
  11206. return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block)
  11207. && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)
  11208. && parentNode.id === identifierNode;
  11209. }
  11210. isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) {
  11211. return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)
  11212. && parentNode.id === identifierNode
  11213. && !!parentNode.parentNode
  11214. && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);
  11215. }
  11216. isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) {
  11217. return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode)
  11218. && parentNode.id === identifierNode
  11219. && !!parentNode.parentNode
  11220. && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);
  11221. }
  11222. isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) {
  11223. return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)
  11224. && parentNode.id === identifierNode
  11225. && !!parentNode.parentNode
  11226. && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode)
  11227. && !!parentNode.parentNode.parentNode
  11228. && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode);
  11229. }
  11230. isProhibitedImportSpecifierNode(identifierNode, parentNode) {
  11231. return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode)
  11232. && parentNode.imported.name === parentNode.local.name;
  11233. }
  11234. isProhibitedPropertyIdentifierNode(node, parentNode) {
  11235. return NodeGuards_1.NodeGuards.isPropertyNode(parentNode)
  11236. && !parentNode.computed
  11237. && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.key)
  11238. && NodeGuards_1.NodeGuards.isIdentifierNode(node)
  11239. && parentNode.shorthand
  11240. && parentNode.key.name === node.name;
  11241. }
  11242. isProhibitedPropertyAssignmentPatternIdentifierNode(node, parentNode) {
  11243. return NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode)
  11244. && parentNode.left === node
  11245. && !!parentNode.parentNode
  11246. && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode)
  11247. && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.left)
  11248. && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.parentNode.key)
  11249. && parentNode.left.name === parentNode.parentNode.key.name;
  11250. }
  11251. isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) {
  11252. let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode);
  11253. if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) {
  11254. return false;
  11255. }
  11256. const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var');
  11257. if (!hasVarDefinitions) {
  11258. return false;
  11259. }
  11260. let isProhibitedVariableDeclaration = false;
  11261. estraverse.traverse(lexicalScopeNode, {
  11262. enter: (node, parentNode) => {
  11263. if (NodeGuards_1.NodeGuards.isObjectPatternNode(node)
  11264. && parentNode
  11265. && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) {
  11266. isLexicalScopeHasObjectPatternWithoutDeclaration = true;
  11267. const properties = node.properties;
  11268. for (const property of properties) {
  11269. if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {
  11270. continue;
  11271. }
  11272. if (property.computed || !property.shorthand) {
  11273. continue;
  11274. }
  11275. if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
  11276. continue;
  11277. }
  11278. if (identifierNode.name !== property.key.name) {
  11279. continue;
  11280. }
  11281. isProhibitedVariableDeclaration = true;
  11282. return estraverse.VisitorOption.Break;
  11283. }
  11284. }
  11285. }
  11286. });
  11287. this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false);
  11288. return isProhibitedVariableDeclaration;
  11289. }
  11290. };
  11291. ScopeIdentifiersTransformer = __decorate([
  11292. inversify_1.injectable(),
  11293. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),
  11294. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  11295. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11296. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),
  11297. __metadata("design:paramtypes", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object])
  11298. ], ScopeIdentifiersTransformer);
  11299. exports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer;
  11300. /***/ }),
  11301. /***/ "./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts":
  11302. /*!*****************************************************************************************************!*\
  11303. !*** ./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts ***!
  11304. \*****************************************************************************************************/
  11305. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11306. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11307. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11308. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11309. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11310. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11311. };
  11312. var __metadata = (this && this.__metadata) || function (k, v) {
  11313. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11314. };
  11315. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11316. return function (target, key) { decorator(target, key, paramIndex); }
  11317. };
  11318. var _a, _b, _c, _d;
  11319. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11320. exports.ScopeThroughIdentifiersTransformer = void 0;
  11321. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11322. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11323. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11324. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  11325. const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts");
  11326. const IThroughIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IThroughIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IThroughIdentifierReplacer.ts");
  11327. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  11328. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  11329. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11330. let ScopeThroughIdentifiersTransformer = class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  11331. constructor(throughIdentifierReplacer, scopeIdentifiersTraverser, randomGenerator, options) {
  11332. super(randomGenerator, options);
  11333. this.throughIdentifierReplacer = throughIdentifierReplacer;
  11334. this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
  11335. }
  11336. getVisitor(nodeTransformationStage) {
  11337. switch (nodeTransformationStage) {
  11338. case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:
  11339. return {
  11340. enter: (node, parentNode) => {
  11341. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  11342. return this.transformNode(node, parentNode);
  11343. }
  11344. }
  11345. };
  11346. default:
  11347. return null;
  11348. }
  11349. }
  11350. transformNode(programNode, parentNode) {
  11351. this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => {
  11352. const { reference, variableLexicalScopeNode } = data;
  11353. this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode);
  11354. });
  11355. return programNode;
  11356. }
  11357. transformScopeThroughIdentifiers(reference, lexicalScopeNode) {
  11358. if (reference.resolved) {
  11359. return;
  11360. }
  11361. this.replaceIdentifierName(reference);
  11362. }
  11363. replaceIdentifierName(reference) {
  11364. const identifier = reference.identifier;
  11365. const newIdentifier = this.throughIdentifierReplacer.replace(identifier);
  11366. reference.identifier.name = newIdentifier.name;
  11367. }
  11368. };
  11369. ScopeThroughIdentifiersTransformer = __decorate([
  11370. inversify_1.injectable(),
  11371. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IThroughIdentifierReplacer)),
  11372. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),
  11373. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  11374. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11375. __metadata("design:paramtypes", [typeof (_a = typeof IThroughIdentifierReplacer_1.IThroughIdentifierReplacer !== "undefined" && IThroughIdentifierReplacer_1.IThroughIdentifierReplacer) === "function" ? _a : Object, typeof (_b = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  11376. ], ScopeThroughIdentifiersTransformer);
  11377. exports.ScopeThroughIdentifiersTransformer = ScopeThroughIdentifiersTransformer;
  11378. /***/ }),
  11379. /***/ "./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts":
  11380. /*!**********************************************************************************************!*\
  11381. !*** ./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts ***!
  11382. \**********************************************************************************************/
  11383. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11384. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11385. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11386. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11387. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11388. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11389. };
  11390. var __metadata = (this && this.__metadata) || function (k, v) {
  11391. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11392. };
  11393. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11394. return function (target, key) { decorator(target, key, paramIndex); }
  11395. };
  11396. var _a, _b, _c;
  11397. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11398. exports.IdentifierReplacer = void 0;
  11399. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11400. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11401. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  11402. const IGlobalIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage */ "./src/interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage.ts");
  11403. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11404. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  11405. let IdentifierReplacer = class IdentifierReplacer {
  11406. constructor(identifierNamesGeneratorFactory, identifierNamesCacheStorage, options) {
  11407. this.blockScopesMap = new Map();
  11408. this.options = options;
  11409. this.identifierNamesCacheStorage = identifierNamesCacheStorage;
  11410. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  11411. }
  11412. storeGlobalName(identifierNode, lexicalScopeNode) {
  11413. const identifierName = identifierNode.name;
  11414. if (this.isReservedName(identifierName)) {
  11415. return;
  11416. }
  11417. const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope();
  11418. if (!this.blockScopesMap.has(lexicalScopeNode)) {
  11419. this.blockScopesMap.set(lexicalScopeNode, new Map());
  11420. }
  11421. const namesMap = this.blockScopesMap.get(lexicalScopeNode);
  11422. namesMap.set(identifierName, newIdentifierName);
  11423. if (this.options.identifierNamesCache) {
  11424. this.identifierNamesCacheStorage.set(identifierName, newIdentifierName);
  11425. }
  11426. }
  11427. storeLocalName(identifierNode, lexicalScopeNode) {
  11428. const identifierName = identifierNode.name;
  11429. if (this.isReservedName(identifierName)) {
  11430. return;
  11431. }
  11432. const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode);
  11433. if (!this.blockScopesMap.has(lexicalScopeNode)) {
  11434. this.blockScopesMap.set(lexicalScopeNode, new Map());
  11435. }
  11436. const namesMap = this.blockScopesMap.get(lexicalScopeNode);
  11437. namesMap.set(identifierName, newIdentifierName);
  11438. }
  11439. replace(identifierNode, lexicalScopeNode) {
  11440. let identifierName = identifierNode.name;
  11441. if (this.blockScopesMap.has(lexicalScopeNode)) {
  11442. const namesMap = this.blockScopesMap.get(lexicalScopeNode);
  11443. if (namesMap.has(identifierName)) {
  11444. identifierName = namesMap.get(identifierName);
  11445. }
  11446. }
  11447. return NodeFactory_1.NodeFactory.identifierNode(identifierName);
  11448. }
  11449. preserveName(identifierNode) {
  11450. this.identifierNamesGenerator.preserveName(identifierNode.name);
  11451. }
  11452. preserveNameForLexicalScope(identifierNode, lexicalScopeNode) {
  11453. this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode);
  11454. }
  11455. isReservedName(name) {
  11456. if (!this.options.reservedNames.length) {
  11457. return false;
  11458. }
  11459. return this.options.reservedNames
  11460. .some((reservedName) => {
  11461. return new RegExp(reservedName, 'g').exec(name) !== null;
  11462. });
  11463. }
  11464. };
  11465. IdentifierReplacer = __decorate([
  11466. inversify_1.injectable(),
  11467. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  11468. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)),
  11469. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11470. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IGlobalIdentifierNamesCacheStorage_1.IGlobalIdentifierNamesCacheStorage !== "undefined" && IGlobalIdentifierNamesCacheStorage_1.IGlobalIdentifierNamesCacheStorage) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  11471. ], IdentifierReplacer);
  11472. exports.IdentifierReplacer = IdentifierReplacer;
  11473. /***/ }),
  11474. /***/ "./src/node-transformers/rename-identifiers-transformers/through-replacer/ThroughIdentifierReplacer.ts":
  11475. /*!*************************************************************************************************************!*\
  11476. !*** ./src/node-transformers/rename-identifiers-transformers/through-replacer/ThroughIdentifierReplacer.ts ***!
  11477. \*************************************************************************************************************/
  11478. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11479. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11480. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11481. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11482. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11483. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11484. };
  11485. var __metadata = (this && this.__metadata) || function (k, v) {
  11486. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11487. };
  11488. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11489. return function (target, key) { decorator(target, key, paramIndex); }
  11490. };
  11491. var _a, _b;
  11492. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11493. exports.ThroughIdentifierReplacer = void 0;
  11494. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11495. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11496. const IGlobalIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage */ "./src/interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage.ts");
  11497. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11498. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  11499. let ThroughIdentifierReplacer = class ThroughIdentifierReplacer {
  11500. constructor(identifierNamesCacheStorage, options) {
  11501. this.identifierNamesCacheStorage = identifierNamesCacheStorage;
  11502. this.options = options;
  11503. }
  11504. replace(identifierNode) {
  11505. var _a;
  11506. const identifierName = identifierNode.name;
  11507. const newIdentifierName = this.options.identifierNamesCache && !this.isReservedName(identifierName)
  11508. ? (_a = this.identifierNamesCacheStorage.get(identifierName)) !== null && _a !== void 0 ? _a : identifierName
  11509. : identifierName;
  11510. return NodeFactory_1.NodeFactory.identifierNode(newIdentifierName);
  11511. }
  11512. isReservedName(name) {
  11513. if (!this.options.reservedNames.length) {
  11514. return false;
  11515. }
  11516. return this.options.reservedNames
  11517. .some((reservedName) => {
  11518. return new RegExp(reservedName, 'g').exec(name) !== null;
  11519. });
  11520. }
  11521. };
  11522. ThroughIdentifierReplacer = __decorate([
  11523. inversify_1.injectable(),
  11524. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)),
  11525. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11526. __metadata("design:paramtypes", [typeof (_a = typeof IGlobalIdentifierNamesCacheStorage_1.IGlobalIdentifierNamesCacheStorage !== "undefined" && IGlobalIdentifierNamesCacheStorage_1.IGlobalIdentifierNamesCacheStorage) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  11527. ], ThroughIdentifierReplacer);
  11528. exports.ThroughIdentifierReplacer = ThroughIdentifierReplacer;
  11529. /***/ }),
  11530. /***/ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts":
  11531. /*!*********************************************************************************************!*\
  11532. !*** ./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts ***!
  11533. \*********************************************************************************************/
  11534. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11535. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11536. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11537. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11538. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11539. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11540. };
  11541. var __metadata = (this && this.__metadata) || function (k, v) {
  11542. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11543. };
  11544. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11545. return function (target, key) { decorator(target, key, paramIndex); }
  11546. };
  11547. var RenamePropertiesTransformer_1, _a, _b, _c;
  11548. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11549. exports.RenamePropertiesTransformer = void 0;
  11550. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11551. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11552. const IRenamePropertiesReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer */ "./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts");
  11553. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11554. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  11555. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  11556. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  11557. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11558. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  11559. const RenamePropertiesMode_1 = __webpack_require__(/*! ../../enums/node-transformers/rename-properties-transformers/RenamePropertiesMode */ "./src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode.ts");
  11560. let RenamePropertiesTransformer = RenamePropertiesTransformer_1 = class RenamePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  11561. constructor(renamePropertiesReplacer, randomGenerator, options) {
  11562. super(randomGenerator, options);
  11563. this.renamePropertiesReplacer = renamePropertiesReplacer;
  11564. }
  11565. static isValidPropertyNode(propertyNode, propertyKeyNode) {
  11566. if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) {
  11567. return false;
  11568. }
  11569. return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode);
  11570. }
  11571. getVisitor(nodeTransformationStage) {
  11572. switch (nodeTransformationStage) {
  11573. case NodeTransformationStage_1.NodeTransformationStage.Preparing:
  11574. return {
  11575. enter: (node, parentNode) => {
  11576. if (parentNode) {
  11577. this.prepareNode(node, parentNode);
  11578. }
  11579. }
  11580. };
  11581. case NodeTransformationStage_1.NodeTransformationStage.RenameProperties:
  11582. return {
  11583. enter: (node, parentNode) => {
  11584. if (parentNode) {
  11585. return this.transformNode(node, parentNode);
  11586. }
  11587. }
  11588. };
  11589. default:
  11590. return null;
  11591. }
  11592. }
  11593. prepareNode(node, parentNode) {
  11594. if (this.options.renamePropertiesMode === RenamePropertiesMode_1.RenamePropertiesMode.Safe) {
  11595. this.analyzeAutoExcludedPropertyNames(node, parentNode);
  11596. }
  11597. }
  11598. transformNode(node, parentNode) {
  11599. if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {
  11600. return this.transformPropertyNode(node);
  11601. }
  11602. if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
  11603. return this.transformMemberExpressionNode(node);
  11604. }
  11605. if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {
  11606. return this.transformMethodDefinitionNode(node);
  11607. }
  11608. return node;
  11609. }
  11610. transformPropertyNode(propertyNode) {
  11611. const propertyKeyNode = propertyNode.key;
  11612. if (RenamePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) {
  11613. propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);
  11614. propertyNode.shorthand = false;
  11615. }
  11616. return propertyNode;
  11617. }
  11618. transformMemberExpressionNode(memberExpressionNode) {
  11619. const propertyKeyNode = memberExpressionNode.property;
  11620. if (RenamePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {
  11621. memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode);
  11622. }
  11623. return memberExpressionNode;
  11624. }
  11625. transformMethodDefinitionNode(methodDefinitionNode) {
  11626. const propertyKeyNode = methodDefinitionNode.key;
  11627. if (RenamePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {
  11628. methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);
  11629. }
  11630. return methodDefinitionNode;
  11631. }
  11632. analyzeAutoExcludedPropertyNames(node, parentNode) {
  11633. if (!NodeGuards_1.NodeGuards.isLiteralNode(node) || !NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(node)) {
  11634. return;
  11635. }
  11636. if ((NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === node)
  11637. || NodeGuards_1.NodeGuards.isMemberExpressionNode(parentNode) && parentNode.property === node
  11638. || NodeGuards_1.NodeGuards.isMethodDefinitionNode(parentNode) && parentNode.key === node) {
  11639. return;
  11640. }
  11641. this.renamePropertiesReplacer.excludePropertyName(node.value);
  11642. }
  11643. };
  11644. RenamePropertiesTransformer = RenamePropertiesTransformer_1 = __decorate([
  11645. inversify_1.injectable(),
  11646. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)),
  11647. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  11648. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11649. __metadata("design:paramtypes", [typeof (_a = typeof IRenamePropertiesReplacer_1.IRenamePropertiesReplacer !== "undefined" && IRenamePropertiesReplacer_1.IRenamePropertiesReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  11650. ], RenamePropertiesTransformer);
  11651. exports.RenamePropertiesTransformer = RenamePropertiesTransformer;
  11652. /***/ }),
  11653. /***/ "./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts":
  11654. /*!***************************************************************************************************!*\
  11655. !*** ./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts ***!
  11656. \***************************************************************************************************/
  11657. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11658. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11659. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11660. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11661. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11662. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11663. };
  11664. var __metadata = (this && this.__metadata) || function (k, v) {
  11665. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11666. };
  11667. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11668. return function (target, key) { decorator(target, key, paramIndex); }
  11669. };
  11670. var __importDefault = (this && this.__importDefault) || function (mod) {
  11671. return (mod && mod.__esModule) ? mod : { "default": mod };
  11672. };
  11673. var RenamePropertiesReplacer_1, _a, _b, _c;
  11674. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11675. exports.RenamePropertiesReplacer = void 0;
  11676. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11677. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11678. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  11679. const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11680. const IPropertyIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/identifier-names-cache/IPropertyIdentifierNamesCacheStorage */ "./src/interfaces/storages/identifier-names-cache/IPropertyIdentifierNamesCacheStorage.ts");
  11681. const ReservedDomProperties_json_1 = __importDefault(__webpack_require__(/*! ./ReservedDomProperties.json */ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json"));
  11682. const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11683. const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  11684. let RenamePropertiesReplacer = RenamePropertiesReplacer_1 = class RenamePropertiesReplacer {
  11685. constructor(identifierNamesGeneratorFactory, propertyIdentifierNamesCacheStorage, options) {
  11686. this.excludedPropertyNames = new Set();
  11687. this.propertyNamesMap = new Map();
  11688. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  11689. this.propertyIdentifierNamesCacheStorage = propertyIdentifierNamesCacheStorage;
  11690. this.options = options;
  11691. }
  11692. excludePropertyName(propertyName) {
  11693. this.excludedPropertyNames.add(propertyName);
  11694. }
  11695. replace(node) {
  11696. if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  11697. return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name));
  11698. }
  11699. if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') {
  11700. return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value));
  11701. }
  11702. return node;
  11703. }
  11704. replacePropertyName(propertyName) {
  11705. var _a, _b;
  11706. if (this.isReservedName(propertyName)) {
  11707. return propertyName;
  11708. }
  11709. let renamedPropertyName = this.options.identifierNamesCache
  11710. ? (_a = this.propertyIdentifierNamesCacheStorage.get(propertyName)) !== null && _a !== void 0 ? _a : null
  11711. : null;
  11712. renamedPropertyName = (_b = renamedPropertyName !== null && renamedPropertyName !== void 0 ? renamedPropertyName : this.propertyNamesMap.get(propertyName)) !== null && _b !== void 0 ? _b : null;
  11713. if (renamedPropertyName !== null) {
  11714. return renamedPropertyName;
  11715. }
  11716. renamedPropertyName = this.identifierNamesGenerator.generateNext();
  11717. this.propertyNamesMap.set(propertyName, renamedPropertyName);
  11718. if (this.options.identifierNamesCache) {
  11719. this.propertyIdentifierNamesCacheStorage.set(propertyName, renamedPropertyName);
  11720. }
  11721. return renamedPropertyName;
  11722. }
  11723. isReservedName(name) {
  11724. return this.isExcludedName(name)
  11725. || this.isReservedOptionName(name)
  11726. || this.isReservedDomPropertyName(name);
  11727. }
  11728. isExcludedName(name) {
  11729. return this.excludedPropertyNames.has(name);
  11730. }
  11731. isReservedOptionName(name) {
  11732. if (!this.options.reservedNames.length) {
  11733. return false;
  11734. }
  11735. return this.options.reservedNames
  11736. .some((reservedName) => {
  11737. return new RegExp(reservedName, 'g').exec(name) !== null;
  11738. });
  11739. }
  11740. isReservedDomPropertyName(name) {
  11741. return RenamePropertiesReplacer_1.reservedDomPropertiesList.has(name);
  11742. }
  11743. };
  11744. RenamePropertiesReplacer.reservedDomPropertiesList = new Set(ReservedDomProperties_json_1.default);
  11745. RenamePropertiesReplacer = RenamePropertiesReplacer_1 = __decorate([
  11746. inversify_1.injectable(),
  11747. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  11748. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPropertyIdentifierNamesCacheStorage)),
  11749. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11750. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IPropertyIdentifierNamesCacheStorage_1.IPropertyIdentifierNamesCacheStorage !== "undefined" && IPropertyIdentifierNamesCacheStorage_1.IPropertyIdentifierNamesCacheStorage) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  11751. ], RenamePropertiesReplacer);
  11752. exports.RenamePropertiesReplacer = RenamePropertiesReplacer;
  11753. /***/ }),
  11754. /***/ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts":
  11755. /*!************************************************************************************************!*\
  11756. !*** ./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts ***!
  11757. \************************************************************************************************/
  11758. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11759. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11760. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11761. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11762. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11763. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11764. };
  11765. var __metadata = (this && this.__metadata) || function (k, v) {
  11766. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11767. };
  11768. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11769. return function (target, key) { decorator(target, key, paramIndex); }
  11770. };
  11771. var _a, _b;
  11772. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11773. exports.AbstractStatementSimplifyTransformer = void 0;
  11774. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11775. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11776. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11777. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  11778. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  11779. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  11780. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11781. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  11782. let AbstractStatementSimplifyTransformer = class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  11783. constructor(randomGenerator, options) {
  11784. super(randomGenerator, options);
  11785. this.runAfter = [
  11786. NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,
  11787. NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer
  11788. ];
  11789. }
  11790. getStatementSimplifyData(statementNode) {
  11791. if (!statementNode) {
  11792. return null;
  11793. }
  11794. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) {
  11795. return {
  11796. leadingStatements: [statementNode],
  11797. trailingStatement: null,
  11798. hasReturnStatement: false,
  11799. hasSingleExpression: false
  11800. };
  11801. }
  11802. const { startIndex, unwrappedExpressions, hasReturnStatement } = this.collectIteratedStatementsSimplifyData(statementNode);
  11803. const leadingStatements = this.getLeadingStatements(statementNode, startIndex);
  11804. if (!unwrappedExpressions.length) {
  11805. return {
  11806. leadingStatements,
  11807. trailingStatement: null,
  11808. hasReturnStatement,
  11809. hasSingleExpression: false
  11810. };
  11811. }
  11812. const hasSingleExpression = unwrappedExpressions.length === 1;
  11813. const expression = hasSingleExpression
  11814. ? unwrappedExpressions[0]
  11815. : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions);
  11816. const statement = hasReturnStatement
  11817. ? NodeFactory_1.NodeFactory.returnStatementNode(expression)
  11818. : NodeFactory_1.NodeFactory.expressionStatementNode(expression);
  11819. return {
  11820. leadingStatements,
  11821. trailingStatement: {
  11822. statement,
  11823. expression
  11824. },
  11825. hasReturnStatement,
  11826. hasSingleExpression
  11827. };
  11828. }
  11829. collectIteratedStatementsSimplifyData(statementNode) {
  11830. const statementNodeBodyLength = statementNode.body.length;
  11831. const unwrappedExpressions = [];
  11832. let hasReturnStatement = false;
  11833. let startIndex = null;
  11834. for (let i = statementNodeBodyLength - 1; i >= 0; i--) {
  11835. const statementBodyStatementNode = statementNode.body[i];
  11836. if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) {
  11837. if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) {
  11838. unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions);
  11839. }
  11840. else {
  11841. unwrappedExpressions.unshift(statementBodyStatementNode.expression);
  11842. }
  11843. startIndex = i;
  11844. continue;
  11845. }
  11846. if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode)
  11847. && statementBodyStatementNode.argument) {
  11848. unwrappedExpressions.unshift(statementBodyStatementNode.argument);
  11849. hasReturnStatement = true;
  11850. startIndex = i;
  11851. continue;
  11852. }
  11853. break;
  11854. }
  11855. return {
  11856. startIndex,
  11857. unwrappedExpressions,
  11858. hasReturnStatement
  11859. };
  11860. }
  11861. getLeadingStatements(statementNode, startIndex) {
  11862. if (startIndex === null) {
  11863. return statementNode.body;
  11864. }
  11865. return startIndex === 0
  11866. ? []
  11867. : statementNode.body.slice(0, startIndex);
  11868. }
  11869. getPartialStatement(statementSimplifyData) {
  11870. if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) {
  11871. return statementSimplifyData.trailingStatement.statement;
  11872. }
  11873. return NodeFactory_1.NodeFactory.blockStatementNode([
  11874. ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [],
  11875. ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : []
  11876. ]);
  11877. }
  11878. };
  11879. AbstractStatementSimplifyTransformer = __decorate([
  11880. inversify_1.injectable(),
  11881. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  11882. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11883. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  11884. ], AbstractStatementSimplifyTransformer);
  11885. exports.AbstractStatementSimplifyTransformer = AbstractStatementSimplifyTransformer;
  11886. /***/ }),
  11887. /***/ "./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts":
  11888. /*!*********************************************************************************************!*\
  11889. !*** ./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts ***!
  11890. \*********************************************************************************************/
  11891. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11892. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11893. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11894. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11895. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11896. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11897. };
  11898. var __metadata = (this && this.__metadata) || function (k, v) {
  11899. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11900. };
  11901. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11902. return function (target, key) { decorator(target, key, paramIndex); }
  11903. };
  11904. var _a, _b;
  11905. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11906. exports.BlockStatementSimplifyTransformer = void 0;
  11907. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11908. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11909. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  11910. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  11911. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  11912. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  11913. const AbstractStatementSimplifyTransformer_1 = __webpack_require__(/*! ./AbstractStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts");
  11914. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  11915. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  11916. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  11917. let BlockStatementSimplifyTransformer = class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {
  11918. constructor(randomGenerator, options) {
  11919. super(randomGenerator, options);
  11920. this.runAfter = [
  11921. NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer
  11922. ];
  11923. }
  11924. getVisitor(nodeTransformationStage) {
  11925. switch (nodeTransformationStage) {
  11926. case NodeTransformationStage_1.NodeTransformationStage.Simplifying:
  11927. return {
  11928. leave: (node, parentNode) => {
  11929. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  11930. return this.transformNode(node, parentNode);
  11931. }
  11932. }
  11933. };
  11934. default:
  11935. return null;
  11936. }
  11937. }
  11938. transformNode(statementNode, parentNode) {
  11939. const simplifyData = this.getStatementSimplifyData(statementNode);
  11940. if (!simplifyData) {
  11941. return statementNode;
  11942. }
  11943. const partialStatementNode = this.getPartialStatement(simplifyData);
  11944. const transformedNode = NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatementNode)
  11945. ? partialStatementNode
  11946. : NodeFactory_1.NodeFactory.blockStatementNode([partialStatementNode]);
  11947. return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);
  11948. }
  11949. };
  11950. BlockStatementSimplifyTransformer = __decorate([
  11951. inversify_1.injectable(),
  11952. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  11953. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  11954. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  11955. ], BlockStatementSimplifyTransformer);
  11956. exports.BlockStatementSimplifyTransformer = BlockStatementSimplifyTransformer;
  11957. /***/ }),
  11958. /***/ "./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts":
  11959. /*!************************************************************************************************!*\
  11960. !*** ./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts ***!
  11961. \************************************************************************************************/
  11962. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  11963. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  11964. if (k2 === undefined) k2 = k;
  11965. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  11966. }) : (function(o, m, k, k2) {
  11967. if (k2 === undefined) k2 = k;
  11968. o[k2] = m[k];
  11969. }));
  11970. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  11971. Object.defineProperty(o, "default", { enumerable: true, value: v });
  11972. }) : function(o, v) {
  11973. o["default"] = v;
  11974. });
  11975. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  11976. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  11977. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  11978. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  11979. return c > 3 && r && Object.defineProperty(target, key, r), r;
  11980. };
  11981. var __importStar = (this && this.__importStar) || function (mod) {
  11982. if (mod && mod.__esModule) return mod;
  11983. var result = {};
  11984. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  11985. __setModuleDefault(result, mod);
  11986. return result;
  11987. };
  11988. var __metadata = (this && this.__metadata) || function (k, v) {
  11989. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  11990. };
  11991. var __param = (this && this.__param) || function (paramIndex, decorator) {
  11992. return function (target, key) { decorator(target, key, paramIndex); }
  11993. };
  11994. var _a, _b;
  11995. Object.defineProperty(exports, "__esModule", ({ value: true }));
  11996. exports.ExpressionStatementsMergeTransformer = void 0;
  11997. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11998. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11999. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  12000. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  12001. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  12002. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  12003. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  12004. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  12005. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  12006. const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  12007. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  12008. let ExpressionStatementsMergeTransformer = class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  12009. constructor(randomGenerator, options) {
  12010. super(randomGenerator, options);
  12011. }
  12012. getVisitor(nodeTransformationStage) {
  12013. switch (nodeTransformationStage) {
  12014. case NodeTransformationStage_1.NodeTransformationStage.Simplifying:
  12015. return {
  12016. leave: (node, parentNode) => {
  12017. if (parentNode && NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {
  12018. return this.transformNode(node, parentNode);
  12019. }
  12020. }
  12021. };
  12022. default:
  12023. return null;
  12024. }
  12025. }
  12026. transformNode(expressionStatementNode, parentNode) {
  12027. if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
  12028. return expressionStatementNode;
  12029. }
  12030. const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode);
  12031. if (!prevStatement || !NodeGuards_1.NodeGuards.isExpressionStatementNode(prevStatement)) {
  12032. return expressionStatementNode;
  12033. }
  12034. if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(prevStatement.expression)) {
  12035. prevStatement.expression.expressions.push(expressionStatementNode.expression);
  12036. NodeUtils_1.NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression);
  12037. }
  12038. else {
  12039. prevStatement.expression = NodeFactory_1.NodeFactory.sequenceExpressionNode([
  12040. prevStatement.expression,
  12041. expressionStatementNode.expression
  12042. ]);
  12043. NodeUtils_1.NodeUtils.parentizeAst(prevStatement.expression);
  12044. NodeUtils_1.NodeUtils.parentizeNode(prevStatement.expression, prevStatement);
  12045. }
  12046. return estraverse.VisitorOption.Remove;
  12047. }
  12048. };
  12049. ExpressionStatementsMergeTransformer = __decorate([
  12050. inversify_1.injectable(),
  12051. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  12052. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  12053. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  12054. ], ExpressionStatementsMergeTransformer);
  12055. exports.ExpressionStatementsMergeTransformer = ExpressionStatementsMergeTransformer;
  12056. /***/ }),
  12057. /***/ "./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts":
  12058. /*!******************************************************************************************!*\
  12059. !*** ./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts ***!
  12060. \******************************************************************************************/
  12061. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12062. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  12063. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  12064. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  12065. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  12066. return c > 3 && r && Object.defineProperty(target, key, r), r;
  12067. };
  12068. var __metadata = (this && this.__metadata) || function (k, v) {
  12069. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  12070. };
  12071. var __param = (this && this.__param) || function (paramIndex, decorator) {
  12072. return function (target, key) { decorator(target, key, paramIndex); }
  12073. };
  12074. var _a, _b;
  12075. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12076. exports.IfStatementSimplifyTransformer = void 0;
  12077. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  12078. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  12079. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  12080. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  12081. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  12082. const AbstractStatementSimplifyTransformer_1 = __webpack_require__(/*! ./AbstractStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts");
  12083. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  12084. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  12085. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  12086. let IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {
  12087. constructor(randomGenerator, options) {
  12088. super(randomGenerator, options);
  12089. }
  12090. getVisitor(nodeTransformationStage) {
  12091. switch (nodeTransformationStage) {
  12092. case NodeTransformationStage_1.NodeTransformationStage.Simplifying:
  12093. return {
  12094. leave: (node, parentNode) => {
  12095. if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) {
  12096. return this.transformNode(node, parentNode);
  12097. }
  12098. }
  12099. };
  12100. default:
  12101. return null;
  12102. }
  12103. }
  12104. transformNode(ifStatementNode, parentNode) {
  12105. const consequentSimplifyData = this.getStatementSimplifyData(ifStatementNode.consequent);
  12106. if (!consequentSimplifyData) {
  12107. return ifStatementNode;
  12108. }
  12109. let transformedNode;
  12110. if (!ifStatementNode.alternate) {
  12111. transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData);
  12112. }
  12113. else {
  12114. const alternateSimplifyData = this.getStatementSimplifyData(ifStatementNode.alternate);
  12115. if (!alternateSimplifyData) {
  12116. return ifStatementNode;
  12117. }
  12118. transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData);
  12119. }
  12120. return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);
  12121. }
  12122. getConsequentNode(ifStatementNode, consequentSimplifyData) {
  12123. if (consequentSimplifyData.leadingStatements.length
  12124. || !consequentSimplifyData.trailingStatement) {
  12125. return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData));
  12126. }
  12127. if (consequentSimplifyData.hasReturnStatement) {
  12128. return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement);
  12129. }
  12130. return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentSimplifyData.trailingStatement.expression));
  12131. }
  12132. getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData) {
  12133. if (consequentSimplifyData.leadingStatements.length
  12134. || alternateSimplifyData.leadingStatements.length
  12135. || !consequentSimplifyData.trailingStatement
  12136. || !alternateSimplifyData.trailingStatement) {
  12137. return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData), this.getPartialStatement(alternateSimplifyData));
  12138. }
  12139. if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) {
  12140. return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));
  12141. }
  12142. if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) {
  12143. return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement, alternateSimplifyData.trailingStatement.statement);
  12144. }
  12145. return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));
  12146. }
  12147. getPartialStatement(statementSimplifyData) {
  12148. const partialStatement = super.getPartialStatement(statementSimplifyData);
  12149. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatement)) {
  12150. return partialStatement;
  12151. }
  12152. return partialStatement.body.length === 1
  12153. && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0])
  12154. ? partialStatement.body[0]
  12155. : partialStatement;
  12156. }
  12157. isProhibitedSingleStatementForIfStatementBranch(statement) {
  12158. return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement)
  12159. || NodeGuards_1.NodeGuards.isIfStatementNode(statement)
  12160. || NodeGuards_1.NodeGuards.isNodeWithSingleStatementBody(statement)
  12161. || (NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var');
  12162. }
  12163. };
  12164. IfStatementSimplifyTransformer = __decorate([
  12165. inversify_1.injectable(),
  12166. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  12167. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  12168. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  12169. ], IfStatementSimplifyTransformer);
  12170. exports.IfStatementSimplifyTransformer = IfStatementSimplifyTransformer;
  12171. /***/ }),
  12172. /***/ "./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts":
  12173. /*!************************************************************************************************!*\
  12174. !*** ./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts ***!
  12175. \************************************************************************************************/
  12176. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12177. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  12178. if (k2 === undefined) k2 = k;
  12179. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  12180. }) : (function(o, m, k, k2) {
  12181. if (k2 === undefined) k2 = k;
  12182. o[k2] = m[k];
  12183. }));
  12184. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  12185. Object.defineProperty(o, "default", { enumerable: true, value: v });
  12186. }) : function(o, v) {
  12187. o["default"] = v;
  12188. });
  12189. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  12190. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  12191. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  12192. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  12193. return c > 3 && r && Object.defineProperty(target, key, r), r;
  12194. };
  12195. var __importStar = (this && this.__importStar) || function (mod) {
  12196. if (mod && mod.__esModule) return mod;
  12197. var result = {};
  12198. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  12199. __setModuleDefault(result, mod);
  12200. return result;
  12201. };
  12202. var __metadata = (this && this.__metadata) || function (k, v) {
  12203. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  12204. };
  12205. var __param = (this && this.__param) || function (paramIndex, decorator) {
  12206. return function (target, key) { decorator(target, key, paramIndex); }
  12207. };
  12208. var _a, _b;
  12209. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12210. exports.VariableDeclarationsMergeTransformer = void 0;
  12211. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  12212. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  12213. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  12214. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  12215. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  12216. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  12217. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  12218. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  12219. const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  12220. let VariableDeclarationsMergeTransformer = class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  12221. constructor(randomGenerator, options) {
  12222. super(randomGenerator, options);
  12223. }
  12224. getVisitor(nodeTransformationStage) {
  12225. switch (nodeTransformationStage) {
  12226. case NodeTransformationStage_1.NodeTransformationStage.Simplifying:
  12227. return {
  12228. leave: (node, parentNode) => {
  12229. if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {
  12230. return this.transformNode(node, parentNode);
  12231. }
  12232. }
  12233. };
  12234. default:
  12235. return null;
  12236. }
  12237. }
  12238. transformNode(variableDeclarationNode, parentNode) {
  12239. if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
  12240. return variableDeclarationNode;
  12241. }
  12242. const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode);
  12243. if (!prevStatement || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(prevStatement)) {
  12244. return variableDeclarationNode;
  12245. }
  12246. if (variableDeclarationNode.kind !== prevStatement.kind) {
  12247. return variableDeclarationNode;
  12248. }
  12249. prevStatement.declarations.push(...variableDeclarationNode.declarations);
  12250. return estraverse.VisitorOption.Remove;
  12251. }
  12252. };
  12253. VariableDeclarationsMergeTransformer = __decorate([
  12254. inversify_1.injectable(),
  12255. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  12256. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  12257. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  12258. ], VariableDeclarationsMergeTransformer);
  12259. exports.VariableDeclarationsMergeTransformer = VariableDeclarationsMergeTransformer;
  12260. /***/ }),
  12261. /***/ "./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts":
  12262. /*!*************************************************************************************************!*\
  12263. !*** ./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts ***!
  12264. \*************************************************************************************************/
  12265. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12266. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  12267. if (k2 === undefined) k2 = k;
  12268. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  12269. }) : (function(o, m, k, k2) {
  12270. if (k2 === undefined) k2 = k;
  12271. o[k2] = m[k];
  12272. }));
  12273. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  12274. Object.defineProperty(o, "default", { enumerable: true, value: v });
  12275. }) : function(o, v) {
  12276. o["default"] = v;
  12277. });
  12278. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  12279. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  12280. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  12281. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  12282. return c > 3 && r && Object.defineProperty(target, key, r), r;
  12283. };
  12284. var __importStar = (this && this.__importStar) || function (mod) {
  12285. if (mod && mod.__esModule) return mod;
  12286. var result = {};
  12287. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  12288. __setModuleDefault(result, mod);
  12289. return result;
  12290. };
  12291. var __metadata = (this && this.__metadata) || function (k, v) {
  12292. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  12293. };
  12294. var __param = (this && this.__param) || function (paramIndex, decorator) {
  12295. return function (target, key) { decorator(target, key, paramIndex); }
  12296. };
  12297. var StringArrayRotateFunctionTransformer_1, _a, _b, _c, _d, _e, _f, _g;
  12298. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12299. exports.StringArrayRotateFunctionTransformer = void 0;
  12300. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  12301. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  12302. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  12303. const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts");
  12304. const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts");
  12305. const INumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer */ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts");
  12306. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  12307. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  12308. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  12309. const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts");
  12310. const CustomCodeHelper_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts");
  12311. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  12312. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  12313. const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  12314. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  12315. const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  12316. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  12317. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  12318. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  12319. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  12320. const NumericalExpressionDataToNodeConverter_1 = __webpack_require__(/*! ../../node/NumericalExpressionDataToNodeConverter */ "./src/node/NumericalExpressionDataToNodeConverter.ts");
  12321. let StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer_1 = class StringArrayRotateFunctionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  12322. constructor(randomGenerator, options, transformersRunner, stringArrayStorage, stringArrayStorageAnalyzer, customCodeHelperFactory, numberNumericalExpressionAnalyzer) {
  12323. super(randomGenerator, options);
  12324. this.stringArrayStorage = stringArrayStorage;
  12325. this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;
  12326. this.transformersRunner = transformersRunner;
  12327. this.customCodeHelperFactory = customCodeHelperFactory;
  12328. this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer;
  12329. }
  12330. static isProgramNodeHasStringLiterals(programNode) {
  12331. let hasStringLiterals = false;
  12332. estraverse.traverse(programNode, {
  12333. enter: (node) => {
  12334. if (NodeGuards_1.NodeGuards.isLiteralNode(node)
  12335. && NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(node)) {
  12336. hasStringLiterals = true;
  12337. return estraverse.VisitorOption.Break;
  12338. }
  12339. }
  12340. });
  12341. return hasStringLiterals;
  12342. }
  12343. getVisitor(nodeTransformationStage) {
  12344. if (!this.options.rotateStringArray) {
  12345. return null;
  12346. }
  12347. switch (nodeTransformationStage) {
  12348. case NodeTransformationStage_1.NodeTransformationStage.StringArray:
  12349. return {
  12350. enter: (node) => {
  12351. if (!NodeGuards_1.NodeGuards.isProgramNode(node)) {
  12352. return node;
  12353. }
  12354. if (!StringArrayRotateFunctionTransformer_1.isProgramNodeHasStringLiterals(node)) {
  12355. return estraverse.VisitorOption.Break;
  12356. }
  12357. return this.transformNode(node);
  12358. }
  12359. };
  12360. default:
  12361. return null;
  12362. }
  12363. }
  12364. transformNode(programNode) {
  12365. const stringArrayRotateFunctionNode = this.getStringArrayRotateFunctionNode();
  12366. const wrappedStringArrayRotateFunctionNode = NodeFactory_1.NodeFactory.programNode([
  12367. stringArrayRotateFunctionNode
  12368. ]);
  12369. NodeUtils_1.NodeUtils.parentizeAst(wrappedStringArrayRotateFunctionNode);
  12370. const transformationStages = [
  12371. NodeTransformationStage_1.NodeTransformationStage.Preparing,
  12372. NodeTransformationStage_1.NodeTransformationStage.Converting,
  12373. NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers,
  12374. NodeTransformationStage_1.NodeTransformationStage.Finalizing
  12375. ];
  12376. for (const transformationStage of transformationStages) {
  12377. this.transformersRunner.transform(wrappedStringArrayRotateFunctionNode, StringArrayRotateFunctionTransformer_1.stringArrayRotateFunctionTransformers, transformationStage);
  12378. }
  12379. estraverse.traverse(wrappedStringArrayRotateFunctionNode, {
  12380. enter: (node) => {
  12381. if (!NodeGuards_1.NodeGuards.isLiteralNode(node)
  12382. || !NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(node)) {
  12383. return;
  12384. }
  12385. if (this.isComparisonExpressionStringLiteralNode(node)) {
  12386. this.stringArrayStorageAnalyzer.addItemDataForLiteralNode(node);
  12387. }
  12388. else {
  12389. NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: true });
  12390. }
  12391. }
  12392. });
  12393. NodeAppender_1.NodeAppender.prepend(programNode, [stringArrayRotateFunctionNode]);
  12394. return programNode;
  12395. }
  12396. getStringArrayRotateFunctionNode() {
  12397. const comparisonValue = this.randomGenerator.getRandomInteger(100000, 1000000);
  12398. const comparisonExpressionNumberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(comparisonValue, StringArrayRotateFunctionTransformer_1.comparisonExpressionAdditionalPartsCount);
  12399. const comparisonExpressionNode = NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convertIntegerNumberData(comparisonExpressionNumberNumericalExpressionData, ((number, isPositiveNumber) => {
  12400. const literalNode = NodeFactory_1.NodeFactory.literalNode(`${number}${this.randomGenerator.getRandomString(6)}`);
  12401. const parseIntCallExpression = NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('parseInt'), [literalNode]);
  12402. return isPositiveNumber
  12403. ? parseIntCallExpression
  12404. : NodeFactory_1.NodeFactory.unaryExpressionNode('-', parseIntCallExpression);
  12405. }));
  12406. const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);
  12407. stringArrayRotateFunctionCodeHelper.initialize(this.stringArrayStorage.getStorageName(), comparisonValue, comparisonExpressionNode);
  12408. return stringArrayRotateFunctionCodeHelper.getNode()[0];
  12409. }
  12410. isComparisonExpressionStringLiteralNode(stringLiteralNode) {
  12411. return /\d/.test(stringLiteralNode.value);
  12412. }
  12413. };
  12414. StringArrayRotateFunctionTransformer.stringArrayRotateFunctionTransformers = [
  12415. NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer,
  12416. NodeTransformer_1.NodeTransformer.MemberExpressionTransformer,
  12417. NodeTransformer_1.NodeTransformer.NumberLiteralTransformer,
  12418. NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer,
  12419. NodeTransformer_1.NodeTransformer.ParentificationTransformer,
  12420. NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer
  12421. ];
  12422. StringArrayRotateFunctionTransformer.comparisonExpressionAdditionalPartsCount = 7;
  12423. StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer_1 = __decorate([
  12424. inversify_1.injectable(),
  12425. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  12426. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  12427. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),
  12428. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  12429. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),
  12430. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),
  12431. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),
  12432. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _e : Object, typeof (_f = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _f : Object, typeof (_g = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== "undefined" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === "function" ? _g : Object])
  12433. ], StringArrayRotateFunctionTransformer);
  12434. exports.StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer;
  12435. /***/ }),
  12436. /***/ "./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts":
  12437. /*!****************************************************************************************************!*\
  12438. !*** ./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts ***!
  12439. \****************************************************************************************************/
  12440. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12441. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  12442. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  12443. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  12444. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  12445. return c > 3 && r && Object.defineProperty(target, key, r), r;
  12446. };
  12447. var __metadata = (this && this.__metadata) || function (k, v) {
  12448. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  12449. };
  12450. var __param = (this && this.__param) || function (paramIndex, decorator) {
  12451. return function (target, key) { decorator(target, key, paramIndex); }
  12452. };
  12453. var _a, _b, _c, _d, _e, _f, _g;
  12454. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12455. exports.StringArrayScopeCallsWrapperTransformer = void 0;
  12456. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  12457. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  12458. const TStringArrayCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TStringArrayCustomNodeFactory */ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts");
  12459. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  12460. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  12461. const IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts");
  12462. const IStringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts");
  12463. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  12464. const IVisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage */ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts");
  12465. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  12466. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  12467. const StringArrayCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts");
  12468. const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts");
  12469. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  12470. const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  12471. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  12472. let StringArrayScopeCallsWrapperTransformer = class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  12473. constructor(randomGenerator, options, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayTransformerCustomNodeFactory) {
  12474. super(randomGenerator, options);
  12475. this.runAfter = [
  12476. NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer
  12477. ];
  12478. this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;
  12479. this.stringArrayStorage = stringArrayStorage;
  12480. this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;
  12481. this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;
  12482. this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;
  12483. }
  12484. getVisitor(nodeTransformationStage) {
  12485. if (!this.options.stringArrayWrappersCount) {
  12486. return null;
  12487. }
  12488. switch (nodeTransformationStage) {
  12489. case NodeTransformationStage_1.NodeTransformationStage.StringArray:
  12490. return {
  12491. enter: (node, parentNode) => {
  12492. if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {
  12493. this.onLexicalScopeNodeEnter(node);
  12494. }
  12495. },
  12496. leave: (node, parentNode) => {
  12497. if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {
  12498. this.onLexicalScopeNodeLeave();
  12499. return this.transformNode(node);
  12500. }
  12501. }
  12502. };
  12503. default:
  12504. return null;
  12505. }
  12506. }
  12507. transformNode(lexicalScopeBodyNode) {
  12508. var _a, _b;
  12509. const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;
  12510. const stringArrayScopeCallsWrapperLexicalScopeData = (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;
  12511. if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) {
  12512. return lexicalScopeBodyNode;
  12513. }
  12514. const { callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes } = stringArrayScopeCallsWrapperLexicalScopeData;
  12515. const stringArrayScopeCallsWrapperNamesDataList = Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding);
  12516. for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) {
  12517. if (!stringArrayScopeCallsWrapperNamesData) {
  12518. continue;
  12519. }
  12520. const { names } = stringArrayScopeCallsWrapperNamesData;
  12521. const namesLength = names.length;
  12522. for (let i = namesLength - 1; i >= 0; i--) {
  12523. const stringArrayScopeCallsWrapperName = names[i];
  12524. const { name: upperStringArrayCallsWrapperName, index: upperStringArrayCallsWrapperShiftedIndex, parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes } = this.getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);
  12525. const stringArrayScopeCallsWrapperNode = this.getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, upperStringArrayCallsWrapperShiftedIndex);
  12526. NodeAppender_1.NodeAppender.prepend(lexicalScopeBodyNode, stringArrayScopeCallsWrapperNode);
  12527. }
  12528. }
  12529. return lexicalScopeBodyNode;
  12530. }
  12531. getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {
  12532. const { encoding } = stringArrayScopeCallsWrapperNamesData;
  12533. const { resultShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;
  12534. return {
  12535. name: this.stringArrayStorage.getStorageCallsWrapperName(encoding),
  12536. index: resultShiftedIndex,
  12537. parameterIndexesData: null
  12538. };
  12539. }
  12540. getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {
  12541. var _a, _b, _c, _d, _e, _f;
  12542. const { encoding } = stringArrayScopeCallsWrapperNamesData;
  12543. const { scopeShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;
  12544. const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);
  12545. if (!this.options.stringArrayWrappersChainedCalls) {
  12546. return rootStringArrayCallsWrapperData;
  12547. }
  12548. const parentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;
  12549. if (!parentLexicalScopeBodyNode) {
  12550. return rootStringArrayCallsWrapperData;
  12551. }
  12552. const parentLexicalScopeNamesDataByEncoding = (_b = this.stringArrayScopeCallsWrapperNamesDataStorage
  12553. .get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;
  12554. const parentScopeCallsWrapperLexicalScopeData = (_c = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage
  12555. .get(parentLexicalScopeBodyNode)) !== null && _c !== void 0 ? _c : null;
  12556. const parentLexicalScopeNames = (_e = (_d = parentLexicalScopeNamesDataByEncoding === null || parentLexicalScopeNamesDataByEncoding === void 0 ? void 0 : parentLexicalScopeNamesDataByEncoding[encoding]) === null || _d === void 0 ? void 0 : _d.names) !== null && _e !== void 0 ? _e : null;
  12557. if (!(parentLexicalScopeNames === null || parentLexicalScopeNames === void 0 ? void 0 : parentLexicalScopeNames.length)) {
  12558. return rootStringArrayCallsWrapperData;
  12559. }
  12560. const upperStringArrayCallsWrapperName = this.randomGenerator
  12561. .getRandomGenerator()
  12562. .pickone(parentLexicalScopeNames);
  12563. const parameterIndexesData = (_f = parentScopeCallsWrapperLexicalScopeData === null || parentScopeCallsWrapperLexicalScopeData === void 0 ? void 0 : parentScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData) !== null && _f !== void 0 ? _f : null;
  12564. return {
  12565. name: upperStringArrayCallsWrapperName,
  12566. index: scopeShiftedIndex,
  12567. parameterIndexesData
  12568. };
  12569. }
  12570. getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {
  12571. switch (this.options.stringArrayWrappersType) {
  12572. case StringArrayWrappersType_1.StringArrayWrappersType.Function:
  12573. return this.getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);
  12574. case StringArrayWrappersType_1.StringArrayWrappersType.Variable:
  12575. default:
  12576. return this.getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);
  12577. }
  12578. }
  12579. getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName) {
  12580. const stringArrayScopeCallsWrapperVariableNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);
  12581. stringArrayScopeCallsWrapperVariableNode.initialize(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);
  12582. return stringArrayScopeCallsWrapperVariableNode.getNode();
  12583. }
  12584. getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {
  12585. const stringArrayScopeCallsWrapperFunctionNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);
  12586. stringArrayScopeCallsWrapperFunctionNode.initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);
  12587. return stringArrayScopeCallsWrapperFunctionNode.getNode();
  12588. }
  12589. onLexicalScopeNodeEnter(lexicalScopeBodyNode) {
  12590. this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode);
  12591. }
  12592. onLexicalScopeNodeLeave() {
  12593. this.visitedLexicalScopeNodesStackStorage.pop();
  12594. }
  12595. };
  12596. StringArrayScopeCallsWrapperTransformer = __decorate([
  12597. inversify_1.injectable(),
  12598. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  12599. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  12600. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),
  12601. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  12602. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),
  12603. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),
  12604. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),
  12605. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== "undefined" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== "undefined" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === "function" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== "undefined" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === "function" ? _f : Object, typeof (_g = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== "undefined" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === "function" ? _g : Object])
  12606. ], StringArrayScopeCallsWrapperTransformer);
  12607. exports.StringArrayScopeCallsWrapperTransformer = StringArrayScopeCallsWrapperTransformer;
  12608. /***/ }),
  12609. /***/ "./src/node-transformers/string-array-transformers/StringArrayTransformer.ts":
  12610. /*!***********************************************************************************!*\
  12611. !*** ./src/node-transformers/string-array-transformers/StringArrayTransformer.ts ***!
  12612. \***********************************************************************************/
  12613. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12614. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  12615. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  12616. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  12617. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  12618. return c > 3 && r && Object.defineProperty(target, key, r), r;
  12619. };
  12620. var __metadata = (this && this.__metadata) || function (k, v) {
  12621. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  12622. };
  12623. var __param = (this && this.__param) || function (paramIndex, decorator) {
  12624. return function (target, key) { decorator(target, key, paramIndex); }
  12625. };
  12626. var StringArrayTransformer_1, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
  12627. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12628. exports.StringArrayTransformer = void 0;
  12629. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  12630. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  12631. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  12632. const TStringArrayCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TStringArrayCustomNodeFactory */ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts");
  12633. const ILiteralNodesCacheStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage */ "./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts");
  12634. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  12635. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  12636. const IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts");
  12637. const IStringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts");
  12638. const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts");
  12639. const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts");
  12640. const IVisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage */ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts");
  12641. const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  12642. const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts");
  12643. const StringArrayCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts");
  12644. const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts");
  12645. const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  12646. const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  12647. const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts");
  12648. const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  12649. const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  12650. let StringArrayTransformer = StringArrayTransformer_1 = class StringArrayTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {
  12651. constructor(randomGenerator, options, literalNodesCacheStorage, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayStorageAnalyzer, identifierNamesGeneratorFactory, stringArrayTransformerCustomNodeFactory) {
  12652. super(randomGenerator, options);
  12653. this.runAfter = [
  12654. NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer
  12655. ];
  12656. this.literalNodesCacheStorage = literalNodesCacheStorage;
  12657. this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;
  12658. this.stringArrayStorage = stringArrayStorage;
  12659. this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;
  12660. this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;
  12661. this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;
  12662. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  12663. this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;
  12664. }
  12665. getVisitor(nodeTransformationStage) {
  12666. switch (nodeTransformationStage) {
  12667. case NodeTransformationStage_1.NodeTransformationStage.StringArray:
  12668. return {
  12669. enter: (node, parentNode) => {
  12670. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  12671. this.prepareNode(node);
  12672. }
  12673. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {
  12674. return this.transformNode(node, parentNode);
  12675. }
  12676. }
  12677. };
  12678. default:
  12679. return null;
  12680. }
  12681. }
  12682. prepareNode(programNode) {
  12683. if (this.options.stringArray) {
  12684. this.stringArrayStorageAnalyzer.analyze(programNode);
  12685. }
  12686. if (this.options.shuffleStringArray) {
  12687. this.stringArrayStorage.shuffleStorage();
  12688. }
  12689. if (this.options.rotateStringArray) {
  12690. this.stringArrayStorage.rotateStorage();
  12691. }
  12692. }
  12693. transformNode(literalNode, parentNode) {
  12694. if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)
  12695. || NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
  12696. return literalNode;
  12697. }
  12698. const literalValue = literalNode.value;
  12699. const stringArrayStorageItemData = this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode);
  12700. const cacheKey = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData);
  12701. const useCachedValue = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData);
  12702. if (useCachedValue) {
  12703. return this.literalNodesCacheStorage.get(cacheKey);
  12704. }
  12705. const resultNode = stringArrayStorageItemData
  12706. ? this.getStringArrayCallNode(stringArrayStorageItemData)
  12707. : literalNode;
  12708. this.literalNodesCacheStorage.set(cacheKey, resultNode);
  12709. NodeUtils_1.NodeUtils.parentizeNode(resultNode, parentNode);
  12710. return resultNode;
  12711. }
  12712. getStringArrayCallNode(stringArrayStorageItemData) {
  12713. const { name: stringArrayCallsWrapperName, index, parameterIndexesData } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData);
  12714. const { decodeKey } = stringArrayStorageItemData;
  12715. const stringArrayCallCustomNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);
  12716. stringArrayCallCustomNode.initialize(stringArrayCallsWrapperName, parameterIndexesData, index, this.stringArrayStorage.getIndexShiftAmount(), decodeKey);
  12717. const statementNode = stringArrayCallCustomNode.getNode()[0];
  12718. if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  12719. throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
  12720. }
  12721. return statementNode.expression;
  12722. }
  12723. getStringArrayCallsWrapperData(stringArrayStorageItemData) {
  12724. return !this.options.stringArrayWrappersCount
  12725. ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData)
  12726. : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData);
  12727. }
  12728. getRootStringArrayCallsWrapperData(stringArrayStorageItemData) {
  12729. const { encoding, index } = stringArrayStorageItemData;
  12730. const rootStringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(encoding);
  12731. return {
  12732. name: rootStringArrayCallsWrapperName,
  12733. parameterIndexesData: null,
  12734. index
  12735. };
  12736. }
  12737. getUpperStringArrayCallsWrapperData(stringArrayStorageItemData) {
  12738. var _a, _b, _c, _d;
  12739. const { encoding, index } = stringArrayStorageItemData;
  12740. const currentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;
  12741. const parentLexicalScopeBodyNode = (_b = this.visitedLexicalScopeNodesStackStorage.getPenultimateElement()) !== null && _b !== void 0 ? _b : null;
  12742. if (!currentLexicalScopeBodyNode) {
  12743. throw new Error('Cannot find current lexical scope body node');
  12744. }
  12745. const stringArrayScopeCallsWrapperNamesDataByEncoding = this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData);
  12746. const stringArrayScopeCallsWrapperLexicalScopeData = this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode);
  12747. const stringArrayScopeCallsWrapperNames = (_d = (_c = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _c === void 0 ? void 0 : _c.names) !== null && _d !== void 0 ? _d : [];
  12748. const randomUpperStringArrayCallsWrapperName = this.randomGenerator
  12749. .getRandomGenerator()
  12750. .pickone(stringArrayScopeCallsWrapperNames);
  12751. const resultIndex = stringArrayScopeCallsWrapperLexicalScopeData
  12752. ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index
  12753. : index;
  12754. return {
  12755. name: randomUpperStringArrayCallsWrapperName,
  12756. index: resultIndex,
  12757. parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData
  12758. };
  12759. }
  12760. getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData) {
  12761. var _a, _b, _c;
  12762. const { encoding } = stringArrayStorageItemData;
  12763. const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : {};
  12764. const stringArrayScopeCallsWrapperNames = (_c = (_b = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _b === void 0 ? void 0 : _b.names) !== null && _c !== void 0 ? _c : [];
  12765. const isFilledScopeCallsWrapperNamesList = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount;
  12766. if (isFilledScopeCallsWrapperNamesList) {
  12767. return stringArrayScopeCallsWrapperNamesDataByEncoding;
  12768. }
  12769. const nextScopeCallsWrapperName = NodeGuards_1.NodeGuards.isProgramNode(currentLexicalScopeBodyNode)
  12770. ? this.identifierNamesGenerator.generateForGlobalScope()
  12771. : this.identifierNamesGenerator.generateNext();
  12772. stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = {
  12773. encoding,
  12774. names: [
  12775. ...stringArrayScopeCallsWrapperNames,
  12776. nextScopeCallsWrapperName
  12777. ]
  12778. };
  12779. this.stringArrayScopeCallsWrapperNamesDataStorage.set(currentLexicalScopeBodyNode, stringArrayScopeCallsWrapperNamesDataByEncoding);
  12780. return stringArrayScopeCallsWrapperNamesDataByEncoding;
  12781. }
  12782. getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode) {
  12783. var _a, _b;
  12784. const storedLexicalScopeData = (_a = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;
  12785. if (storedLexicalScopeData) {
  12786. return storedLexicalScopeData;
  12787. }
  12788. const parentLexicalScopeData = parentLexicalScopeBodyNode
  12789. ? (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null
  12790. : null;
  12791. const callsWrappersParameterIndexesData = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function
  12792. ? this.getStringArrayCallsWrapperParameterIndexesData()
  12793. : null;
  12794. const scopeShiftedIndex = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function
  12795. ? this.randomGenerator.getRandomInteger(StringArrayTransformer_1.minShiftedIndexValue, StringArrayTransformer_1.maxShiftedIndexValue)
  12796. : 0;
  12797. const resultShiftedIndex = parentLexicalScopeData
  12798. ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex
  12799. : scopeShiftedIndex;
  12800. const lexicalScopeData = {
  12801. callsWrappersParameterIndexesData,
  12802. parentLexicalScopeBodyNode,
  12803. resultShiftedIndex,
  12804. scopeShiftedIndex
  12805. };
  12806. this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(currentLexicalScopeBodyNode, lexicalScopeData);
  12807. return lexicalScopeData;
  12808. }
  12809. getStringArrayCallsWrapperParameterIndexesData() {
  12810. const minIndexValue = 0;
  12811. const maxIndexValue = this.options.stringArrayWrappersParametersMaxCount - 1;
  12812. const valueIndexParameterIndex = this.randomGenerator
  12813. .getRandomInteger(minIndexValue, maxIndexValue);
  12814. const decodeKeyParameterIndex = this.randomGenerator
  12815. .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]);
  12816. return {
  12817. valueIndexParameterIndex,
  12818. decodeKeyParameterIndex
  12819. };
  12820. }
  12821. };
  12822. StringArrayTransformer.minShiftedIndexValue = -1000;
  12823. StringArrayTransformer.maxShiftedIndexValue = 1000;
  12824. StringArrayTransformer = StringArrayTransformer_1 = __decorate([
  12825. inversify_1.injectable(),
  12826. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  12827. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  12828. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)),
  12829. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),
  12830. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),
  12831. __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),
  12832. __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),
  12833. __param(7, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),
  12834. __param(8, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  12835. __param(9, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),
  12836. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage !== "undefined" && ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage) === "function" ? _c : Object, typeof (_d = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== "undefined" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== "undefined" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === "function" ? _f : Object, typeof (_g = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== "undefined" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === "function" ? _g : Object, typeof (_h = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _h : Object, typeof (_j = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _j : Object, typeof (_k = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== "undefined" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === "function" ? _k : Object])
  12837. ], StringArrayTransformer);
  12838. exports.StringArrayTransformer = StringArrayTransformer;
  12839. /***/ }),
  12840. /***/ "./src/node/NodeAppender.ts":
  12841. /*!**********************************!*\
  12842. !*** ./src/node/NodeAppender.ts ***!
  12843. \**********************************/
  12844. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  12845. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12846. exports.NodeAppender = void 0;
  12847. const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  12848. class NodeAppender {
  12849. static append(nodeWithStatements, statements) {
  12850. statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
  12851. NodeAppender.setScopeStatements(nodeWithStatements, [
  12852. ...NodeAppender.getScopeStatements(nodeWithStatements),
  12853. ...statements
  12854. ]);
  12855. }
  12856. static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) {
  12857. const targetBlockScope = callsGraphData.length
  12858. ? NodeAppender.getOptimalBlockScope(callsGraphData, index)
  12859. : nodeWithStatements;
  12860. NodeAppender.prepend(targetBlockScope, bodyStatements);
  12861. }
  12862. static getOptimalBlockScope(callsGraphData, index, deep = Infinity) {
  12863. const firstCall = callsGraphData[index];
  12864. if (deep <= 0) {
  12865. throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');
  12866. }
  12867. if (deep > 1 && firstCall.callsGraph.length) {
  12868. return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep);
  12869. }
  12870. else {
  12871. return firstCall.callee;
  12872. }
  12873. }
  12874. static getScopeStatements(nodeWithStatements) {
  12875. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
  12876. return nodeWithStatements.consequent;
  12877. }
  12878. return nodeWithStatements.body;
  12879. }
  12880. static insertBefore(nodeWithStatements, statements, target) {
  12881. const indexInScopeStatement = NodeAppender
  12882. .getScopeStatements(nodeWithStatements)
  12883. .indexOf(target);
  12884. NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement);
  12885. }
  12886. static insertAfter(nodeWithStatements, statements, target) {
  12887. const indexInScopeStatement = NodeAppender
  12888. .getScopeStatements(nodeWithStatements)
  12889. .indexOf(target);
  12890. NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);
  12891. }
  12892. static insertAtIndex(nodeWithStatements, statements, index) {
  12893. statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
  12894. NodeAppender.setScopeStatements(nodeWithStatements, [
  12895. ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index),
  12896. ...statements,
  12897. ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index)
  12898. ]);
  12899. }
  12900. static prepend(nodeWithStatements, statements) {
  12901. statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
  12902. NodeAppender.setScopeStatements(nodeWithStatements, [
  12903. ...statements,
  12904. ...NodeAppender.getScopeStatements(nodeWithStatements),
  12905. ]);
  12906. }
  12907. static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {
  12908. statements.forEach((statement) => {
  12909. statement.parentNode = nodeWithStatements;
  12910. });
  12911. return statements;
  12912. }
  12913. static setScopeStatements(nodeWithStatements, statements) {
  12914. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
  12915. nodeWithStatements.consequent = statements;
  12916. return;
  12917. }
  12918. nodeWithStatements.body = statements;
  12919. }
  12920. }
  12921. exports.NodeAppender = NodeAppender;
  12922. /***/ }),
  12923. /***/ "./src/node/NodeFactory.ts":
  12924. /*!*********************************!*\
  12925. !*** ./src/node/NodeFactory.ts ***!
  12926. \*********************************/
  12927. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  12928. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  12929. if (k2 === undefined) k2 = k;
  12930. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  12931. }) : (function(o, m, k, k2) {
  12932. if (k2 === undefined) k2 = k;
  12933. o[k2] = m[k];
  12934. }));
  12935. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  12936. Object.defineProperty(o, "default", { enumerable: true, value: v });
  12937. }) : function(o, v) {
  12938. o["default"] = v;
  12939. });
  12940. var __importStar = (this && this.__importStar) || function (mod) {
  12941. if (mod && mod.__esModule) return mod;
  12942. var result = {};
  12943. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  12944. __setModuleDefault(result, mod);
  12945. return result;
  12946. };
  12947. Object.defineProperty(exports, "__esModule", ({ value: true }));
  12948. exports.NodeFactory = void 0;
  12949. const escodegen = __importStar(__webpack_require__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/escodegen"));
  12950. const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  12951. class NodeFactory {
  12952. static programNode(body = []) {
  12953. return {
  12954. type: NodeType_1.NodeType.Program,
  12955. body,
  12956. sourceType: 'script',
  12957. metadata: { ignoredNode: false }
  12958. };
  12959. }
  12960. static arrayExpressionNode(elements = []) {
  12961. return {
  12962. type: NodeType_1.NodeType.ArrayExpression,
  12963. elements,
  12964. metadata: { ignoredNode: false }
  12965. };
  12966. }
  12967. static assignmentExpressionNode(operator, left, right) {
  12968. return {
  12969. type: NodeType_1.NodeType.AssignmentExpression,
  12970. operator,
  12971. left,
  12972. right,
  12973. metadata: { ignoredNode: false }
  12974. };
  12975. }
  12976. static binaryExpressionNode(operator, left, right) {
  12977. return {
  12978. type: NodeType_1.NodeType.BinaryExpression,
  12979. operator,
  12980. left,
  12981. right,
  12982. metadata: { ignoredNode: false }
  12983. };
  12984. }
  12985. static blockStatementNode(body = []) {
  12986. return {
  12987. type: NodeType_1.NodeType.BlockStatement,
  12988. body,
  12989. metadata: { ignoredNode: false }
  12990. };
  12991. }
  12992. static breakStatement(label) {
  12993. return {
  12994. type: NodeType_1.NodeType.BreakStatement,
  12995. label,
  12996. metadata: { ignoredNode: false }
  12997. };
  12998. }
  12999. static callExpressionNode(callee, args = [], optional = false) {
  13000. return {
  13001. type: NodeType_1.NodeType.CallExpression,
  13002. callee,
  13003. optional,
  13004. arguments: args,
  13005. metadata: { ignoredNode: false }
  13006. };
  13007. }
  13008. static conditionalExpressionNode(test, consequent, alternate) {
  13009. return {
  13010. type: NodeType_1.NodeType.ConditionalExpression,
  13011. test,
  13012. consequent,
  13013. alternate,
  13014. metadata: { ignoredNode: false }
  13015. };
  13016. }
  13017. static continueStatement(label) {
  13018. return {
  13019. type: NodeType_1.NodeType.ContinueStatement,
  13020. label,
  13021. metadata: { ignoredNode: false }
  13022. };
  13023. }
  13024. static directiveNode(expression, directive) {
  13025. return {
  13026. type: NodeType_1.NodeType.ExpressionStatement,
  13027. expression,
  13028. directive,
  13029. metadata: { ignoredNode: false }
  13030. };
  13031. }
  13032. static doWhileStatementNode(body, test) {
  13033. return {
  13034. type: NodeType_1.NodeType.DoWhileStatement,
  13035. body,
  13036. test,
  13037. metadata: { ignoredNode: false }
  13038. };
  13039. }
  13040. static exportAllDeclarationNode(source) {
  13041. return {
  13042. type: NodeType_1.NodeType.ExportAllDeclaration,
  13043. source,
  13044. metadata: { ignoredNode: false }
  13045. };
  13046. }
  13047. static exportNamedDeclarationNode(specifiers, source) {
  13048. return {
  13049. type: NodeType_1.NodeType.ExportNamedDeclaration,
  13050. specifiers,
  13051. source,
  13052. metadata: { ignoredNode: false }
  13053. };
  13054. }
  13055. static expressionStatementNode(expression) {
  13056. return {
  13057. type: NodeType_1.NodeType.ExpressionStatement,
  13058. expression,
  13059. metadata: { ignoredNode: false }
  13060. };
  13061. }
  13062. static forStatementNode(init, test, update, body) {
  13063. return {
  13064. type: NodeType_1.NodeType.ForStatement,
  13065. init,
  13066. test,
  13067. update,
  13068. body,
  13069. metadata: { ignoredNode: false }
  13070. };
  13071. }
  13072. static forInStatementNode(left, right, body) {
  13073. return {
  13074. type: NodeType_1.NodeType.ForInStatement,
  13075. left,
  13076. right,
  13077. body,
  13078. metadata: { ignoredNode: false }
  13079. };
  13080. }
  13081. static forOfStatementNode(await, left, right, body) {
  13082. return {
  13083. type: NodeType_1.NodeType.ForOfStatement,
  13084. await,
  13085. left,
  13086. right,
  13087. body,
  13088. metadata: { ignoredNode: false }
  13089. };
  13090. }
  13091. static functionDeclarationNode(functionName, params, body) {
  13092. return {
  13093. type: NodeType_1.NodeType.FunctionDeclaration,
  13094. id: NodeFactory.identifierNode(functionName),
  13095. params,
  13096. body,
  13097. generator: false,
  13098. metadata: { ignoredNode: false }
  13099. };
  13100. }
  13101. static functionExpressionNode(params, body) {
  13102. return {
  13103. type: NodeType_1.NodeType.FunctionExpression,
  13104. params,
  13105. body,
  13106. generator: false,
  13107. metadata: { ignoredNode: false }
  13108. };
  13109. }
  13110. static ifStatementNode(test, consequent, alternate) {
  13111. return {
  13112. type: NodeType_1.NodeType.IfStatement,
  13113. test,
  13114. consequent,
  13115. ...alternate && { alternate },
  13116. metadata: { ignoredNode: false }
  13117. };
  13118. }
  13119. static identifierNode(name) {
  13120. return {
  13121. type: NodeType_1.NodeType.Identifier,
  13122. name,
  13123. metadata: { ignoredNode: false }
  13124. };
  13125. }
  13126. static importDeclarationNode(specifiers, source) {
  13127. return {
  13128. type: NodeType_1.NodeType.ImportDeclaration,
  13129. specifiers,
  13130. source,
  13131. metadata: { ignoredNode: false }
  13132. };
  13133. }
  13134. static labeledStatementNode(label, body) {
  13135. return {
  13136. type: NodeType_1.NodeType.LabeledStatement,
  13137. label,
  13138. body,
  13139. metadata: { ignoredNode: false }
  13140. };
  13141. }
  13142. static literalNode(value, raw) {
  13143. raw = raw !== undefined ? raw : `'${value}'`;
  13144. return {
  13145. type: NodeType_1.NodeType.Literal,
  13146. value,
  13147. raw,
  13148. 'x-verbatim-property': {
  13149. content: raw,
  13150. precedence: escodegen.Precedence.Primary
  13151. },
  13152. metadata: { ignoredNode: false }
  13153. };
  13154. }
  13155. static logicalExpressionNode(operator, left, right) {
  13156. return {
  13157. type: NodeType_1.NodeType.LogicalExpression,
  13158. operator,
  13159. left,
  13160. right,
  13161. metadata: { ignoredNode: false }
  13162. };
  13163. }
  13164. static memberExpressionNode(object, property, computed = false, optional = false) {
  13165. return {
  13166. type: NodeType_1.NodeType.MemberExpression,
  13167. computed,
  13168. object,
  13169. optional,
  13170. property,
  13171. metadata: { ignoredNode: false }
  13172. };
  13173. }
  13174. static objectExpressionNode(properties) {
  13175. return {
  13176. type: NodeType_1.NodeType.ObjectExpression,
  13177. properties,
  13178. metadata: { ignoredNode: false }
  13179. };
  13180. }
  13181. static propertyNode(key, value, computed = false) {
  13182. return {
  13183. type: NodeType_1.NodeType.Property,
  13184. key,
  13185. value,
  13186. kind: 'init',
  13187. method: false,
  13188. shorthand: false,
  13189. computed,
  13190. metadata: { ignoredNode: false }
  13191. };
  13192. }
  13193. static restElementNode(argument) {
  13194. return {
  13195. type: NodeType_1.NodeType.RestElement,
  13196. argument,
  13197. metadata: { ignoredNode: false }
  13198. };
  13199. }
  13200. static returnStatementNode(argument) {
  13201. return {
  13202. type: NodeType_1.NodeType.ReturnStatement,
  13203. argument,
  13204. metadata: { ignoredNode: false }
  13205. };
  13206. }
  13207. static sequenceExpressionNode(expressions) {
  13208. return {
  13209. type: NodeType_1.NodeType.SequenceExpression,
  13210. expressions,
  13211. metadata: { ignoredNode: false }
  13212. };
  13213. }
  13214. static spreadElementNode(argument) {
  13215. return {
  13216. type: NodeType_1.NodeType.SpreadElement,
  13217. argument,
  13218. metadata: { ignoredNode: false }
  13219. };
  13220. }
  13221. static switchStatementNode(discriminant, cases) {
  13222. return {
  13223. type: NodeType_1.NodeType.SwitchStatement,
  13224. discriminant,
  13225. cases,
  13226. metadata: { ignoredNode: false }
  13227. };
  13228. }
  13229. static switchCaseNode(test, consequent) {
  13230. return {
  13231. type: NodeType_1.NodeType.SwitchCase,
  13232. test,
  13233. consequent,
  13234. metadata: { ignoredNode: false }
  13235. };
  13236. }
  13237. static unaryExpressionNode(operator, argument, prefix = true) {
  13238. return {
  13239. type: NodeType_1.NodeType.UnaryExpression,
  13240. operator,
  13241. argument,
  13242. prefix,
  13243. metadata: { ignoredNode: false }
  13244. };
  13245. }
  13246. static updateExpressionNode(operator, argumentExpr) {
  13247. return {
  13248. type: NodeType_1.NodeType.UpdateExpression,
  13249. operator,
  13250. argument: argumentExpr,
  13251. prefix: false,
  13252. metadata: { ignoredNode: false }
  13253. };
  13254. }
  13255. static variableDeclarationNode(declarations = [], kind = 'var') {
  13256. return {
  13257. type: NodeType_1.NodeType.VariableDeclaration,
  13258. declarations,
  13259. kind,
  13260. metadata: { ignoredNode: false }
  13261. };
  13262. }
  13263. static variableDeclaratorNode(id, init) {
  13264. return {
  13265. type: NodeType_1.NodeType.VariableDeclarator,
  13266. id,
  13267. init,
  13268. metadata: { ignoredNode: false }
  13269. };
  13270. }
  13271. static whileStatementNode(test, body) {
  13272. return {
  13273. type: NodeType_1.NodeType.WhileStatement,
  13274. test,
  13275. body,
  13276. metadata: { ignoredNode: false }
  13277. };
  13278. }
  13279. }
  13280. exports.NodeFactory = NodeFactory;
  13281. /***/ }),
  13282. /***/ "./src/node/NodeGuards.ts":
  13283. /*!********************************!*\
  13284. !*** ./src/node/NodeGuards.ts ***!
  13285. \********************************/
  13286. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  13287. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13288. exports.NodeGuards = void 0;
  13289. const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  13290. class NodeGuards {
  13291. static isArrayPatternNode(node) {
  13292. return node.type === NodeType_1.NodeType.ArrayPattern;
  13293. }
  13294. static isArrowFunctionExpressionNode(node) {
  13295. return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
  13296. }
  13297. static isAssignmentExpressionNode(node) {
  13298. return node.type === NodeType_1.NodeType.AssignmentExpression;
  13299. }
  13300. static isAssignmentPatternNode(node) {
  13301. return node.type === NodeType_1.NodeType.AssignmentPattern;
  13302. }
  13303. static isAwaitExpressionNode(node) {
  13304. return node.type === NodeType_1.NodeType.AwaitExpression;
  13305. }
  13306. static isBigIntLiteralNode(node) {
  13307. return NodeGuards.isLiteralNode(node) && !!node.bigint;
  13308. }
  13309. static isBlockStatementNode(node) {
  13310. return node.type === NodeType_1.NodeType.BlockStatement;
  13311. }
  13312. static isBreakStatementNode(node) {
  13313. return node.type === NodeType_1.NodeType.BreakStatement;
  13314. }
  13315. static isCallExpressionNode(node) {
  13316. return node.type === NodeType_1.NodeType.CallExpression;
  13317. }
  13318. static isClassDeclarationNode(node) {
  13319. return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null;
  13320. }
  13321. static isContinueStatementNode(node) {
  13322. return node.type === NodeType_1.NodeType.ContinueStatement;
  13323. }
  13324. static isDirectiveNode(node) {
  13325. return node.type === NodeType_1.NodeType.ExpressionStatement
  13326. && 'directive' in node;
  13327. }
  13328. static isDoWhileStatementNode(node) {
  13329. return node.type === NodeType_1.NodeType.DoWhileStatement;
  13330. }
  13331. static isExportAllDeclarationNode(node) {
  13332. return node.type === NodeType_1.NodeType.ExportAllDeclaration;
  13333. }
  13334. static isExportNamedDeclarationNode(node) {
  13335. return node.type === NodeType_1.NodeType.ExportNamedDeclaration;
  13336. }
  13337. static isExportSpecifierNode(node) {
  13338. return node.type === NodeType_1.NodeType.ExportSpecifier;
  13339. }
  13340. static isExpressionStatementNode(node) {
  13341. return node.type === NodeType_1.NodeType.ExpressionStatement
  13342. && !('directive' in node);
  13343. }
  13344. static isForStatementNode(node) {
  13345. return node.type === NodeType_1.NodeType.ForStatement;
  13346. }
  13347. static isForInStatementNode(node) {
  13348. return node.type === NodeType_1.NodeType.ForInStatement;
  13349. }
  13350. static isForOfStatementNode(node) {
  13351. return node.type === NodeType_1.NodeType.ForOfStatement;
  13352. }
  13353. static isFunctionNode(node) {
  13354. return NodeGuards.isFunctionDeclarationNode(node) ||
  13355. NodeGuards.isFunctionExpressionNode(node) ||
  13356. NodeGuards.isArrowFunctionExpressionNode(node);
  13357. }
  13358. static isFunctionDeclarationNode(node) {
  13359. return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null;
  13360. }
  13361. static isFunctionExpressionNode(node) {
  13362. return node.type === NodeType_1.NodeType.FunctionExpression;
  13363. }
  13364. static isIdentifierNode(node) {
  13365. return node.type === NodeType_1.NodeType.Identifier;
  13366. }
  13367. static isIfStatementNode(node) {
  13368. return node.type === NodeType_1.NodeType.IfStatement;
  13369. }
  13370. static isIfStatementNodeWithSingleStatementBody(node) {
  13371. if (!NodeGuards.isIfStatementNode(node)) {
  13372. return false;
  13373. }
  13374. return !NodeGuards.isBlockStatementNode(node.consequent)
  13375. || (!!node.alternate && !NodeGuards.isBlockStatementNode(node.alternate));
  13376. }
  13377. static isImportDeclarationNode(node) {
  13378. return node.type === NodeType_1.NodeType.ImportDeclaration;
  13379. }
  13380. static isImportSpecifierNode(node) {
  13381. return node.type === NodeType_1.NodeType.ImportSpecifier;
  13382. }
  13383. static isLabelIdentifierNode(node, parentNode) {
  13384. const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;
  13385. const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;
  13386. const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;
  13387. return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
  13388. }
  13389. static isLabeledStatementNode(node) {
  13390. return node.type === NodeType_1.NodeType.LabeledStatement;
  13391. }
  13392. static isLiteralNode(node) {
  13393. return node.type === NodeType_1.NodeType.Literal;
  13394. }
  13395. static isMemberExpressionNode(node) {
  13396. return node.type === NodeType_1.NodeType.MemberExpression;
  13397. }
  13398. static isMethodDefinitionNode(node) {
  13399. return node.type === NodeType_1.NodeType.MethodDefinition;
  13400. }
  13401. static isNode(object) {
  13402. return object && !object.type !== undefined;
  13403. }
  13404. static isNodeWithLexicalScope(node) {
  13405. return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);
  13406. }
  13407. static isNodeWithBlockLexicalScope(node) {
  13408. return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);
  13409. }
  13410. static isNodeWithSingleStatementBody(node) {
  13411. if (NodeGuards.isIfStatementNode(node)) {
  13412. return NodeGuards.isIfStatementNodeWithSingleStatementBody(node);
  13413. }
  13414. return (NodeGuards.isForStatementNode(node)
  13415. || NodeGuards.isForOfStatementNode(node)
  13416. || NodeGuards.isForInStatementNode(node)
  13417. || NodeGuards.isWhileStatementNode(node)
  13418. || NodeGuards.isDoWhileStatementNode(node)
  13419. || NodeGuards.isWithStatementNode(node)
  13420. || NodeGuards.isLabeledStatementNode(node)) && !NodeGuards.isBlockStatementNode(node.body);
  13421. }
  13422. static isNodeWithLexicalScopeStatements(node, parentNode) {
  13423. return NodeGuards.isProgramNode(node)
  13424. || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));
  13425. }
  13426. static isNodeWithStatements(node) {
  13427. return NodeGuards.isProgramNode(node)
  13428. || NodeGuards.isBlockStatementNode(node)
  13429. || NodeGuards.isSwitchCaseNode(node);
  13430. }
  13431. static isNodeWithComments(node) {
  13432. return Boolean(node.leadingComments) || Boolean(node.trailingComments);
  13433. }
  13434. static isObjectPatternNode(node) {
  13435. return node.type === NodeType_1.NodeType.ObjectPattern;
  13436. }
  13437. static isObjectExpressionNode(node) {
  13438. return node.type === NodeType_1.NodeType.ObjectExpression;
  13439. }
  13440. static isProgramNode(node) {
  13441. return node.type === NodeType_1.NodeType.Program;
  13442. }
  13443. static isPropertyNode(node) {
  13444. return node.type === NodeType_1.NodeType.Property;
  13445. }
  13446. static isPropertyDefinitionNode(node) {
  13447. return node.type === NodeType_1.NodeType.PropertyDefinition;
  13448. }
  13449. static isRestElementNode(node) {
  13450. return node.type === NodeType_1.NodeType.RestElement;
  13451. }
  13452. static isReturnStatementNode(node) {
  13453. return node.type === NodeType_1.NodeType.ReturnStatement;
  13454. }
  13455. static isSequenceExpressionNode(node) {
  13456. return node.type === NodeType_1.NodeType.SequenceExpression;
  13457. }
  13458. static isSpreadElementNode(node) {
  13459. return node.type === NodeType_1.NodeType.SpreadElement;
  13460. }
  13461. static isSuperNode(node) {
  13462. return node.type === NodeType_1.NodeType.Super;
  13463. }
  13464. static isSwitchCaseNode(node) {
  13465. return node.type === NodeType_1.NodeType.SwitchCase;
  13466. }
  13467. static isTaggedTemplateExpressionNode(node) {
  13468. return node.type === NodeType_1.NodeType.TaggedTemplateExpression;
  13469. }
  13470. static isTemplateLiteralNode(node) {
  13471. return node.type === NodeType_1.NodeType.TemplateLiteral;
  13472. }
  13473. static isUnaryExpressionNode(node) {
  13474. return node.type === NodeType_1.NodeType.UnaryExpression;
  13475. }
  13476. static isVariableDeclarationNode(node) {
  13477. return node.type === NodeType_1.NodeType.VariableDeclaration;
  13478. }
  13479. static isVariableDeclaratorNode(node) {
  13480. return node.type === NodeType_1.NodeType.VariableDeclarator;
  13481. }
  13482. static isWithStatementNode(node) {
  13483. return node.type === NodeType_1.NodeType.WithStatement;
  13484. }
  13485. static isWhileStatementNode(node) {
  13486. return node.type === NodeType_1.NodeType.WhileStatement;
  13487. }
  13488. static isYieldExpressionNode(node) {
  13489. return node.type === NodeType_1.NodeType.YieldExpression;
  13490. }
  13491. }
  13492. exports.NodeGuards = NodeGuards;
  13493. NodeGuards.nodesWithLexicalStatements = [
  13494. NodeType_1.NodeType.ArrowFunctionExpression,
  13495. NodeType_1.NodeType.FunctionDeclaration,
  13496. NodeType_1.NodeType.FunctionExpression,
  13497. NodeType_1.NodeType.MethodDefinition,
  13498. ];
  13499. /***/ }),
  13500. /***/ "./src/node/NodeLexicalScopeUtils.ts":
  13501. /*!*******************************************!*\
  13502. !*** ./src/node/NodeLexicalScopeUtils.ts ***!
  13503. \*******************************************/
  13504. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  13505. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13506. exports.NodeLexicalScopeUtils = void 0;
  13507. const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  13508. class NodeLexicalScopeUtils {
  13509. static getLexicalScope(node) {
  13510. return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
  13511. }
  13512. static getLexicalScopes(node) {
  13513. return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);
  13514. }
  13515. static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) {
  13516. if (nodesWithLexicalScope.length >= maxSize) {
  13517. return nodesWithLexicalScope;
  13518. }
  13519. const parentNode = node.parentNode;
  13520. if (!parentNode) {
  13521. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  13522. }
  13523. if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) {
  13524. nodesWithLexicalScope.push(node);
  13525. }
  13526. if (node !== parentNode) {
  13527. return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);
  13528. }
  13529. return nodesWithLexicalScope;
  13530. }
  13531. }
  13532. exports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;
  13533. /***/ }),
  13534. /***/ "./src/node/NodeLiteralUtils.ts":
  13535. /*!**************************************!*\
  13536. !*** ./src/node/NodeLiteralUtils.ts ***!
  13537. \**************************************/
  13538. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  13539. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13540. exports.NodeLiteralUtils = void 0;
  13541. const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  13542. class NodeLiteralUtils {
  13543. static isStringLiteralNode(literalNode) {
  13544. return typeof literalNode.value === 'string';
  13545. }
  13546. static isProhibitedLiteralNode(literalNode, parentNode) {
  13547. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {
  13548. return true;
  13549. }
  13550. if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {
  13551. return true;
  13552. }
  13553. if (NodeGuards_1.NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
  13554. return true;
  13555. }
  13556. return false;
  13557. }
  13558. }
  13559. exports.NodeLiteralUtils = NodeLiteralUtils;
  13560. /***/ }),
  13561. /***/ "./src/node/NodeMetadata.ts":
  13562. /*!**********************************!*\
  13563. !*** ./src/node/NodeMetadata.ts ***!
  13564. \**********************************/
  13565. /***/ ((__unused_webpack_module, exports) => {
  13566. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13567. exports.NodeMetadata = void 0;
  13568. class NodeMetadata {
  13569. static set(node, metadata) {
  13570. var _a;
  13571. node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata);
  13572. }
  13573. static get(node, metadataKey) {
  13574. return node.metadata !== undefined
  13575. ? node.metadata[metadataKey]
  13576. : undefined;
  13577. }
  13578. static isForceTransformNode(node) {
  13579. return NodeMetadata.get(node, 'forceTransformNode') === true;
  13580. }
  13581. static isIgnoredNode(node) {
  13582. return NodeMetadata.get(node, 'ignoredNode') === true;
  13583. }
  13584. static isReplacedLiteral(literalNode) {
  13585. return NodeMetadata.get(literalNode, 'replacedLiteral') === true;
  13586. }
  13587. }
  13588. exports.NodeMetadata = NodeMetadata;
  13589. /***/ }),
  13590. /***/ "./src/node/NodeStatementUtils.ts":
  13591. /*!****************************************!*\
  13592. !*** ./src/node/NodeStatementUtils.ts ***!
  13593. \****************************************/
  13594. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  13595. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13596. exports.NodeStatementUtils = void 0;
  13597. const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  13598. class NodeStatementUtils {
  13599. static getParentNodeWithStatements(node) {
  13600. return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];
  13601. }
  13602. static getParentNodesWithStatements(node) {
  13603. return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);
  13604. }
  13605. static getNextSiblingStatement(statement) {
  13606. return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);
  13607. }
  13608. static getPreviousSiblingStatement(statement) {
  13609. return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);
  13610. }
  13611. static getRootStatementOfNode(node) {
  13612. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  13613. throw new Error('Unable to find root statement for `Program` node');
  13614. }
  13615. const parentNode = node.parentNode;
  13616. if (!parentNode) {
  13617. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  13618. }
  13619. if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
  13620. return NodeStatementUtils.getRootStatementOfNode(parentNode);
  13621. }
  13622. return node;
  13623. }
  13624. static getScopeOfNode(node) {
  13625. const parentNode = node.parentNode;
  13626. if (!parentNode) {
  13627. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  13628. }
  13629. if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
  13630. return NodeStatementUtils.getScopeOfNode(parentNode);
  13631. }
  13632. return parentNode;
  13633. }
  13634. static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) {
  13635. if (nodesWithStatements.length >= maxSize) {
  13636. return nodesWithStatements;
  13637. }
  13638. const parentNode = node.parentNode;
  13639. if (!parentNode) {
  13640. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  13641. }
  13642. if (NodeGuards_1.NodeGuards.isProgramNode(node) ||
  13643. (NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)) {
  13644. nodesWithStatements.push(node);
  13645. }
  13646. if (node !== parentNode) {
  13647. return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);
  13648. }
  13649. return nodesWithStatements;
  13650. }
  13651. static getSiblingStatementByOffset(statement, offset) {
  13652. const scopeNode = NodeStatementUtils.getScopeOfNode(statement);
  13653. const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)
  13654. ? scopeNode.body
  13655. : scopeNode.consequent;
  13656. const indexInScope = scopeBody.indexOf(statement);
  13657. return scopeBody[indexInScope + offset] || null;
  13658. }
  13659. }
  13660. exports.NodeStatementUtils = NodeStatementUtils;
  13661. /***/ }),
  13662. /***/ "./src/node/NodeUtils.ts":
  13663. /*!*******************************!*\
  13664. !*** ./src/node/NodeUtils.ts ***!
  13665. \*******************************/
  13666. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  13667. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  13668. if (k2 === undefined) k2 = k;
  13669. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  13670. }) : (function(o, m, k, k2) {
  13671. if (k2 === undefined) k2 = k;
  13672. o[k2] = m[k];
  13673. }));
  13674. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  13675. Object.defineProperty(o, "default", { enumerable: true, value: v });
  13676. }) : function(o, v) {
  13677. o["default"] = v;
  13678. });
  13679. var __importStar = (this && this.__importStar) || function (mod) {
  13680. if (mod && mod.__esModule) return mod;
  13681. var result = {};
  13682. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  13683. __setModuleDefault(result, mod);
  13684. return result;
  13685. };
  13686. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13687. exports.NodeUtils = void 0;
  13688. const escodegen = __importStar(__webpack_require__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/escodegen"));
  13689. const estraverse = __importStar(__webpack_require__(/*! @javascript-obfuscator/estraverse */ "@javascript-obfuscator/estraverse"));
  13690. const EcmaVersion_1 = __webpack_require__(/*! ../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts");
  13691. const ASTParserFacade_1 = __webpack_require__(/*! ../ASTParserFacade */ "./src/ASTParserFacade.ts");
  13692. const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  13693. const NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts");
  13694. class NodeUtils {
  13695. static addXVerbatimPropertyTo(literalNode) {
  13696. literalNode['x-verbatim-property'] = {
  13697. content: literalNode.raw,
  13698. precedence: escodegen.Precedence.Primary
  13699. };
  13700. return literalNode;
  13701. }
  13702. static clone(astTree) {
  13703. return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));
  13704. }
  13705. static convertCodeToStructure(code) {
  13706. const structure = ASTParserFacade_1.ASTParserFacade.parse(code, {
  13707. ecmaVersion: EcmaVersion_1.ecmaVersion,
  13708. sourceType: 'script'
  13709. });
  13710. estraverse.replace(structure, {
  13711. enter: (node, parentNode) => {
  13712. NodeUtils.parentizeNode(node, parentNode);
  13713. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  13714. NodeUtils.addXVerbatimPropertyTo(node);
  13715. }
  13716. NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });
  13717. return node;
  13718. }
  13719. });
  13720. return structure.body;
  13721. }
  13722. static convertStructureToCode(structure) {
  13723. return structure.reduce((code, node) => {
  13724. return code + escodegen.generate(node, {
  13725. sourceMapWithCode: true
  13726. }).code;
  13727. }, '');
  13728. }
  13729. static getUnaryExpressionArgumentNode(unaryExpressionNode) {
  13730. if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {
  13731. return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);
  13732. }
  13733. return unaryExpressionNode.argument;
  13734. }
  13735. static parentizeAst(astTree) {
  13736. var _a;
  13737. const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null;
  13738. estraverse.replace(astTree, {
  13739. enter: NodeUtils.parentizeNode
  13740. });
  13741. if (parentNode) {
  13742. astTree.parentNode = parentNode;
  13743. }
  13744. return astTree;
  13745. }
  13746. static parentizeNode(node, parentNode) {
  13747. node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node;
  13748. return node;
  13749. }
  13750. static cloneRecursive(node) {
  13751. if (node === null) {
  13752. return node;
  13753. }
  13754. const copy = {};
  13755. const nodeKeys = Object.keys(node);
  13756. nodeKeys
  13757. .forEach((property) => {
  13758. var _a;
  13759. if (property === 'parentNode') {
  13760. return;
  13761. }
  13762. const value = (_a = node[property]) !== null && _a !== void 0 ? _a : null;
  13763. let clonedValue;
  13764. if (value === null || value instanceof RegExp) {
  13765. clonedValue = value;
  13766. }
  13767. else if (value instanceof Array) {
  13768. clonedValue = value.map(NodeUtils.cloneRecursive);
  13769. }
  13770. else if (typeof value === 'object') {
  13771. clonedValue = NodeUtils.cloneRecursive(value);
  13772. }
  13773. else {
  13774. clonedValue = value;
  13775. }
  13776. copy[property] = clonedValue;
  13777. });
  13778. return copy;
  13779. }
  13780. }
  13781. exports.NodeUtils = NodeUtils;
  13782. /***/ }),
  13783. /***/ "./src/node/NumericalExpressionDataToNodeConverter.ts":
  13784. /*!************************************************************!*\
  13785. !*** ./src/node/NumericalExpressionDataToNodeConverter.ts ***!
  13786. \************************************************************/
  13787. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  13788. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13789. exports.NumericalExpressionDataToNodeConverter = void 0;
  13790. const NodeFactory_1 = __webpack_require__(/*! ./NodeFactory */ "./src/node/NodeFactory.ts");
  13791. const NumberUtils_1 = __webpack_require__(/*! ../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  13792. class NumericalExpressionDataToNodeConverter {
  13793. static convertIntegerNumberData(numberNumericalExpressionData, literalNodeGetter) {
  13794. return NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(numberNumericalExpressionData, literalNodeGetter);
  13795. }
  13796. static convertFloatNumberData(integerNumberNumericalExpressionData, decimalPart, literalNodeGetter) {
  13797. const integerNumberNumericalExpressionNode = NumericalExpressionDataToNodeConverter
  13798. .convertNumericalExpressionDataToNode(integerNumberNumericalExpressionData, literalNodeGetter);
  13799. return NodeFactory_1.NodeFactory.binaryExpressionNode('+', integerNumberNumericalExpressionNode, NodeFactory_1.NodeFactory.literalNode(decimalPart));
  13800. }
  13801. static convertNumericalExpressionDataToNode(numberNumericalExpressionData, literalNodeGetter, operator = '+') {
  13802. var _a;
  13803. const numberNumericalExpressionDataLength = numberNumericalExpressionData.length;
  13804. const leftParts = numberNumericalExpressionDataLength > 1
  13805. ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1)
  13806. : [numberNumericalExpressionData[0]];
  13807. const rightParts = numberNumericalExpressionDataLength > 1
  13808. ? numberNumericalExpressionData.slice(-1)
  13809. : [];
  13810. if (rightParts.length) {
  13811. return NumericalExpressionDataToNodeConverter
  13812. .convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter);
  13813. }
  13814. const firstLeftPartOrNumber = (_a = leftParts[0]) !== null && _a !== void 0 ? _a : null;
  13815. return Array.isArray(firstLeftPartOrNumber)
  13816. ? NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, literalNodeGetter, '*')
  13817. : NumericalExpressionDataToNodeConverter.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber, literalNodeGetter);
  13818. }
  13819. static convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter) {
  13820. const rightPartOrNumber = rightParts[0];
  13821. if (Array.isArray(rightPartOrNumber)) {
  13822. return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(leftParts, literalNodeGetter), NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(rightPartOrNumber, literalNodeGetter, '*'));
  13823. }
  13824. else {
  13825. return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(leftParts, literalNodeGetter), this.convertPartOrNumberToLiteralNode(rightPartOrNumber, literalNodeGetter));
  13826. }
  13827. }
  13828. static convertPartOrNumberToLiteralNode(partOrNumber, literalNodeGetter) {
  13829. const number = Array.isArray(partOrNumber)
  13830. ? partOrNumber[0]
  13831. : partOrNumber;
  13832. const isPositiveNumber = NumberUtils_1.NumberUtils.isPositive(number);
  13833. const absoluteNumber = Math.abs(number);
  13834. return literalNodeGetter(absoluteNumber, isPositiveNumber);
  13835. }
  13836. }
  13837. exports.NumericalExpressionDataToNodeConverter = NumericalExpressionDataToNodeConverter;
  13838. /***/ }),
  13839. /***/ "./src/node/ScopeIdentifiersTraverser.ts":
  13840. /*!***********************************************!*\
  13841. !*** ./src/node/ScopeIdentifiersTraverser.ts ***!
  13842. \***********************************************/
  13843. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  13844. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  13845. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  13846. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  13847. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  13848. return c > 3 && r && Object.defineProperty(target, key, r), r;
  13849. };
  13850. var __metadata = (this && this.__metadata) || function (k, v) {
  13851. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  13852. };
  13853. var __param = (this && this.__param) || function (paramIndex, decorator) {
  13854. return function (target, key) { decorator(target, key, paramIndex); }
  13855. };
  13856. var ScopeIdentifiersTraverser_1, _a;
  13857. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13858. exports.ScopeIdentifiersTraverser = void 0;
  13859. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  13860. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  13861. const IScopeAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/scope-analyzer/IScopeAnalyzer */ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts");
  13862. const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  13863. let ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser {
  13864. constructor(scopeAnalyzer) {
  13865. this.scopeAnalyzer = scopeAnalyzer;
  13866. }
  13867. traverseScopeIdentifiers(programNode, parentNode, callback) {
  13868. this.scopeAnalyzer.analyze(programNode);
  13869. const globalScope = this.scopeAnalyzer.acquireScope(programNode);
  13870. this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback);
  13871. }
  13872. traverseScopeThroughIdentifiers(programNode, parentNode, callback) {
  13873. this.scopeAnalyzer.analyze(programNode);
  13874. const globalScope = this.scopeAnalyzer.acquireScope(programNode);
  13875. this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback);
  13876. }
  13877. traverseScopeIdentifiersRecursive(rootScope, currentScope, callback) {
  13878. const variableScope = currentScope.variableScope;
  13879. const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)
  13880. ? variableScope.block
  13881. : null;
  13882. const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type);
  13883. if (!variableLexicalScopeNode) {
  13884. return;
  13885. }
  13886. for (const variable of currentScope.variables) {
  13887. if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) {
  13888. continue;
  13889. }
  13890. const isBubblingDeclaration = variable
  13891. .identifiers
  13892. .some((identifier) => identifier.parentNode
  13893. && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode)
  13894. && identifier.parentNode.shorthand);
  13895. callback({
  13896. isGlobalDeclaration,
  13897. isBubblingDeclaration,
  13898. rootScope,
  13899. variable,
  13900. variableScope,
  13901. variableLexicalScopeNode
  13902. });
  13903. }
  13904. for (const childScope of currentScope.childScopes) {
  13905. this.traverseScopeIdentifiersRecursive(rootScope, childScope, callback);
  13906. }
  13907. }
  13908. traverseScopeThroughIdentifiersRecursive(rootScope, currentScope, callback) {
  13909. const variableScope = currentScope.variableScope;
  13910. const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)
  13911. ? variableScope.block
  13912. : null;
  13913. const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type);
  13914. if (!variableLexicalScopeNode) {
  13915. return;
  13916. }
  13917. for (const reference of currentScope.through) {
  13918. callback({
  13919. isGlobalDeclaration,
  13920. reference,
  13921. variableLexicalScopeNode
  13922. });
  13923. }
  13924. for (const childScope of currentScope.childScopes) {
  13925. this.traverseScopeThroughIdentifiersRecursive(rootScope, childScope, callback);
  13926. }
  13927. }
  13928. };
  13929. ScopeIdentifiersTraverser.argumentsVariableName = 'arguments';
  13930. ScopeIdentifiersTraverser.globalScopeNames = [
  13931. 'global',
  13932. 'module'
  13933. ];
  13934. ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([
  13935. inversify_1.injectable(),
  13936. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)),
  13937. __metadata("design:paramtypes", [typeof (_a = typeof IScopeAnalyzer_1.IScopeAnalyzer !== "undefined" && IScopeAnalyzer_1.IScopeAnalyzer) === "function" ? _a : Object])
  13938. ], ScopeIdentifiersTraverser);
  13939. exports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser;
  13940. /***/ }),
  13941. /***/ "./src/options/Options.ts":
  13942. /*!********************************!*\
  13943. !*** ./src/options/Options.ts ***!
  13944. \********************************/
  13945. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  13946. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  13947. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  13948. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  13949. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  13950. return c > 3 && r && Object.defineProperty(target, key, r), r;
  13951. };
  13952. var __metadata = (this && this.__metadata) || function (k, v) {
  13953. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  13954. };
  13955. var __param = (this && this.__param) || function (paramIndex, decorator) {
  13956. return function (target, key) { decorator(target, key, paramIndex); }
  13957. };
  13958. var Options_1, _a, _b, _c, _d, _e, _f, _g, _h, _j;
  13959. Object.defineProperty(exports, "__esModule", ({ value: true }));
  13960. exports.Options = void 0;
  13961. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  13962. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  13963. const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
  13964. const TIdentifierNamesCache_1 = __webpack_require__(/*! ../types/TIdentifierNamesCache */ "./src/types/TIdentifierNamesCache.ts");
  13965. const TInputOptions_1 = __webpack_require__(/*! ../types/options/TInputOptions */ "./src/types/options/TInputOptions.ts");
  13966. const TOptionsPreset_1 = __webpack_require__(/*! ../types/options/TOptionsPreset */ "./src/types/options/TOptionsPreset.ts");
  13967. const TRenamePropertiesMode_1 = __webpack_require__(/*! ../types/options/TRenamePropertiesMode */ "./src/types/options/TRenamePropertiesMode.ts");
  13968. const TStringArrayWrappersType_1 = __webpack_require__(/*! ../types/options/TStringArrayWrappersType */ "./src/types/options/TStringArrayWrappersType.ts");
  13969. const TTypeFromEnum_1 = __webpack_require__(/*! ../types/utils/TTypeFromEnum */ "./src/types/utils/TTypeFromEnum.ts");
  13970. const IOptionsNormalizer_1 = __webpack_require__(/*! ../interfaces/options/IOptionsNormalizer */ "./src/interfaces/options/IOptionsNormalizer.ts");
  13971. const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  13972. const ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  13973. const OptionsPreset_1 = __webpack_require__(/*! ../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts");
  13974. const RenamePropertiesMode_1 = __webpack_require__(/*! ../enums/node-transformers/rename-properties-transformers/RenamePropertiesMode */ "./src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode.ts");
  13975. const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  13976. const StringArrayIndexesType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts");
  13977. const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  13978. const StringArrayWrappersType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts");
  13979. const Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts");
  13980. const LowObfuscation_1 = __webpack_require__(/*! ./presets/LowObfuscation */ "./src/options/presets/LowObfuscation.ts");
  13981. const MediumObfuscation_1 = __webpack_require__(/*! ./presets/MediumObfuscation */ "./src/options/presets/MediumObfuscation.ts");
  13982. const HighObfuscation_1 = __webpack_require__(/*! ./presets/HighObfuscation */ "./src/options/presets/HighObfuscation.ts");
  13983. const ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts");
  13984. const IsAllowedForObfuscationTargets_1 = __webpack_require__(/*! ./validators/IsAllowedForObfuscationTargets */ "./src/options/validators/IsAllowedForObfuscationTargets.ts");
  13985. const IsIdentifierNamesCache_1 = __webpack_require__(/*! ./validators/IsIdentifierNamesCache */ "./src/options/validators/IsIdentifierNamesCache.ts");
  13986. let Options = Options_1 = class Options {
  13987. constructor(inputOptions, optionsNormalizer) {
  13988. var _a;
  13989. const optionsPreset = Options_1.getOptionsByPreset((_a = inputOptions.optionsPreset) !== null && _a !== void 0 ? _a : OptionsPreset_1.OptionsPreset.Default);
  13990. Object.assign(this, optionsPreset, inputOptions);
  13991. const errors = class_validator_1.validateSync(this, Options_1.validatorOptions);
  13992. if (errors.length) {
  13993. throw new ReferenceError(`Validation failed. errors:\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`);
  13994. }
  13995. Object.assign(this, optionsNormalizer.normalize(this));
  13996. }
  13997. static getOptionsByPreset(optionsPreset) {
  13998. var _a;
  13999. const options = (_a = Options_1.optionPresetsMap.get(optionsPreset)) !== null && _a !== void 0 ? _a : null;
  14000. if (!options) {
  14001. throw new Error(`Options for preset name \`${optionsPreset}\` are not found`);
  14002. }
  14003. return options;
  14004. }
  14005. };
  14006. Options.optionPresetsMap = new Map([
  14007. [OptionsPreset_1.OptionsPreset.Default, Default_1.DEFAULT_PRESET],
  14008. [OptionsPreset_1.OptionsPreset.LowObfuscation, LowObfuscation_1.LOW_OBFUSCATION_PRESET],
  14009. [OptionsPreset_1.OptionsPreset.MediumObfuscation, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET],
  14010. [OptionsPreset_1.OptionsPreset.HighObfuscation, HighObfuscation_1.HIGH_OBFUSCATION_PRESET]
  14011. ]);
  14012. Options.validatorOptions = {
  14013. forbidUnknownValues: true,
  14014. validationError: {
  14015. target: false
  14016. }
  14017. };
  14018. __decorate([
  14019. class_validator_1.IsBoolean(),
  14020. __metadata("design:type", Boolean)
  14021. ], Options.prototype, "compact", void 0);
  14022. __decorate([
  14023. class_validator_1.IsBoolean(),
  14024. __metadata("design:type", Boolean)
  14025. ], Options.prototype, "controlFlowFlattening", void 0);
  14026. __decorate([
  14027. class_validator_1.IsNumber(),
  14028. class_validator_1.Min(0),
  14029. class_validator_1.Max(1),
  14030. __metadata("design:type", Number)
  14031. ], Options.prototype, "controlFlowFlatteningThreshold", void 0);
  14032. __decorate([
  14033. class_validator_1.IsBoolean(),
  14034. __metadata("design:type", Boolean)
  14035. ], Options.prototype, "deadCodeInjection", void 0);
  14036. __decorate([
  14037. class_validator_1.IsNumber(),
  14038. __metadata("design:type", Number)
  14039. ], Options.prototype, "deadCodeInjectionThreshold", void 0);
  14040. __decorate([
  14041. class_validator_1.IsBoolean(),
  14042. __metadata("design:type", Boolean)
  14043. ], Options.prototype, "debugProtection", void 0);
  14044. __decorate([
  14045. class_validator_1.IsBoolean(),
  14046. __metadata("design:type", Boolean)
  14047. ], Options.prototype, "debugProtectionInterval", void 0);
  14048. __decorate([
  14049. class_validator_1.IsBoolean(),
  14050. __metadata("design:type", Boolean)
  14051. ], Options.prototype, "disableConsoleOutput", void 0);
  14052. __decorate([
  14053. class_validator_1.IsArray(),
  14054. class_validator_1.ArrayUnique(),
  14055. class_validator_1.IsString({
  14056. each: true
  14057. }),
  14058. IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([
  14059. ObfuscationTarget_1.ObfuscationTarget.Browser,
  14060. ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval,
  14061. ]),
  14062. __metadata("design:type", Array)
  14063. ], Options.prototype, "domainLock", void 0);
  14064. __decorate([
  14065. class_validator_1.IsArray(),
  14066. class_validator_1.ArrayUnique(),
  14067. class_validator_1.IsString({
  14068. each: true
  14069. }),
  14070. __metadata("design:type", Array)
  14071. ], Options.prototype, "forceTransformStrings", void 0);
  14072. __decorate([
  14073. IsIdentifierNamesCache_1.IsIdentifierNamesCache(),
  14074. __metadata("design:type", typeof (_a = typeof TIdentifierNamesCache_1.TIdentifierNamesCache !== "undefined" && TIdentifierNamesCache_1.TIdentifierNamesCache) === "function" ? _a : Object)
  14075. ], Options.prototype, "identifierNamesCache", void 0);
  14076. __decorate([
  14077. class_validator_1.IsIn([
  14078. IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,
  14079. IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  14080. IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,
  14081. IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator
  14082. ]),
  14083. __metadata("design:type", typeof (_b = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _b : Object)
  14084. ], Options.prototype, "identifierNamesGenerator", void 0);
  14085. __decorate([
  14086. class_validator_1.IsString(),
  14087. __metadata("design:type", String)
  14088. ], Options.prototype, "identifiersPrefix", void 0);
  14089. __decorate([
  14090. class_validator_1.IsArray(),
  14091. class_validator_1.ArrayUnique(),
  14092. class_validator_1.IsString({
  14093. each: true
  14094. }),
  14095. class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),
  14096. class_validator_1.ArrayNotEmpty(),
  14097. __metadata("design:type", Array)
  14098. ], Options.prototype, "identifiersDictionary", void 0);
  14099. __decorate([
  14100. class_validator_1.IsBoolean(),
  14101. __metadata("design:type", Boolean)
  14102. ], Options.prototype, "ignoreRequireImports", void 0);
  14103. __decorate([
  14104. class_validator_1.IsString(),
  14105. __metadata("design:type", String)
  14106. ], Options.prototype, "inputFileName", void 0);
  14107. __decorate([
  14108. class_validator_1.IsBoolean(),
  14109. __metadata("design:type", Boolean)
  14110. ], Options.prototype, "log", void 0);
  14111. __decorate([
  14112. class_validator_1.IsBoolean(),
  14113. __metadata("design:type", Boolean)
  14114. ], Options.prototype, "numbersToExpressions", void 0);
  14115. __decorate([
  14116. class_validator_1.IsIn([
  14117. OptionsPreset_1.OptionsPreset.Default,
  14118. OptionsPreset_1.OptionsPreset.LowObfuscation,
  14119. OptionsPreset_1.OptionsPreset.MediumObfuscation,
  14120. OptionsPreset_1.OptionsPreset.HighObfuscation
  14121. ]),
  14122. __metadata("design:type", typeof (_c = typeof TOptionsPreset_1.TOptionsPreset !== "undefined" && TOptionsPreset_1.TOptionsPreset) === "function" ? _c : Object)
  14123. ], Options.prototype, "optionsPreset", void 0);
  14124. __decorate([
  14125. class_validator_1.IsBoolean(),
  14126. __metadata("design:type", Boolean)
  14127. ], Options.prototype, "renameGlobals", void 0);
  14128. __decorate([
  14129. class_validator_1.IsBoolean(),
  14130. __metadata("design:type", Boolean)
  14131. ], Options.prototype, "renameProperties", void 0);
  14132. __decorate([
  14133. class_validator_1.IsIn([RenamePropertiesMode_1.RenamePropertiesMode.Safe, RenamePropertiesMode_1.RenamePropertiesMode.Unsafe]),
  14134. __metadata("design:type", typeof (_d = typeof TRenamePropertiesMode_1.TRenamePropertiesMode !== "undefined" && TRenamePropertiesMode_1.TRenamePropertiesMode) === "function" ? _d : Object)
  14135. ], Options.prototype, "renamePropertiesMode", void 0);
  14136. __decorate([
  14137. class_validator_1.IsArray(),
  14138. class_validator_1.ArrayUnique(),
  14139. class_validator_1.IsString({
  14140. each: true
  14141. }),
  14142. __metadata("design:type", Array)
  14143. ], Options.prototype, "reservedNames", void 0);
  14144. __decorate([
  14145. class_validator_1.IsArray(),
  14146. class_validator_1.ArrayUnique(),
  14147. class_validator_1.IsString({
  14148. each: true
  14149. }),
  14150. __metadata("design:type", Array)
  14151. ], Options.prototype, "reservedStrings", void 0);
  14152. __decorate([
  14153. class_validator_1.IsBoolean(),
  14154. __metadata("design:type", Boolean)
  14155. ], Options.prototype, "rotateStringArray", void 0);
  14156. __decorate([
  14157. class_validator_1.IsBoolean(),
  14158. __metadata("design:type", Boolean)
  14159. ], Options.prototype, "selfDefending", void 0);
  14160. __decorate([
  14161. class_validator_1.IsBoolean(),
  14162. __metadata("design:type", Boolean)
  14163. ], Options.prototype, "shuffleStringArray", void 0);
  14164. __decorate([
  14165. class_validator_1.IsBoolean(),
  14166. __metadata("design:type", Boolean)
  14167. ], Options.prototype, "simplify", void 0);
  14168. __decorate([
  14169. class_validator_1.IsBoolean(),
  14170. __metadata("design:type", Boolean)
  14171. ], Options.prototype, "sourceMap", void 0);
  14172. __decorate([
  14173. class_validator_1.IsString(),
  14174. class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)),
  14175. class_validator_1.IsUrl({
  14176. require_protocol: true,
  14177. require_tld: false,
  14178. require_valid_protocol: true
  14179. }),
  14180. __metadata("design:type", String)
  14181. ], Options.prototype, "sourceMapBaseUrl", void 0);
  14182. __decorate([
  14183. class_validator_1.IsString(),
  14184. __metadata("design:type", String)
  14185. ], Options.prototype, "sourceMapFileName", void 0);
  14186. __decorate([
  14187. class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]),
  14188. __metadata("design:type", typeof (_e = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _e : Object)
  14189. ], Options.prototype, "sourceMapMode", void 0);
  14190. __decorate([
  14191. class_validator_1.IsBoolean(),
  14192. __metadata("design:type", Boolean)
  14193. ], Options.prototype, "splitStrings", void 0);
  14194. __decorate([
  14195. class_validator_1.IsNumber(),
  14196. class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)),
  14197. class_validator_1.Min(1),
  14198. __metadata("design:type", Number)
  14199. ], Options.prototype, "splitStringsChunkLength", void 0);
  14200. __decorate([
  14201. class_validator_1.IsBoolean(),
  14202. __metadata("design:type", Boolean)
  14203. ], Options.prototype, "stringArray", void 0);
  14204. __decorate([
  14205. class_validator_1.IsArray(),
  14206. class_validator_1.ArrayUnique(),
  14207. class_validator_1.IsIn([StringArrayEncoding_1.StringArrayEncoding.None, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4], { each: true }),
  14208. __metadata("design:type", Array)
  14209. ], Options.prototype, "stringArrayEncoding", void 0);
  14210. __decorate([
  14211. class_validator_1.IsArray(),
  14212. class_validator_1.ArrayNotEmpty(),
  14213. class_validator_1.ArrayUnique(),
  14214. class_validator_1.IsIn([StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString], { each: true }),
  14215. __metadata("design:type", Array)
  14216. ], Options.prototype, "stringArrayIndexesType", void 0);
  14217. __decorate([
  14218. class_validator_1.IsBoolean(),
  14219. __metadata("design:type", Boolean)
  14220. ], Options.prototype, "stringArrayIndexShift", void 0);
  14221. __decorate([
  14222. class_validator_1.IsBoolean(),
  14223. __metadata("design:type", Boolean)
  14224. ], Options.prototype, "stringArrayWrappersChainedCalls", void 0);
  14225. __decorate([
  14226. class_validator_1.IsNumber(),
  14227. class_validator_1.Min(0),
  14228. __metadata("design:type", Number)
  14229. ], Options.prototype, "stringArrayWrappersCount", void 0);
  14230. __decorate([
  14231. class_validator_1.IsNumber(),
  14232. class_validator_1.Min(2),
  14233. __metadata("design:type", Number)
  14234. ], Options.prototype, "stringArrayWrappersParametersMaxCount", void 0);
  14235. __decorate([
  14236. class_validator_1.IsIn([StringArrayWrappersType_1.StringArrayWrappersType.Variable, StringArrayWrappersType_1.StringArrayWrappersType.Function]),
  14237. __metadata("design:type", typeof (_f = typeof TStringArrayWrappersType_1.TStringArrayWrappersType !== "undefined" && TStringArrayWrappersType_1.TStringArrayWrappersType) === "function" ? _f : Object)
  14238. ], Options.prototype, "stringArrayWrappersType", void 0);
  14239. __decorate([
  14240. class_validator_1.IsNumber(),
  14241. class_validator_1.Min(0),
  14242. class_validator_1.Max(1),
  14243. __metadata("design:type", Number)
  14244. ], Options.prototype, "stringArrayThreshold", void 0);
  14245. __decorate([
  14246. class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]),
  14247. __metadata("design:type", typeof (_g = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _g : Object)
  14248. ], Options.prototype, "target", void 0);
  14249. __decorate([
  14250. class_validator_1.IsBoolean(),
  14251. __metadata("design:type", Boolean)
  14252. ], Options.prototype, "transformObjectKeys", void 0);
  14253. __decorate([
  14254. class_validator_1.IsBoolean(),
  14255. __metadata("design:type", Boolean)
  14256. ], Options.prototype, "unicodeEscapeSequence", void 0);
  14257. Options = Options_1 = __decorate([
  14258. inversify_1.injectable(),
  14259. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)),
  14260. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)),
  14261. __metadata("design:paramtypes", [typeof (_h = typeof TInputOptions_1.TInputOptions !== "undefined" && TInputOptions_1.TInputOptions) === "function" ? _h : Object, typeof (_j = typeof IOptionsNormalizer_1.IOptionsNormalizer !== "undefined" && IOptionsNormalizer_1.IOptionsNormalizer) === "function" ? _j : Object])
  14262. ], Options);
  14263. exports.Options = Options;
  14264. /***/ }),
  14265. /***/ "./src/options/OptionsNormalizer.ts":
  14266. /*!******************************************!*\
  14267. !*** ./src/options/OptionsNormalizer.ts ***!
  14268. \******************************************/
  14269. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  14270. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  14271. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  14272. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  14273. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  14274. return c > 3 && r && Object.defineProperty(target, key, r), r;
  14275. };
  14276. var OptionsNormalizer_1;
  14277. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14278. exports.OptionsNormalizer = void 0;
  14279. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  14280. const ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts");
  14281. const DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts");
  14282. const DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts");
  14283. const DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts");
  14284. const IdentifierNamesCacheRule_1 = __webpack_require__(/*! ./normalizer-rules/IdentifierNamesCacheRule */ "./src/options/normalizer-rules/IdentifierNamesCacheRule.ts");
  14285. const InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts");
  14286. const SeedRule_1 = __webpack_require__(/*! ./normalizer-rules/SeedRule */ "./src/options/normalizer-rules/SeedRule.ts");
  14287. const SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts");
  14288. const SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts");
  14289. const SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts");
  14290. const SplitStringsChunkLengthRule_1 = __webpack_require__(/*! ./normalizer-rules/SplitStringsChunkLengthRule */ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts");
  14291. const StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts");
  14292. const StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts");
  14293. const StringArrayWappersChainedCalls_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayWappersChainedCalls */ "./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts");
  14294. let OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer {
  14295. normalize(options) {
  14296. let normalizedOptions = {
  14297. ...options
  14298. };
  14299. for (const normalizerRule of OptionsNormalizer_1.normalizerRules) {
  14300. normalizedOptions = normalizerRule(normalizedOptions);
  14301. }
  14302. return normalizedOptions;
  14303. }
  14304. };
  14305. OptionsNormalizer.normalizerRules = [
  14306. ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule,
  14307. DeadCodeInjectionRule_1.DeadCodeInjectionRule,
  14308. DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule,
  14309. DomainLockRule_1.DomainLockRule,
  14310. IdentifierNamesCacheRule_1.IdentifierNamesCacheRule,
  14311. InputFileNameRule_1.InputFileNameRule,
  14312. SeedRule_1.SeedRule,
  14313. SelfDefendingRule_1.SelfDefendingRule,
  14314. SourceMapBaseUrlRule_1.SourceMapBaseUrlRule,
  14315. SourceMapFileNameRule_1.SourceMapFileNameRule,
  14316. SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule,
  14317. StringArrayRule_1.StringArrayRule,
  14318. StringArrayEncodingRule_1.StringArrayEncodingRule,
  14319. StringArrayWappersChainedCalls_1.StringArrayWrappersChainedCallsRule,
  14320. ];
  14321. OptionsNormalizer = OptionsNormalizer_1 = __decorate([
  14322. inversify_1.injectable()
  14323. ], OptionsNormalizer);
  14324. exports.OptionsNormalizer = OptionsNormalizer;
  14325. /***/ }),
  14326. /***/ "./src/options/ValidationErrorsFormatter.ts":
  14327. /*!**************************************************!*\
  14328. !*** ./src/options/ValidationErrorsFormatter.ts ***!
  14329. \**************************************************/
  14330. /***/ ((__unused_webpack_module, exports) => {
  14331. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14332. exports.ValidationErrorsFormatter = void 0;
  14333. class ValidationErrorsFormatter {
  14334. static format(errors) {
  14335. return errors
  14336. .reduce((errorMessages, error) => [
  14337. ...errorMessages,
  14338. ValidationErrorsFormatter.formatWithNestedConstraints(error)
  14339. ], [])
  14340. .join('\n');
  14341. }
  14342. static formatWithNestedConstraints(error) {
  14343. const constraints = error.constraints;
  14344. if (!constraints) {
  14345. return `\`${error.property}\` error\n`;
  14346. }
  14347. const rootError = `\`${error.property}\` errors:\n`;
  14348. const nestedErrors = Object
  14349. .keys(constraints)
  14350. .map((constraint) => ` - ${constraints[constraint]}\n`)
  14351. .join();
  14352. return `${rootError}${nestedErrors}`;
  14353. }
  14354. }
  14355. exports.ValidationErrorsFormatter = ValidationErrorsFormatter;
  14356. /***/ }),
  14357. /***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts":
  14358. /*!****************************************************************************!*\
  14359. !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***!
  14360. \****************************************************************************/
  14361. /***/ ((__unused_webpack_module, exports) => {
  14362. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14363. exports.ControlFlowFlatteningThresholdRule = void 0;
  14364. const ControlFlowFlatteningThresholdRule = (options) => {
  14365. if (options.controlFlowFlatteningThreshold === 0) {
  14366. options = {
  14367. ...options,
  14368. controlFlowFlattening: false,
  14369. controlFlowFlatteningThreshold: 0
  14370. };
  14371. }
  14372. return options;
  14373. };
  14374. exports.ControlFlowFlatteningThresholdRule = ControlFlowFlatteningThresholdRule;
  14375. /***/ }),
  14376. /***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts":
  14377. /*!***************************************************************!*\
  14378. !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***!
  14379. \***************************************************************/
  14380. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14381. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14382. exports.DeadCodeInjectionRule = void 0;
  14383. const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
  14384. const DeadCodeInjectionRule = (options) => {
  14385. if (options.deadCodeInjection) {
  14386. options = {
  14387. ...options,
  14388. deadCodeInjection: true,
  14389. stringArray: true
  14390. };
  14391. if (!options.stringArrayThreshold) {
  14392. options = {
  14393. ...options,
  14394. stringArray: true,
  14395. stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold
  14396. };
  14397. }
  14398. }
  14399. return options;
  14400. };
  14401. exports.DeadCodeInjectionRule = DeadCodeInjectionRule;
  14402. /***/ }),
  14403. /***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts":
  14404. /*!************************************************************************!*\
  14405. !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***!
  14406. \************************************************************************/
  14407. /***/ ((__unused_webpack_module, exports) => {
  14408. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14409. exports.DeadCodeInjectionThresholdRule = void 0;
  14410. const DeadCodeInjectionThresholdRule = (options) => {
  14411. if (options.deadCodeInjectionThreshold === 0) {
  14412. options = {
  14413. ...options,
  14414. deadCodeInjection: false,
  14415. deadCodeInjectionThreshold: 0
  14416. };
  14417. }
  14418. return options;
  14419. };
  14420. exports.DeadCodeInjectionThresholdRule = DeadCodeInjectionThresholdRule;
  14421. /***/ }),
  14422. /***/ "./src/options/normalizer-rules/DomainLockRule.ts":
  14423. /*!********************************************************!*\
  14424. !*** ./src/options/normalizer-rules/DomainLockRule.ts ***!
  14425. \********************************************************/
  14426. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14427. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14428. exports.DomainLockRule = void 0;
  14429. const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  14430. const DomainLockRule = (options) => {
  14431. if (options.domainLock.length) {
  14432. const normalizedDomains = [];
  14433. for (const domain of options.domainLock) {
  14434. normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));
  14435. }
  14436. options = {
  14437. ...options,
  14438. domainLock: normalizedDomains
  14439. };
  14440. }
  14441. return options;
  14442. };
  14443. exports.DomainLockRule = DomainLockRule;
  14444. /***/ }),
  14445. /***/ "./src/options/normalizer-rules/IdentifierNamesCacheRule.ts":
  14446. /*!******************************************************************!*\
  14447. !*** ./src/options/normalizer-rules/IdentifierNamesCacheRule.ts ***!
  14448. \******************************************************************/
  14449. /***/ ((__unused_webpack_module, exports) => {
  14450. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14451. exports.IdentifierNamesCacheRule = void 0;
  14452. const IdentifierNamesCacheRule = (options) => {
  14453. let identifierNamesCache = options.identifierNamesCache;
  14454. if (identifierNamesCache && !identifierNamesCache.globalIdentifiers) {
  14455. identifierNamesCache = {
  14456. ...identifierNamesCache,
  14457. globalIdentifiers: {}
  14458. };
  14459. }
  14460. if (identifierNamesCache && !identifierNamesCache.propertyIdentifiers) {
  14461. identifierNamesCache = {
  14462. ...identifierNamesCache,
  14463. propertyIdentifiers: {}
  14464. };
  14465. }
  14466. options = {
  14467. ...options,
  14468. identifierNamesCache
  14469. };
  14470. return options;
  14471. };
  14472. exports.IdentifierNamesCacheRule = IdentifierNamesCacheRule;
  14473. /***/ }),
  14474. /***/ "./src/options/normalizer-rules/InputFileNameRule.ts":
  14475. /*!***********************************************************!*\
  14476. !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***!
  14477. \***********************************************************/
  14478. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14479. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14480. exports.InputFileNameRule = void 0;
  14481. const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
  14482. const InputFileNameRule = (options) => {
  14483. let { inputFileName } = options;
  14484. if (inputFileName) {
  14485. inputFileName = inputFileName
  14486. .replace(/^\/+/, '')
  14487. .split(StringSeparator_1.StringSeparator.Dot)
  14488. .slice(0, -1)
  14489. .join(StringSeparator_1.StringSeparator.Dot) || inputFileName;
  14490. options = {
  14491. ...options,
  14492. inputFileName: `${inputFileName}.js`
  14493. };
  14494. }
  14495. return options;
  14496. };
  14497. exports.InputFileNameRule = InputFileNameRule;
  14498. /***/ }),
  14499. /***/ "./src/options/normalizer-rules/SeedRule.ts":
  14500. /*!**************************************************!*\
  14501. !*** ./src/options/normalizer-rules/SeedRule.ts ***!
  14502. \**************************************************/
  14503. /***/ ((__unused_webpack_module, exports) => {
  14504. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14505. exports.SeedRule = void 0;
  14506. const SeedRule = (options) => {
  14507. if (options.seed) {
  14508. return {
  14509. ...options,
  14510. seed: options.seed
  14511. };
  14512. }
  14513. const getRandomInteger = (min, max) => {
  14514. return Math.floor(Math.random() * (max - min + 1) + min);
  14515. };
  14516. return {
  14517. ...options,
  14518. seed: getRandomInteger(0, 999999999)
  14519. };
  14520. };
  14521. exports.SeedRule = SeedRule;
  14522. /***/ }),
  14523. /***/ "./src/options/normalizer-rules/SelfDefendingRule.ts":
  14524. /*!***********************************************************!*\
  14525. !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***!
  14526. \***********************************************************/
  14527. /***/ ((__unused_webpack_module, exports) => {
  14528. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14529. exports.SelfDefendingRule = void 0;
  14530. const SelfDefendingRule = (options) => {
  14531. if (options.selfDefending) {
  14532. options = {
  14533. ...options,
  14534. compact: true,
  14535. selfDefending: true
  14536. };
  14537. }
  14538. return options;
  14539. };
  14540. exports.SelfDefendingRule = SelfDefendingRule;
  14541. /***/ }),
  14542. /***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts":
  14543. /*!**************************************************************!*\
  14544. !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***!
  14545. \**************************************************************/
  14546. /***/ ((__unused_webpack_module, exports) => {
  14547. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14548. exports.SourceMapBaseUrlRule = void 0;
  14549. const SourceMapBaseUrlRule = (options) => {
  14550. const { sourceMapBaseUrl } = options;
  14551. if (!options.sourceMapFileName) {
  14552. options = {
  14553. ...options,
  14554. sourceMapBaseUrl: ''
  14555. };
  14556. return options;
  14557. }
  14558. if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
  14559. options = {
  14560. ...options,
  14561. sourceMapBaseUrl: `${sourceMapBaseUrl}/`
  14562. };
  14563. }
  14564. return options;
  14565. };
  14566. exports.SourceMapBaseUrlRule = SourceMapBaseUrlRule;
  14567. /***/ }),
  14568. /***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts":
  14569. /*!***************************************************************!*\
  14570. !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***!
  14571. \***************************************************************/
  14572. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14573. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14574. exports.SourceMapFileNameRule = void 0;
  14575. const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
  14576. const SourceMapFileNameRule = (options) => {
  14577. let { sourceMapFileName } = options;
  14578. if (sourceMapFileName) {
  14579. sourceMapFileName = sourceMapFileName
  14580. .replace(/^\/+/, '')
  14581. .replace(/(?:\.js)?(?:\.map)?$/, '');
  14582. let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot);
  14583. const sourceMapFileNamePartsCount = sourceMapFileNameParts.length;
  14584. const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1];
  14585. if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) {
  14586. sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1);
  14587. }
  14588. sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot);
  14589. options = {
  14590. ...options,
  14591. sourceMapFileName: `${sourceMapFileName}.js.map`
  14592. };
  14593. }
  14594. return options;
  14595. };
  14596. exports.SourceMapFileNameRule = SourceMapFileNameRule;
  14597. /***/ }),
  14598. /***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts":
  14599. /*!*********************************************************************!*\
  14600. !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***!
  14601. \*********************************************************************/
  14602. /***/ ((__unused_webpack_module, exports) => {
  14603. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14604. exports.SplitStringsChunkLengthRule = void 0;
  14605. const SplitStringsChunkLengthRule = (options) => {
  14606. if (options.splitStringsChunkLength === 0) {
  14607. options = {
  14608. ...options,
  14609. splitStrings: false,
  14610. splitStringsChunkLength: 0
  14611. };
  14612. }
  14613. else {
  14614. options = {
  14615. ...options,
  14616. splitStringsChunkLength: Math.floor(options.splitStringsChunkLength)
  14617. };
  14618. }
  14619. return options;
  14620. };
  14621. exports.SplitStringsChunkLengthRule = SplitStringsChunkLengthRule;
  14622. /***/ }),
  14623. /***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts":
  14624. /*!*****************************************************************!*\
  14625. !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***!
  14626. \*****************************************************************/
  14627. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14628. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14629. exports.StringArrayEncodingRule = void 0;
  14630. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  14631. const StringArrayEncodingRule = (options) => {
  14632. if (!options.stringArrayEncoding.length) {
  14633. options = {
  14634. ...options,
  14635. stringArrayEncoding: [
  14636. StringArrayEncoding_1.StringArrayEncoding.None
  14637. ]
  14638. };
  14639. }
  14640. return options;
  14641. };
  14642. exports.StringArrayEncodingRule = StringArrayEncodingRule;
  14643. /***/ }),
  14644. /***/ "./src/options/normalizer-rules/StringArrayRule.ts":
  14645. /*!*********************************************************!*\
  14646. !*** ./src/options/normalizer-rules/StringArrayRule.ts ***!
  14647. \*********************************************************/
  14648. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14649. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14650. exports.StringArrayRule = void 0;
  14651. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  14652. const StringArrayRule = (options) => {
  14653. if (!options.stringArray) {
  14654. options = {
  14655. ...options,
  14656. rotateStringArray: false,
  14657. shuffleStringArray: false,
  14658. stringArray: false,
  14659. stringArrayEncoding: [
  14660. StringArrayEncoding_1.StringArrayEncoding.None
  14661. ],
  14662. stringArrayIndexShift: false,
  14663. stringArrayWrappersChainedCalls: false,
  14664. stringArrayWrappersCount: 0,
  14665. stringArrayThreshold: 0
  14666. };
  14667. }
  14668. return options;
  14669. };
  14670. exports.StringArrayRule = StringArrayRule;
  14671. /***/ }),
  14672. /***/ "./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts":
  14673. /*!************************************************************************!*\
  14674. !*** ./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts ***!
  14675. \************************************************************************/
  14676. /***/ ((__unused_webpack_module, exports) => {
  14677. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14678. exports.StringArrayWrappersChainedCallsRule = void 0;
  14679. const StringArrayWrappersChainedCallsRule = (options) => {
  14680. if (options.stringArrayWrappersCount === 0) {
  14681. options = {
  14682. ...options,
  14683. stringArrayWrappersChainedCalls: false,
  14684. stringArrayWrappersCount: 0
  14685. };
  14686. }
  14687. return options;
  14688. };
  14689. exports.StringArrayWrappersChainedCallsRule = StringArrayWrappersChainedCallsRule;
  14690. /***/ }),
  14691. /***/ "./src/options/presets/Default.ts":
  14692. /*!****************************************!*\
  14693. !*** ./src/options/presets/Default.ts ***!
  14694. \****************************************/
  14695. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14696. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14697. exports.DEFAULT_PRESET = void 0;
  14698. const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  14699. const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  14700. const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts");
  14701. const RenamePropertiesMode_1 = __webpack_require__(/*! ../../enums/node-transformers/rename-properties-transformers/RenamePropertiesMode */ "./src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode.ts");
  14702. const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  14703. const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts");
  14704. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  14705. const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts");
  14706. exports.DEFAULT_PRESET = Object.freeze({
  14707. compact: true,
  14708. config: '',
  14709. controlFlowFlattening: false,
  14710. controlFlowFlatteningThreshold: 0.75,
  14711. deadCodeInjection: false,
  14712. deadCodeInjectionThreshold: 0.4,
  14713. debugProtection: false,
  14714. debugProtectionInterval: false,
  14715. disableConsoleOutput: false,
  14716. domainLock: [],
  14717. exclude: [],
  14718. forceTransformStrings: [],
  14719. identifierNamesCache: null,
  14720. identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  14721. identifiersPrefix: '',
  14722. identifiersDictionary: [],
  14723. ignoreRequireImports: false,
  14724. inputFileName: '',
  14725. log: false,
  14726. numbersToExpressions: false,
  14727. optionsPreset: OptionsPreset_1.OptionsPreset.Default,
  14728. renameGlobals: false,
  14729. renameProperties: false,
  14730. renamePropertiesMode: RenamePropertiesMode_1.RenamePropertiesMode.Safe,
  14731. reservedNames: [],
  14732. reservedStrings: [],
  14733. rotateStringArray: true,
  14734. seed: 0,
  14735. selfDefending: false,
  14736. shuffleStringArray: true,
  14737. simplify: true,
  14738. sourceMap: false,
  14739. sourceMapBaseUrl: '',
  14740. sourceMapFileName: '',
  14741. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  14742. splitStrings: false,
  14743. splitStringsChunkLength: 10,
  14744. stringArray: true,
  14745. stringArrayEncoding: [
  14746. StringArrayEncoding_1.StringArrayEncoding.None
  14747. ],
  14748. stringArrayIndexesType: [
  14749. StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber
  14750. ],
  14751. stringArrayIndexShift: true,
  14752. stringArrayWrappersChainedCalls: true,
  14753. stringArrayWrappersCount: 1,
  14754. stringArrayWrappersParametersMaxCount: 2,
  14755. stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,
  14756. stringArrayThreshold: 0.75,
  14757. target: ObfuscationTarget_1.ObfuscationTarget.Browser,
  14758. transformObjectKeys: false,
  14759. unicodeEscapeSequence: false
  14760. });
  14761. /***/ }),
  14762. /***/ "./src/options/presets/HighObfuscation.ts":
  14763. /*!************************************************!*\
  14764. !*** ./src/options/presets/HighObfuscation.ts ***!
  14765. \************************************************/
  14766. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14767. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14768. exports.HIGH_OBFUSCATION_PRESET = void 0;
  14769. const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts");
  14770. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  14771. const MediumObfuscation_1 = __webpack_require__(/*! ./MediumObfuscation */ "./src/options/presets/MediumObfuscation.ts");
  14772. exports.HIGH_OBFUSCATION_PRESET = Object.freeze({
  14773. ...MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET,
  14774. controlFlowFlatteningThreshold: 1,
  14775. deadCodeInjectionThreshold: 1,
  14776. debugProtection: true,
  14777. debugProtectionInterval: true,
  14778. optionsPreset: OptionsPreset_1.OptionsPreset.HighObfuscation,
  14779. splitStringsChunkLength: 5,
  14780. stringArrayEncoding: [
  14781. StringArrayEncoding_1.StringArrayEncoding.Rc4
  14782. ],
  14783. stringArrayWrappersCount: 5,
  14784. stringArrayWrappersParametersMaxCount: 5,
  14785. stringArrayThreshold: 1
  14786. });
  14787. /***/ }),
  14788. /***/ "./src/options/presets/LowObfuscation.ts":
  14789. /*!***********************************************!*\
  14790. !*** ./src/options/presets/LowObfuscation.ts ***!
  14791. \***********************************************/
  14792. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14793. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14794. exports.LOW_OBFUSCATION_PRESET = void 0;
  14795. const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts");
  14796. const Default_1 = __webpack_require__(/*! ./Default */ "./src/options/presets/Default.ts");
  14797. exports.LOW_OBFUSCATION_PRESET = Object.freeze({
  14798. ...Default_1.DEFAULT_PRESET,
  14799. disableConsoleOutput: true,
  14800. optionsPreset: OptionsPreset_1.OptionsPreset.LowObfuscation,
  14801. rotateStringArray: true,
  14802. selfDefending: true,
  14803. shuffleStringArray: true,
  14804. simplify: true
  14805. });
  14806. /***/ }),
  14807. /***/ "./src/options/presets/MediumObfuscation.ts":
  14808. /*!**************************************************!*\
  14809. !*** ./src/options/presets/MediumObfuscation.ts ***!
  14810. \**************************************************/
  14811. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14812. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14813. exports.MEDIUM_OBFUSCATION_PRESET = void 0;
  14814. const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts");
  14815. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  14816. const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts");
  14817. const LowObfuscation_1 = __webpack_require__(/*! ./LowObfuscation */ "./src/options/presets/LowObfuscation.ts");
  14818. exports.MEDIUM_OBFUSCATION_PRESET = Object.freeze({
  14819. ...LowObfuscation_1.LOW_OBFUSCATION_PRESET,
  14820. controlFlowFlattening: true,
  14821. deadCodeInjection: true,
  14822. numbersToExpressions: true,
  14823. optionsPreset: OptionsPreset_1.OptionsPreset.MediumObfuscation,
  14824. splitStrings: true,
  14825. splitStringsChunkLength: 10,
  14826. stringArrayEncoding: [
  14827. StringArrayEncoding_1.StringArrayEncoding.Base64
  14828. ],
  14829. stringArrayWrappersCount: 2,
  14830. stringArrayWrappersParametersMaxCount: 4,
  14831. stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Function,
  14832. transformObjectKeys: true
  14833. });
  14834. /***/ }),
  14835. /***/ "./src/options/presets/NoCustomNodes.ts":
  14836. /*!**********************************************!*\
  14837. !*** ./src/options/presets/NoCustomNodes.ts ***!
  14838. \**********************************************/
  14839. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  14840. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14841. exports.NO_ADDITIONAL_NODES_PRESET = void 0;
  14842. const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  14843. const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  14844. const RenamePropertiesMode_1 = __webpack_require__(/*! ../../enums/node-transformers/rename-properties-transformers/RenamePropertiesMode */ "./src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode.ts");
  14845. const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  14846. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  14847. const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts");
  14848. const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts");
  14849. exports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({
  14850. compact: true,
  14851. controlFlowFlattening: false,
  14852. controlFlowFlatteningThreshold: 0,
  14853. deadCodeInjection: false,
  14854. deadCodeInjectionThreshold: 0,
  14855. debugProtection: false,
  14856. debugProtectionInterval: false,
  14857. disableConsoleOutput: false,
  14858. domainLock: [],
  14859. exclude: [],
  14860. forceTransformStrings: [],
  14861. identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  14862. identifiersPrefix: '',
  14863. identifiersDictionary: [],
  14864. ignoreRequireImports: false,
  14865. inputFileName: '',
  14866. log: false,
  14867. numbersToExpressions: false,
  14868. renameGlobals: false,
  14869. renameProperties: false,
  14870. renamePropertiesMode: RenamePropertiesMode_1.RenamePropertiesMode.Safe,
  14871. reservedNames: [],
  14872. reservedStrings: [],
  14873. rotateStringArray: false,
  14874. seed: 0,
  14875. selfDefending: false,
  14876. shuffleStringArray: false,
  14877. simplify: false,
  14878. sourceMap: false,
  14879. sourceMapBaseUrl: '',
  14880. sourceMapFileName: '',
  14881. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  14882. splitStrings: false,
  14883. splitStringsChunkLength: 0,
  14884. stringArray: false,
  14885. stringArrayEncoding: [
  14886. StringArrayEncoding_1.StringArrayEncoding.None
  14887. ],
  14888. stringArrayIndexesType: [
  14889. StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber
  14890. ],
  14891. stringArrayIndexShift: false,
  14892. stringArrayWrappersChainedCalls: false,
  14893. stringArrayWrappersCount: 0,
  14894. stringArrayWrappersParametersMaxCount: 2,
  14895. stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,
  14896. stringArrayThreshold: 0,
  14897. target: ObfuscationTarget_1.ObfuscationTarget.Browser,
  14898. transformObjectKeys: false,
  14899. unicodeEscapeSequence: false
  14900. });
  14901. /***/ }),
  14902. /***/ "./src/options/validators/IsAllowedForObfuscationTargets.ts":
  14903. /*!******************************************************************!*\
  14904. !*** ./src/options/validators/IsAllowedForObfuscationTargets.ts ***!
  14905. \******************************************************************/
  14906. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  14907. var __importDefault = (this && this.__importDefault) || function (mod) {
  14908. return (mod && mod.__esModule) ? mod : { "default": mod };
  14909. };
  14910. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14911. exports.IsAllowedForObfuscationTargets = void 0;
  14912. const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
  14913. const fast_deep_equal_1 = __importDefault(__webpack_require__(/*! fast-deep-equal */ "fast-deep-equal"));
  14914. const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts");
  14915. const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
  14916. function IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) {
  14917. return (optionsObject, propertyName) => {
  14918. class_validator_1.registerDecorator({
  14919. propertyName,
  14920. constraints: [obfuscationTargets],
  14921. name: 'IsAllowedForObfuscationTargets',
  14922. options: validationOptions,
  14923. target: optionsObject.constructor,
  14924. validator: {
  14925. validate(value, validationArguments) {
  14926. const options = validationArguments.object;
  14927. const defaultValue = Default_1.DEFAULT_PRESET[propertyName];
  14928. const isDefaultValue = fast_deep_equal_1.default(value, defaultValue);
  14929. return isDefaultValue || obfuscationTargets.includes(options.target);
  14930. },
  14931. defaultMessage(validationArguments) {
  14932. const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `);
  14933. return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`;
  14934. }
  14935. }
  14936. });
  14937. };
  14938. }
  14939. exports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets;
  14940. /***/ }),
  14941. /***/ "./src/options/validators/IsIdentifierNamesCache.ts":
  14942. /*!**********************************************************!*\
  14943. !*** ./src/options/validators/IsIdentifierNamesCache.ts ***!
  14944. \**********************************************************/
  14945. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  14946. var __importDefault = (this && this.__importDefault) || function (mod) {
  14947. return (mod && mod.__esModule) ? mod : { "default": mod };
  14948. };
  14949. Object.defineProperty(exports, "__esModule", ({ value: true }));
  14950. exports.IsIdentifierNamesCache = void 0;
  14951. const fast_deep_equal_1 = __importDefault(__webpack_require__(/*! fast-deep-equal */ "fast-deep-equal"));
  14952. const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
  14953. const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
  14954. const validateDictionary = (value) => {
  14955. if (value === undefined) {
  14956. return true;
  14957. }
  14958. if (typeof value !== 'object' || value === null) {
  14959. return false;
  14960. }
  14961. const objectValues = Object.values(value);
  14962. if (!objectValues.length) {
  14963. return true;
  14964. }
  14965. for (const objectValue of objectValues) {
  14966. if (typeof objectValue !== 'string') {
  14967. return false;
  14968. }
  14969. }
  14970. return true;
  14971. };
  14972. function IsIdentifierNamesCache(validationOptions) {
  14973. return (optionsObject, propertyName) => {
  14974. class_validator_1.registerDecorator({
  14975. propertyName,
  14976. constraints: [],
  14977. name: 'IsIdentifierNamesCache',
  14978. options: validationOptions,
  14979. target: optionsObject.constructor,
  14980. validator: {
  14981. validate(value, validationArguments) {
  14982. var _a, _b;
  14983. const defaultValue = Default_1.DEFAULT_PRESET[propertyName];
  14984. const isDefaultValue = fast_deep_equal_1.default(value, defaultValue);
  14985. if (isDefaultValue || value === null) {
  14986. return true;
  14987. }
  14988. if (typeof value !== 'object') {
  14989. return false;
  14990. }
  14991. if (!validateDictionary((_a = value) === null || _a === void 0 ? void 0 : _a.globalIdentifiers)) {
  14992. return false;
  14993. }
  14994. return validateDictionary((_b = value) === null || _b === void 0 ? void 0 : _b.propertyIdentifiers);
  14995. },
  14996. defaultMessage() {
  14997. return 'Passed value must be an identifier names cache object or `null` value';
  14998. }
  14999. }
  15000. });
  15001. };
  15002. }
  15003. exports.IsIdentifierNamesCache = IsIdentifierNamesCache;
  15004. /***/ }),
  15005. /***/ "./src/source-code/ObfuscationResult.ts":
  15006. /*!**********************************************!*\
  15007. !*** ./src/source-code/ObfuscationResult.ts ***!
  15008. \**********************************************/
  15009. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15010. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15011. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15012. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15013. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15014. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15015. };
  15016. var __metadata = (this && this.__metadata) || function (k, v) {
  15017. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15018. };
  15019. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15020. return function (target, key) { decorator(target, key, paramIndex); }
  15021. };
  15022. var _a, _b, _c, _d;
  15023. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15024. exports.ObfuscationResult = void 0;
  15025. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15026. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15027. const ICryptUtils_1 = __webpack_require__(/*! ../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts");
  15028. const IGlobalIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage */ "./src/interfaces/storages/identifier-names-cache/IGlobalIdentifierNamesCacheStorage.ts");
  15029. const IPropertyIdentifierNamesCacheStorage_1 = __webpack_require__(/*! ../interfaces/storages/identifier-names-cache/IPropertyIdentifierNamesCacheStorage */ "./src/interfaces/storages/identifier-names-cache/IPropertyIdentifierNamesCacheStorage.ts");
  15030. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15031. const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  15032. const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  15033. let ObfuscationResult = class ObfuscationResult {
  15034. constructor(cryptUtils, globalIdentifierNamesCacheStorage, propertyIdentifierNamesCacheStorage, options) {
  15035. this.cryptUtils = cryptUtils;
  15036. this.globalIdentifierNamesCacheStorage = globalIdentifierNamesCacheStorage;
  15037. this.propertyIdentifierNamesCacheStorage = propertyIdentifierNamesCacheStorage;
  15038. this.options = options;
  15039. }
  15040. initialize(obfuscatedCode, sourceMap) {
  15041. this.obfuscatedCode = obfuscatedCode;
  15042. this.sourceMap = sourceMap;
  15043. }
  15044. getIdentifierNamesCache() {
  15045. if (!this.options.identifierNamesCache) {
  15046. return null;
  15047. }
  15048. return {
  15049. globalIdentifiers: this.globalIdentifierNamesCacheStorage.getStorageAsDictionary(),
  15050. propertyIdentifiers: this.propertyIdentifierNamesCacheStorage.getStorageAsDictionary()
  15051. };
  15052. }
  15053. getObfuscatedCode() {
  15054. return this.correctObfuscatedCode();
  15055. }
  15056. getSourceMap() {
  15057. return this.sourceMap;
  15058. }
  15059. toString() {
  15060. return this.obfuscatedCode;
  15061. }
  15062. correctObfuscatedCode() {
  15063. if (!this.sourceMap) {
  15064. return this.obfuscatedCode;
  15065. }
  15066. const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
  15067. let sourceMappingUrl = '//# sourceMappingURL=';
  15068. switch (this.options.sourceMapMode) {
  15069. case SourceMapMode_1.SourceMapMode.Inline:
  15070. sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;
  15071. break;
  15072. case SourceMapMode_1.SourceMapMode.Separate:
  15073. default:
  15074. if (!sourceMapUrl) {
  15075. return this.obfuscatedCode;
  15076. }
  15077. sourceMappingUrl += sourceMapUrl;
  15078. }
  15079. return `${this.obfuscatedCode}\n${sourceMappingUrl}`;
  15080. }
  15081. };
  15082. __decorate([
  15083. Initializable_1.initializable(),
  15084. __metadata("design:type", String)
  15085. ], ObfuscationResult.prototype, "obfuscatedCode", void 0);
  15086. __decorate([
  15087. Initializable_1.initializable(),
  15088. __metadata("design:type", String)
  15089. ], ObfuscationResult.prototype, "sourceMap", void 0);
  15090. ObfuscationResult = __decorate([
  15091. inversify_1.injectable(),
  15092. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),
  15093. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)),
  15094. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPropertyIdentifierNamesCacheStorage)),
  15095. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15096. __metadata("design:paramtypes", [typeof (_a = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _a : Object, typeof (_b = typeof IGlobalIdentifierNamesCacheStorage_1.IGlobalIdentifierNamesCacheStorage !== "undefined" && IGlobalIdentifierNamesCacheStorage_1.IGlobalIdentifierNamesCacheStorage) === "function" ? _b : Object, typeof (_c = typeof IPropertyIdentifierNamesCacheStorage_1.IPropertyIdentifierNamesCacheStorage !== "undefined" && IPropertyIdentifierNamesCacheStorage_1.IPropertyIdentifierNamesCacheStorage) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object])
  15097. ], ObfuscationResult);
  15098. exports.ObfuscationResult = ObfuscationResult;
  15099. /***/ }),
  15100. /***/ "./src/source-code/SourceCode.ts":
  15101. /*!***************************************!*\
  15102. !*** ./src/source-code/SourceCode.ts ***!
  15103. \***************************************/
  15104. /***/ ((__unused_webpack_module, exports) => {
  15105. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15106. exports.SourceCode = void 0;
  15107. class SourceCode {
  15108. constructor(sourceCode, sourceMap) {
  15109. this.sourceCode = sourceCode;
  15110. this.sourceMap = sourceMap;
  15111. }
  15112. getSourceCode() {
  15113. return this.sourceCode;
  15114. }
  15115. getSourceMap() {
  15116. return this.sourceMap;
  15117. }
  15118. toString() {
  15119. return this.sourceCode;
  15120. }
  15121. }
  15122. exports.SourceCode = SourceCode;
  15123. /***/ }),
  15124. /***/ "./src/storages/ArrayStorage.ts":
  15125. /*!**************************************!*\
  15126. !*** ./src/storages/ArrayStorage.ts ***!
  15127. \**************************************/
  15128. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15129. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15130. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15131. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15132. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15133. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15134. };
  15135. var __metadata = (this && this.__metadata) || function (k, v) {
  15136. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15137. };
  15138. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15139. return function (target, key) { decorator(target, key, paramIndex); }
  15140. };
  15141. var _a, _b;
  15142. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15143. exports.ArrayStorage = void 0;
  15144. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15145. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15146. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15147. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15148. const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  15149. let ArrayStorage = class ArrayStorage {
  15150. constructor(randomGenerator, options) {
  15151. this.storageLength = 0;
  15152. this.randomGenerator = randomGenerator;
  15153. this.options = options;
  15154. }
  15155. initialize() {
  15156. this.storage = [];
  15157. this.storageId = this.randomGenerator.getRandomString(6);
  15158. }
  15159. delete(key) {
  15160. var _a;
  15161. const deletedElement = (_a = this.storage.splice(key, 1)[0]) !== null && _a !== void 0 ? _a : undefined;
  15162. if (deletedElement) {
  15163. this.storageLength--;
  15164. }
  15165. return deletedElement;
  15166. }
  15167. get(key) {
  15168. return this.storage[key];
  15169. }
  15170. getOrThrow(key) {
  15171. const value = this.get(key);
  15172. if (!value) {
  15173. throw new Error(`No value found in array storage with key \`${key}\``);
  15174. }
  15175. return value;
  15176. }
  15177. getKeyOf(value) {
  15178. const key = this.storage.indexOf(value);
  15179. return key >= 0 ? key : null;
  15180. }
  15181. getLength() {
  15182. return this.storageLength;
  15183. }
  15184. getStorage() {
  15185. return this.storage;
  15186. }
  15187. getStorageId() {
  15188. return this.storageId;
  15189. }
  15190. mergeWith(storage, mergeId = false) {
  15191. this.storage = [...this.storage, ...storage.getStorage()];
  15192. if (mergeId) {
  15193. this.storageId = storage.getStorageId();
  15194. }
  15195. }
  15196. set(key, value) {
  15197. if (key === this.storageLength) {
  15198. this.storage.push(value);
  15199. }
  15200. else {
  15201. this.storage.splice(key, 0, value);
  15202. }
  15203. this.storageLength++;
  15204. }
  15205. };
  15206. __decorate([
  15207. Initializable_1.initializable(),
  15208. __metadata("design:type", Array)
  15209. ], ArrayStorage.prototype, "storage", void 0);
  15210. __decorate([
  15211. Initializable_1.initializable(),
  15212. __metadata("design:type", String)
  15213. ], ArrayStorage.prototype, "storageId", void 0);
  15214. __decorate([
  15215. inversify_1.postConstruct(),
  15216. __metadata("design:type", Function),
  15217. __metadata("design:paramtypes", []),
  15218. __metadata("design:returntype", void 0)
  15219. ], ArrayStorage.prototype, "initialize", null);
  15220. ArrayStorage = __decorate([
  15221. inversify_1.injectable(),
  15222. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15223. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15224. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15225. ], ArrayStorage);
  15226. exports.ArrayStorage = ArrayStorage;
  15227. /***/ }),
  15228. /***/ "./src/storages/MapStorage.ts":
  15229. /*!************************************!*\
  15230. !*** ./src/storages/MapStorage.ts ***!
  15231. \************************************/
  15232. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15233. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15234. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15235. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15236. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15237. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15238. };
  15239. var __metadata = (this && this.__metadata) || function (k, v) {
  15240. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15241. };
  15242. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15243. return function (target, key) { decorator(target, key, paramIndex); }
  15244. };
  15245. var _a, _b, _c;
  15246. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15247. exports.MapStorage = void 0;
  15248. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15249. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15250. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15251. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15252. const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  15253. let MapStorage = class MapStorage {
  15254. constructor(randomGenerator, options) {
  15255. this.randomGenerator = randomGenerator;
  15256. this.options = options;
  15257. }
  15258. initialize() {
  15259. this.storage = new Map();
  15260. this.storageId = this.randomGenerator.getRandomString(6);
  15261. }
  15262. get(key) {
  15263. return this.storage.get(key);
  15264. }
  15265. getOrThrow(key) {
  15266. const value = this.get(key);
  15267. if (!value) {
  15268. throw new Error(`No value found in map storage with key \`${key}\``);
  15269. }
  15270. return value;
  15271. }
  15272. getKeyOf(value) {
  15273. for (const [key, storageValue] of this.storage) {
  15274. if (value === storageValue) {
  15275. return key;
  15276. }
  15277. }
  15278. return null;
  15279. }
  15280. getLength() {
  15281. return this.storage.size;
  15282. }
  15283. getStorage() {
  15284. return this.storage;
  15285. }
  15286. getStorageAsDictionary() {
  15287. return Object.fromEntries(this.storage);
  15288. }
  15289. getStorageId() {
  15290. return this.storageId;
  15291. }
  15292. has(key) {
  15293. return this.storage.has(key);
  15294. }
  15295. mergeWith(storage, mergeId = false) {
  15296. this.storage = new Map([...this.storage, ...storage.getStorage()]);
  15297. if (mergeId) {
  15298. this.storageId = storage.getStorageId();
  15299. }
  15300. }
  15301. set(key, value) {
  15302. this.storage.set(key, value);
  15303. }
  15304. };
  15305. __decorate([
  15306. Initializable_1.initializable(),
  15307. __metadata("design:type", String)
  15308. ], MapStorage.prototype, "storageId", void 0);
  15309. __decorate([
  15310. Initializable_1.initializable(),
  15311. __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
  15312. ], MapStorage.prototype, "storage", void 0);
  15313. __decorate([
  15314. inversify_1.postConstruct(),
  15315. __metadata("design:type", Function),
  15316. __metadata("design:paramtypes", []),
  15317. __metadata("design:returntype", void 0)
  15318. ], MapStorage.prototype, "initialize", null);
  15319. MapStorage = __decorate([
  15320. inversify_1.injectable(),
  15321. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15322. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15323. __metadata("design:paramtypes", [typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  15324. ], MapStorage);
  15325. exports.MapStorage = MapStorage;
  15326. /***/ }),
  15327. /***/ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts":
  15328. /*!**************************************************************************!*\
  15329. !*** ./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts ***!
  15330. \**************************************************************************/
  15331. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15332. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15333. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15334. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15335. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15336. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15337. };
  15338. var __metadata = (this && this.__metadata) || function (k, v) {
  15339. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15340. };
  15341. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15342. return function (target, key) { decorator(target, key, paramIndex); }
  15343. };
  15344. var CustomCodeHelperGroupStorage_1, _a, _b, _c;
  15345. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15346. exports.CustomCodeHelperGroupStorage = void 0;
  15347. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15348. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15349. const TCustomCodeHelperGroupFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts");
  15350. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15351. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15352. const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts");
  15353. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15354. let CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage {
  15355. constructor(customCodeHelperGroupFactory, randomGenerator, options) {
  15356. super(randomGenerator, options);
  15357. this.customCodeHelperGroupFactory = customCodeHelperGroupFactory;
  15358. }
  15359. initialize() {
  15360. super.initialize();
  15361. CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => {
  15362. const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName);
  15363. this.storage.set(customCodeHelperGroupName, customCodeHelperGroup);
  15364. });
  15365. }
  15366. };
  15367. CustomCodeHelperGroupStorage.customCodeHelperGroupsList = [
  15368. CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput,
  15369. CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection,
  15370. CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock,
  15371. CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending,
  15372. CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray
  15373. ];
  15374. __decorate([
  15375. inversify_1.postConstruct(),
  15376. __metadata("design:type", Function),
  15377. __metadata("design:paramtypes", []),
  15378. __metadata("design:returntype", void 0)
  15379. ], CustomCodeHelperGroupStorage.prototype, "initialize", null);
  15380. CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([
  15381. inversify_1.injectable(),
  15382. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),
  15383. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15384. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15385. __metadata("design:paramtypes", [typeof (_a = typeof TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory !== "undefined" && TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  15386. ], CustomCodeHelperGroupStorage);
  15387. exports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage;
  15388. /***/ }),
  15389. /***/ "./src/storages/custom-nodes/ControlFlowStorage.ts":
  15390. /*!*********************************************************!*\
  15391. !*** ./src/storages/custom-nodes/ControlFlowStorage.ts ***!
  15392. \*********************************************************/
  15393. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15394. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15395. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15396. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15397. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15398. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15399. };
  15400. var __metadata = (this && this.__metadata) || function (k, v) {
  15401. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15402. };
  15403. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15404. return function (target, key) { decorator(target, key, paramIndex); }
  15405. };
  15406. var _a, _b;
  15407. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15408. exports.ControlFlowStorage = void 0;
  15409. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15410. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15411. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15412. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15413. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15414. let ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage {
  15415. constructor(randomGenerator, options) {
  15416. super(randomGenerator, options);
  15417. }
  15418. };
  15419. ControlFlowStorage = __decorate([
  15420. inversify_1.injectable(),
  15421. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15422. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15423. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15424. ], ControlFlowStorage);
  15425. exports.ControlFlowStorage = ControlFlowStorage;
  15426. /***/ }),
  15427. /***/ "./src/storages/identifier-names-cache/GlobalIdentifierNamesCacheStorage.ts":
  15428. /*!**********************************************************************************!*\
  15429. !*** ./src/storages/identifier-names-cache/GlobalIdentifierNamesCacheStorage.ts ***!
  15430. \**********************************************************************************/
  15431. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15432. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15433. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15434. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15435. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15436. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15437. };
  15438. var __metadata = (this && this.__metadata) || function (k, v) {
  15439. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15440. };
  15441. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15442. return function (target, key) { decorator(target, key, paramIndex); }
  15443. };
  15444. var _a, _b;
  15445. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15446. exports.GlobalIdentifierNamesCacheStorage = void 0;
  15447. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15448. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15449. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15450. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15451. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15452. let GlobalIdentifierNamesCacheStorage = class GlobalIdentifierNamesCacheStorage extends MapStorage_1.MapStorage {
  15453. constructor(randomGenerator, options) {
  15454. super(randomGenerator, options);
  15455. }
  15456. initialize() {
  15457. var _a, _b;
  15458. super.initialize();
  15459. this.storage = new Map(Object.entries((_b = (_a = this.options.identifierNamesCache) === null || _a === void 0 ? void 0 : _a.globalIdentifiers) !== null && _b !== void 0 ? _b : {}));
  15460. }
  15461. };
  15462. __decorate([
  15463. inversify_1.postConstruct(),
  15464. __metadata("design:type", Function),
  15465. __metadata("design:paramtypes", []),
  15466. __metadata("design:returntype", void 0)
  15467. ], GlobalIdentifierNamesCacheStorage.prototype, "initialize", null);
  15468. GlobalIdentifierNamesCacheStorage = __decorate([
  15469. inversify_1.injectable(),
  15470. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15471. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15472. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15473. ], GlobalIdentifierNamesCacheStorage);
  15474. exports.GlobalIdentifierNamesCacheStorage = GlobalIdentifierNamesCacheStorage;
  15475. /***/ }),
  15476. /***/ "./src/storages/identifier-names-cache/PropertyIdentifierNamesCacheStorage.ts":
  15477. /*!************************************************************************************!*\
  15478. !*** ./src/storages/identifier-names-cache/PropertyIdentifierNamesCacheStorage.ts ***!
  15479. \************************************************************************************/
  15480. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15481. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15482. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15483. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15484. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15485. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15486. };
  15487. var __metadata = (this && this.__metadata) || function (k, v) {
  15488. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15489. };
  15490. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15491. return function (target, key) { decorator(target, key, paramIndex); }
  15492. };
  15493. var _a, _b;
  15494. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15495. exports.PropertyIdentifierNamesCacheStorage = void 0;
  15496. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15497. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15498. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15499. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15500. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15501. let PropertyIdentifierNamesCacheStorage = class PropertyIdentifierNamesCacheStorage extends MapStorage_1.MapStorage {
  15502. constructor(randomGenerator, options) {
  15503. super(randomGenerator, options);
  15504. }
  15505. initialize() {
  15506. var _a, _b;
  15507. super.initialize();
  15508. this.storage = new Map(Object.entries((_b = (_a = this.options.identifierNamesCache) === null || _a === void 0 ? void 0 : _a.propertyIdentifiers) !== null && _b !== void 0 ? _b : {}));
  15509. }
  15510. };
  15511. __decorate([
  15512. inversify_1.postConstruct(),
  15513. __metadata("design:type", Function),
  15514. __metadata("design:paramtypes", []),
  15515. __metadata("design:returntype", void 0)
  15516. ], PropertyIdentifierNamesCacheStorage.prototype, "initialize", null);
  15517. PropertyIdentifierNamesCacheStorage = __decorate([
  15518. inversify_1.injectable(),
  15519. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15520. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15521. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15522. ], PropertyIdentifierNamesCacheStorage);
  15523. exports.PropertyIdentifierNamesCacheStorage = PropertyIdentifierNamesCacheStorage;
  15524. /***/ }),
  15525. /***/ "./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts":
  15526. /*!****************************************************************************!*\
  15527. !*** ./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts ***!
  15528. \****************************************************************************/
  15529. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15530. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15531. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15532. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15533. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15534. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15535. };
  15536. var __metadata = (this && this.__metadata) || function (k, v) {
  15537. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15538. };
  15539. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15540. return function (target, key) { decorator(target, key, paramIndex); }
  15541. };
  15542. var _a, _b;
  15543. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15544. exports.LiteralNodesCacheStorage = void 0;
  15545. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15546. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15547. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15548. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15549. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  15550. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15551. let LiteralNodesCacheStorage = class LiteralNodesCacheStorage extends MapStorage_1.MapStorage {
  15552. constructor(randomGenerator, options) {
  15553. super(randomGenerator, options);
  15554. }
  15555. buildKey(literalValue, stringArrayStorageItemData) {
  15556. return `${literalValue}-${Boolean(stringArrayStorageItemData)}`;
  15557. }
  15558. shouldUseCachedValue(key, stringArrayStorageItemData) {
  15559. return !this.options.stringArrayWrappersCount
  15560. && (stringArrayStorageItemData === null || stringArrayStorageItemData === void 0 ? void 0 : stringArrayStorageItemData.encoding) !== StringArrayEncoding_1.StringArrayEncoding.Rc4
  15561. && this.storage.has(key);
  15562. }
  15563. };
  15564. LiteralNodesCacheStorage = __decorate([
  15565. inversify_1.injectable(),
  15566. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15567. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15568. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15569. ], LiteralNodesCacheStorage);
  15570. exports.LiteralNodesCacheStorage = LiteralNodesCacheStorage;
  15571. /***/ }),
  15572. /***/ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts":
  15573. /*!*******************************************************************************************************!*\
  15574. !*** ./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts ***!
  15575. \*******************************************************************************************************/
  15576. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15577. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15578. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15579. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15580. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15581. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15582. };
  15583. var __metadata = (this && this.__metadata) || function (k, v) {
  15584. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15585. };
  15586. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15587. return function (target, key) { decorator(target, key, paramIndex); }
  15588. };
  15589. var _a, _b;
  15590. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15591. exports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = void 0;
  15592. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15593. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15594. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15595. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15596. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15597. let StringArrayScopeCallsWrapperLexicalScopeDataStorage = class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage_1.MapStorage {
  15598. constructor(randomGenerator, options) {
  15599. super(randomGenerator, options);
  15600. }
  15601. };
  15602. StringArrayScopeCallsWrapperLexicalScopeDataStorage = __decorate([
  15603. inversify_1.injectable(),
  15604. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15605. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15606. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15607. ], StringArrayScopeCallsWrapperLexicalScopeDataStorage);
  15608. exports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = StringArrayScopeCallsWrapperLexicalScopeDataStorage;
  15609. /***/ }),
  15610. /***/ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts":
  15611. /*!************************************************************************************************!*\
  15612. !*** ./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts ***!
  15613. \************************************************************************************************/
  15614. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15615. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15616. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15617. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15618. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15619. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15620. };
  15621. var __metadata = (this && this.__metadata) || function (k, v) {
  15622. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15623. };
  15624. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15625. return function (target, key) { decorator(target, key, paramIndex); }
  15626. };
  15627. var _a, _b;
  15628. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15629. exports.StringArrayScopeCallsWrapperNamesDataStorage = void 0;
  15630. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15631. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15632. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15633. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15634. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15635. let StringArrayScopeCallsWrapperNamesDataStorage = class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage_1.MapStorage {
  15636. constructor(randomGenerator, options) {
  15637. super(randomGenerator, options);
  15638. }
  15639. };
  15640. StringArrayScopeCallsWrapperNamesDataStorage = __decorate([
  15641. inversify_1.injectable(),
  15642. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15643. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15644. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object])
  15645. ], StringArrayScopeCallsWrapperNamesDataStorage);
  15646. exports.StringArrayScopeCallsWrapperNamesDataStorage = StringArrayScopeCallsWrapperNamesDataStorage;
  15647. /***/ }),
  15648. /***/ "./src/storages/string-array-transformers/StringArrayStorage.ts":
  15649. /*!**********************************************************************!*\
  15650. !*** ./src/storages/string-array-transformers/StringArrayStorage.ts ***!
  15651. \**********************************************************************/
  15652. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15653. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15654. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15655. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15656. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15657. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15658. };
  15659. var __metadata = (this && this.__metadata) || function (k, v) {
  15660. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15661. };
  15662. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15663. return function (target, key) { decorator(target, key, paramIndex); }
  15664. };
  15665. var StringArrayStorage_1, _a, _b, _c, _d, _e;
  15666. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15667. exports.StringArrayStorage = void 0;
  15668. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15669. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15670. const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts");
  15671. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  15672. const ICryptUtilsStringArray_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtilsStringArray */ "./src/interfaces/utils/ICryptUtilsStringArray.ts");
  15673. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15674. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15675. const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts");
  15676. const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  15677. let StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage {
  15678. constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtilsStringArray) {
  15679. super(randomGenerator, options);
  15680. this.rc4EncodedValuesSourcesCache = new Map();
  15681. this.indexShiftAmount = 0;
  15682. this.rotationAmount = 0;
  15683. this.stringArrayStorageCallsWrapperNamesMap = new Map();
  15684. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  15685. this.arrayUtils = arrayUtils;
  15686. this.cryptUtilsStringArray = cryptUtilsStringArray;
  15687. this.rc4Keys = this.randomGenerator.getRandomGenerator()
  15688. .n(() => this.randomGenerator.getRandomGenerator().string({
  15689. length: StringArrayStorage_1.rc4KeyLength
  15690. }), StringArrayStorage_1.rc4KeysCount);
  15691. }
  15692. initialize() {
  15693. super.initialize();
  15694. this.indexShiftAmount = this.options.stringArrayIndexShift
  15695. ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumIndexShiftAmount, StringArrayStorage_1.maximumIndexShiftAmount)
  15696. : 0;
  15697. this.rotationAmount = this.options.rotateStringArray
  15698. ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount)
  15699. : 0;
  15700. }
  15701. get(value) {
  15702. return this.getOrSetIfDoesNotExist(value);
  15703. }
  15704. getIndexShiftAmount() {
  15705. return this.indexShiftAmount;
  15706. }
  15707. getRotationAmount() {
  15708. return this.rotationAmount;
  15709. }
  15710. getStorageName() {
  15711. return this.getStorageId();
  15712. }
  15713. getStorageId() {
  15714. if (!this.stringArrayStorageName) {
  15715. this.stringArrayStorageName = this.identifierNamesGenerator
  15716. .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);
  15717. }
  15718. return this.stringArrayStorageName;
  15719. }
  15720. getStorageCallsWrapperName(stringArrayEncoding) {
  15721. var _a;
  15722. const storageCallsWrapperName = (_a = this.stringArrayStorageCallsWrapperNamesMap
  15723. .get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : null;
  15724. if (storageCallsWrapperName) {
  15725. return storageCallsWrapperName;
  15726. }
  15727. const newStorageCallsWrapperName = this.identifierNamesGenerator
  15728. .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);
  15729. this.stringArrayStorageCallsWrapperNamesMap.set(stringArrayEncoding, newStorageCallsWrapperName);
  15730. return newStorageCallsWrapperName;
  15731. }
  15732. rotateStorage() {
  15733. if (!this.getLength()) {
  15734. return;
  15735. }
  15736. this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount));
  15737. }
  15738. shuffleStorage() {
  15739. this.storage = new Map(this.arrayUtils
  15740. .shuffle(Array.from(this.storage.entries()))
  15741. .map(([value, stringArrayStorageItemData], index) => {
  15742. stringArrayStorageItemData.index = index;
  15743. return [value, stringArrayStorageItemData];
  15744. })
  15745. .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index));
  15746. }
  15747. getOrSetIfDoesNotExist(value) {
  15748. const { encodedValue, encoding, decodeKey } = this.getEncodedValue(value);
  15749. const cacheKey = `${encodedValue}-${encoding}`;
  15750. const storedStringArrayStorageItemData = this.storage.get(cacheKey);
  15751. if (storedStringArrayStorageItemData) {
  15752. return storedStringArrayStorageItemData;
  15753. }
  15754. const stringArrayStorageItemData = {
  15755. encodedValue,
  15756. encoding,
  15757. decodeKey,
  15758. value,
  15759. index: this.getLength()
  15760. };
  15761. this.storage.set(cacheKey, stringArrayStorageItemData);
  15762. return stringArrayStorageItemData;
  15763. }
  15764. getEncodedValue(value) {
  15765. var _a;
  15766. const encoding = this.options.stringArrayEncoding.length
  15767. ? this.randomGenerator
  15768. .getRandomGenerator()
  15769. .pickone(this.options.stringArrayEncoding)
  15770. : null;
  15771. if (!encoding) {
  15772. throw new Error('`stringArrayEncoding` option array is empty');
  15773. }
  15774. switch (encoding) {
  15775. case StringArrayEncoding_1.StringArrayEncoding.Rc4: {
  15776. const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);
  15777. const encodedValue = this.cryptUtilsStringArray.btoa(this.cryptUtilsStringArray.rc4(value, decodeKey));
  15778. const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : [];
  15779. let encodedValueSourcesLength = encodedValueSources.length;
  15780. const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value);
  15781. if (shouldAddValueToSourcesCache) {
  15782. encodedValueSources.push(value);
  15783. encodedValueSourcesLength++;
  15784. }
  15785. this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources);
  15786. if (encodedValueSourcesLength > 1) {
  15787. return this.getEncodedValue(value);
  15788. }
  15789. return { encodedValue, encoding, decodeKey };
  15790. }
  15791. case StringArrayEncoding_1.StringArrayEncoding.Base64: {
  15792. const decodeKey = null;
  15793. const encodedValue = this.cryptUtilsStringArray.btoa(value);
  15794. return { encodedValue, encoding, decodeKey };
  15795. }
  15796. default: {
  15797. const decodeKey = null;
  15798. const encodedValue = value;
  15799. return { encodedValue, encoding, decodeKey };
  15800. }
  15801. }
  15802. }
  15803. };
  15804. StringArrayStorage.minimumRotationAmount = 100;
  15805. StringArrayStorage.maximumRotationAmount = 500;
  15806. StringArrayStorage.minimumIndexShiftAmount = 100;
  15807. StringArrayStorage.maximumIndexShiftAmount = 500;
  15808. StringArrayStorage.rc4KeyLength = 4;
  15809. StringArrayStorage.rc4KeysCount = 50;
  15810. StringArrayStorage.stringArrayNameLength = 4;
  15811. __decorate([
  15812. inversify_1.postConstruct(),
  15813. __metadata("design:type", Function),
  15814. __metadata("design:paramtypes", []),
  15815. __metadata("design:returntype", void 0)
  15816. ], StringArrayStorage.prototype, "initialize", null);
  15817. StringArrayStorage = StringArrayStorage_1 = __decorate([
  15818. inversify_1.injectable(),
  15819. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),
  15820. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  15821. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15822. __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15823. __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsStringArray)),
  15824. __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object, typeof (_e = typeof ICryptUtilsStringArray_1.ICryptUtilsStringArray !== "undefined" && ICryptUtilsStringArray_1.ICryptUtilsStringArray) === "function" ? _e : Object])
  15825. ], StringArrayStorage);
  15826. exports.StringArrayStorage = StringArrayStorage;
  15827. /***/ }),
  15828. /***/ "./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts":
  15829. /*!****************************************************************************************!*\
  15830. !*** ./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts ***!
  15831. \****************************************************************************************/
  15832. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  15833. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  15834. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  15835. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  15836. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  15837. return c > 3 && r && Object.defineProperty(target, key, r), r;
  15838. };
  15839. var __metadata = (this && this.__metadata) || function (k, v) {
  15840. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  15841. };
  15842. var __param = (this && this.__param) || function (paramIndex, decorator) {
  15843. return function (target, key) { decorator(target, key, paramIndex); }
  15844. };
  15845. var _a, _b, _c;
  15846. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15847. exports.VisitedLexicalScopeNodesStackStorage = void 0;
  15848. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  15849. const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  15850. const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts");
  15851. const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  15852. const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  15853. const ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts");
  15854. let VisitedLexicalScopeNodesStackStorage = class VisitedLexicalScopeNodesStackStorage extends ArrayStorage_1.ArrayStorage {
  15855. constructor(randomGenerator, options, arrayUtils) {
  15856. super(randomGenerator, options);
  15857. this.arrayUtils = arrayUtils;
  15858. }
  15859. getLastElement() {
  15860. return this.arrayUtils.getLastElement(this.getStorage());
  15861. }
  15862. getPenultimateElement() {
  15863. var _a;
  15864. const storageLength = this.getLength();
  15865. return (_a = this.get(storageLength - 2)) !== null && _a !== void 0 ? _a : undefined;
  15866. }
  15867. push(nodeWithLexicalScopeStatements) {
  15868. const storageLength = this.getLength();
  15869. this.set(storageLength, nodeWithLexicalScopeStatements);
  15870. }
  15871. pop() {
  15872. const storageLength = this.getLength();
  15873. return this.delete(storageLength - 1);
  15874. }
  15875. };
  15876. VisitedLexicalScopeNodesStackStorage = __decorate([
  15877. inversify_1.injectable(),
  15878. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  15879. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  15880. __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),
  15881. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _c : Object])
  15882. ], VisitedLexicalScopeNodesStackStorage);
  15883. exports.VisitedLexicalScopeNodesStackStorage = VisitedLexicalScopeNodesStackStorage;
  15884. /***/ }),
  15885. /***/ "./src/types/TIdentifierNamesCache.ts":
  15886. /*!********************************************!*\
  15887. !*** ./src/types/TIdentifierNamesCache.ts ***!
  15888. \********************************************/
  15889. /***/ ((__unused_webpack_module, exports) => {
  15890. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15891. /***/ }),
  15892. /***/ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts":
  15893. /*!*********************************************************************************!*\
  15894. !*** ./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts ***!
  15895. \*********************************************************************************/
  15896. /***/ ((__unused_webpack_module, exports) => {
  15897. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15898. /***/ }),
  15899. /***/ "./src/types/container/code-transformers/TCodeTransformerFactory.ts":
  15900. /*!**************************************************************************!*\
  15901. !*** ./src/types/container/code-transformers/TCodeTransformerFactory.ts ***!
  15902. \**************************************************************************/
  15903. /***/ ((__unused_webpack_module, exports) => {
  15904. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15905. /***/ }),
  15906. /***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts":
  15907. /*!*****************************************************************************!*\
  15908. !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts ***!
  15909. \*****************************************************************************/
  15910. /***/ ((__unused_webpack_module, exports) => {
  15911. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15912. /***/ }),
  15913. /***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts":
  15914. /*!**********************************************************************************!*\
  15915. !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts ***!
  15916. \**********************************************************************************/
  15917. /***/ ((__unused_webpack_module, exports) => {
  15918. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15919. /***/ }),
  15920. /***/ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts":
  15921. /*!***************************************************************************!*\
  15922. !*** ./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts ***!
  15923. \***************************************************************************/
  15924. /***/ ((__unused_webpack_module, exports) => {
  15925. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15926. /***/ }),
  15927. /***/ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts":
  15928. /*!*********************************************************************************!*\
  15929. !*** ./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts ***!
  15930. \*********************************************************************************/
  15931. /***/ ((__unused_webpack_module, exports) => {
  15932. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15933. /***/ }),
  15934. /***/ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts":
  15935. /*!***********************************************************************************************!*\
  15936. !*** ./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts ***!
  15937. \***********************************************************************************************/
  15938. /***/ ((__unused_webpack_module, exports) => {
  15939. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15940. /***/ }),
  15941. /***/ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts":
  15942. /*!***************************************************************************!*\
  15943. !*** ./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts ***!
  15944. \***************************************************************************/
  15945. /***/ ((__unused_webpack_module, exports) => {
  15946. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15947. /***/ }),
  15948. /***/ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts":
  15949. /*!***************************************************************************************************!*\
  15950. !*** ./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts ***!
  15951. \***************************************************************************************************/
  15952. /***/ ((__unused_webpack_module, exports) => {
  15953. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15954. /***/ }),
  15955. /***/ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts":
  15956. /*!****************************************************************************!*\
  15957. !*** ./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts ***!
  15958. \****************************************************************************/
  15959. /***/ ((__unused_webpack_module, exports) => {
  15960. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15961. /***/ }),
  15962. /***/ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts":
  15963. /*!******************************************************************************!*\
  15964. !*** ./src/types/container/node-transformers/TControlFlowReplacerFactory.ts ***!
  15965. \******************************************************************************/
  15966. /***/ ((__unused_webpack_module, exports) => {
  15967. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15968. /***/ }),
  15969. /***/ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts":
  15970. /*!*****************************************************************************!*\
  15971. !*** ./src/types/container/node-transformers/TControlFlowStorageFactory.ts ***!
  15972. \*****************************************************************************/
  15973. /***/ ((__unused_webpack_module, exports) => {
  15974. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15975. /***/ }),
  15976. /***/ "./src/types/container/node-transformers/TNodeTransformerFactory.ts":
  15977. /*!**************************************************************************!*\
  15978. !*** ./src/types/container/node-transformers/TNodeTransformerFactory.ts ***!
  15979. \**************************************************************************/
  15980. /***/ ((__unused_webpack_module, exports) => {
  15981. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15982. /***/ }),
  15983. /***/ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts":
  15984. /*!***************************************************************************!*\
  15985. !*** ./src/types/container/node-transformers/TObfuscatingGuardFactory.ts ***!
  15986. \***************************************************************************/
  15987. /***/ ((__unused_webpack_module, exports) => {
  15988. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15989. /***/ }),
  15990. /***/ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts":
  15991. /*!************************************************************************************!*\
  15992. !*** ./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts ***!
  15993. \************************************************************************************/
  15994. /***/ ((__unused_webpack_module, exports) => {
  15995. Object.defineProperty(exports, "__esModule", ({ value: true }));
  15996. /***/ }),
  15997. /***/ "./src/types/container/source-code/TObfuscationResultFactory.ts":
  15998. /*!**********************************************************************!*\
  15999. !*** ./src/types/container/source-code/TObfuscationResultFactory.ts ***!
  16000. \**********************************************************************/
  16001. /***/ ((__unused_webpack_module, exports) => {
  16002. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16003. /***/ }),
  16004. /***/ "./src/types/options/TInputOptions.ts":
  16005. /*!********************************************!*\
  16006. !*** ./src/types/options/TInputOptions.ts ***!
  16007. \********************************************/
  16008. /***/ ((__unused_webpack_module, exports) => {
  16009. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16010. /***/ }),
  16011. /***/ "./src/types/options/TOptionsPreset.ts":
  16012. /*!*********************************************!*\
  16013. !*** ./src/types/options/TOptionsPreset.ts ***!
  16014. \*********************************************/
  16015. /***/ ((__unused_webpack_module, exports) => {
  16016. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16017. /***/ }),
  16018. /***/ "./src/types/options/TRenamePropertiesMode.ts":
  16019. /*!****************************************************!*\
  16020. !*** ./src/types/options/TRenamePropertiesMode.ts ***!
  16021. \****************************************************/
  16022. /***/ ((__unused_webpack_module, exports) => {
  16023. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16024. /***/ }),
  16025. /***/ "./src/types/options/TStringArrayWrappersType.ts":
  16026. /*!*******************************************************!*\
  16027. !*** ./src/types/options/TStringArrayWrappersType.ts ***!
  16028. \*******************************************************/
  16029. /***/ ((__unused_webpack_module, exports) => {
  16030. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16031. /***/ }),
  16032. /***/ "./src/types/storages/TControlFlowStorage.ts":
  16033. /*!***************************************************!*\
  16034. !*** ./src/types/storages/TControlFlowStorage.ts ***!
  16035. \***************************************************/
  16036. /***/ ((__unused_webpack_module, exports) => {
  16037. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16038. /***/ }),
  16039. /***/ "./src/types/storages/TCustomCodeHelperGroupStorage.ts":
  16040. /*!*************************************************************!*\
  16041. !*** ./src/types/storages/TCustomCodeHelperGroupStorage.ts ***!
  16042. \*************************************************************/
  16043. /***/ ((__unused_webpack_module, exports) => {
  16044. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16045. /***/ }),
  16046. /***/ "./src/types/utils/TTypeFromEnum.ts":
  16047. /*!******************************************!*\
  16048. !*** ./src/types/utils/TTypeFromEnum.ts ***!
  16049. \******************************************/
  16050. /***/ ((__unused_webpack_module, exports) => {
  16051. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16052. /***/ }),
  16053. /***/ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts":
  16054. /*!************************************************************!*\
  16055. !*** ./src/utils/AbstractTransformerNamesGroupsBuilder.ts ***!
  16056. \************************************************************/
  16057. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16058. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16059. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16060. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16061. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16062. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16063. };
  16064. var __metadata = (this && this.__metadata) || function (k, v) {
  16065. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  16066. };
  16067. var __param = (this && this.__param) || function (paramIndex, decorator) {
  16068. return function (target, key) { decorator(target, key, paramIndex); }
  16069. };
  16070. var _a;
  16071. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16072. exports.AbstractTransformerNamesGroupsBuilder = void 0;
  16073. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16074. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  16075. const ILevelledTopologicalSorter_1 = __webpack_require__(/*! ../interfaces/utils/ILevelledTopologicalSorter */ "./src/interfaces/utils/ILevelledTopologicalSorter.ts");
  16076. let AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder {
  16077. constructor(levelledTopologicalSorter) {
  16078. this.levelledTopologicalSorter = levelledTopologicalSorter;
  16079. }
  16080. build(normalizedTransformers) {
  16081. const transformerNames = Object.keys(normalizedTransformers);
  16082. const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers);
  16083. for (const [precedent, consequent] of relationEdges) {
  16084. this.levelledTopologicalSorter.add(precedent, consequent);
  16085. }
  16086. return this.levelledTopologicalSorter.sortByGroups();
  16087. }
  16088. buildTransformersRelationEdges(transformerNames, normalizedTransformers) {
  16089. const relationEdges = [];
  16090. for (const transformerName of transformerNames) {
  16091. const transformer = normalizedTransformers[transformerName];
  16092. const runAfterRelations = transformer.runAfter;
  16093. if (!runAfterRelations || !runAfterRelations.length) {
  16094. relationEdges.push([transformerName, null]);
  16095. continue;
  16096. }
  16097. for (const runAfterRelation of runAfterRelations) {
  16098. const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined;
  16099. if (isUnknownRelation) {
  16100. relationEdges.push([transformerName, null]);
  16101. continue;
  16102. }
  16103. relationEdges.push([runAfterRelation, transformerName]);
  16104. }
  16105. }
  16106. return relationEdges;
  16107. }
  16108. };
  16109. AbstractTransformerNamesGroupsBuilder = __decorate([
  16110. inversify_1.injectable(),
  16111. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)),
  16112. __metadata("design:paramtypes", [typeof (_a = typeof ILevelledTopologicalSorter_1.ILevelledTopologicalSorter !== "undefined" && ILevelledTopologicalSorter_1.ILevelledTopologicalSorter) === "function" ? _a : Object])
  16113. ], AbstractTransformerNamesGroupsBuilder);
  16114. exports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder;
  16115. /***/ }),
  16116. /***/ "./src/utils/ArrayUtils.ts":
  16117. /*!*********************************!*\
  16118. !*** ./src/utils/ArrayUtils.ts ***!
  16119. \*********************************/
  16120. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16121. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16122. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16123. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16124. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16125. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16126. };
  16127. var __metadata = (this && this.__metadata) || function (k, v) {
  16128. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  16129. };
  16130. var __param = (this && this.__param) || function (paramIndex, decorator) {
  16131. return function (target, key) { decorator(target, key, paramIndex); }
  16132. };
  16133. var _a;
  16134. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16135. exports.ArrayUtils = void 0;
  16136. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16137. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  16138. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  16139. let ArrayUtils = class ArrayUtils {
  16140. constructor(randomGenerator) {
  16141. this.randomGenerator = randomGenerator;
  16142. }
  16143. createWithRange(length) {
  16144. const range = [];
  16145. for (let i = 0; i < length; i++) {
  16146. range.push(i);
  16147. }
  16148. return range;
  16149. }
  16150. fillWithRange(length, valueFunction) {
  16151. const range = [];
  16152. for (let i = 0; i < length; i++) {
  16153. range.push(valueFunction(i));
  16154. }
  16155. return range;
  16156. }
  16157. findMostOccurringElement(array) {
  16158. var _a;
  16159. const arrayLength = array.length;
  16160. if (!arrayLength) {
  16161. return null;
  16162. }
  16163. const elementsMap = {};
  16164. let mostOccurringElement = array[0];
  16165. let mostOccurringElementCount = 1;
  16166. for (const element of array) {
  16167. const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0;
  16168. const updatedElementCount = currentElementCount + 1;
  16169. if (updatedElementCount > mostOccurringElementCount) {
  16170. mostOccurringElement = element;
  16171. mostOccurringElementCount = updatedElementCount;
  16172. }
  16173. elementsMap[element] = updatedElementCount;
  16174. }
  16175. return mostOccurringElement;
  16176. }
  16177. getLastElement(array) {
  16178. var _a;
  16179. const arrayLength = array.length;
  16180. return (_a = array[arrayLength - 1]) !== null && _a !== void 0 ? _a : undefined;
  16181. }
  16182. rotate(array, times) {
  16183. if (!array.length) {
  16184. throw new ReferenceError('Cannot rotate empty array.');
  16185. }
  16186. if (times <= 0) {
  16187. return array;
  16188. }
  16189. const newArray = array;
  16190. let temp;
  16191. while (times--) {
  16192. temp = newArray.pop();
  16193. if (temp) {
  16194. newArray.unshift(temp);
  16195. }
  16196. }
  16197. return newArray;
  16198. }
  16199. shuffle(array) {
  16200. const shuffledArray = [...array];
  16201. for (let i = shuffledArray.length; i; i--) {
  16202. const j = Math.floor(this.randomGenerator.getMathRandom() * i);
  16203. [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]];
  16204. }
  16205. return shuffledArray;
  16206. }
  16207. };
  16208. ArrayUtils = __decorate([
  16209. inversify_1.injectable(),
  16210. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  16211. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object])
  16212. ], ArrayUtils);
  16213. exports.ArrayUtils = ArrayUtils;
  16214. /***/ }),
  16215. /***/ "./src/utils/CryptUtils.ts":
  16216. /*!*********************************!*\
  16217. !*** ./src/utils/CryptUtils.ts ***!
  16218. \*********************************/
  16219. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16220. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16221. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16222. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16223. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16224. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16225. };
  16226. var __metadata = (this && this.__metadata) || function (k, v) {
  16227. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  16228. };
  16229. var __param = (this && this.__param) || function (paramIndex, decorator) {
  16230. return function (target, key) { decorator(target, key, paramIndex); }
  16231. };
  16232. var _a;
  16233. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16234. exports.CryptUtils = void 0;
  16235. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16236. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  16237. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  16238. const Base64Alphabet_1 = __webpack_require__(/*! ../constants/Base64Alphabet */ "./src/constants/Base64Alphabet.ts");
  16239. const RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts");
  16240. const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
  16241. let CryptUtils = class CryptUtils {
  16242. constructor(randomGenerator) {
  16243. this.base64Alphabet = Base64Alphabet_1.base64alphabet;
  16244. this.randomGenerator = randomGenerator;
  16245. }
  16246. btoa(string) {
  16247. const chars = this.base64Alphabet;
  16248. let output = '';
  16249. string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => {
  16250. return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16));
  16251. });
  16252. for (let block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {
  16253. charCode = string.charCodeAt(idx += 3 / 4);
  16254. if (charCode > 0xFF) {
  16255. throw new Error('\'btoa\' failed: The string to be encoded contains characters outside of the Latin1 range.');
  16256. }
  16257. block = block << 8 | charCode;
  16258. }
  16259. return output;
  16260. }
  16261. hideString(str, length) {
  16262. const escapeRegExp = (s) => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  16263. const randomMerge = (s1, s2) => {
  16264. let i1 = -1;
  16265. let i2 = -1;
  16266. let result = '';
  16267. while (i1 < s1.length || i2 < s2.length) {
  16268. if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {
  16269. result += s2.charAt(++i2);
  16270. }
  16271. else {
  16272. result += s1.charAt(++i1);
  16273. }
  16274. }
  16275. return result;
  16276. };
  16277. const randomString = this.randomGenerator.getRandomGenerator().string({
  16278. length: length,
  16279. pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool
  16280. });
  16281. let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), '');
  16282. const randomStringDiffArray = randomStringDiff.split('');
  16283. this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);
  16284. randomStringDiff = randomStringDiffArray.join('');
  16285. return [randomMerge(str, randomStringDiff), randomStringDiff];
  16286. }
  16287. rc4(string, key) {
  16288. const s = [];
  16289. let j = 0;
  16290. let x;
  16291. let result = '';
  16292. for (var i = 0; i < 256; i++) {
  16293. s[i] = i;
  16294. }
  16295. for (i = 0; i < 256; i++) {
  16296. j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
  16297. x = s[i];
  16298. s[i] = s[j];
  16299. s[j] = x;
  16300. }
  16301. i = 0;
  16302. j = 0;
  16303. for (let y = 0; y < string.length; y++) {
  16304. i = (i + 1) % 256;
  16305. j = (j + s[i]) % 256;
  16306. x = s[i];
  16307. s[i] = s[j];
  16308. s[j] = x;
  16309. result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
  16310. }
  16311. return result;
  16312. }
  16313. };
  16314. CryptUtils = __decorate([
  16315. inversify_1.injectable(),
  16316. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  16317. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object])
  16318. ], CryptUtils);
  16319. exports.CryptUtils = CryptUtils;
  16320. /***/ }),
  16321. /***/ "./src/utils/CryptUtilsStringArray.ts":
  16322. /*!********************************************!*\
  16323. !*** ./src/utils/CryptUtilsStringArray.ts ***!
  16324. \********************************************/
  16325. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16326. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16327. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16328. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16329. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16330. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16331. };
  16332. var __metadata = (this && this.__metadata) || function (k, v) {
  16333. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  16334. };
  16335. var __param = (this && this.__param) || function (paramIndex, decorator) {
  16336. return function (target, key) { decorator(target, key, paramIndex); }
  16337. };
  16338. var _a;
  16339. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16340. exports.CryptUtilsStringArray = void 0;
  16341. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16342. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  16343. const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts");
  16344. const Base64AlphabetSwapped_1 = __webpack_require__(/*! ../constants/Base64AlphabetSwapped */ "./src/constants/Base64AlphabetSwapped.ts");
  16345. const CryptUtils_1 = __webpack_require__(/*! ./CryptUtils */ "./src/utils/CryptUtils.ts");
  16346. let CryptUtilsStringArray = class CryptUtilsStringArray extends CryptUtils_1.CryptUtils {
  16347. constructor(randomGenerator) {
  16348. super(randomGenerator);
  16349. this.base64Alphabet = Base64AlphabetSwapped_1.base64alphabetSwapped;
  16350. }
  16351. btoa(string) {
  16352. const output = super.btoa(string);
  16353. return output.replace(/=+$/, '');
  16354. }
  16355. };
  16356. CryptUtilsStringArray = __decorate([
  16357. inversify_1.injectable(),
  16358. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),
  16359. __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object])
  16360. ], CryptUtilsStringArray);
  16361. exports.CryptUtilsStringArray = CryptUtilsStringArray;
  16362. /***/ }),
  16363. /***/ "./src/utils/EscapeSequenceEncoder.ts":
  16364. /*!********************************************!*\
  16365. !*** ./src/utils/EscapeSequenceEncoder.ts ***!
  16366. \********************************************/
  16367. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16368. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16369. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16370. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16371. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16372. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16373. };
  16374. var EscapeSequenceEncoder_1;
  16375. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16376. exports.EscapeSequenceEncoder = void 0;
  16377. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16378. let EscapeSequenceEncoder = EscapeSequenceEncoder_1 = class EscapeSequenceEncoder {
  16379. constructor() {
  16380. this.stringsCache = new Map();
  16381. }
  16382. encode(string, encodeAllSymbols) {
  16383. const cacheKey = `${string}-${String(encodeAllSymbols)}`;
  16384. if (this.stringsCache.has(cacheKey)) {
  16385. return this.stringsCache.get(cacheKey);
  16386. }
  16387. const radix = 16;
  16388. const replaceRegExp = new RegExp('[\\s\\S]', 'g');
  16389. let prefix;
  16390. let template;
  16391. const result = string.replace(replaceRegExp, (character) => {
  16392. const shouldEncodeCharacter = encodeAllSymbols
  16393. || EscapeSequenceEncoder_1.forceEscapeCharactersRegExp.test(character);
  16394. if (!shouldEncodeCharacter) {
  16395. return character;
  16396. }
  16397. if (EscapeSequenceEncoder_1.ASCIICharactersRegExp.test(character)) {
  16398. prefix = '\\x';
  16399. template = '00';
  16400. }
  16401. else {
  16402. prefix = '\\u';
  16403. template = '0000';
  16404. }
  16405. return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`;
  16406. });
  16407. this.stringsCache.set(cacheKey, result);
  16408. this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result);
  16409. return result;
  16410. }
  16411. };
  16412. EscapeSequenceEncoder.ASCIICharactersRegExp = /[\x00-\x7F]/;
  16413. EscapeSequenceEncoder.forceEscapeCharactersRegExp = /[\x00-\x1F\x7F-\x9F'"\\\s]/;
  16414. EscapeSequenceEncoder = EscapeSequenceEncoder_1 = __decorate([
  16415. inversify_1.injectable()
  16416. ], EscapeSequenceEncoder);
  16417. exports.EscapeSequenceEncoder = EscapeSequenceEncoder;
  16418. /***/ }),
  16419. /***/ "./src/utils/LevelledTopologicalSorter.ts":
  16420. /*!************************************************!*\
  16421. !*** ./src/utils/LevelledTopologicalSorter.ts ***!
  16422. \************************************************/
  16423. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16424. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16425. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16426. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16427. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16428. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16429. };
  16430. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16431. exports.LevelledTopologicalSorter = void 0;
  16432. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16433. let LevelledTopologicalSorter = class LevelledTopologicalSorter {
  16434. constructor() {
  16435. this.graph = new Map();
  16436. }
  16437. add(precedent, consequent = null) {
  16438. if (consequent !== null) {
  16439. return this.link(precedent, consequent);
  16440. }
  16441. return this.register(precedent);
  16442. }
  16443. sort() {
  16444. const consequents = Array.from(this.graph.keys());
  16445. const results = [];
  16446. const marks = {};
  16447. for (const consequent of consequents) {
  16448. if (marks[consequent] !== undefined) {
  16449. continue;
  16450. }
  16451. this.visit(results, marks, consequent);
  16452. }
  16453. return results;
  16454. }
  16455. sortByGroups() {
  16456. this.sort();
  16457. const resultItemsGroups = [];
  16458. while (this.hasNodes()) {
  16459. const rootNodes = this.findRootNodes();
  16460. resultItemsGroups.push(rootNodes);
  16461. for (const rootNode of rootNodes) {
  16462. this.delete(rootNode);
  16463. }
  16464. }
  16465. return resultItemsGroups;
  16466. }
  16467. delete(consequent) {
  16468. const precedents = this.getPrecedents(consequent);
  16469. if (precedents.length) {
  16470. throw new Error(`Unable to remove non-root node: ${consequent}`);
  16471. }
  16472. this.graph.delete(consequent);
  16473. const precedentsGroups = Array.from(this.graph.values());
  16474. for (const precedentsGroup of precedentsGroups) {
  16475. const precedentsCount = precedentsGroup.length - 1;
  16476. for (let index = precedentsCount; index >= 0; index = index - 1) {
  16477. if (precedentsGroup[index] !== consequent) {
  16478. continue;
  16479. }
  16480. precedentsGroup.splice(index, 1);
  16481. }
  16482. }
  16483. }
  16484. findRootNodes() {
  16485. const consequents = Array.from(this.graph.keys());
  16486. const rootNodes = [];
  16487. for (const consequent of consequents) {
  16488. if (!this.hasPrecedents(consequent)) {
  16489. rootNodes.push(consequent);
  16490. }
  16491. }
  16492. return rootNodes;
  16493. }
  16494. getPrecedents(consequent) {
  16495. const precedents = this.graph.get(consequent);
  16496. if (!precedents) {
  16497. throw new Error(`Unknown node: ${consequent}`);
  16498. }
  16499. return precedents;
  16500. }
  16501. hasNodes() {
  16502. return this.graph.size > 0;
  16503. }
  16504. hasPrecedents(consequent) {
  16505. return this.getPrecedents(consequent).length > 0;
  16506. }
  16507. link(precedent, consequent) {
  16508. this.register(precedent);
  16509. this.register(consequent);
  16510. const target = this.graph.get(consequent);
  16511. if (target && !target.includes(precedent)) {
  16512. target.push(precedent);
  16513. }
  16514. return this;
  16515. }
  16516. register(name) {
  16517. if (!this.graph.has(name)) {
  16518. this.graph.set(name, []);
  16519. }
  16520. return this;
  16521. }
  16522. visit(results, marks, name) {
  16523. const mark = marks[name];
  16524. if (mark === 'visiting') {
  16525. throw new Error(`Detected cycle involving node: ${name}`);
  16526. }
  16527. if (mark) {
  16528. return;
  16529. }
  16530. marks[name] = 'visiting';
  16531. const precedents = this.getPrecedents(name);
  16532. for (const precedent of precedents) {
  16533. this.visit(results, marks, precedent);
  16534. }
  16535. marks[name] = 'ok';
  16536. results.push(name);
  16537. return;
  16538. }
  16539. };
  16540. LevelledTopologicalSorter = __decorate([
  16541. inversify_1.injectable()
  16542. ], LevelledTopologicalSorter);
  16543. exports.LevelledTopologicalSorter = LevelledTopologicalSorter;
  16544. /***/ }),
  16545. /***/ "./src/utils/NumberUtils.ts":
  16546. /*!**********************************!*\
  16547. !*** ./src/utils/NumberUtils.ts ***!
  16548. \**********************************/
  16549. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  16550. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16551. exports.NumberUtils = void 0;
  16552. const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
  16553. class NumberUtils {
  16554. static toHex(number) {
  16555. const radix = 16;
  16556. const basePart = typeof number === 'number'
  16557. ? number.toString(radix)
  16558. : `${number.toString(radix)}n`;
  16559. return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`;
  16560. }
  16561. static extractIntegerAndDecimalParts(number) {
  16562. const integerPart = Math.trunc(number);
  16563. const decimalPart = number !== integerPart
  16564. ? number % 1
  16565. : null;
  16566. return [integerPart, decimalPart];
  16567. }
  16568. static isCeil(number) {
  16569. return typeof number === 'number'
  16570. ? number % 1 === 0
  16571. : true;
  16572. }
  16573. static isPositive(number) {
  16574. if (isNaN(number)) {
  16575. throw new Error('Given value is NaN');
  16576. }
  16577. if (number > 0) {
  16578. return true;
  16579. }
  16580. if (number < 0) {
  16581. return false;
  16582. }
  16583. if (1 / number === Number.POSITIVE_INFINITY) {
  16584. return true;
  16585. }
  16586. return false;
  16587. }
  16588. static isUnsafeNumber(number) {
  16589. if (isNaN(number)) {
  16590. throw new Error('Given value is NaN');
  16591. }
  16592. return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER;
  16593. }
  16594. static getFactors(number) {
  16595. if (number === 0) {
  16596. throw new Error('Invalid number. Allowed only non-zero number');
  16597. }
  16598. number = Math.abs(number);
  16599. if (number === 1) {
  16600. return [-number, number];
  16601. }
  16602. const factors = [];
  16603. const root = Math.sqrt(number);
  16604. const isEven = number % 2 === 0;
  16605. const incrementValue = isEven ? 1 : 2;
  16606. for (let currentFactor = 1; currentFactor <= root; currentFactor += incrementValue) {
  16607. if (number % currentFactor !== 0) {
  16608. continue;
  16609. }
  16610. factors.push(...[-currentFactor, currentFactor]);
  16611. const compliment = number / currentFactor;
  16612. if (compliment !== currentFactor) {
  16613. factors.push(...[-compliment, compliment]);
  16614. }
  16615. }
  16616. return factors.sort((a, b) => a - b);
  16617. }
  16618. }
  16619. exports.NumberUtils = NumberUtils;
  16620. /***/ }),
  16621. /***/ "./src/utils/RandomGenerator.ts":
  16622. /*!**************************************!*\
  16623. !*** ./src/utils/RandomGenerator.ts ***!
  16624. \**************************************/
  16625. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16626. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  16627. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  16628. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  16629. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16630. return c > 3 && r && Object.defineProperty(target, key, r), r;
  16631. };
  16632. var __metadata = (this && this.__metadata) || function (k, v) {
  16633. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  16634. };
  16635. var __param = (this && this.__param) || function (paramIndex, decorator) {
  16636. return function (target, key) { decorator(target, key, paramIndex); }
  16637. };
  16638. var __importDefault = (this && this.__importDefault) || function (mod) {
  16639. return (mod && mod.__esModule) ? mod : { "default": mod };
  16640. };
  16641. var RandomGenerator_1, _a, _b, _c;
  16642. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16643. exports.RandomGenerator = void 0;
  16644. const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  16645. const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  16646. const md5_1 = __importDefault(__webpack_require__(/*! md5 */ "md5"));
  16647. const chance_1 = __webpack_require__(/*! chance */ "chance");
  16648. const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts");
  16649. const ISourceCode_1 = __webpack_require__(/*! ../interfaces/source-code/ISourceCode */ "./src/interfaces/source-code/ISourceCode.ts");
  16650. const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  16651. const AlphabetString_1 = __webpack_require__(/*! ../constants/AlphabetString */ "./src/constants/AlphabetString.ts");
  16652. const AlphabetStringUppercase_1 = __webpack_require__(/*! ../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts");
  16653. let RandomGenerator = RandomGenerator_1 = class RandomGenerator {
  16654. constructor(sourceCode, options) {
  16655. this.sourceCode = sourceCode;
  16656. this.options = options;
  16657. }
  16658. initialize() {
  16659. this.randomGenerator = new chance_1.Chance(this.getRawSeed());
  16660. }
  16661. getMathRandom() {
  16662. return this.getRandomInteger(0, 99999) / 100000;
  16663. }
  16664. getRandomGenerator() {
  16665. return this.randomGenerator;
  16666. }
  16667. getRandomInteger(min, max) {
  16668. return this.getRandomGenerator().integer({
  16669. min: min,
  16670. max: max
  16671. });
  16672. }
  16673. getRandomIntegerExcluding(min, max, valuesToExclude) {
  16674. const valuesToPickArray = [];
  16675. for (let value = min; value <= max; value++) {
  16676. if (valuesToExclude.includes(value)) {
  16677. continue;
  16678. }
  16679. valuesToPickArray.push(value);
  16680. }
  16681. return this.randomGenerator.pickone(valuesToPickArray);
  16682. }
  16683. getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) {
  16684. return this.getRandomGenerator().string({ length, pool });
  16685. }
  16686. getInputSeed() {
  16687. return this.options.seed.toString();
  16688. }
  16689. getRawSeed() {
  16690. const inputSeed = this.getInputSeed();
  16691. const inputSeedParts = `${inputSeed}`.split('|');
  16692. if (inputSeedParts.length > 1) {
  16693. return inputSeed;
  16694. }
  16695. const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode());
  16696. return `${inputSeed}|${sourceCodeMD5Hash}`;
  16697. }
  16698. };
  16699. RandomGenerator.randomGeneratorPool = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`;
  16700. __decorate([
  16701. Initializable_1.initializable(),
  16702. __metadata("design:type", typeof (_a = typeof chance_1.Chance !== "undefined" && chance_1.Chance.Chance) === "function" ? _a : Object)
  16703. ], RandomGenerator.prototype, "randomGenerator", void 0);
  16704. __decorate([
  16705. inversify_1.postConstruct(),
  16706. __metadata("design:type", Function),
  16707. __metadata("design:paramtypes", []),
  16708. __metadata("design:returntype", void 0)
  16709. ], RandomGenerator.prototype, "initialize", null);
  16710. RandomGenerator = RandomGenerator_1 = __decorate([
  16711. inversify_1.injectable(),
  16712. __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)),
  16713. __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),
  16714. __metadata("design:paramtypes", [typeof (_b = typeof ISourceCode_1.ISourceCode !== "undefined" && ISourceCode_1.ISourceCode) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object])
  16715. ], RandomGenerator);
  16716. exports.RandomGenerator = RandomGenerator;
  16717. /***/ }),
  16718. /***/ "./src/utils/StringUtils.ts":
  16719. /*!**********************************!*\
  16720. !*** ./src/utils/StringUtils.ts ***!
  16721. \**********************************/
  16722. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  16723. var __importDefault = (this && this.__importDefault) || function (mod) {
  16724. return (mod && mod.__esModule) ? mod : { "default": mod };
  16725. };
  16726. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16727. exports.StringUtils = void 0;
  16728. const js_string_escape_1 = __importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape"));
  16729. class StringUtils {
  16730. static escapeJsString(string) {
  16731. return js_string_escape_1.default(string);
  16732. }
  16733. }
  16734. exports.StringUtils = StringUtils;
  16735. /***/ }),
  16736. /***/ "./src/utils/Utils.ts":
  16737. /*!****************************!*\
  16738. !*** ./src/utils/Utils.ts ***!
  16739. \****************************/
  16740. /***/ ((__unused_webpack_module, exports) => {
  16741. Object.defineProperty(exports, "__esModule", ({ value: true }));
  16742. exports.Utils = void 0;
  16743. class Utils {
  16744. static buildVersionMessage(version, buildTimestamp) {
  16745. if (!version || !buildTimestamp) {
  16746. return 'unknown';
  16747. }
  16748. const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString();
  16749. return `${version}_${buildDate}`;
  16750. }
  16751. static extractDomainFrom(url) {
  16752. let domain;
  16753. if (url.includes('://') || url.indexOf('//') === 0) {
  16754. domain = url.split('/')[2];
  16755. }
  16756. else {
  16757. domain = url.split('/')[0];
  16758. }
  16759. domain = domain.split(':')[0];
  16760. return domain;
  16761. }
  16762. static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) {
  16763. const baseIdentifiersPrefix = !!identifiersPrefix
  16764. ? identifiersPrefix
  16765. : Utils.baseMultipleSourcesIdentifiersPrefix;
  16766. return `${baseIdentifiersPrefix}${sourceCodeIndex}`;
  16767. }
  16768. static makeEnum(enumLikeObject) {
  16769. return Object.freeze({ ...enumLikeObject });
  16770. }
  16771. }
  16772. exports.Utils = Utils;
  16773. Utils.baseMultipleSourcesIdentifiersPrefix = 'a';
  16774. Utils.hexadecimalPrefix = '0x';
  16775. /***/ }),
  16776. /***/ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json":
  16777. /*!**************************************************************************************************!*\
  16778. !*** ./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json ***!
  16779. \**************************************************************************************************/
  16780. /***/ ((module) => {
  16781. module.exports = JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","-moz-animation","-moz-animation-delay","-moz-animation-direction","-moz-animation-duration","-moz-animation-fill-mode","-moz-animation-iteration-count","-moz-animation-name","-moz-animation-play-state","-moz-animation-timing-function","-moz-appearance","-moz-backface-visibility","-moz-border-end","-moz-border-end-color","-moz-border-end-style","-moz-border-end-width","-moz-border-image","-moz-border-start","-moz-border-start-color","-moz-border-start-style","-moz-border-start-width","-moz-box-align","-moz-box-direction","-moz-box-flex","-moz-box-ordinal-group","-moz-box-orient","-moz-box-pack","-moz-box-sizing","-moz-float-edge","-moz-font-feature-settings","-moz-font-language-override","-moz-force-broken-image-icon","-moz-hyphens","-moz-image-region","-moz-margin-end","-moz-margin-start","-moz-orient","-moz-osx-font-smoothing","-moz-outline-radius","-moz-outline-radius-bottomleft","-moz-outline-radius-bottomright","-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-padding-end","-moz-padding-start","-moz-perspective","-moz-perspective-origin","-moz-tab-size","-moz-text-size-adjust","-moz-transform","-moz-transform-origin","-moz-transform-style","-moz-transition","-moz-transition-delay","-moz-transition-duration","-moz-transition-property","-moz-transition-timing-function","-moz-user-focus","-moz-user-input","-moz-user-modify","-moz-user-select","-moz-window-dragging","-webkit-align-content","-webkit-align-items","-webkit-align-self","-webkit-animation","-webkit-animation-delay","-webkit-animation-direction","-webkit-animation-duration","-webkit-animation-fill-mode","-webkit-animation-iteration-count","-webkit-animation-name","-webkit-animation-play-state","-webkit-animation-timing-function","-webkit-appearance","-webkit-backface-visibility","-webkit-background-clip","-webkit-background-origin","-webkit-background-size","-webkit-border-bottom-left-radius","-webkit-border-bottom-right-radius","-webkit-border-image","-webkit-border-radius","-webkit-border-top-left-radius","-webkit-border-top-right-radius","-webkit-box-align","-webkit-box-direction","-webkit-box-flex","-webkit-box-ordinal-group","-webkit-box-orient","-webkit-box-pack","-webkit-box-shadow","-webkit-box-sizing","-webkit-filter","-webkit-flex","-webkit-flex-basis","-webkit-flex-direction","-webkit-flex-flow","-webkit-flex-grow","-webkit-flex-shrink","-webkit-flex-wrap","-webkit-justify-content","-webkit-line-clamp","-webkit-mask","-webkit-mask-clip","-webkit-mask-composite","-webkit-mask-image","-webkit-mask-origin","-webkit-mask-position","-webkit-mask-position-x","-webkit-mask-position-y","-webkit-mask-repeat","-webkit-mask-size","-webkit-order","-webkit-perspective","-webkit-perspective-origin","-webkit-text-fill-color","-webkit-text-size-adjust","-webkit-text-stroke","-webkit-text-stroke-color","-webkit-text-stroke-width","-webkit-transform","-webkit-transform-origin","-webkit-transform-style","-webkit-transition","-webkit-transition-delay","-webkit-transition-duration","-webkit-transition-property","-webkit-transition-timing-function","-webkit-user-select","0","1","10","11","12","13","14","15","16","17","18","19","2","20","3","4","5","6","7","8","9","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ACTIVE_UNIFORM_BLOCKS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALREADY_SIGNALED","ALT_MASK","ALWAYS","ANY_SAMPLES_PASSED","ANY_SAMPLES_PASSED_CONSERVATIVE","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AbortController","AbortSignal","AbsoluteOrientationSensor","AbstractRange","Accelerometer","AddSearchProvider","AggregateError","AnalyserNode","Animation","AnimationEffect","AnimationEvent","AnimationPlaybackEvent","AnimationTimeline","AnonXMLHttpRequest","Any","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","ArrayType","Atomics","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioParamMap","AudioProcessingEvent","AudioScheduledSourceNode","AudioStreamTrack","AudioWorklet","AudioWorkletNode","AuthenticatorAssertionResponse","AuthenticatorAttestationResponse","AuthenticatorResponse","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BAD_REQUEST","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BackgroundFetchManager","BackgroundFetchRecord","BackgroundFetchRegistration","BarProp","BarcodeDetector","BaseAudioContext","BaseHref","BatteryManager","BeforeInstallPromptEvent","BeforeLoadEvent","BeforeUnloadEvent","BigInt","BigInt64Array","BigUint64Array","BiquadFilterNode","Blob","BlobEvent","Bluetooth","BluetoothCharacteristicProperties","BluetoothDevice","BluetoothRemoteGATTCharacteristic","BluetoothRemoteGATTDescriptor","BluetoothRemoteGATTServer","BluetoothRemoteGATTService","BluetoothUUID","Boolean","BroadcastChannel","ByteLengthQueuingStrategy","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR","COLOR_ATTACHMENT0","COLOR_ATTACHMENT1","COLOR_ATTACHMENT10","COLOR_ATTACHMENT11","COLOR_ATTACHMENT12","COLOR_ATTACHMENT13","COLOR_ATTACHMENT14","COLOR_ATTACHMENT15","COLOR_ATTACHMENT2","COLOR_ATTACHMENT3","COLOR_ATTACHMENT4","COLOR_ATTACHMENT5","COLOR_ATTACHMENT6","COLOR_ATTACHMENT7","COLOR_ATTACHMENT8","COLOR_ATTACHMENT9","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPARE_REF_TO_TEXTURE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONDITION_SATISFIED","CONFIGURATION_UNSUPPORTED","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COPY_READ_BUFFER","COPY_READ_BUFFER_BINDING","COPY_WRITE_BUFFER","COPY_WRITE_BUFFER_BINDING","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSAnimation","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImageValue","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSKeywordValue","CSSMathInvert","CSSMathMax","CSSMathMin","CSSMathNegate","CSSMathProduct","CSSMathSum","CSSMathValue","CSSMatrixComponent","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSNamespaceRule","CSSNumericArray","CSSNumericValue","CSSPageRule","CSSPerspective","CSSPositionValue","CSSPrimitiveValue","CSSRotate","CSSRule","CSSRuleList","CSSScale","CSSSkew","CSSSkewX","CSSSkewY","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSStyleValue","CSSSupportsRule","CSSTransformComponent","CSSTransformValue","CSSTransition","CSSTranslate","CSSUnitValue","CSSUnknownRule","CSSUnparsedValue","CSSValue","CSSValueList","CSSVariableReferenceValue","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_QUERY","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","Cache","CacheStorage","CanvasCaptureMediaStream","CanvasCaptureMediaStreamTrack","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","ClipboardItem","CloseEvent","Collator","CommandEvent","Comment","CompileError","CompositionEvent","CompressionStream","Console","ConstantSourceNode","Controllers","ConvolverNode","CountQueuingStrategy","Counter","Credential","CredentialsContainer","Crypto","CryptoKey","CustomElementRegistry","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DEVICE_INELIGIBLE","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DRAW_BUFFER0","DRAW_BUFFER1","DRAW_BUFFER10","DRAW_BUFFER11","DRAW_BUFFER12","DRAW_BUFFER13","DRAW_BUFFER14","DRAW_BUFFER15","DRAW_BUFFER2","DRAW_BUFFER3","DRAW_BUFFER4","DRAW_BUFFER5","DRAW_BUFFER6","DRAW_BUFFER7","DRAW_BUFFER8","DRAW_BUFFER9","DRAW_FRAMEBUFFER","DRAW_FRAMEBUFFER_BINDING","DST_ALPHA","DST_COLOR","DYNAMIC_COPY","DYNAMIC_DRAW","DYNAMIC_READ","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DecompressionStream","DelayNode","DeprecationReportBody","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceMotionEventAcceleration","DeviceMotionEventRotationRate","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Directory","DisplayNames","Document","DocumentFragment","DocumentTimeline","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","exports","Element","ElementInternals","ElementQuery","EnterPictureInPictureEvent","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_32_UNSIGNED_INT_24_8_REV","FLOAT_MAT2","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3","FLOAT_MAT3x2","FLOAT_MAT3x4","FLOAT_MAT4","FLOAT_MAT4x2","FLOAT_MAT4x3","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE","FRAMEBUFFER_ATTACHMENT_BLUE_SIZE","FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING","FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE","FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE","FRAMEBUFFER_ATTACHMENT_GREEN_SIZE","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_RED_SIZE","FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_DEFAULT","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","FeaturePolicy","FeaturePolicyViolationReportBody","FederatedCredential","Feed","FeedEntry","File","FileError","FileList","FileReader","FileSystem","FileSystemDirectoryEntry","FileSystemDirectoryReader","FileSystemEntry","FileSystemFileEntry","FinalizationRegistry","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FontFaceSet","FontFaceSetLoadEvent","FormData","FormDataEvent","FragmentDirective","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadAxisMoveEvent","GamepadButton","GamepadButtonEvent","GamepadEvent","GamepadHapticActuator","GamepadPose","Geolocation","GeolocationCoordinates","GeolocationPosition","GeolocationPositionError","GestureEvent","Global","Gyroscope","HALF_FLOAT","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSlotElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","Hz","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IIRFilterNode","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INTERLEAVED_ATTRIBS","INT_2_10_10_10_REV","INT_SAMPLER_2D","INT_SAMPLER_2D_ARRAY","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_INDEX","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","IdleDeadline","Image","ImageBitmap","ImageBitmapRenderingContext","ImageCapture","ImageData","Infinity","InputDeviceCapabilities","InputDeviceInfo","InputEvent","InputMethodContext","InstallTrigger","InstallTriggerImpl","Instance","Int16Array","Int32Array","Int8Array","Intent","InternalError","IntersectionObserver","IntersectionObserverEntry","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","Keyboard","KeyboardEvent","KeyboardLayoutMap","KeyframeEffect","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LargestContentfulPaint","LayoutShift","LayoutShiftAttribution","LinearAccelerationSensor","LinkError","ListFormat","LocalMediaStream","Locale","Location","Lock","LockManager","MAX","MAX_3D_TEXTURE_SIZE","MAX_ARRAY_TEXTURE_LAYERS","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","MAX_COLOR_ATTACHMENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_DRAW_BUFFERS","MAX_ELEMENTS_INDICES","MAX_ELEMENTS_VERTICES","MAX_ELEMENT_INDEX","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_PROGRAM_TEXEL_OFFSET","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_SAMPLES","MAX_SERVER_WAIT_TIMEOUT","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_LOD_BIAS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_UNIFORM_BLOCK_SIZE","MAX_UNIFORM_BUFFER_BINDINGS","MAX_VALUE","MAX_VARYING_COMPONENTS","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIDIAccess","MIDIConnectionEvent","MIDIInput","MIDIInputMap","MIDIMessageEvent","MIDIOutput","MIDIOutputMap","MIDIPort","MIN","MIN_PROGRAM_TEXEL_OFFSET","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MathMLElement","MediaCapabilities","MediaCapabilitiesInfo","MediaController","MediaDeviceInfo","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaMetadata","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaRecorderErrorEvent","MediaSession","MediaSettingsRange","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackAudioSourceNode","MediaStreamTrackEvent","Memory","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","Module","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOsxFontSmoothing","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","NavigationPreloadManager","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBJECT_TYPE","OBSOLETE","OK","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OTHER_ERROR","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","OffscreenCanvas","OffscreenCanvasRenderingContext2D","Option","OrientationSensor","OscillatorNode","OverconstrainedError","OverflowEvent","PACK_ALIGNMENT","PACK_ROW_LENGTH","PACK_SKIP_PIXELS","PACK_SKIP_ROWS","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PIXEL_PACK_BUFFER","PIXEL_PACK_BUFFER_BINDING","PIXEL_UNPACK_BUFFER","PIXEL_UNPACK_BUFFER_BINDING","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","PasswordCredential","Path2D","PaymentAddress","PaymentInstruments","PaymentManager","PaymentMethodChangeEvent","PaymentRequest","PaymentRequestUpdateEvent","PaymentResponse","Performance","PerformanceElementTiming","PerformanceEntry","PerformanceEventTiming","PerformanceLongTaskTiming","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceNavigationTiming","PerformanceObserver","PerformanceObserverEntryList","PerformancePaintTiming","PerformanceResourceTiming","PerformanceServerTiming","PerformanceTiming","PeriodicSyncManager","PeriodicWave","PermissionStatus","Permissions","PhotoCapabilities","PictureInPictureWindow","Plugin","PluginArray","PluralRules","PointerEvent","PopStateEvent","PopupBlockedEvent","Presentation","PresentationAvailability","PresentationConnection","PresentationConnectionAvailableEvent","PresentationConnectionCloseEvent","PresentationConnectionList","PresentationReceiver","PresentationRequest","ProcessingInstruction","ProgressEvent","Promise","PromiseRejectionEvent","PropertyNodeList","Proxy","PublicKeyCredential","PushManager","PushSubscription","PushSubscriptionOptions","Q","QUERY_RESULT","QUERY_RESULT_AVAILABLE","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","R11F_G11F_B10F","R16F","R16I","R16UI","R32F","R32I","R32UI","R8","R8I","R8UI","R8_SNORM","RASTERIZER_DISCARD","READ_BUFFER","READ_FRAMEBUFFER","READ_FRAMEBUFFER_BINDING","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED","RED_BITS","RED_INTEGER","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_SAMPLES","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RG","RG16F","RG16I","RG16UI","RG32F","RG32I","RG32UI","RG8","RG8I","RG8UI","RG8_SNORM","RGB","RGB10_A2","RGB10_A2UI","RGB16F","RGB16I","RGB16UI","RGB32F","RGB32I","RGB32UI","RGB565","RGB5_A1","RGB8","RGB8I","RGB8UI","RGB8_SNORM","RGB9_E5","RGBA","RGBA16F","RGBA16I","RGBA16UI","RGBA32F","RGBA32I","RGBA32UI","RGBA4","RGBA8","RGBA8I","RGBA8UI","RGBA8_SNORM","RGBA_INTEGER","RGBColor","RGB_INTEGER","RG_INTEGER","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCCertificate","RTCDTMFSender","RTCDTMFToneChangeEvent","RTCDataChannel","RTCDataChannelEvent","RTCDtlsTransport","RTCError","RTCErrorEvent","RTCIceCandidate","RTCIceTransport","RTCPeerConnection","RTCPeerConnectionIceErrorEvent","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCRtpTransceiver","RTCSctpTransport","RTCSessionDescription","RTCStatsReport","RTCTrackEvent","RadioNodeList","Range","RangeError","RangeException","ReadableStream","ReadableStreamDefaultReader","RecordErrorEvent","Rect","ReferenceError","Reflect","RegExp","RelativeOrientationSensor","RelativeTimeFormat","RemotePlayback","Report","ReportBody","ReportingObserver","Request","ResizeObserver","ResizeObserverEntry","ResizeObserverSize","Response","RuntimeError","SAMPLER_2D","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_2D_SHADOW","SAMPLER_3D","SAMPLER_BINDING","SAMPLER_CUBE","SAMPLER_CUBE_SHADOW","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SEPARATE_ATTRIBS","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SIGNALED","SIGNED_NORMALIZED","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","SRGB","SRGB8","SRGB8_ALPHA8","START_TO_END","START_TO_START","STATIC_COPY","STATIC_DRAW","STATIC_READ","STENCIL","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_COPY","STREAM_DRAW","STREAM_READ","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNC_CONDITION","SYNC_FENCE","SYNC_FLAGS","SYNC_FLUSH_COMMANDS_BIT","SYNC_GPU_COMMANDS_COMPLETE","SYNC_STATUS","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","Sensor","SensorErrorEvent","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedArrayBuffer","SharedWorker","SimpleGestureEvent","SourceBuffer","SourceBufferList","SpeechSynthesis","SpeechSynthesisErrorEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","SpeechSynthesisVoice","StaticRange","StereoPannerNode","StopIteration","Storage","StorageEvent","StorageManager","String","StructType","StylePropertyMap","StylePropertyMapReadOnly","StyleSheet","StyleSheetList","SubmitEvent","SubtleCrypto","Symbol","SyncManager","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_2D_ARRAY","TEXTURE_3D","TEXTURE_BASE_LEVEL","TEXTURE_BINDING_2D","TEXTURE_BINDING_2D_ARRAY","TEXTURE_BINDING_3D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_COMPARE_FUNC","TEXTURE_COMPARE_MODE","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_IMMUTABLE_FORMAT","TEXTURE_IMMUTABLE_LEVELS","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MAX_LEVEL","TEXTURE_MAX_LOD","TEXTURE_MIN_FILTER","TEXTURE_MIN_LOD","TEXTURE_WRAP_R","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TIMEOUT_EXPIRED","TIMEOUT_IGNORED","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRANSFORM_FEEDBACK","TRANSFORM_FEEDBACK_ACTIVE","TRANSFORM_FEEDBACK_BINDING","TRANSFORM_FEEDBACK_BUFFER","TRANSFORM_FEEDBACK_BUFFER_BINDING","TRANSFORM_FEEDBACK_BUFFER_MODE","TRANSFORM_FEEDBACK_BUFFER_SIZE","TRANSFORM_FEEDBACK_BUFFER_START","TRANSFORM_FEEDBACK_PAUSED","TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN","TRANSFORM_FEEDBACK_VARYINGS","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Table","TaskAttributionTiming","Text","TextDecoder","TextDecoderStream","TextEncoder","TextEncoderStream","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransformStream","TransitionEvent","TreeWalker","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","TrustedTypePolicyFactory","TypeError","TypedObject","U2F","UIEvent","UNCACHED","UNIFORM_ARRAY_STRIDE","UNIFORM_BLOCK_ACTIVE_UNIFORMS","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_INDEX","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BUFFER","UNIFORM_BUFFER_BINDING","UNIFORM_BUFFER_OFFSET_ALIGNMENT","UNIFORM_BUFFER_SIZE","UNIFORM_BUFFER_START","UNIFORM_IS_ROW_MAJOR","UNIFORM_MATRIX_STRIDE","UNIFORM_OFFSET","UNIFORM_SIZE","UNIFORM_TYPE","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_IMAGE_HEIGHT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ROW_LENGTH","UNPACK_SKIP_IMAGES","UNPACK_SKIP_PIXELS","UNPACK_SKIP_ROWS","UNSCHEDULED_STATE","UNSENT","UNSIGNALED","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_INT_10F_11F_11F_REV","UNSIGNED_INT_24_8","UNSIGNED_INT_2_10_10_10_REV","UNSIGNED_INT_5_9_9_9_REV","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","UNSIGNED_NORMALIZED","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","USB","USBAlternateInterface","USBConfiguration","USBConnectionEvent","USBDevice","USBEndpoint","USBInTransferResult","USBInterface","USBIsochronousInTransferPacket","USBIsochronousInTransferResult","USBIsochronousOutTransferPacket","USBIsochronousOutTransferResult","USBOutTransferResult","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserActivation","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ARRAY_BINDING","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_INTEGER","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VRDisplay","VRDisplayCapabilities","VRDisplayEvent","VREyeParameters","VRFieldOfView","VRFrameData","VRPose","VRStageParameters","VTTCue","VTTRegion","ValidityState","VideoPlaybackQuality","VideoStreamTrack","VisualViewport","WAIT_FAILED","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WakeLock","WakeLockSentinel","WasmAnyRef","WaveShaperNode","WeakMap","WeakRef","WeakSet","WebAssembly","WebGL2RenderingContext","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLQuery","WebGLRenderbuffer","WebGLRenderingContext","WebGLSampler","WebGLShader","WebGLShaderPrecisionFormat","WebGLSync","WebGLTexture","WebGLTransformFeedback","WebGLUniformLocation","WebGLVertexArray","WebGLVertexArrayObject","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WebkitAlignContent","WebkitAlignItems","WebkitAlignSelf","WebkitAnimation","WebkitAnimationDelay","WebkitAnimationDirection","WebkitAnimationDuration","WebkitAnimationFillMode","WebkitAnimationIterationCount","WebkitAnimationName","WebkitAnimationPlayState","WebkitAnimationTimingFunction","WebkitAppearance","WebkitBackfaceVisibility","WebkitBackgroundClip","WebkitBackgroundOrigin","WebkitBackgroundSize","WebkitBorderBottomLeftRadius","WebkitBorderBottomRightRadius","WebkitBorderImage","WebkitBorderRadius","WebkitBorderTopLeftRadius","WebkitBorderTopRightRadius","WebkitBoxAlign","WebkitBoxDirection","WebkitBoxFlex","WebkitBoxOrdinalGroup","WebkitBoxOrient","WebkitBoxPack","WebkitBoxShadow","WebkitBoxSizing","WebkitFilter","WebkitFlex","WebkitFlexBasis","WebkitFlexDirection","WebkitFlexFlow","WebkitFlexGrow","WebkitFlexShrink","WebkitFlexWrap","WebkitJustifyContent","WebkitLineClamp","WebkitMask","WebkitMaskClip","WebkitMaskComposite","WebkitMaskImage","WebkitMaskOrigin","WebkitMaskPosition","WebkitMaskPositionX","WebkitMaskPositionY","WebkitMaskRepeat","WebkitMaskSize","WebkitOrder","WebkitPerspective","WebkitPerspectiveOrigin","WebkitTextFillColor","WebkitTextSizeAdjust","WebkitTextStroke","WebkitTextStrokeColor","WebkitTextStrokeWidth","WebkitTransform","WebkitTransformOrigin","WebkitTransformStyle","WebkitTransition","WebkitTransitionDelay","WebkitTransitionDuration","WebkitTransitionProperty","WebkitTransitionTimingFunction","WebkitUserSelect","WheelEvent","Window","Worker","Worklet","WritableStream","WritableStreamDefaultWriter","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XRBoundedReferenceSpace","XRDOMOverlayState","XRFrame","XRHitTestResult","XRHitTestSource","XRInputSource","XRInputSourceArray","XRInputSourceEvent","XRInputSourcesChangeEvent","XRLayer","XRPose","XRRay","XRReferenceSpace","XRReferenceSpaceEvent","XRRenderState","XRRigidTransform","XRSession","XRSessionEvent","XRSpace","XRSystem","XRTransientInputHitTestResult","XRTransientInputHitTestSource","XRView","XRViewerPose","XRViewport","XRWebGLLayer","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","aborted","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","actions","activated","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","activeVRDisplays","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","add","addAll","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addModule","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addTransceiver","addWakeLockListener","added","addedNodes","additionalName","additiveSymbols","addons","address","addressLine","adoptNode","adoptedStyleSheets","adr","advance","after","album","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allow","allowFullscreen","allowPaymentRequest","allowedDirections","allowedFeatures","allowedToPlay","allowsFeature","alpha","alt","altGraphKey","altHtml","altKey","altLeft","alternate","alternateSetting","alternates","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","and","angle","angularAcceleration","angularVelocity","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","antialias","anticipatedRemoval","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","appearance","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","applicationServerKey","apply","applyConstraints","applyElement","arc","arcTo","archive","areas","arguments","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaCurrent","ariaDescription","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","arrayBuffer","artist","artwork","as","asIntN","asUintN","asin","asinh","assert","assign","assignedElements","assignedNodes","assignedSlot","async","asyncIterator","atEnd","atan","atan2","atanh","atob","attachEvent","attachInternals","attachShader","attachShadow","attachments","attack","attestationObject","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributeStyleMap","attributes","attribution","audioBitsPerSecond","audioTracks","audioWorklet","authenticatedSignedWrites","authenticatorData","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","automationRate","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","ax","axes","axis","ay","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundFetch","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","badge","balance","baseFrequencyX","baseFrequencyY","baseLatency","baseLayer","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","before","beginElement","beginElementAt","beginPath","beginQuery","beginTransformFeedback","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","bigint64","biguint64","binaryType","bind","bindAttribLocation","bindBuffer","bindBufferBase","bindBufferRange","bindFramebuffer","bindRenderbuffer","bindSampler","bindTexture","bindTransformFeedback","bindVertexArray","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blitFramebuffer","blob","block-size","blockDirection","blockSize","blockedURI","blue","bluetooth","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBlock","borderBlockColor","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockStyle","borderBlockWidth","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderBoxSize","borderCollapse","borderColor","borderColorDark","borderColorLight","borderEndEndRadius","borderEndStartRadius","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderInline","borderInlineColor","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineStyle","borderInlineWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStartEndRadius","borderStartStartRadius","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","boundsGeometry","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","break-after","break-before","break-inside","breakAfter","breakBefore","breakInside","broadcast","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","bufferedAmountLowThreshold","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","bytesWritten","c","cache","caches","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canInsertDTMF","canMakePayment","canPlayType","canPresent","canTrickleIceCandidates","cancel","cancelAndHoldAtTime","cancelAnimationFrame","cancelBubble","cancelIdleCallback","cancelScheduledValues","cancelVideoFrameCallback","cancelWatchAvailability","cancelable","candidate","canonicalUUID","canvas","capabilities","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","captureStream","caret-color","caretBidiLevel","caretColor","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changeType","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","charLength","characterData","characterDataOldValue","characterSet","characteristic","charging","chargingTime","charset","check","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","city","claimInterface","claimed","classList","className","classid","clear","clearAppBadge","clearAttributes","clearBufferfi","clearBufferfv","clearBufferiv","clearBufferuiv","clearColor","clearData","clearDepth","clearHalt","clearImmediate","clearInterval","clearLiveSeekableRange","clearMarks","clearMaxGCPauseAccumulator","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientDataJSON","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWaitSync","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboard","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cm","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-adjust","color-interpolation","color-interpolation-filters","colorAdjust","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commit","commitPreferences","commitStyles","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareExchange","compareNode","comparePoint","compatMode","compatible","compile","compileShader","compileStreaming","complete","component","componentFromPoint","composed","composedPath","composite","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexImage3D","compressedTexSubImage2D","compressedTexSubImage3D","computedStyleMap","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","configuration","configurationName","configurationValue","configurations","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectShark","connectStart","connected","connection","connectionList","connectionSpeed","connectionState","connections","console","consolidate","constraint","constrictionActive","construct","constructor","contactID","contain","containerId","containerName","containerSrc","containerType","contains","containsNode","content","contentBoxSize","contentDocument","contentEditable","contentHint","contentOverflow","contentRect","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuePrimaryKey","continuous","control","controlTransferIn","controlTransferOut","controller","controls","controlsList","convertPointFromNode","convertQuadFromNode","convertRectFromNode","convertToBlob","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyBufferSubData","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyTexSubImage3D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","corruptedVideoFrames","cos","cosh","count","countReset","counter-increment","counter-reset","counter-set","counterIncrement","counterReset","counterSet","country","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createConstantSource","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTML","createHTMLDocument","createIIRFilter","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMediaStreamTrackSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPolicy","createPopup","createProcessingInstruction","createProgram","createQuery","createRadialGradient","createRange","createRangeCollection","createReader","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createSampler","createScript","createScriptProcessor","createScriptURL","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTransformFeedback","createTreeWalker","createVertexArray","createWaveShaper","creationTime","credentials","crossOrigin","crossOriginIsolated","crypto","csi","csp","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentDirection","currentLocalDescription","currentNode","currentPage","currentRect","currentRemoteDescription","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customElements","customError","cx","cy","d","data","dataFld","dataFormatAs","dataLoss","dataLossMessage","dataPageSize","dataSrc","dataTransfer","database","databases","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodedBodySize","decoding","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPolicy","defaultPrevented","defaultRequest","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","define","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","deg","delay","delayTime","delegatesFocus","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteProperty","deleteQuery","deleteRenderbuffer","deleteRow","deleteRule","deleteSampler","deleteShader","deleteSync","deleteTFoot","deleteTHead","deleteTexture","deleteTransformFeedback","deleteVertexArray","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","dependentLocality","depthFar","depthFunc","depthMask","depthNear","depthRange","deref","deriveBits","deriveKey","description","deselectAll","designMode","desiredSize","destination","destinationURL","detach","detachEvent","detachShader","detail","details","detect","detune","device","deviceClass","deviceId","deviceMemory","devicePixelContentBoxSize","devicePixelRatio","deviceProtocol","deviceSubclass","deviceVersionMajor","deviceVersionMinor","deviceVersionSubminor","deviceXDPI","deviceYDPI","didTimeout","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disablePictureInPicture","disableRemotePlayback","disableVertexAttribArray","disabled","dischargingTime","disconnect","disconnectShark","dispatchEvent","display","displayId","displayName","disposition","distanceModel","div","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domOverlayState","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","dotAll","downDegrees","downlink","download","downloadTotal","downloaded","dpcm","dpi","dppx","dragDrop","draggable","drawArrays","drawArraysInstanced","drawArraysInstancedANGLE","drawBuffers","drawCustomFocusRing","drawElements","drawElementsInstanced","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawRangeElements","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dtmf","dump","dumpProfile","duplicate","durability","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effect","effectAllowed","effectiveDirective","effectiveType","elapsedTime","element","elementFromPoint","elementTiming","elements","elementsFromPoint","elevation","ellipse","em","email","embeds","emma","empty","empty-cells","emptyCells","emptyHTML","emptyScript","emulatedPosition","enable","enableBackground","enableDelegations","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeInto","encodeURI","encodeURIComponent","encodedBodySize","encoding","encodingInfo","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endQuery","endTime","endTransformFeedback","ended","endpoint","endpointNumber","endpoints","endsWith","enterKeyHint","entities","entries","entryType","enumerate","enumerateDevices","enumerateEditable","environmentBlendMode","equals","error","errorCode","errorDetail","errorText","escape","estimate","eval","evaluate","event","eventPhase","every","ex","exception","exchange","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPictureInPicture","exitPointerLock","exitPresent","exp","expand","expandEntityReferences","expando","expansion","expiration","expirationTime","expires","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","eye","f","face","factoryReset","failureReason","fallback","family","familyName","farthestViewportElement","fastSeek","fatal","featureId","featurePolicy","featureSettings","features","fenceSync","fetch","fetchStart","fftSize","fgColor","fieldOfView","file","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","filesystem","fill","fill-opacity","fill-rule","fillLightMode","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","finished","fireEvent","firesTouchEvents","firstChild","firstElementChild","firstPage","fixed","flags","flat","flatMap","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","float32","float64","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontOpticalSizing","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontVariationSettings","fontWeight","fontcolor","fontfaces","fonts","fontsize","for","forEach","force","forceRedraw","form","formAction","formData","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","forwardX","forwardY","forwardZ","foundation","fr","fragmentDirective","frame","frameBorder","frameElement","frameSpacing","framebuffer","framebufferHeight","framebufferRenderbuffer","framebufferTexture2D","framebufferTextureLayer","framebufferWidth","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","fromEntries","fromFloat32Array","fromFloat64Array","fromMatrix","fromPoint","fromQuad","fromRect","frontFace","fround","fullPath","fullScreen","fullscreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","gap","gatheringState","gatt","genderIdentity","generateCertificate","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getActiveUniformBlockName","getActiveUniformBlockParameter","getActiveUniforms","getAdjacentText","getAll","getAllKeys","getAllResponseHeaders","getAllowlistForFeature","getAnimations","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNames","getAttributeNode","getAttributeNodeNS","getAttributeType","getAudioTracks","getAvailability","getBBox","getBattery","getBigInt64","getBigUint64","getBlob","getBookmark","getBoundingClientRect","getBounds","getBoxQuads","getBufferParameter","getBufferSubData","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getCanonicalLocales","getCapabilities","getChannelData","getCharNumAtPosition","getCharacteristic","getCharacteristics","getClientExtensionResults","getClientRect","getClientRects","getCoalescedEvents","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getComputedTiming","getConfiguration","getConstraints","getContext","getContextAttributes","getContributingSources","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDescriptor","getDescriptors","getDestinationInsertionPoints","getDevices","getDirectory","getDisplayMedia","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getEyeParameters","getFeature","getFile","getFiles","getFilesAndDirectories","getFingerprints","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFragDataLocation","getFrameData","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHitTestResults","getHitTestResultsForTransientInput","getHours","getIdentityAssertion","getIds","getImageData","getIndexedParameter","getInstalledRelatedApps","getInt16","getInt32","getInt8","getInternalformatParameter","getIntersectionList","getItem","getItems","getKey","getKeyframes","getLayers","getLayoutMap","getLineDash","getLocalCandidates","getLocalParameters","getLocalStreams","getMarks","getMatchedCSSRules","getMaxGCPauseSinceClear","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNativeFramebufferScaleFactor","getNotifications","getNotifier","getNumberOfChars","getOffsetReferenceSpace","getOutputTimestamp","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyDescriptors","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getParameters","getParent","getPathSegAtLength","getPhotoCapabilities","getPhotoSettings","getPointAtLength","getPose","getPredictedEvents","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getPrimaryService","getPrimaryServices","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyType","getPropertyValue","getPrototypeOf","getQuery","getQueryParameter","getRGBColorValue","getRandomValues","getRangeAt","getReader","getReceivers","getRectValue","getRegistration","getRegistrations","getRemoteCandidates","getRemoteCertificates","getRemoteParameters","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRootNode","getRotationOfChar","getSVGDocument","getSamplerParameter","getScreenCTM","getSeconds","getSelectedCandidatePair","getSelection","getSenders","getService","getSettings","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getState","getStats","getStatusForPolicy","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedConstraints","getSupportedExtensions","getSupportedFormats","getSyncParameter","getSynchronizationSources","getTags","getTargetRanges","getTexParameter","getTime","getTimezoneOffset","getTiming","getTotalLength","getTrackById","getTracks","getTransceivers","getTransform","getTransformFeedbackVarying","getTransformToElement","getTransports","getType","getTypeMapping","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformBlockIndex","getUniformIndices","getUniformLocation","getUserMedia","getVRDisplays","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getViewerPose","getViewport","getVoices","getWakeLockState","getWriter","getYear","givenName","global","globalAlpha","globalCompositeOperation","globalThis","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","grabFrame","grad","gradientTransform","gradientUnits","grammars","green","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","gridArea","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","gridGap","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","gripSpace","group","groupCollapsed","groupEnd","groupId","hadRecentInput","hand","handedness","hapticActuators","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasBeenActive","hasChildNodes","hasComposition","hasEnrolledInstrument","hasExtension","hasExternalDisplay","hasFeature","hasFocus","hasInstance","hasLayout","hasOrientation","hasOwnProperty","hasPointerCapture","hasPosition","hasReading","hasStorageAccess","hash","head","headers","heading","height","hidden","hide","hideFocus","high","highWaterMark","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostCandidate","hostname","href","hrefTranslate","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","httpRequestStatusCode","hwTimestamp","hyphens","hypot","iccId","iceConnectionState","iceGatheringState","iceTransport","icon","iconURL","id","identifier","identity","idpLoginUrl","ignoreBOM","ignoreCase","ignoreDepthValues","image-orientation","image-rendering","imageHeight","imageOrientation","imageRendering","imageSizes","imageSmoothingEnabled","imageSmoothingQuality","imageSrcset","imageWidth","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","indicate","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDataType","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inline-size","inlineSize","inlineVerticalFieldOfView","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","inputMode","inputSource","inputSources","inputType","inputs","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertDTMF","insertData","insertItemBefore","insertNode","insertRow","insertRule","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","insetBlock","insetBlockEnd","insetBlockStart","insetInline","insetInlineEnd","insetInlineStart","installing","instanceRoot","instantiate","instantiateStreaming","instruments","int16","int32","int8","integrity","interactionMode","intercept","interfaceClass","interfaceName","interfaceNumber","interfaceProtocol","interfaceSubclass","interfaces","interimResults","internalSubset","interpretation","intersectionRatio","intersectionRect","intersectsNode","interval","invalidIteratorState","invalidateFramebuffer","invalidateSubFramebuffer","inverse","invertSelf","is","is2D","isActive","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isConcatSpreadable","isConnected","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDirectory","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isExternalCTAP2SecurityKeySupported","isFile","isFinite","isFramebuffer","isFrozen","isGenerator","isHTML","isHistoryNavigation","isId","isIdentity","isInjected","isInteger","isIntersecting","isLockFree","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPresenting","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isQuery","isRenderbuffer","isSafeInteger","isSameNode","isSampler","isScript","isScriptURL","isSealed","isSecureContext","isSessionSupported","isShader","isSupported","isSync","isTextEdit","isTexture","isTransformFeedback","isTrusted","isTypeSupported","isUserVerifyingPlatformAuthenticatorAvailable","isVertexArray","isView","isVisible","isochronousTransferIn","isochronousTransferOut","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","items","iterateNext","iterationComposite","iterator","javaEnabled","jobTitle","join","json","justify-content","justify-items","justify-self","justifyContent","justifyItems","justifySelf","k1","k2","k3","k4","kHz","keepalive","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keyStatuses","keySystem","keyText","keyUsage","keyboard","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastInputTime","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftDegrees","leftMargin","leftProjectionMatrix","leftViewMatrix","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-break","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearAcceleration","linearRampToValueAtTime","linearVelocity","lineno","lines","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTime","loadTimes","loaded","loading","localDescription","localName","localService","localStorage","locale","localeCompare","location","locationbar","lock","locked","lockedFile","locks","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","makeXRCompatible","manifest","manufacturer","manufacturerName","map","mapping","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marginBlock","marginBlockEnd","marginBlockStart","marginBottom","marginHeight","marginInline","marginInlineEnd","marginInlineStart","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-position-x","mask-position-y","mask-repeat","mask-size","mask-type","maskClip","maskComposite","maskContentUnits","maskImage","maskMode","maskOrigin","maskPosition","maskPositionX","maskPositionY","maskRepeat","maskSize","maskType","maskUnits","match","matchAll","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-block-size","max-height","max-inline-size","max-width","maxActions","maxAlternatives","maxBlockSize","maxChannelCount","maxChannels","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxInlineSize","maxLayers","maxLength","maxMessageSize","maxPacketLifeTime","maxRetransmits","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaSession","mediaStream","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","messageType","metaKey","metadata","method","methodDetails","methodName","mid","mimeType","mimeTypes","min","min-block-size","min-height","min-inline-size","min-width","minBlockSize","minDecibels","minHeight","minInlineSize","minLength","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mm","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","movementX","movementY","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","ms","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","mul","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationPreload","navigationStart","navigator","near","nearestViewportElement","negative","negotiated","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextHopProtocol","nextNode","nextPage","nextSibling","nickname","noHref","noModule","noResize","noShade","noValidate","noWrap","node","nodeName","nodeType","nodeValue","nonce","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","notify","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","objectType","observe","of","offscreenBuffering","offset","offset-anchor","offset-distance","offset-path","offset-rotate","offsetAnchor","offsetDistance","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetPath","offsetRotate","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onabsolutedeviceorientation","onactivate","onactive","onaddsourcebuffer","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onanimationcancel","onanimationend","onanimationiteration","onanimationstart","onappinstalled","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onauxclick","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforeinstallprompt","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onbeforexrselect","onbegin","onblocked","onblur","onbounce","onboundary","onbufferedamountlow","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","oncharacteristicvaluechanged","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","onclosing","oncompassneedscalibration","oncomplete","onconnect","onconnecting","onconnectionavailable","onconnectionstatechange","oncontextmenu","oncontrollerchange","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicechange","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceorientationabsolute","ondeviceproximity","ondischargingtimechange","ondisconnect","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragexit","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onenterpictureinpicture","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onformdata","onfreeze","onfullscreenchange","onfullscreenerror","ongatheringstatechange","ongattserverdisconnected","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","onicecandidateerror","oniceconnectionstatechange","onicegatheringstatechange","oninactive","oninput","oninputsourceschange","oninvalid","onkeydown","onkeypress","onkeystatuseschange","onkeyup","onlanguagechange","onlayoutcomplete","onleavepictureinpicture","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloading","onloadingdone","onloadingerror","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmessageerror","onmidimessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onmute","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onpayerdetailchange","onpaymentmethodchange","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerrawupdate","onpointerup","onpopstate","onprocessorerror","onprogress","onpropertychange","onratechange","onreading","onreadystatechange","onrejectionhandled","onrelease","onremove","onremovesourcebuffer","onremovestream","onremovetrack","onrepeat","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onsecuritypolicyviolation","onseeked","onseeking","onselect","onselectedcandidatepairchange","onselectend","onselectionchange","onselectstart","onshippingaddresschange","onshippingoptionchange","onshow","onsignalingstatechange","onsoundend","onsoundstart","onsourceclose","onsourceclosed","onsourceended","onsourceopen","onspeechend","onspeechstart","onsqueeze","onsqueezeend","onsqueezestart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","onterminate","ontextinput","ontimeout","ontimeupdate","ontoggle","ontonechange","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontrack","ontransitioncancel","ontransitionend","ontransitionrun","ontransitionstart","onunhandledrejection","onunload","onunmute","onupdate","onupdateend","onupdatefound","onupdateready","onupdatestart","onupgradeneeded","onuserproximity","onversionchange","onvisibilitychange","onvoiceschanged","onvolumechange","onvrdisplayactivate","onvrdisplayconnect","onvrdisplaydeactivate","onvrdisplaydisconnect","onvrdisplaypresentchange","onwaiting","onwaitingforkey","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opened","opener","opera","operationType","operator","opr","optimum","options","or","order","orderX","orderY","ordered","org","organization","orient","orientAngle","orientType","orientation","orientationX","orientationY","orientationZ","origin","originalPolicy","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","outputLatency","outputs","overflow","overflow-anchor","overflow-block","overflow-inline","overflow-wrap","overflow-x","overflow-y","overflowAnchor","overflowBlock","overflowInline","overflowWrap","overflowX","overflowY","overrideMimeType","oversample","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","overscrollBehavior","overscrollBehaviorBlock","overscrollBehaviorInline","overscrollBehaviorX","overscrollBehaviorY","ownKeys","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","packetSize","packets","pad","padEnd","padStart","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","paddingBlock","paddingBlockEnd","paddingBlockStart","paddingBottom","paddingInline","paddingInlineEnd","paddingInlineStart","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageLeft","pageTop","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","paintWorklet","palette","pan","panningModel","parameters","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseAll","parseFloat","parseFromString","parseInt","part","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","pauseProfilers","pauseTransformFeedback","paused","payerEmail","payerName","payerPhone","paymentManager","pc","peerIdentity","pending","pendingLocalDescription","pendingRemoteDescription","percent","performance","periodicSync","permission","permissionState","permissions","persist","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phone","phoneticFamilyName","phoneticGivenName","photo","pictureInPictureElement","pictureInPictureEnabled","pictureInPictureWindow","ping","pipeThrough","pipeTo","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","place-content","place-items","place-self","placeContent","placeItems","placeSelf","placeholder","platform","platforms","play","playEffect","playState","playbackRate","playbackState","playbackTime","played","playoutDelayHint","playsInline","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","populateMatrix","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","pose","position","positionAlign","positionX","positionY","positionZ","postError","postMessage","postalCode","poster","pow","powerEfficient","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","presentation","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","preventSilentAccess","previousElementSibling","previousNode","previousPage","previousRect","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","priority","privateKey","probablySupportsContext","process","processIceMessage","processingEnd","processingStart","product","productId","productName","productSub","profile","profileEnd","profiles","projectionMatrix","promise","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","provider","pseudoClass","pseudoElement","pt","publicId","publicKey","published","pulse","push","pushManager","pushNotification","pushState","put","putImageData","px","quadraticCurveTo","qualifier","quaternion","query","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","queueMicrotask","quote","quotes","r","r1","r2","race","rad","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","rawId","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readBuffer","readEntries","readOnly","readPixels","readReportRequested","readText","readValue","readable","ready","readyState","reason","reboot","receivedAlert","receiver","receivers","recipient","reconnect","recordNumber","recordsAvailable","recordset","rect","red","redEyeReduction","redirect","redirectCount","redirectEnd","redirectStart","redirected","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referenceSpace","referrer","referrerPolicy","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProperty","registerProtocolHandler","reject","rel","relList","relatedAddress","relatedNode","relatedPort","relatedTarget","release","releaseCapture","releaseEvents","releaseInterface","releaseLock","releasePointerCapture","releaseShaderCompiler","reliable","reliableWrite","reload","rem","remainingSpace","remote","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removed","removedNodes","renderHeight","renderState","renderTime","renderWidth","renderbufferStorage","renderbufferStorageMultisample","renderedBuffer","renderingMode","renotify","repeat","replace","replaceAdjacentText","replaceAll","replaceChild","replaceChildren","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceSync","replaceTrack","replaceWholeText","replaceWith","reportValidity","request","requestAnimationFrame","requestAutocomplete","requestData","requestDevice","requestFrame","requestFullscreen","requestHitTestSource","requestHitTestSourceForTransientInput","requestId","requestIdleCallback","requestMIDIAccess","requestMediaKeySystemAccess","requestPermission","requestPictureInPicture","requestPointerLock","requestPresent","requestReferenceSpace","requestSession","requestStart","requestStorageAccess","requestSubmit","requestVideoFrameCallback","requestingWindow","requireInteraction","required","requiredExtensions","requiredFeatures","reset","resetPose","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseReady","responseStart","responseText","responseType","responseURL","responseXML","restartIce","restore","result","resultIndex","resultType","results","resume","resumeProfilers","resumeTransformFeedback","retry","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightDegrees","rightMargin","rightProjectionMatrix","rightViewMatrix","role","rolloffFactor","root","rootBounds","rootElement","rootMargin","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationAngle","rotationRate","round","row-gap","rowGap","rowIndex","rowSpan","rows","rtcpTransport","rtt","ruby-align","ruby-position","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","s","safari","sample","sampleCoverage","sampleRate","samplerParameterf","samplerParameteri","sandbox","save","saveData","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scriptURL","scripts","scroll","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMargin","scrollMarginBlock","scrollMarginBlockEnd","scrollMarginBlockStart","scrollMarginBottom","scrollMarginInline","scrollMarginInlineEnd","scrollMarginInlineStart","scrollMarginLeft","scrollMarginRight","scrollMarginTop","scrollMaxX","scrollMaxY","scrollPadding","scrollPaddingBlock","scrollPaddingBlockEnd","scrollPaddingBlockStart","scrollPaddingBottom","scrollPaddingInline","scrollPaddingInlineEnd","scrollPaddingInlineStart","scrollPaddingLeft","scrollPaddingRight","scrollPaddingTop","scrollRestoration","scrollSnapAlign","scrollSnapType","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar-color","scrollbar-width","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbarWidth","scrollbars","scrolling","scrollingElement","sctp","sctpCauseCode","sdp","sdpLineNumber","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekToNextFrame","seekable","seeking","select","selectAllChildren","selectAlternateInterface","selectConfiguration","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentAlert","sentTimestamp","separator","serialNumber","serializeToString","serverTiming","service","serviceWorker","session","sessionId","sessionStorage","set","setActionHandler","setActive","setAlpha","setAppBadge","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBigInt64","setBigUint64","setBingCurrentSearchDefault","setCapture","setCodecPreferences","setColor","setCompositeOperation","setConfiguration","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFormValue","setFullYear","setHeaderValue","setHours","setIdentityProvider","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setKeyframes","setLineCap","setLineDash","setLineJoin","setLineWidth","setLiveSeekableRange","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setParameters","setPeriodicWave","setPointerCapture","setPosition","setPositionState","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSinkId","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStreams","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValidity","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-image-threshold","shape-margin","shape-outside","shape-rendering","shapeImageThreshold","shapeMargin","shapeOutside","shapeRendering","sheet","shift","shiftKey","shiftLeft","shippingAddress","shippingOption","shippingType","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signal","signalingState","signature","silent","sin","singleNodeValue","sinh","sinkId","sittingToStandingTransform","size","sizeToContent","sizeX","sizeZ","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","slot","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","sortingCode","source","sourceBuffer","sourceBuffers","sourceCapabilities","sourceFile","sourceIndex","sources","spacing","span","speak","speakAs","speaking","species","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcObject","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","stageParameters","standalone","standby","start","startContainer","startIce","startMessages","startNotifications","startOffset","startProfiling","startRendering","startShark","startTime","startsWith","state","status","statusCode","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopNotifications","stopOpacity","stopProfiling","stopPropagation","stopShark","stopped","storage","storageArea","storageName","storageStatus","store","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","streams","stretch","strike","string","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMap","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","submitFrame","submitter","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supported","supportedContentEncodings","supportedEntryTypes","supports","supportsSession","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","sync","sysexEnabled","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takePhoto","takeRecords","tan","tangentialPressure","tanh","target","targetElement","targetRayMode","targetRaySpace","targetTouches","targetX","targetY","tcpType","tee","tel","terminate","test","texImage2D","texImage3D","texParameterf","texParameteri","texStorage2D","texStorage3D","texSubImage2D","texSubImage3D","text","text-align","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-offset","text-underline-position","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textCombineUpright","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationSkipInk","textDecorationStyle","textDecorationThickness","textDecorationUnderline","textEmphasis","textEmphasisColor","textEmphasisPosition","textEmphasisStyle","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOrientation","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlineOffset","textUnderlinePosition","then","threadId","threshold","thresholds","tiltX","tiltY","time","timeEnd","timeLog","timeOrigin","timeRemaining","timeStamp","timecode","timeline","timelineTime","timeout","timestamp","timestampOffset","timing","title","to","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMatrix","toMethod","toPrecision","toPrimitive","toSdp","toSource","toStaticHTML","toString","toStringTag","toSum","toTimeString","toUTCString","toUpperCase","toggle","toggleAttribute","toggleLongPressEnabled","tone","toneBuffer","tooLong","tooShort","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touch-action","touchAction","touched","touches","trace","track","trackVisibility","transaction","transactions","transceiver","transferControlToOffscreen","transferFromImageBitmap","transferImageBitmap","transferIn","transferOut","transferSize","transferToImageBitmap","transform","transform-box","transform-origin","transform-style","transformBox","transformFeedbackVaryings","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","transport","trim","trimEnd","trimLeft","trimRight","trimStart","trueSpeed","trunc","truncate","trustedTypes","turn","twist","type","typeDetail","typeMismatch","typeMustMatch","types","u2f","ubound","uint16","uint32","uint8","uint8Clamped","undefined","unescape","uneval","unicode","unicode-bidi","unicodeBidi","unicodeRange","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform1ui","uniform1uiv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform2ui","uniform2uiv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform3ui","uniform3uiv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniform4ui","uniform4uiv","uniformBlockBinding","uniformMatrix2fv","uniformMatrix2x3fv","uniformMatrix2x4fv","uniformMatrix3fv","uniformMatrix3x2fv","uniformMatrix3x4fv","uniformMatrix4fv","uniformMatrix4x2fv","uniformMatrix4x3fv","unique","uniqueID","uniqueNumber","unit","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","upDegrees","upX","upY","upZ","update","updateCommands","updateIce","updateInterval","updatePlaybackRate","updateRenderState","updateSettings","updateTiming","updateViaCache","updateWith","updated","updating","upgrade","upload","uploadTotal","uploaded","upper","upperBound","upperOpen","uri","url","urn","urns","usages","usb","usbVersionMajor","usbVersionMinor","usbVersionSubminor","useCurrentView","useMap","useProgram","usedSpace","user-select","userActivation","userAgent","userChoice","userHandle","userHint","userLanguage","userSelect","userVisibleOnly","username","usernameFragment","utterance","uuid","v8BreakIterator","vAlign","vLink","valid","validate","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","variable","variant","variationSettings","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorId","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisor","vertexAttribDivisorANGLE","vertexAttribI4i","vertexAttribI4iv","vertexAttribI4ui","vertexAttribI4uiv","vertexAttribIPointer","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vh","vibrate","vibrationActuator","videoBitsPerSecond","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","views","violatedDirective","visibility","visibilityState","visible","visualViewport","vlinkColor","vmax","vmin","voice","voiceURI","volume","vrml","vspace","vw","w","wait","waitSync","waiting","wake","wakeLock","wand","warn","wasClean","wasDiscarded","watch","watchAvailability","watchPosition","webdriver","webkitAddKey","webkitAlignContent","webkitAlignItems","webkitAlignSelf","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderBottomLeftRadius","webkitBorderBottomRightRadius","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBorderRadius","webkitBorderTopLeftRadius","webkitBorderTopRightRadius","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxShadow","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDecodedFrameCount","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitDroppedFrameCount","webkitEnterFullScreen","webkitEnterFullscreen","webkitEntries","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFilter","webkitFlex","webkitFlexBasis","webkitFlexDirection","webkitFlexFlow","webkitFlexGrow","webkitFlexShrink","webkitFlexWrap","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitJustifyContent","webkitKeys","webkitLineClamp","webkitLineDashOffset","webkitLockOrientation","webkitMask","webkitMaskClip","webkitMaskComposite","webkitMaskImage","webkitMaskOrigin","webkitMaskPosition","webkitMaskPositionX","webkitMaskPositionY","webkitMaskRepeat","webkitMaskSize","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrder","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPerspective","webkitPerspectiveOrigin","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRelativePath","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextFillColor","webkitTextSizeAdjust","webkitTextStroke","webkitTextStrokeColor","webkitTextStrokeWidth","webkitTransform","webkitTransformOrigin","webkitTransformStyle","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdirectory","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","whenDefined","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","workerStart","wrap","wrapKey","writable","writableAuxiliaries","write","writeText","writeValue","writeWithoutResponse","writeln","writing-mode","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","xor","xr","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]');
  16782. /***/ }),
  16783. /***/ "@javascript-obfuscator/escodegen":
  16784. /*!***************************************************!*\
  16785. !*** external "@javascript-obfuscator/escodegen" ***!
  16786. \***************************************************/
  16787. /***/ ((module) => {
  16788. module.exports = require("@javascript-obfuscator/escodegen");;
  16789. /***/ }),
  16790. /***/ "@javascript-obfuscator/estraverse":
  16791. /*!****************************************************!*\
  16792. !*** external "@javascript-obfuscator/estraverse" ***!
  16793. \****************************************************/
  16794. /***/ ((module) => {
  16795. module.exports = require("@javascript-obfuscator/estraverse");;
  16796. /***/ }),
  16797. /***/ "acorn":
  16798. /*!************************!*\
  16799. !*** external "acorn" ***!
  16800. \************************/
  16801. /***/ ((module) => {
  16802. module.exports = require("acorn");;
  16803. /***/ }),
  16804. /***/ "chalk":
  16805. /*!************************!*\
  16806. !*** external "chalk" ***!
  16807. \************************/
  16808. /***/ ((module) => {
  16809. module.exports = require("chalk");;
  16810. /***/ }),
  16811. /***/ "chance":
  16812. /*!*************************!*\
  16813. !*** external "chance" ***!
  16814. \*************************/
  16815. /***/ ((module) => {
  16816. module.exports = require("chance");;
  16817. /***/ }),
  16818. /***/ "class-validator":
  16819. /*!**********************************!*\
  16820. !*** external "class-validator" ***!
  16821. \**********************************/
  16822. /***/ ((module) => {
  16823. module.exports = require("class-validator");;
  16824. /***/ }),
  16825. /***/ "eslint-scope":
  16826. /*!*******************************!*\
  16827. !*** external "eslint-scope" ***!
  16828. \*******************************/
  16829. /***/ ((module) => {
  16830. module.exports = require("eslint-scope");;
  16831. /***/ }),
  16832. /***/ "fast-deep-equal":
  16833. /*!**********************************!*\
  16834. !*** external "fast-deep-equal" ***!
  16835. \**********************************/
  16836. /***/ ((module) => {
  16837. module.exports = require("fast-deep-equal");;
  16838. /***/ }),
  16839. /***/ "inversify":
  16840. /*!****************************!*\
  16841. !*** external "inversify" ***!
  16842. \****************************/
  16843. /***/ ((module) => {
  16844. module.exports = require("inversify");;
  16845. /***/ }),
  16846. /***/ "js-string-escape":
  16847. /*!***********************************!*\
  16848. !*** external "js-string-escape" ***!
  16849. \***********************************/
  16850. /***/ ((module) => {
  16851. module.exports = require("js-string-escape");;
  16852. /***/ }),
  16853. /***/ "md5":
  16854. /*!**********************!*\
  16855. !*** external "md5" ***!
  16856. \**********************/
  16857. /***/ ((module) => {
  16858. module.exports = require("md5");;
  16859. /***/ }),
  16860. /***/ "reflect-metadata":
  16861. /*!***********************************!*\
  16862. !*** external "reflect-metadata" ***!
  16863. \***********************************/
  16864. /***/ ((module) => {
  16865. module.exports = require("reflect-metadata");;
  16866. /***/ }),
  16867. /***/ "string-template":
  16868. /*!**********************************!*\
  16869. !*** external "string-template" ***!
  16870. \**********************************/
  16871. /***/ ((module) => {
  16872. module.exports = require("string-template");;
  16873. /***/ }),
  16874. /***/ "stringz":
  16875. /*!**************************!*\
  16876. !*** external "stringz" ***!
  16877. \**************************/
  16878. /***/ ((module) => {
  16879. module.exports = require("stringz");;
  16880. /***/ })
  16881. /******/ });
  16882. /************************************************************************/
  16883. /******/ // The module cache
  16884. /******/ var __webpack_module_cache__ = {};
  16885. /******/
  16886. /******/ // The require function
  16887. /******/ function __webpack_require__(moduleId) {
  16888. /******/ // Check if module is in cache
  16889. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  16890. /******/ if (cachedModule !== undefined) {
  16891. /******/ return cachedModule.exports;
  16892. /******/ }
  16893. /******/ // Create a new module (and put it into the cache)
  16894. /******/ var module = __webpack_module_cache__[moduleId] = {
  16895. /******/ // no module.id needed
  16896. /******/ // no module.loaded needed
  16897. /******/ exports: {}
  16898. /******/ };
  16899. /******/
  16900. /******/ // Execute the module function
  16901. /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  16902. /******/
  16903. /******/ // Return the exports of the module
  16904. /******/ return module.exports;
  16905. /******/ }
  16906. /******/
  16907. /************************************************************************/
  16908. /******/
  16909. /******/ // startup
  16910. /******/ // Load entry module and return exports
  16911. /******/ // This entry module is referenced by other modules so it can't be inlined
  16912. /******/ var __webpack_exports__ = __webpack_require__("./index.ts");
  16913. /******/ module.exports = __webpack_exports__;
  16914. /******/
  16915. /******/ })()
  16916. ;
  16917. //# sourceMappingURL=index.js.map