index.js 643 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245
  1. /*!
  2. Copyright (C) 2016-2018 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. module.exports =
  23. /******/ (function(modules) { // webpackBootstrap
  24. /******/ // The module cache
  25. /******/ var installedModules = {};
  26. /******/
  27. /******/ // object to store loaded and loading wasm modules
  28. /******/ var installedWasmModules = {};
  29. /******/
  30. /******/ // The require function
  31. /******/ function __webpack_require__(moduleId) {
  32. /******/
  33. /******/ // Check if module is in cache
  34. /******/ if(installedModules[moduleId]) {
  35. /******/ return installedModules[moduleId].exports;
  36. /******/ }
  37. /******/ // Create a new module (and put it into the cache)
  38. /******/ var module = installedModules[moduleId] = {
  39. /******/ i: moduleId,
  40. /******/ l: false,
  41. /******/ exports: {}
  42. /******/ };
  43. /******/
  44. /******/ // Execute the module function
  45. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  46. /******/
  47. /******/ // Flag the module as loaded
  48. /******/ module.l = true;
  49. /******/
  50. /******/ // Return the exports of the module
  51. /******/ return module.exports;
  52. /******/ }
  53. /******/
  54. /******/
  55. /******/ // expose the modules object (__webpack_modules__)
  56. /******/ __webpack_require__.m = modules;
  57. /******/
  58. /******/ // expose the module cache
  59. /******/ __webpack_require__.c = installedModules;
  60. /******/
  61. /******/ // define getter function for harmony exports
  62. /******/ __webpack_require__.d = function(exports, name, getter) {
  63. /******/ if(!__webpack_require__.o(exports, name)) {
  64. /******/ Object.defineProperty(exports, name, {
  65. /******/ configurable: false,
  66. /******/ enumerable: true,
  67. /******/ get: getter
  68. /******/ });
  69. /******/ }
  70. /******/ };
  71. /******/
  72. /******/ // define __esModule on exports
  73. /******/ __webpack_require__.r = function(exports) {
  74. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  75. /******/ };
  76. /******/
  77. /******/ // getDefaultExport function for compatibility with non-harmony modules
  78. /******/ __webpack_require__.n = function(module) {
  79. /******/ var getter = module && module.__esModule ?
  80. /******/ function getDefault() { return module['default']; } :
  81. /******/ function getModuleExports() { return module; };
  82. /******/ __webpack_require__.d(getter, 'a', getter);
  83. /******/ return getter;
  84. /******/ };
  85. /******/
  86. /******/ // Object.prototype.hasOwnProperty.call
  87. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  88. /******/
  89. /******/ // __webpack_public_path__
  90. /******/ __webpack_require__.p = "";
  91. /******/
  92. /******/ // object with all compiled WebAssembly.Modules
  93. /******/ __webpack_require__.w = {};
  94. /******/
  95. /******/
  96. /******/ // Load entry module and return exports
  97. /******/ return __webpack_require__(__webpack_require__.s = "./index.ts");
  98. /******/ })
  99. /************************************************************************/
  100. /******/ ({
  101. /***/ "./index.ts":
  102. /*!******************!*\
  103. !*** ./index.ts ***!
  104. \******************/
  105. /*! no static exports found */
  106. /***/ (function(module, exports, __webpack_require__) {
  107. "use strict";
  108. Object.defineProperty(exports, "__esModule", {
  109. value: true
  110. });
  111. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  112. module.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator;
  113. /***/ }),
  114. /***/ "./src/EsprimaFacade.ts":
  115. /*!******************************!*\
  116. !*** ./src/EsprimaFacade.ts ***!
  117. \******************************/
  118. /*! no static exports found */
  119. /***/ (function(module, exports, __webpack_require__) {
  120. "use strict";
  121. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  122. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  123. Object.defineProperty(exports, "__esModule", {
  124. value: true
  125. });
  126. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  127. var esprima = tslib_1.__importStar(__webpack_require__(/*! esprima */ "esprima"));
  128. var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk"));
  129. var EsprimaFacade =
  130. /*#__PURE__*/
  131. function () {
  132. function EsprimaFacade() {
  133. _classCallCheck(this, EsprimaFacade);
  134. }
  135. _createClass(EsprimaFacade, null, [{
  136. key: "parse",
  137. value: function parse(input, config) {
  138. var lastMeta = null;
  139. try {
  140. return esprima.parseScript(input, config, function (node, meta) {
  141. return lastMeta = meta;
  142. });
  143. } catch (_a) {}
  144. try {
  145. return esprima.parseModule(input, config, function (node, meta) {
  146. return lastMeta = meta;
  147. });
  148. } catch (error) {
  149. return EsprimaFacade.processParsingError(input, error.message, lastMeta);
  150. }
  151. }
  152. }, {
  153. key: "processParsingError",
  154. value: function processParsingError(sourceCode, errorMessage, meta) {
  155. if (!meta || !meta.start || !meta.end || !meta.start.column || !meta.end.column) {
  156. throw new Error(errorMessage);
  157. }
  158. var lineNumberMatch = errorMessage.match(/Line *(\d*)/);
  159. if (!lineNumberMatch) {
  160. throw new Error(errorMessage);
  161. }
  162. var lineNumber = parseInt(lineNumberMatch[1], 10);
  163. var sourceCodeLines = sourceCode.split(/\r?\n/);
  164. var errorLine = sourceCodeLines[lineNumber - 1];
  165. if (!errorLine) {
  166. throw new Error(errorMessage);
  167. }
  168. var startErrorIndex = Math.max(0, meta.start.column - EsprimaFacade.nearestSymbolsCount);
  169. var endErrorIndex = Math.min(errorLine.length, meta.end.column + EsprimaFacade.nearestSymbolsCount);
  170. var formattedPointer = EsprimaFacade.colorError('>');
  171. var formattedCodeSlice = "...".concat(errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, ''), "...");
  172. throw new Error("".concat(errorMessage, "\n").concat(formattedPointer, " ").concat(formattedCodeSlice));
  173. }
  174. }]);
  175. return EsprimaFacade;
  176. }();
  177. EsprimaFacade.colorError = chalk_1.default.red;
  178. EsprimaFacade.nearestSymbolsCount = 10;
  179. exports.EsprimaFacade = EsprimaFacade;
  180. /***/ }),
  181. /***/ "./src/JavaScriptObfuscator.ts":
  182. /*!*************************************!*\
  183. !*** ./src/JavaScriptObfuscator.ts ***!
  184. \*************************************/
  185. /*! no static exports found */
  186. /***/ (function(module, exports, __webpack_require__) {
  187. "use strict";
  188. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  189. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  190. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  191. Object.defineProperty(exports, "__esModule", {
  192. value: true
  193. });
  194. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  195. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  196. var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  197. var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
  198. var packageJson = tslib_1.__importStar(__webpack_require__(/*! pjson */ "pjson"));
  199. var LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts");
  200. var NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  201. var TransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  202. var EsprimaFacade_1 = __webpack_require__(/*! ./EsprimaFacade */ "./src/EsprimaFacade.ts");
  203. var NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts");
  204. var JavaScriptObfuscator = JavaScriptObfuscator_1 =
  205. /*#__PURE__*/
  206. function () {
  207. function JavaScriptObfuscator(transformersRunner, sourceMapCorrector, randomGenerator, logger, options) {
  208. _classCallCheck(this, JavaScriptObfuscator);
  209. this.transformersRunner = transformersRunner;
  210. this.sourceMapCorrector = sourceMapCorrector;
  211. this.randomGenerator = randomGenerator;
  212. this.logger = logger;
  213. this.options = options;
  214. }
  215. _createClass(JavaScriptObfuscator, [{
  216. key: "obfuscate",
  217. value: function obfuscate(sourceCode) {
  218. var timeStart = Date.now();
  219. this.logger.info(LoggingMessage_1.LoggingMessage.Version, packageJson.version);
  220. this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);
  221. this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getSeed());
  222. var astTree = this.parseCode(sourceCode);
  223. var obfuscatedAstTree = this.transformAstTree(astTree);
  224. var generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
  225. var obfuscationTime = (Date.now() - timeStart) / 1000;
  226. this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);
  227. return this.getObfuscationResult(generatorOutput);
  228. }
  229. }, {
  230. key: "parseCode",
  231. value: function parseCode(sourceCode) {
  232. return EsprimaFacade_1.EsprimaFacade.parse(sourceCode, {
  233. attachComment: true,
  234. loc: this.options.sourceMap
  235. });
  236. }
  237. }, {
  238. key: "transformAstTree",
  239. value: function transformAstTree(astTree) {
  240. var isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) && !astTree.body.length && !astTree.leadingComments;
  241. if (isEmptyAstTree) {
  242. this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);
  243. return astTree;
  244. }
  245. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Preparing);
  246. if (this.options.deadCodeInjection) {
  247. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.DeadCodeInjection);
  248. }
  249. if (this.options.controlFlowFlattening) {
  250. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.ControlFlowFlattening);
  251. }
  252. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Converting);
  253. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Obfuscating);
  254. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Finalizing);
  255. return astTree;
  256. }
  257. }, {
  258. key: "generateCode",
  259. value: function generateCode(sourceCode, astTree) {
  260. var escodegenParams = _Object$assign({}, JavaScriptObfuscator_1.escodegenParams);
  261. if (this.options.sourceMap) {
  262. escodegenParams.sourceMap = 'sourceMap';
  263. escodegenParams.sourceContent = sourceCode;
  264. }
  265. var generatorOutput = escodegen.generate(astTree, _Object$assign({}, escodegenParams, {
  266. format: {
  267. compact: this.options.compact
  268. }
  269. }));
  270. generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
  271. return generatorOutput;
  272. }
  273. }, {
  274. key: "getObfuscationResult",
  275. value: function getObfuscationResult(generatorOutput) {
  276. return this.sourceMapCorrector.correct(generatorOutput.code, generatorOutput.map);
  277. }
  278. }, {
  279. key: "runTransformationStage",
  280. value: function runTransformationStage(astTree, transformationStage) {
  281. this.logger.info(LoggingMessage_1.LoggingMessage.TransformationStage, transformationStage);
  282. return this.transformersRunner.transform(astTree, JavaScriptObfuscator_1.transformersList, transformationStage);
  283. }
  284. }]);
  285. return JavaScriptObfuscator;
  286. }();
  287. JavaScriptObfuscator.escodegenParams = {
  288. comment: true,
  289. verbatim: 'x-verbatim-property',
  290. sourceMapWithCode: true
  291. };
  292. JavaScriptObfuscator.transformersList = [NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.CommentsTransformer, NodeTransformer_1.NodeTransformer.CustomNodesTransformer, NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.LiteralTransformer, NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, NodeTransformer_1.NodeTransformer.MetadataTransformer, NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, NodeTransformer_1.NodeTransformer.ParentificationTransformer, NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer];
  293. JavaScriptObfuscator = JavaScriptObfuscator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], JavaScriptObfuscator);
  294. exports.JavaScriptObfuscator = JavaScriptObfuscator;
  295. var JavaScriptObfuscator_1;
  296. /***/ }),
  297. /***/ "./src/JavaScriptObfuscatorFacade.ts":
  298. /*!*******************************************!*\
  299. !*** ./src/JavaScriptObfuscatorFacade.ts ***!
  300. \*******************************************/
  301. /*! no static exports found */
  302. /***/ (function(module, exports, __webpack_require__) {
  303. "use strict";
  304. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  305. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  306. Object.defineProperty(exports, "__esModule", {
  307. value: true
  308. });
  309. __webpack_require__(/*! reflect-metadata */ "reflect-metadata");
  310. var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  311. var InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  312. var JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ./cli/JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts");
  313. var JavaScriptObfuscatorFacade =
  314. /*#__PURE__*/
  315. function () {
  316. function JavaScriptObfuscatorFacade() {
  317. _classCallCheck(this, JavaScriptObfuscatorFacade);
  318. }
  319. _createClass(JavaScriptObfuscatorFacade, null, [{
  320. key: "obfuscate",
  321. value: function obfuscate(sourceCode) {
  322. var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  323. var inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();
  324. inversifyContainerFacade.load(sourceCode, inputOptions);
  325. var javaScriptObfuscator = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);
  326. var obfuscationResult = javaScriptObfuscator.obfuscate(sourceCode);
  327. inversifyContainerFacade.unload();
  328. return obfuscationResult;
  329. }
  330. }, {
  331. key: "runCLI",
  332. value: function runCLI(argv) {
  333. var javaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv);
  334. javaScriptObfuscatorCLI.initialize();
  335. javaScriptObfuscatorCLI.run();
  336. }
  337. }]);
  338. return JavaScriptObfuscatorFacade;
  339. }();
  340. exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;
  341. /***/ }),
  342. /***/ "./src/ObfuscationResult.ts":
  343. /*!**********************************!*\
  344. !*** ./src/ObfuscationResult.ts ***!
  345. \**********************************/
  346. /*! no static exports found */
  347. /***/ (function(module, exports, __webpack_require__) {
  348. "use strict";
  349. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  350. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  351. Object.defineProperty(exports, "__esModule", {
  352. value: true
  353. });
  354. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  355. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  356. var Initializable_1 = __webpack_require__(/*! ./decorators/Initializable */ "./src/decorators/Initializable.ts");
  357. var ObfuscationResult =
  358. /*#__PURE__*/
  359. function () {
  360. function ObfuscationResult() {
  361. _classCallCheck(this, ObfuscationResult);
  362. }
  363. _createClass(ObfuscationResult, [{
  364. key: "initialize",
  365. value: function initialize(obfuscatedCode, sourceMap) {
  366. this.obfuscatedCode = obfuscatedCode;
  367. this.sourceMap = sourceMap;
  368. }
  369. }, {
  370. key: "getObfuscatedCode",
  371. value: function getObfuscatedCode() {
  372. return this.obfuscatedCode;
  373. }
  374. }, {
  375. key: "getSourceMap",
  376. value: function getSourceMap() {
  377. return this.sourceMap;
  378. }
  379. }, {
  380. key: "toString",
  381. value: function toString() {
  382. return this.obfuscatedCode;
  383. }
  384. }]);
  385. return ObfuscationResult;
  386. }();
  387. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "obfuscatedCode", void 0);
  388. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "sourceMap", void 0);
  389. ObfuscationResult = tslib_1.__decorate([inversify_1.injectable()], ObfuscationResult);
  390. exports.ObfuscationResult = ObfuscationResult;
  391. /***/ }),
  392. /***/ "./src/SourceCode.ts":
  393. /*!***************************!*\
  394. !*** ./src/SourceCode.ts ***!
  395. \***************************/
  396. /*! no static exports found */
  397. /***/ (function(module, exports, __webpack_require__) {
  398. "use strict";
  399. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  400. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  401. Object.defineProperty(exports, "__esModule", {
  402. value: true
  403. });
  404. var SourceCode =
  405. /*#__PURE__*/
  406. function () {
  407. function SourceCode(sourceCode) {
  408. _classCallCheck(this, SourceCode);
  409. this.sourceCode = sourceCode;
  410. }
  411. _createClass(SourceCode, [{
  412. key: "getSourceCode",
  413. value: function getSourceCode() {
  414. return this.sourceCode;
  415. }
  416. }]);
  417. return SourceCode;
  418. }();
  419. exports.SourceCode = SourceCode;
  420. /***/ }),
  421. /***/ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts":
  422. /*!******************************************************************!*\
  423. !*** ./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts ***!
  424. \******************************************************************/
  425. /*! no static exports found */
  426. /***/ (function(module, exports, __webpack_require__) {
  427. "use strict";
  428. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  429. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  430. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  431. Object.defineProperty(exports, "__esModule", {
  432. value: true
  433. });
  434. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  435. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  436. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  437. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  438. var CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts");
  439. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  440. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  441. var StackTraceAnalyzer = StackTraceAnalyzer_1 =
  442. /*#__PURE__*/
  443. function () {
  444. function StackTraceAnalyzer(calleeDataExtractorFactory) {
  445. _classCallCheck(this, StackTraceAnalyzer);
  446. this.calleeDataExtractorFactory = calleeDataExtractorFactory;
  447. }
  448. _createClass(StackTraceAnalyzer, [{
  449. key: "analyze",
  450. value: function analyze(astTree) {
  451. return this.analyzeRecursive(astTree.body);
  452. }
  453. }, {
  454. key: "analyzeRecursive",
  455. value: function analyzeRecursive(blockScopeBody) {
  456. var _this = this;
  457. var limitIndex = StackTraceAnalyzer_1.getLimitIndex(blockScopeBody.length);
  458. var stackTraceData = [];
  459. var blockScopeBodyLength = blockScopeBody.length;
  460. var _loop = function _loop(index) {
  461. if (index > limitIndex) {
  462. return "break";
  463. }
  464. var blockScopeBodyNode = blockScopeBody[index];
  465. estraverse.traverse(blockScopeBodyNode, {
  466. enter: function enter(node) {
  467. if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {
  468. return;
  469. }
  470. if (blockScopeBodyNode.parentNode !== NodeUtils_1.NodeUtils.getBlockScopesOfNode(node)[0]) {
  471. return estraverse.VisitorOption.Skip;
  472. }
  473. _this.analyzeCallExpressionNode(stackTraceData, blockScopeBody, node);
  474. }
  475. });
  476. };
  477. for (var index = 0; index < blockScopeBodyLength; index++) {
  478. var _ret = _loop(index);
  479. if (_ret === "break") break;
  480. }
  481. return stackTraceData;
  482. }
  483. }, {
  484. key: "analyzeCallExpressionNode",
  485. value: function analyzeCallExpressionNode(stackTraceData, blockScopeBody, callExpressionNode) {
  486. var _this2 = this;
  487. StackTraceAnalyzer_1.calleeDataExtractorsList.forEach(function (calleeDataExtractorName) {
  488. var calleeData = _this2.calleeDataExtractorFactory(calleeDataExtractorName).extract(blockScopeBody, callExpressionNode.callee);
  489. if (!calleeData) {
  490. return;
  491. }
  492. stackTraceData.push(_Object$assign({}, calleeData, {
  493. stackTrace: _this2.analyzeRecursive(calleeData.callee.body)
  494. }));
  495. });
  496. }
  497. }], [{
  498. key: "getLimitIndex",
  499. value: function getLimitIndex(blockScopeBodyLength) {
  500. var lastIndex = blockScopeBodyLength - 1;
  501. var limitThresholdActivationIndex = StackTraceAnalyzer_1.limitThresholdActivationLength - 1;
  502. var limitIndex = lastIndex;
  503. if (lastIndex > limitThresholdActivationIndex) {
  504. limitIndex = Math.round(limitThresholdActivationIndex + lastIndex * StackTraceAnalyzer_1.limitThreshold);
  505. if (limitIndex > lastIndex) {
  506. limitIndex = lastIndex;
  507. }
  508. }
  509. return limitIndex;
  510. }
  511. }]);
  512. return StackTraceAnalyzer;
  513. }();
  514. StackTraceAnalyzer.calleeDataExtractorsList = [CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor];
  515. StackTraceAnalyzer.limitThresholdActivationLength = 25;
  516. StackTraceAnalyzer.limitThreshold = 0.002;
  517. StackTraceAnalyzer = StackTraceAnalyzer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)), tslib_1.__metadata("design:paramtypes", [Function])], StackTraceAnalyzer);
  518. exports.StackTraceAnalyzer = StackTraceAnalyzer;
  519. var StackTraceAnalyzer_1;
  520. /***/ }),
  521. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts":
  522. /*!**************************************************************************************************!*\
  523. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***!
  524. \**************************************************************************************************/
  525. /*! no static exports found */
  526. /***/ (function(module, exports, __webpack_require__) {
  527. "use strict";
  528. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  529. Object.defineProperty(exports, "__esModule", {
  530. value: true
  531. });
  532. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  533. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  534. var AbstractCalleeDataExtractor = function AbstractCalleeDataExtractor() {
  535. _classCallCheck(this, AbstractCalleeDataExtractor);
  536. };
  537. AbstractCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], AbstractCalleeDataExtractor);
  538. exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;
  539. /***/ }),
  540. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts":
  541. /*!*************************************************************************************************************!*\
  542. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***!
  543. \*************************************************************************************************************/
  544. /*! no static exports found */
  545. /***/ (function(module, exports, __webpack_require__) {
  546. "use strict";
  547. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  548. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  549. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  550. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  551. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  552. Object.defineProperty(exports, "__esModule", {
  553. value: true
  554. });
  555. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  556. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  557. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  558. var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  559. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  560. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  561. var FunctionDeclarationCalleeDataExtractor =
  562. /*#__PURE__*/
  563. function (_AbstractCalleeDataEx) {
  564. _inherits(FunctionDeclarationCalleeDataExtractor, _AbstractCalleeDataEx);
  565. function FunctionDeclarationCalleeDataExtractor() {
  566. _classCallCheck(this, FunctionDeclarationCalleeDataExtractor);
  567. return _possibleConstructorReturn(this, (FunctionDeclarationCalleeDataExtractor.__proto__ || _Object$getPrototypeOf(FunctionDeclarationCalleeDataExtractor)).apply(this, arguments));
  568. }
  569. _createClass(FunctionDeclarationCalleeDataExtractor, [{
  570. key: "extract",
  571. value: function extract(blockScopeBody, callee) {
  572. if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  573. return null;
  574. }
  575. var calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockScopeBody[0])[0], callee.name);
  576. if (!calleeBlockStatement) {
  577. return null;
  578. }
  579. return {
  580. callee: calleeBlockStatement,
  581. name: callee.name
  582. };
  583. }
  584. }, {
  585. key: "getCalleeBlockStatement",
  586. value: function getCalleeBlockStatement(targetNode, name) {
  587. var calleeBlockStatement = null;
  588. estraverse.traverse(targetNode, {
  589. enter: function enter(node) {
  590. if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {
  591. calleeBlockStatement = node.body;
  592. return estraverse.VisitorOption.Break;
  593. }
  594. }
  595. });
  596. return calleeBlockStatement;
  597. }
  598. }]);
  599. return FunctionDeclarationCalleeDataExtractor;
  600. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  601. FunctionDeclarationCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionDeclarationCalleeDataExtractor);
  602. exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;
  603. /***/ }),
  604. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts":
  605. /*!************************************************************************************************************!*\
  606. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***!
  607. \************************************************************************************************************/
  608. /*! no static exports found */
  609. /***/ (function(module, exports, __webpack_require__) {
  610. "use strict";
  611. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  612. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  613. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  614. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  615. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  616. Object.defineProperty(exports, "__esModule", {
  617. value: true
  618. });
  619. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  620. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  621. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  622. var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  623. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  624. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  625. var FunctionExpressionCalleeDataExtractor =
  626. /*#__PURE__*/
  627. function (_AbstractCalleeDataEx) {
  628. _inherits(FunctionExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
  629. function FunctionExpressionCalleeDataExtractor() {
  630. _classCallCheck(this, FunctionExpressionCalleeDataExtractor);
  631. return _possibleConstructorReturn(this, (FunctionExpressionCalleeDataExtractor.__proto__ || _Object$getPrototypeOf(FunctionExpressionCalleeDataExtractor)).apply(this, arguments));
  632. }
  633. _createClass(FunctionExpressionCalleeDataExtractor, [{
  634. key: "extract",
  635. value: function extract(blockScopeBody, callee) {
  636. var calleeBlockStatement = null;
  637. if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  638. calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockScopeBody[0])[0], callee.name);
  639. }
  640. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {
  641. calleeBlockStatement = callee.body;
  642. }
  643. if (!calleeBlockStatement) {
  644. return null;
  645. }
  646. return {
  647. callee: calleeBlockStatement,
  648. name: callee.name || null
  649. };
  650. }
  651. }, {
  652. key: "getCalleeBlockStatement",
  653. value: function getCalleeBlockStatement(targetNode, name) {
  654. var calleeBlockStatement = null;
  655. estraverse.traverse(targetNode, {
  656. enter: function enter(node, parentNode) {
  657. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && parentNode && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && parentNode.id.name === name) {
  658. calleeBlockStatement = node.body;
  659. return estraverse.VisitorOption.Break;
  660. }
  661. }
  662. });
  663. return calleeBlockStatement;
  664. }
  665. }]);
  666. return FunctionExpressionCalleeDataExtractor;
  667. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  668. FunctionExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionExpressionCalleeDataExtractor);
  669. exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;
  670. /***/ }),
  671. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts":
  672. /*!**********************************************************************************************************!*\
  673. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***!
  674. \**********************************************************************************************************/
  675. /*! no static exports found */
  676. /***/ (function(module, exports, __webpack_require__) {
  677. "use strict";
  678. var _getIterator = __webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator");
  679. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  680. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  681. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  682. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  683. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  684. Object.defineProperty(exports, "__esModule", {
  685. value: true
  686. });
  687. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  688. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  689. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  690. var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  691. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  692. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  693. var ObjectExpressionCalleeDataExtractor =
  694. /*#__PURE__*/
  695. function (_AbstractCalleeDataEx) {
  696. _inherits(ObjectExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
  697. function ObjectExpressionCalleeDataExtractor() {
  698. _classCallCheck(this, ObjectExpressionCalleeDataExtractor);
  699. return _possibleConstructorReturn(this, (ObjectExpressionCalleeDataExtractor.__proto__ || _Object$getPrototypeOf(ObjectExpressionCalleeDataExtractor)).apply(this, arguments));
  700. }
  701. _createClass(ObjectExpressionCalleeDataExtractor, [{
  702. key: "extract",
  703. value: function extract(blockScopeBody, callee) {
  704. if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {
  705. return null;
  706. }
  707. var objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
  708. if (!objectMembersCallsChain.length) {
  709. return null;
  710. }
  711. var functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];
  712. var calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockScopeBody[0])[0], objectMembersCallsChain);
  713. if (!calleeBlockStatement) {
  714. return null;
  715. }
  716. return {
  717. callee: calleeBlockStatement,
  718. name: functionExpressionName
  719. };
  720. }
  721. }, {
  722. key: "createObjectMembersCallsChain",
  723. value: function createObjectMembersCallsChain(currentChain, memberExpression) {
  724. if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) {
  725. currentChain.unshift(memberExpression.property.name);
  726. } else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) {
  727. currentChain.unshift(memberExpression.property.value);
  728. } else {
  729. return currentChain;
  730. }
  731. if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {
  732. return this.createObjectMembersCallsChain(currentChain, memberExpression.object);
  733. } else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {
  734. currentChain.unshift(memberExpression.object.name);
  735. }
  736. return currentChain;
  737. }
  738. }, {
  739. key: "getCalleeBlockStatement",
  740. value: function getCalleeBlockStatement(targetNode, objectMembersCallsChain) {
  741. var _this = this;
  742. var objectName = objectMembersCallsChain.shift();
  743. if (!objectName) {
  744. return null;
  745. }
  746. var calleeBlockStatement = null;
  747. estraverse.traverse(targetNode, {
  748. enter: function enter(node) {
  749. if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && node.init && NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && node.id.name === objectName) {
  750. calleeBlockStatement = _this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);
  751. return estraverse.VisitorOption.Break;
  752. }
  753. }
  754. });
  755. return calleeBlockStatement;
  756. }
  757. }, {
  758. key: "findCalleeBlockStatement",
  759. value: function findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {
  760. var nextItemInCallsChain = objectMembersCallsChain.shift();
  761. if (!nextItemInCallsChain) {
  762. return null;
  763. }
  764. var _iteratorNormalCompletion = true;
  765. var _didIteratorError = false;
  766. var _iteratorError = undefined;
  767. try {
  768. for (var _iterator = _getIterator(objectExpressionProperties), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  769. var _propertyNode = _step.value;
  770. var isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(_propertyNode.key) && _propertyNode.key.name === nextItemInCallsChain;
  771. var isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(_propertyNode.key) && Boolean(_propertyNode.key.value) && _propertyNode.key.value === nextItemInCallsChain;
  772. if (!isTargetPropertyNodeWithIdentifierKey && !isTargetPropertyNodeWithLiteralKey) {
  773. continue;
  774. }
  775. if (NodeGuards_1.NodeGuards.isObjectExpressionNode(_propertyNode.value)) {
  776. return this.findCalleeBlockStatement(_propertyNode.value.properties, objectMembersCallsChain);
  777. }
  778. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(_propertyNode.value)) {
  779. return _propertyNode.value.body;
  780. }
  781. }
  782. } catch (err) {
  783. _didIteratorError = true;
  784. _iteratorError = err;
  785. } finally {
  786. try {
  787. if (!_iteratorNormalCompletion && _iterator.return != null) {
  788. _iterator.return();
  789. }
  790. } finally {
  791. if (_didIteratorError) {
  792. throw _iteratorError;
  793. }
  794. }
  795. }
  796. return null;
  797. }
  798. }]);
  799. return ObjectExpressionCalleeDataExtractor;
  800. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  801. ObjectExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], ObjectExpressionCalleeDataExtractor);
  802. exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;
  803. /***/ }),
  804. /***/ "./src/cli/JavaScriptObfuscatorCLI.ts":
  805. /*!********************************************!*\
  806. !*** ./src/cli/JavaScriptObfuscatorCLI.ts ***!
  807. \********************************************/
  808. /*! no static exports found */
  809. /***/ (function(module, exports, __webpack_require__) {
  810. "use strict";
  811. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  812. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  813. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  814. Object.defineProperty(exports, "__esModule", {
  815. value: true
  816. });
  817. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  818. var commander = tslib_1.__importStar(__webpack_require__(/*! commander */ "commander"));
  819. var packageJson = tslib_1.__importStar(__webpack_require__(/*! pjson */ "pjson"));
  820. var path = tslib_1.__importStar(__webpack_require__(/*! path */ "path"));
  821. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  822. var Default_1 = __webpack_require__(/*! ../options/presets/Default */ "./src/options/presets/Default.ts");
  823. var ArraySanitizer_1 = __webpack_require__(/*! ./sanitizers/ArraySanitizer */ "./src/cli/sanitizers/ArraySanitizer.ts");
  824. var BooleanSanitizer_1 = __webpack_require__(/*! ./sanitizers/BooleanSanitizer */ "./src/cli/sanitizers/BooleanSanitizer.ts");
  825. var IdentifierNamesGeneratorSanitizer_1 = __webpack_require__(/*! ./sanitizers/IdentifierNamesGeneratorSanitizer */ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts");
  826. var ObfuscatingTargetSanitizer_1 = __webpack_require__(/*! ./sanitizers/ObfuscatingTargetSanitizer */ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts");
  827. var SourceMapModeSanitizer_1 = __webpack_require__(/*! ./sanitizers/SourceMapModeSanitizer */ "./src/cli/sanitizers/SourceMapModeSanitizer.ts");
  828. var StringArrayEncodingSanitizer_1 = __webpack_require__(/*! ./sanitizers/StringArrayEncodingSanitizer */ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts");
  829. var CLIUtils_1 = __webpack_require__(/*! ./utils/CLIUtils */ "./src/cli/utils/CLIUtils.ts");
  830. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  831. var SourceCodeReader_1 = __webpack_require__(/*! ./utils/SourceCodeReader */ "./src/cli/utils/SourceCodeReader.ts");
  832. var JavaScriptObfuscatorCLI =
  833. /*#__PURE__*/
  834. function () {
  835. function JavaScriptObfuscatorCLI(argv) {
  836. _classCallCheck(this, JavaScriptObfuscatorCLI);
  837. this.rawArguments = argv;
  838. this.arguments = argv.slice(2);
  839. }
  840. _createClass(JavaScriptObfuscatorCLI, [{
  841. key: "initialize",
  842. value: function initialize() {
  843. this.inputPath = path.normalize(this.arguments[0] || '');
  844. this.commands = new commander.Command();
  845. this.configureCommands();
  846. this.configureHelp();
  847. this.inputCLIOptions = this.commands.opts();
  848. }
  849. }, {
  850. key: "run",
  851. value: function run() {
  852. var canShowHelp = !this.arguments.length || this.arguments.includes('--help');
  853. if (canShowHelp) {
  854. return this.commands.outputHelp();
  855. }
  856. var sourceCodeData = new SourceCodeReader_1.SourceCodeReader(this.inputCLIOptions).readSourceCode(this.inputPath);
  857. this.processSourceCodeData(sourceCodeData);
  858. }
  859. }, {
  860. key: "buildOptions",
  861. value: function buildOptions() {
  862. var inputCLIOptions = JavaScriptObfuscatorCLI.filterOptions(this.inputCLIOptions);
  863. var configFilePath = this.inputCLIOptions.config;
  864. var configFileLocation = configFilePath ? path.resolve(configFilePath, '.') : '';
  865. var configFileOptions = configFileLocation ? CLIUtils_1.CLIUtils.getUserConfig(configFileLocation) : {};
  866. return _Object$assign({}, Default_1.DEFAULT_PRESET, configFileOptions, inputCLIOptions);
  867. }
  868. }, {
  869. key: "configureCommands",
  870. value: function configureCommands() {
  871. this.commands.usage('<inputPath> [options]').version(packageJson.version, '-v, --version').option('-o, --output <path>', 'Output path for obfuscated code').option('--compact <boolean>', 'Disable one line output code compacting', BooleanSanitizer_1.BooleanSanitizer).option('--config <boolean>', 'Name of js / json config file').option('--control-flow-flattening <boolean>', 'Enables control flow flattening', BooleanSanitizer_1.BooleanSanitizer).option('--control-flow-flattening-threshold <number>', 'The probability that the control flow flattening transformation will be applied to the node', parseFloat).option('--dead-code-injection <boolean>', 'Enables dead code injection', BooleanSanitizer_1.BooleanSanitizer).option('--dead-code-injection-threshold <number>', 'The probability that the dead code injection transformation will be applied to the node', parseFloat).option('--debug-protection <boolean>', 'Disable browser Debug panel (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer).option('--debug-protection-interval <boolean>', 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer).option('--disable-console-output <boolean>', 'Allow console.log, console.info, console.error and console.warn messages output into browser console', BooleanSanitizer_1.BooleanSanitizer).option('--domain-lock <list> (comma separated, without whitespaces)', 'Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer).option('--exclude <list> (comma separated, without whitespaces)', 'A filename or glob which indicates files to exclude from obfuscation', ArraySanitizer_1.ArraySanitizer).option('--identifier-names-generator <string> [hexadecimal, mangled]', 'Sets identifier names generator (Default: hexadecimal)', IdentifierNamesGeneratorSanitizer_1.IdentifierNamesGeneratorSanitizer).option('--identifiers-prefix <string>', 'Sets prefix for all global identifiers.').option('--log <boolean>', 'Enables logging of the information to the console', BooleanSanitizer_1.BooleanSanitizer).option('--reserved-names <list> (comma separated, without whitespaces)', 'Disable obfuscation of variable names, function names and names of function parameters that match the passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer).option('--rename-globals <boolean>', 'Allows to enable obfuscation of global variable and function names with declaration.', BooleanSanitizer_1.BooleanSanitizer).option('--rotate-string-array <boolean>', 'Disable rotation of unicode array values during obfuscation', BooleanSanitizer_1.BooleanSanitizer).option('--seed <number>', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat).option('--self-defending <boolean>', 'Disables self-defending for obfuscated code', BooleanSanitizer_1.BooleanSanitizer).option('--source-map <boolean>', 'Enables source map generation', BooleanSanitizer_1.BooleanSanitizer).option('--source-map-base-url <string>', 'Sets base url to the source map import url when `--source-map-mode=separate`').option('--source-map-file-name <string>', 'Sets file name for output source map when `--source-map-mode=separate`').option('--source-map-mode <string> [inline, separate]', 'Specify source map output mode', SourceMapModeSanitizer_1.SourceMapModeSanitizer).option('--string-array <boolean>', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', BooleanSanitizer_1.BooleanSanitizer).option('--string-array-encoding <string|boolean> [true, false, base64, rc4]', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed', StringArrayEncodingSanitizer_1.StringArrayEncodingSanitizer).option('--string-array-threshold <number>', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat).option('--target <string>', 'Allows to set target environment for obfuscated code.', ObfuscatingTargetSanitizer_1.ObfuscationTargetSanitizer).option('--transform-object-keys <boolean>', 'Enables transformation of object keys', BooleanSanitizer_1.BooleanSanitizer).option('--unicode-escape-sequence <boolean>', 'Allows to enable/disable string conversion to unicode escape sequence', BooleanSanitizer_1.BooleanSanitizer).parse(this.rawArguments);
  872. }
  873. }, {
  874. key: "configureHelp",
  875. value: function configureHelp() {
  876. this.commands.on('--help', function () {
  877. console.log(' Examples:\n');
  878. console.log(' %> javascript-obfuscator input_file_name.js --compact true --self-defending false');
  879. console.log(' %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false');
  880. console.log(' %> javascript-obfuscator input_directory_name --compact true --self-defending false');
  881. console.log('');
  882. });
  883. }
  884. }, {
  885. key: "processSourceCodeData",
  886. value: function processSourceCodeData(sourceCodeData) {
  887. var _this = this;
  888. var outputPath = this.inputCLIOptions.output ? path.normalize(this.inputCLIOptions.output) : '';
  889. if (!Array.isArray(sourceCodeData)) {
  890. var outputCodePath = outputPath || CLIUtils_1.CLIUtils.getOutputCodePath(this.inputPath);
  891. this.processSourceCode(sourceCodeData, outputCodePath, null);
  892. } else {
  893. sourceCodeData.forEach(function (_ref, index) {
  894. var filePath = _ref.filePath,
  895. content = _ref.content;
  896. var outputCodePath = outputPath ? path.join(outputPath, filePath) : CLIUtils_1.CLIUtils.getOutputCodePath(filePath);
  897. _this.processSourceCode(content, outputCodePath, index);
  898. });
  899. }
  900. }
  901. }, {
  902. key: "processSourceCode",
  903. value: function processSourceCode(sourceCode, outputCodePath, sourceCodeIndex) {
  904. var options = this.buildOptions();
  905. if (sourceCodeIndex !== null) {
  906. var baseIdentifiersPrefix = this.inputCLIOptions.identifiersPrefix || JavaScriptObfuscatorCLI.baseIdentifiersPrefix;
  907. var identifiersPrefix = "".concat(baseIdentifiersPrefix).concat(sourceCodeIndex);
  908. options = _Object$assign({}, options, {
  909. identifiersPrefix: identifiersPrefix
  910. });
  911. }
  912. if (options.sourceMap) {
  913. JavaScriptObfuscatorCLI.processSourceCodeWithSourceMap(sourceCode, outputCodePath, options);
  914. } else {
  915. JavaScriptObfuscatorCLI.processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options);
  916. }
  917. }
  918. }], [{
  919. key: "filterOptions",
  920. value: function filterOptions(options) {
  921. var filteredOptions = {};
  922. for (var option in options) {
  923. if (!options.hasOwnProperty(option) || options[option] === undefined) {
  924. continue;
  925. }
  926. filteredOptions[option] = options[option];
  927. }
  928. return filteredOptions;
  929. }
  930. }, {
  931. key: "processSourceCodeWithoutSourceMap",
  932. value: function processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options) {
  933. var obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options).getObfuscatedCode();
  934. CLIUtils_1.CLIUtils.writeFile(outputCodePath, obfuscatedCode);
  935. }
  936. }, {
  937. key: "processSourceCodeWithSourceMap",
  938. value: function processSourceCodeWithSourceMap(sourceCode, outputCodePath, options) {
  939. var outputSourceMapPath = CLIUtils_1.CLIUtils.getOutputSourceMapPath(outputCodePath, options.sourceMapFileName || '');
  940. options = _Object$assign({}, options, {
  941. sourceMapFileName: path.basename(outputSourceMapPath)
  942. });
  943. var obfuscationResult = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options);
  944. CLIUtils_1.CLIUtils.writeFile(outputCodePath, obfuscationResult.getObfuscatedCode());
  945. if (options.sourceMapMode === 'separate' && obfuscationResult.getSourceMap()) {
  946. CLIUtils_1.CLIUtils.writeFile(outputSourceMapPath, obfuscationResult.getSourceMap());
  947. }
  948. }
  949. }]);
  950. return JavaScriptObfuscatorCLI;
  951. }();
  952. JavaScriptObfuscatorCLI.encoding = 'utf8';
  953. JavaScriptObfuscatorCLI.obfuscatedFilePrefix = '-obfuscated';
  954. JavaScriptObfuscatorCLI.baseIdentifiersPrefix = 'a';
  955. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], JavaScriptObfuscatorCLI.prototype, "commands", void 0);
  956. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], JavaScriptObfuscatorCLI.prototype, "inputCLIOptions", void 0);
  957. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], JavaScriptObfuscatorCLI.prototype, "inputPath", void 0);
  958. exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI;
  959. /***/ }),
  960. /***/ "./src/cli/sanitizers/ArraySanitizer.ts":
  961. /*!**********************************************!*\
  962. !*** ./src/cli/sanitizers/ArraySanitizer.ts ***!
  963. \**********************************************/
  964. /*! no static exports found */
  965. /***/ (function(module, exports, __webpack_require__) {
  966. "use strict";
  967. Object.defineProperty(exports, "__esModule", {
  968. value: true
  969. });
  970. exports.ArraySanitizer = function (value) {
  971. if (/,$/.test(value)) {
  972. throw new SyntaxError("Multiple <list> values should be wrapped inside quotes: --option-name 'value1, value2'");
  973. }
  974. return value.split(',').map(function (string) {
  975. return string.trim();
  976. });
  977. };
  978. /***/ }),
  979. /***/ "./src/cli/sanitizers/BooleanSanitizer.ts":
  980. /*!************************************************!*\
  981. !*** ./src/cli/sanitizers/BooleanSanitizer.ts ***!
  982. \************************************************/
  983. /*! no static exports found */
  984. /***/ (function(module, exports, __webpack_require__) {
  985. "use strict";
  986. Object.defineProperty(exports, "__esModule", {
  987. value: true
  988. });
  989. exports.BooleanSanitizer = function (value) {
  990. return value === 'true' || value === '1';
  991. };
  992. /***/ }),
  993. /***/ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts":
  994. /*!*****************************************************************!*\
  995. !*** ./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts ***!
  996. \*****************************************************************/
  997. /*! no static exports found */
  998. /***/ (function(module, exports, __webpack_require__) {
  999. "use strict";
  1000. var _Object$keys = __webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys");
  1001. Object.defineProperty(exports, "__esModule", {
  1002. value: true
  1003. });
  1004. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  1005. exports.IdentifierNamesGeneratorSanitizer = function (value) {
  1006. var isCorrectIdentifierNamesGenerator = _Object$keys(IdentifierNamesGenerator_1.IdentifierNamesGenerator).some(function (key) {
  1007. return IdentifierNamesGenerator_1.IdentifierNamesGenerator[key] === value;
  1008. });
  1009. if (!isCorrectIdentifierNamesGenerator) {
  1010. throw new ReferenceError('Invalid value of `--identifier-names-generator` option');
  1011. }
  1012. return value;
  1013. };
  1014. /***/ }),
  1015. /***/ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts":
  1016. /*!**********************************************************!*\
  1017. !*** ./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts ***!
  1018. \**********************************************************/
  1019. /*! no static exports found */
  1020. /***/ (function(module, exports, __webpack_require__) {
  1021. "use strict";
  1022. var _Object$keys = __webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys");
  1023. Object.defineProperty(exports, "__esModule", {
  1024. value: true
  1025. });
  1026. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  1027. exports.ObfuscationTargetSanitizer = function (value) {
  1028. var isCorrectTarget = _Object$keys(ObfuscationTarget_1.ObfuscationTarget).some(function (key) {
  1029. return ObfuscationTarget_1.ObfuscationTarget[key] === value;
  1030. });
  1031. if (!isCorrectTarget) {
  1032. throw new ReferenceError('Invalid value of `--target` option');
  1033. }
  1034. return value;
  1035. };
  1036. /***/ }),
  1037. /***/ "./src/cli/sanitizers/SourceMapModeSanitizer.ts":
  1038. /*!******************************************************!*\
  1039. !*** ./src/cli/sanitizers/SourceMapModeSanitizer.ts ***!
  1040. \******************************************************/
  1041. /*! no static exports found */
  1042. /***/ (function(module, exports, __webpack_require__) {
  1043. "use strict";
  1044. var _Object$keys = __webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys");
  1045. Object.defineProperty(exports, "__esModule", {
  1046. value: true
  1047. });
  1048. var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  1049. exports.SourceMapModeSanitizer = function (value) {
  1050. var isCorrectSourceMapMode = _Object$keys(SourceMapMode_1.SourceMapMode).some(function (key) {
  1051. return SourceMapMode_1.SourceMapMode[key] === value;
  1052. });
  1053. if (!isCorrectSourceMapMode) {
  1054. throw new ReferenceError('Invalid value of `--source-map-mode` option');
  1055. }
  1056. return value;
  1057. };
  1058. /***/ }),
  1059. /***/ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts":
  1060. /*!************************************************************!*\
  1061. !*** ./src/cli/sanitizers/StringArrayEncodingSanitizer.ts ***!
  1062. \************************************************************/
  1063. /*! no static exports found */
  1064. /***/ (function(module, exports, __webpack_require__) {
  1065. "use strict";
  1066. Object.defineProperty(exports, "__esModule", {
  1067. value: true
  1068. });
  1069. var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  1070. exports.StringArrayEncodingSanitizer = function (value) {
  1071. switch (value) {
  1072. case 'true':
  1073. case '1':
  1074. case StringArrayEncoding_1.StringArrayEncoding.Base64:
  1075. return true;
  1076. case StringArrayEncoding_1.StringArrayEncoding.Rc4:
  1077. return StringArrayEncoding_1.StringArrayEncoding.Rc4;
  1078. default:
  1079. return false;
  1080. }
  1081. };
  1082. /***/ }),
  1083. /***/ "./src/cli/utils sync recursive":
  1084. /*!****************************!*\
  1085. !*** ./src/cli/utils sync ***!
  1086. \****************************/
  1087. /*! no static exports found */
  1088. /***/ (function(module, exports) {
  1089. function webpackEmptyContext(req) {
  1090. var e = new Error('Cannot find module "' + req + '".');
  1091. e.code = 'MODULE_NOT_FOUND';
  1092. throw e;
  1093. }
  1094. webpackEmptyContext.keys = function() { return []; };
  1095. webpackEmptyContext.resolve = webpackEmptyContext;
  1096. module.exports = webpackEmptyContext;
  1097. webpackEmptyContext.id = "./src/cli/utils sync recursive";
  1098. /***/ }),
  1099. /***/ "./src/cli/utils/CLIUtils.ts":
  1100. /*!***********************************!*\
  1101. !*** ./src/cli/utils/CLIUtils.ts ***!
  1102. \***********************************/
  1103. /*! no static exports found */
  1104. /***/ (function(module, exports, __webpack_require__) {
  1105. "use strict";
  1106. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  1107. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  1108. Object.defineProperty(exports, "__esModule", {
  1109. value: true
  1110. });
  1111. var fs = __importStar(__webpack_require__(/*! fs */ "fs"));
  1112. var mkdirp = __importStar(__webpack_require__(/*! mkdirp */ "mkdirp"));
  1113. var path = __importStar(__webpack_require__(/*! path */ "path"));
  1114. var JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts");
  1115. var CLIUtils =
  1116. /*#__PURE__*/
  1117. function () {
  1118. function CLIUtils() {
  1119. _classCallCheck(this, CLIUtils);
  1120. }
  1121. _createClass(CLIUtils, null, [{
  1122. key: "getOutputCodePath",
  1123. value: function getOutputCodePath(inputPath) {
  1124. return path.normalize(inputPath).split('.').map(function (value, index) {
  1125. return index === 0 ? "".concat(value).concat(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix) : value;
  1126. }).join('.');
  1127. }
  1128. }, {
  1129. key: "getOutputSourceMapPath",
  1130. value: function getOutputSourceMapPath(outputCodePath) {
  1131. var sourceMapFileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  1132. if (sourceMapFileName) {
  1133. outputCodePath = "".concat(outputCodePath.substring(0, outputCodePath.lastIndexOf('/')), "/").concat(sourceMapFileName);
  1134. }
  1135. if (!/\.js\.map$/.test(outputCodePath)) {
  1136. outputCodePath = "".concat(outputCodePath.split('.')[0], ".js.map");
  1137. } else if (/\.js$/.test(outputCodePath)) {
  1138. outputCodePath += '.map';
  1139. }
  1140. return outputCodePath;
  1141. }
  1142. }, {
  1143. key: "getUserConfig",
  1144. value: function getUserConfig(configPath) {
  1145. var config;
  1146. try {
  1147. config = __webpack_require__("./src/cli/utils sync recursive")(configPath);
  1148. } catch (_a) {
  1149. try {
  1150. config = require(configPath);
  1151. } catch (_b) {
  1152. throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path');
  1153. }
  1154. }
  1155. return config;
  1156. }
  1157. }, {
  1158. key: "writeFile",
  1159. value: function writeFile(outputPath, data) {
  1160. mkdirp.sync(path.dirname(outputPath));
  1161. fs.writeFileSync(outputPath, data, {
  1162. encoding: JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding
  1163. });
  1164. }
  1165. }]);
  1166. return CLIUtils;
  1167. }();
  1168. exports.CLIUtils = CLIUtils;
  1169. /***/ }),
  1170. /***/ "./src/cli/utils/SourceCodeReader.ts":
  1171. /*!*******************************************!*\
  1172. !*** ./src/cli/utils/SourceCodeReader.ts ***!
  1173. \*******************************************/
  1174. /*! no static exports found */
  1175. /***/ (function(module, exports, __webpack_require__) {
  1176. "use strict";
  1177. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  1178. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  1179. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  1180. Object.defineProperty(exports, "__esModule", {
  1181. value: true
  1182. });
  1183. var fs = __importStar(__webpack_require__(/*! fs */ "fs"));
  1184. var path = __importStar(__webpack_require__(/*! path */ "path"));
  1185. var multimatch_1 = __importDefault(__webpack_require__(/*! multimatch */ "multimatch"));
  1186. var LoggingPrefix_1 = __webpack_require__(/*! ../../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
  1187. var JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts");
  1188. var Logger_1 = __webpack_require__(/*! ../../logger/Logger */ "./src/logger/Logger.ts");
  1189. var SourceCodeReader =
  1190. /*#__PURE__*/
  1191. function () {
  1192. function SourceCodeReader(options) {
  1193. _classCallCheck(this, SourceCodeReader);
  1194. this.options = options;
  1195. }
  1196. _createClass(SourceCodeReader, [{
  1197. key: "readSourceCode",
  1198. value: function readSourceCode(inputPath) {
  1199. if (SourceCodeReader.isFilePath(inputPath) && this.isValidFile(inputPath)) {
  1200. return this.readFile(inputPath);
  1201. }
  1202. if (SourceCodeReader.isDirectoryPath(inputPath) && this.isValidDirectory(inputPath)) {
  1203. return this.readDirectoryRecursive(inputPath);
  1204. }
  1205. var availableFilePaths = SourceCodeReader.availableInputExtensions.map(function (extension) {
  1206. return "`".concat(extension, "`");
  1207. }).join(', ');
  1208. throw new ReferenceError("Given input path must be a valid ".concat(availableFilePaths, " file or directory path"));
  1209. }
  1210. }, {
  1211. key: "readDirectoryRecursive",
  1212. value: function readDirectoryRecursive(directoryPath) {
  1213. var _this = this;
  1214. var fileData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  1215. fs.readdirSync(directoryPath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding).forEach(function (fileName) {
  1216. var filePath = "".concat(directoryPath, "/").concat(fileName);
  1217. if (SourceCodeReader.isDirectoryPath(filePath) && _this.isValidDirectory(filePath)) {
  1218. fileData.push.apply(fileData, _toConsumableArray(_this.readDirectoryRecursive(filePath)));
  1219. } else if (SourceCodeReader.isFilePath(filePath) && _this.isValidFile(filePath)) {
  1220. var content = _this.readFile(filePath);
  1221. fileData.push({
  1222. filePath: filePath,
  1223. content: content
  1224. });
  1225. }
  1226. });
  1227. return fileData;
  1228. }
  1229. }, {
  1230. key: "readFile",
  1231. value: function readFile(filePath) {
  1232. SourceCodeReader.logFilePath(filePath);
  1233. return fs.readFileSync(filePath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding);
  1234. }
  1235. }, {
  1236. key: "isValidDirectory",
  1237. value: function isValidDirectory(directoryPath) {
  1238. return !SourceCodeReader.isExcludedPath(directoryPath, this.options.exclude);
  1239. }
  1240. }, {
  1241. key: "isValidFile",
  1242. value: function isValidFile(filePath) {
  1243. return SourceCodeReader.availableInputExtensions.includes(path.extname(filePath)) && !filePath.includes(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix) && !SourceCodeReader.isExcludedPath(filePath, this.options.exclude);
  1244. }
  1245. }], [{
  1246. key: "isExcludedPath",
  1247. value: function isExcludedPath(filePath) {
  1248. var excludePatterns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  1249. if (!excludePatterns.length) {
  1250. return false;
  1251. }
  1252. var fileName = path.basename(filePath);
  1253. var isExcludedFilePathByGlobPattern = !!multimatch_1.default([filePath], excludePatterns).length;
  1254. var isExcludedFilePathByInclusion = excludePatterns.some(function (excludePattern) {
  1255. return filePath.includes(excludePattern) || fileName.includes(excludePattern);
  1256. });
  1257. return isExcludedFilePathByInclusion || isExcludedFilePathByGlobPattern;
  1258. }
  1259. }, {
  1260. key: "isDirectoryPath",
  1261. value: function isDirectoryPath(filePath) {
  1262. try {
  1263. return fs.statSync(filePath).isDirectory();
  1264. } catch (_a) {
  1265. return false;
  1266. }
  1267. }
  1268. }, {
  1269. key: "isFilePath",
  1270. value: function isFilePath(filePath) {
  1271. try {
  1272. return fs.statSync(filePath).isFile();
  1273. } catch (_a) {
  1274. return false;
  1275. }
  1276. }
  1277. }, {
  1278. key: "logFilePath",
  1279. value: function logFilePath(filePath) {
  1280. var normalizedFilePath = path.normalize(filePath);
  1281. Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, "Obfuscating file: ".concat(normalizedFilePath, "..."));
  1282. }
  1283. }]);
  1284. return SourceCodeReader;
  1285. }();
  1286. SourceCodeReader.availableInputExtensions = ['.js'];
  1287. exports.SourceCodeReader = SourceCodeReader;
  1288. /***/ }),
  1289. /***/ "./src/container/InversifyContainerFacade.ts":
  1290. /*!***************************************************!*\
  1291. !*** ./src/container/InversifyContainerFacade.ts ***!
  1292. \***************************************************/
  1293. /*! no static exports found */
  1294. /***/ (function(module, exports, __webpack_require__) {
  1295. "use strict";
  1296. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  1297. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  1298. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  1299. Object.defineProperty(exports, "__esModule", {
  1300. value: true
  1301. });
  1302. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1303. var ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1304. var AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts");
  1305. var ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts");
  1306. var ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts");
  1307. var CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts");
  1308. var FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts");
  1309. var GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts");
  1310. var NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts");
  1311. var ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts");
  1312. var OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts");
  1313. var PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts");
  1314. var StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts");
  1315. var UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts");
  1316. var JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts");
  1317. var Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts");
  1318. var ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts");
  1319. var ObfuscationResult_1 = __webpack_require__(/*! ../ObfuscationResult */ "./src/ObfuscationResult.ts");
  1320. var SourceCode_1 = __webpack_require__(/*! ../SourceCode */ "./src/SourceCode.ts");
  1321. var SourceMapCorrector_1 = __webpack_require__(/*! ../source-map/SourceMapCorrector */ "./src/source-map/SourceMapCorrector.ts");
  1322. var TransformersRunner_1 = __webpack_require__(/*! ../node-transformers/TransformersRunner */ "./src/node-transformers/TransformersRunner.ts");
  1323. var InversifyContainerFacade =
  1324. /*#__PURE__*/
  1325. function () {
  1326. function InversifyContainerFacade() {
  1327. _classCallCheck(this, InversifyContainerFacade);
  1328. this.container = new inversify_1.Container();
  1329. }
  1330. _createClass(InversifyContainerFacade, [{
  1331. key: "get",
  1332. value: function get(serviceIdentifier) {
  1333. return this.container.get(serviceIdentifier);
  1334. }
  1335. }, {
  1336. key: "getNamed",
  1337. value: function getNamed(serviceIdentifier, named) {
  1338. return this.container.getNamed(serviceIdentifier, named);
  1339. }
  1340. }, {
  1341. key: "load",
  1342. value: function load(sourceCode, options) {
  1343. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode).toDynamicValue(function () {
  1344. return new SourceCode_1.SourceCode(sourceCode);
  1345. }).inSingletonScope();
  1346. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions).toDynamicValue(function () {
  1347. return options;
  1348. }).inSingletonScope();
  1349. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger).to(Logger_1.Logger).inSingletonScope();
  1350. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator).to(JavaScriptObfuscator_1.JavaScriptObfuscator).inSingletonScope();
  1351. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner).to(TransformersRunner_1.TransformersRunner).inSingletonScope();
  1352. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult).to(ObfuscationResult_1.ObfuscationResult).inSingletonScope();
  1353. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult).toFactory(function (context) {
  1354. return function (obfuscatedCode, sourceMap) {
  1355. var obfuscationResult = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult);
  1356. obfuscationResult.initialize(obfuscatedCode, sourceMap);
  1357. return obfuscationResult;
  1358. };
  1359. });
  1360. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector).to(SourceMapCorrector_1.SourceMapCorrector).inSingletonScope();
  1361. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter).to(ObfuscationEventEmitter_1.ObfuscationEventEmitter).inSingletonScope();
  1362. this.container.load(AnalyzersModule_1.analyzersModule);
  1363. this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);
  1364. this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);
  1365. this.container.load(CustomNodesModule_1.customNodesModule);
  1366. this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);
  1367. this.container.load(GeneratorsModule_1.generatorsModule);
  1368. this.container.load(NodeTransformersModule_1.nodeTransformersModule);
  1369. this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule);
  1370. this.container.load(OptionsModule_1.optionsModule);
  1371. this.container.load(PreparingTransformersModule_1.preparingTransformersModule);
  1372. this.container.load(StoragesModule_1.storagesModule);
  1373. this.container.load(UtilsModule_1.utilsModule);
  1374. }
  1375. }, {
  1376. key: "unload",
  1377. value: function unload() {
  1378. this.container.unbindAll();
  1379. }
  1380. }], [{
  1381. key: "getFactory",
  1382. value: function getFactory(serviceIdentifier) {
  1383. return function (context) {
  1384. return function (bindingName) {
  1385. return context.container.getNamed(serviceIdentifier, bindingName);
  1386. };
  1387. };
  1388. }
  1389. }, {
  1390. key: "getCacheFactory",
  1391. value: function getCacheFactory(serviceIdentifier) {
  1392. return function (context) {
  1393. var cache = new _Map();
  1394. return function (bindingName) {
  1395. if (cache.has(bindingName)) {
  1396. return cache.get(bindingName);
  1397. }
  1398. var object = context.container.getNamed(serviceIdentifier, bindingName);
  1399. cache.set(bindingName, object);
  1400. return object;
  1401. };
  1402. };
  1403. }
  1404. }, {
  1405. key: "getConstructorFactory",
  1406. value: function getConstructorFactory(serviceIdentifier) {
  1407. for (var _len = arguments.length, dependencies = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  1408. dependencies[_key - 1] = arguments[_key];
  1409. }
  1410. return function (context) {
  1411. var cache = new _Map();
  1412. var cachedDependencies = [];
  1413. return function (bindingName) {
  1414. dependencies.forEach(function (dependency, index) {
  1415. if (!cachedDependencies[index]) {
  1416. cachedDependencies[index] = context.container.get(dependency);
  1417. }
  1418. });
  1419. if (cache.has(bindingName)) {
  1420. return new (Function.prototype.bind.apply(cache.get(bindingName), [null].concat(cachedDependencies)))();
  1421. }
  1422. var constructor = context.container.getNamed(serviceIdentifier, bindingName);
  1423. cache.set(bindingName, constructor);
  1424. return new (Function.prototype.bind.apply(constructor, [null].concat(cachedDependencies)))();
  1425. };
  1426. };
  1427. }
  1428. }]);
  1429. return InversifyContainerFacade;
  1430. }();
  1431. exports.InversifyContainerFacade = InversifyContainerFacade;
  1432. /***/ }),
  1433. /***/ "./src/container/ServiceIdentifiers.ts":
  1434. /*!*********************************************!*\
  1435. !*** ./src/container/ServiceIdentifiers.ts ***!
  1436. \*********************************************/
  1437. /*! no static exports found */
  1438. /***/ (function(module, exports, __webpack_require__) {
  1439. "use strict";
  1440. Object.defineProperty(exports, "__esModule", {
  1441. value: true
  1442. });
  1443. var ServiceIdentifiers;
  1444. (function (ServiceIdentifiers) {
  1445. ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory<ICalleeDataExtractor>";
  1446. ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory<IControlFlowCustomNode>";
  1447. ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory<IControlFlowReplacer>";
  1448. ServiceIdentifiers["Factory__ICustomNode"] = "Factory<ICustomNode>";
  1449. ServiceIdentifiers["Factory__ICustomNodeGroup"] = "Factory<ICustomNodeGroup>";
  1450. ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory<IDeadCodeInjectionCustomNode>";
  1451. ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory<IIdentifierNamesGenerator>";
  1452. ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory<IIdentifierObfuscatingReplacer>";
  1453. ServiceIdentifiers["Factory__INodeGuard"] = "Factory<INodeGuard>";
  1454. ServiceIdentifiers["Factory__INodeTransformer"] = "Factory<INodeTransformer[]>";
  1455. ServiceIdentifiers["Factory__IObfuscationResult"] = "Factory<IObfuscationResult>";
  1456. ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory<IObfuscatingReplacer>";
  1457. ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory<TControlFlowStorage>";
  1458. ServiceIdentifiers["IArrayUtils"] = "IArrayUtils";
  1459. ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor";
  1460. ServiceIdentifiers["ICryptUtils"] = "ICryptUtils";
  1461. ServiceIdentifiers["ICustomNode"] = "ICustomNode";
  1462. ServiceIdentifiers["ICustomNodeGroup"] = "ICustomNodeGroup";
  1463. ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer";
  1464. ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder";
  1465. ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator";
  1466. ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer";
  1467. ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator";
  1468. ServiceIdentifiers["ILogger"] = "ILogger";
  1469. ServiceIdentifiers["INodeGuard"] = "INodeGuard";
  1470. ServiceIdentifiers["INodeTransformer"] = "INodeTransformer";
  1471. ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter";
  1472. ServiceIdentifiers["IObfuscationResult"] = "IObfuscationResult";
  1473. ServiceIdentifiers["IOptions"] = "IOptions";
  1474. ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer";
  1475. ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer";
  1476. ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator";
  1477. ServiceIdentifiers["ISourceCode"] = "ISourceCode";
  1478. ServiceIdentifiers["ISourceMapCorrector"] = "ISourceMapCorrector";
  1479. ServiceIdentifiers["IStackTraceAnalyzer"] = "IStackTraceAnalyzer";
  1480. ServiceIdentifiers["ITransformersRunner"] = "ITransformersRunner";
  1481. ServiceIdentifiers["Newable__ICustomNode"] = "Newable<ICustomNode>";
  1482. ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable<TControlFlowStorage>";
  1483. ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage";
  1484. ServiceIdentifiers["TInputOptions"] = "TInputOptions";
  1485. ServiceIdentifiers["TStringArrayStorage"] = "TStringArrayStorage";
  1486. })(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));
  1487. /***/ }),
  1488. /***/ "./src/container/modules/analyzers/AnalyzersModule.ts":
  1489. /*!************************************************************!*\
  1490. !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***!
  1491. \************************************************************/
  1492. /*! no static exports found */
  1493. /***/ (function(module, exports, __webpack_require__) {
  1494. "use strict";
  1495. Object.defineProperty(exports, "__esModule", {
  1496. value: true
  1497. });
  1498. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1499. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1500. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1501. var CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts");
  1502. var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts");
  1503. var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts");
  1504. var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts");
  1505. var StackTraceAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/StackTraceAnalyzer */ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts");
  1506. exports.analyzersModule = new inversify_1.ContainerModule(function (bind) {
  1507. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer).to(StackTraceAnalyzer_1.StackTraceAnalyzer).inSingletonScope();
  1508. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);
  1509. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);
  1510. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);
  1511. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));
  1512. });
  1513. /***/ }),
  1514. /***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts":
  1515. /*!*****************************************************************!*\
  1516. !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***!
  1517. \*****************************************************************/
  1518. /*! no static exports found */
  1519. /***/ (function(module, exports, __webpack_require__) {
  1520. "use strict";
  1521. Object.defineProperty(exports, "__esModule", {
  1522. value: true
  1523. });
  1524. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1525. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1526. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1527. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  1528. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  1529. var CustomNodeGroup_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts");
  1530. var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
  1531. var ConsoleOutputCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup */ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts");
  1532. var DebugProtectionCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup */ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts");
  1533. var DomainLockCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup */ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts");
  1534. var SelfDefendingCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup */ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts");
  1535. var StringArrayCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup */ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts");
  1536. var BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts");
  1537. var BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts");
  1538. var BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts");
  1539. var 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");
  1540. var CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts");
  1541. var 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");
  1542. var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode */ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts");
  1543. var DebugProtectionFunctionCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts");
  1544. var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts");
  1545. var DebugProtectionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts");
  1546. var DomainLockNode_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/DomainLockNode */ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts");
  1547. var 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");
  1548. var LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts");
  1549. var NodeCallsControllerFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode */ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts");
  1550. var SelfDefendingUnicodeNode_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode */ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts");
  1551. var StringArrayCallsWrapper_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallsWrapper */ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts");
  1552. var StringArrayNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayNode */ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts");
  1553. var StringArrayRotateFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayRotateFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts");
  1554. var 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");
  1555. var StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts");
  1556. exports.customNodesModule = new inversify_1.ContainerModule(function (bind) {
  1557. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode).whenTargetNamed(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode);
  1558. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionCallNode_1.DebugProtectionFunctionCallNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode);
  1559. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionIntervalNode_1.DebugProtectionFunctionIntervalNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode);
  1560. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionNode_1.DebugProtectionFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionNode);
  1561. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DomainLockNode_1.DomainLockNode).whenTargetNamed(CustomNode_1.CustomNode.DomainLockNode);
  1562. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(NodeCallsControllerFunctionNode_1.NodeCallsControllerFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  1563. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(SelfDefendingUnicodeNode_1.SelfDefendingUnicodeNode).whenTargetNamed(CustomNode_1.CustomNode.SelfDefendingUnicodeNode);
  1564. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayCallsWrapper_1.StringArrayCallsWrapper).whenTargetNamed(CustomNode_1.CustomNode.StringArrayCallsWrapper);
  1565. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayNode_1.StringArrayNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayNode);
  1566. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayRotateFunctionNode_1.StringArrayRotateFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayRotateFunctionNode);
  1567. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
  1568. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
  1569. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
  1570. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
  1571. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
  1572. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
  1573. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
  1574. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralNode_1.StringLiteralNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
  1575. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
  1576. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode).whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
  1577. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(ConsoleOutputCustomNodeGroup_1.ConsoleOutputCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup);
  1578. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DebugProtectionCustomNodeGroup_1.DebugProtectionCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup);
  1579. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DomainLockCustomNodeGroup_1.DomainLockCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup);
  1580. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(SelfDefendingCustomNodeGroup_1.SelfDefendingCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup);
  1581. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(StringArrayCustomNodeGroup_1.StringArrayCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup);
  1582. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode));
  1583. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1584. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1585. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup));
  1586. });
  1587. /***/ }),
  1588. /***/ "./src/container/modules/generators/GeneratorsModule.ts":
  1589. /*!**************************************************************!*\
  1590. !*** ./src/container/modules/generators/GeneratorsModule.ts ***!
  1591. \**************************************************************/
  1592. /*! no static exports found */
  1593. /***/ (function(module, exports, __webpack_require__) {
  1594. "use strict";
  1595. Object.defineProperty(exports, "__esModule", {
  1596. value: true
  1597. });
  1598. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1599. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1600. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  1601. var HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts");
  1602. var MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts");
  1603. exports.generatorsModule = new inversify_1.ContainerModule(function (bind) {
  1604. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
  1605. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
  1606. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function (context) {
  1607. var cachedIdentifierNamesGenerator = null;
  1608. return function (options) {
  1609. if (cachedIdentifierNamesGenerator) {
  1610. return cachedIdentifierNamesGenerator;
  1611. }
  1612. var identifierNamesGenerator;
  1613. switch (options.identifierNamesGenerator) {
  1614. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:
  1615. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
  1616. break;
  1617. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:
  1618. default:
  1619. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
  1620. }
  1621. cachedIdentifierNamesGenerator = identifierNamesGenerator;
  1622. return identifierNamesGenerator;
  1623. };
  1624. });
  1625. });
  1626. /***/ }),
  1627. /***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts":
  1628. /*!**********************************************************************************!*\
  1629. !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***!
  1630. \**********************************************************************************/
  1631. /*! no static exports found */
  1632. /***/ (function(module, exports, __webpack_require__) {
  1633. "use strict";
  1634. Object.defineProperty(exports, "__esModule", {
  1635. value: true
  1636. });
  1637. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1638. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1639. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1640. var ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
  1641. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1642. var BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts");
  1643. var BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts");
  1644. var CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts");
  1645. var DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts");
  1646. var FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts");
  1647. var LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts");
  1648. var StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts");
  1649. exports.controlFlowTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1650. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);
  1651. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);
  1652. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);
  1653. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);
  1654. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);
  1655. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);
  1656. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);
  1657. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));
  1658. });
  1659. /***/ }),
  1660. /***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts":
  1661. /*!*********************************************************************************!*\
  1662. !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***!
  1663. \*********************************************************************************/
  1664. /*! no static exports found */
  1665. /***/ (function(module, exports, __webpack_require__) {
  1666. "use strict";
  1667. Object.defineProperty(exports, "__esModule", {
  1668. value: true
  1669. });
  1670. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1671. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1672. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1673. var MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts");
  1674. var MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts");
  1675. var ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts");
  1676. var TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts");
  1677. exports.convertingTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1678. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);
  1679. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);
  1680. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);
  1681. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);
  1682. });
  1683. /***/ }),
  1684. /***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts":
  1685. /*!*********************************************************************************!*\
  1686. !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***!
  1687. \*********************************************************************************/
  1688. /*! no static exports found */
  1689. /***/ (function(module, exports, __webpack_require__) {
  1690. "use strict";
  1691. Object.defineProperty(exports, "__esModule", {
  1692. value: true
  1693. });
  1694. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1695. exports.finalizingTransformersModule = new inversify_1.ContainerModule(function (bind) {});
  1696. /***/ }),
  1697. /***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts":
  1698. /*!***************************************************************************!*\
  1699. !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***!
  1700. \***************************************************************************/
  1701. /*! no static exports found */
  1702. /***/ (function(module, exports, __webpack_require__) {
  1703. "use strict";
  1704. Object.defineProperty(exports, "__esModule", {
  1705. value: true
  1706. });
  1707. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1708. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1709. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1710. exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1711. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));
  1712. });
  1713. /***/ }),
  1714. /***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts":
  1715. /*!**********************************************************************************!*\
  1716. !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***!
  1717. \**********************************************************************************/
  1718. /*! no static exports found */
  1719. /***/ (function(module, exports, __webpack_require__) {
  1720. "use strict";
  1721. Object.defineProperty(exports, "__esModule", {
  1722. value: true
  1723. });
  1724. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1725. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1726. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1727. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  1728. var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
  1729. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1730. var BaseIdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts");
  1731. var BooleanLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts");
  1732. var CatchClauseTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/CatchClauseTransformer */ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts");
  1733. var ClassDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts");
  1734. var FunctionDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts");
  1735. var FunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts");
  1736. var LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts");
  1737. var LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts");
  1738. var NumberLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts");
  1739. var ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ObjectExpressionTransformer */ "./src/node-transformers/obfuscating-transformers/ObjectExpressionTransformer.ts");
  1740. var StringLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts");
  1741. var VariableDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts");
  1742. exports.obfuscatingTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1743. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseTransformer_1.CatchClauseTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CatchClauseTransformer);
  1744. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ClassDeclarationTransformer_1.ClassDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer);
  1745. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationTransformer_1.FunctionDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer);
  1746. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionTransformer_1.FunctionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionTransformer);
  1747. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementTransformer_1.LabeledStatementTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);
  1748. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralTransformer_1.LiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer);
  1749. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionTransformer_1.ObjectExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);
  1750. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationTransformer_1.VariableDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer);
  1751. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer);
  1752. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer);
  1753. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer);
  1754. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer).whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  1755. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer));
  1756. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer));
  1757. });
  1758. /***/ }),
  1759. /***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts":
  1760. /*!********************************************************************************!*\
  1761. !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***!
  1762. \********************************************************************************/
  1763. /*! no static exports found */
  1764. /***/ (function(module, exports, __webpack_require__) {
  1765. "use strict";
  1766. Object.defineProperty(exports, "__esModule", {
  1767. value: true
  1768. });
  1769. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1770. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1771. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1772. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1773. var ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
  1774. var BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts");
  1775. var CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CommentsTransformer */ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts");
  1776. var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
  1777. var CustomNodesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomNodesTransformer */ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts");
  1778. var EvaCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts");
  1779. var MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts");
  1780. var ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts");
  1781. var ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts");
  1782. exports.preparingTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1783. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CommentsTransformer_1.CommentsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);
  1784. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CustomNodesTransformer_1.CustomNodesTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomNodesTransformer);
  1785. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(EvaCallExpressionTransformer_1.EvalCallExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);
  1786. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MetadataTransformer_1.MetadataTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);
  1787. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);
  1788. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ParentificationTransformer_1.ParentificationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);
  1789. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard);
  1790. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard);
  1791. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));
  1792. });
  1793. /***/ }),
  1794. /***/ "./src/container/modules/options/OptionsModule.ts":
  1795. /*!********************************************************!*\
  1796. !*** ./src/container/modules/options/OptionsModule.ts ***!
  1797. \********************************************************/
  1798. /*! no static exports found */
  1799. /***/ (function(module, exports, __webpack_require__) {
  1800. "use strict";
  1801. Object.defineProperty(exports, "__esModule", {
  1802. value: true
  1803. });
  1804. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1805. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1806. var Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts");
  1807. var OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts");
  1808. exports.optionsModule = new inversify_1.ContainerModule(function (bind) {
  1809. bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions).to(Options_1.Options).inSingletonScope();
  1810. bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer).to(OptionsNormalizer_1.OptionsNormalizer).inSingletonScope();
  1811. });
  1812. /***/ }),
  1813. /***/ "./src/container/modules/storages/StoragesModule.ts":
  1814. /*!**********************************************************!*\
  1815. !*** ./src/container/modules/storages/StoragesModule.ts ***!
  1816. \**********************************************************/
  1817. /*! no static exports found */
  1818. /***/ (function(module, exports, __webpack_require__) {
  1819. "use strict";
  1820. Object.defineProperty(exports, "__esModule", {
  1821. value: true
  1822. });
  1823. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1824. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1825. var ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/control-flow/ControlFlowStorage */ "./src/storages/control-flow/ControlFlowStorage.ts");
  1826. var CustomNodeGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-node-group/CustomNodeGroupStorage */ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts");
  1827. var StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts");
  1828. exports.storagesModule = new inversify_1.ContainerModule(function (bind) {
  1829. bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage).to(CustomNodeGroupStorage_1.CustomNodeGroupStorage).inSingletonScope();
  1830. bind(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage).to(StringArrayStorage_1.StringArrayStorage).inSingletonScope();
  1831. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(ControlFlowStorage_1.ControlFlowStorage);
  1832. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function (context) {
  1833. return function () {
  1834. var constructor = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);
  1835. var randomGenerator = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);
  1836. var options = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);
  1837. var storage = new constructor(randomGenerator, options);
  1838. storage.initialize();
  1839. return storage;
  1840. };
  1841. });
  1842. });
  1843. /***/ }),
  1844. /***/ "./src/container/modules/utils/UtilsModule.ts":
  1845. /*!****************************************************!*\
  1846. !*** ./src/container/modules/utils/UtilsModule.ts ***!
  1847. \****************************************************/
  1848. /*! no static exports found */
  1849. /***/ (function(module, exports, __webpack_require__) {
  1850. "use strict";
  1851. Object.defineProperty(exports, "__esModule", {
  1852. value: true
  1853. });
  1854. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1855. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1856. var ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts");
  1857. var CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts");
  1858. var EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts");
  1859. var RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts");
  1860. exports.utilsModule = new inversify_1.ContainerModule(function (bind) {
  1861. bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils).to(ArrayUtils_1.ArrayUtils).inSingletonScope();
  1862. bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator).to(RandomGenerator_1.RandomGenerator).inSingletonScope();
  1863. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils).to(CryptUtils_1.CryptUtils).inSingletonScope();
  1864. bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder).to(EscapeSequenceEncoder_1.EscapeSequenceEncoder).inSingletonScope();
  1865. });
  1866. /***/ }),
  1867. /***/ "./src/custom-nodes/AbstractCustomNode.ts":
  1868. /*!************************************************!*\
  1869. !*** ./src/custom-nodes/AbstractCustomNode.ts ***!
  1870. \************************************************/
  1871. /*! no static exports found */
  1872. /***/ (function(module, exports, __webpack_require__) {
  1873. "use strict";
  1874. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  1875. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  1876. Object.defineProperty(exports, "__esModule", {
  1877. value: true
  1878. });
  1879. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1880. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1881. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1882. var GlobalVariableTemplate1_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate1 */ "./src/templates/GlobalVariableTemplate1.ts");
  1883. var GlobalVariableTemplate2_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate2 */ "./src/templates/GlobalVariableTemplate2.ts");
  1884. var AbstractCustomNode = AbstractCustomNode_1 =
  1885. /*#__PURE__*/
  1886. function () {
  1887. function AbstractCustomNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1888. _classCallCheck(this, AbstractCustomNode);
  1889. this.cachedNode = null;
  1890. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  1891. this.randomGenerator = randomGenerator;
  1892. this.options = options;
  1893. }
  1894. _createClass(AbstractCustomNode, [{
  1895. key: "getNode",
  1896. value: function getNode() {
  1897. if (!this.cachedNode) {
  1898. this.cachedNode = this.getNodeStructure();
  1899. }
  1900. return this.cachedNode;
  1901. }
  1902. }, {
  1903. key: "getGlobalVariableTemplate",
  1904. value: function getGlobalVariableTemplate() {
  1905. return this.randomGenerator.getRandomGenerator().pickone(AbstractCustomNode_1.globalVariableTemplateFunctions);
  1906. }
  1907. }]);
  1908. return AbstractCustomNode;
  1909. }();
  1910. AbstractCustomNode.globalVariableTemplateFunctions = [GlobalVariableTemplate1_1.GlobalVariableTemplate1(), GlobalVariableTemplate2_1.GlobalVariableTemplate2()];
  1911. AbstractCustomNode = AbstractCustomNode_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNode);
  1912. exports.AbstractCustomNode = AbstractCustomNode;
  1913. var AbstractCustomNode_1;
  1914. /***/ }),
  1915. /***/ "./src/custom-nodes/AbstractCustomNodeGroup.ts":
  1916. /*!*****************************************************!*\
  1917. !*** ./src/custom-nodes/AbstractCustomNodeGroup.ts ***!
  1918. \*****************************************************/
  1919. /*! no static exports found */
  1920. /***/ (function(module, exports, __webpack_require__) {
  1921. "use strict";
  1922. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  1923. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  1924. Object.defineProperty(exports, "__esModule", {
  1925. value: true
  1926. });
  1927. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1928. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1929. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1930. var AbstractCustomNodeGroup =
  1931. /*#__PURE__*/
  1932. function () {
  1933. function AbstractCustomNodeGroup(identifierNamesGeneratorFactory, randomGenerator, options) {
  1934. _classCallCheck(this, AbstractCustomNodeGroup);
  1935. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  1936. this.randomGenerator = randomGenerator;
  1937. this.options = options;
  1938. }
  1939. _createClass(AbstractCustomNodeGroup, [{
  1940. key: "getAppendEvent",
  1941. value: function getAppendEvent() {
  1942. return this.appendEvent;
  1943. }
  1944. }, {
  1945. key: "getCustomNodes",
  1946. value: function getCustomNodes() {
  1947. return this.customNodes;
  1948. }
  1949. }, {
  1950. key: "appendCustomNodeIfExist",
  1951. value: function appendCustomNodeIfExist(customNodeName, callback) {
  1952. var customNode = this.customNodes.get(customNodeName);
  1953. if (!customNode) {
  1954. return;
  1955. }
  1956. callback(customNode);
  1957. }
  1958. }, {
  1959. key: "getRandomStackTraceIndex",
  1960. value: function getRandomStackTraceIndex(stackTraceLength) {
  1961. return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(stackTraceLength - 1)));
  1962. }
  1963. }]);
  1964. return AbstractCustomNodeGroup;
  1965. }();
  1966. AbstractCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNodeGroup);
  1967. exports.AbstractCustomNodeGroup = AbstractCustomNodeGroup;
  1968. /***/ }),
  1969. /***/ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts":
  1970. /*!*************************************************************************************!*\
  1971. !*** ./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts ***!
  1972. \*************************************************************************************/
  1973. /*! no static exports found */
  1974. /***/ (function(module, exports, __webpack_require__) {
  1975. "use strict";
  1976. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  1977. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  1978. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  1979. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  1980. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  1981. Object.defineProperty(exports, "__esModule", {
  1982. value: true
  1983. });
  1984. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1985. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1986. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1987. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  1988. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  1989. var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ../../templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate */ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts");
  1990. var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
  1991. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1992. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1993. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1994. var ConsoleOutputDisableExpressionNode =
  1995. /*#__PURE__*/
  1996. function (_AbstractCustomNode_) {
  1997. _inherits(ConsoleOutputDisableExpressionNode, _AbstractCustomNode_);
  1998. function ConsoleOutputDisableExpressionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1999. _classCallCheck(this, ConsoleOutputDisableExpressionNode);
  2000. return _possibleConstructorReturn(this, (ConsoleOutputDisableExpressionNode.__proto__ || _Object$getPrototypeOf(ConsoleOutputDisableExpressionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2001. }
  2002. _createClass(ConsoleOutputDisableExpressionNode, [{
  2003. key: "initialize",
  2004. value: function initialize(callsControllerFunctionName) {
  2005. this.callsControllerFunctionName = callsControllerFunctionName;
  2006. }
  2007. }, {
  2008. key: "getNodeStructure",
  2009. value: function getNodeStructure() {
  2010. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2011. }
  2012. }, {
  2013. key: "getTemplate",
  2014. value: function getTemplate() {
  2015. var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  2016. return string_template_1.default(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), {
  2017. consoleLogDisableFunctionName: this.identifierNamesGenerator.generate(),
  2018. globalVariableTemplate: globalVariableTemplate,
  2019. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2020. });
  2021. }
  2022. }]);
  2023. return ConsoleOutputDisableExpressionNode;
  2024. }(AbstractCustomNode_1.AbstractCustomNode);
  2025. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ConsoleOutputDisableExpressionNode.prototype, "callsControllerFunctionName", void 0);
  2026. ConsoleOutputDisableExpressionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ConsoleOutputDisableExpressionNode);
  2027. exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode;
  2028. /***/ }),
  2029. /***/ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts":
  2030. /*!*************************************************************************************!*\
  2031. !*** ./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts ***!
  2032. \*************************************************************************************/
  2033. /*! no static exports found */
  2034. /***/ (function(module, exports, __webpack_require__) {
  2035. "use strict";
  2036. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  2037. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2038. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2039. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2040. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2041. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2042. Object.defineProperty(exports, "__esModule", {
  2043. value: true
  2044. });
  2045. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2046. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2047. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2048. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2049. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  2050. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  2051. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  2052. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  2053. var ConsoleOutputCustomNodeGroup =
  2054. /*#__PURE__*/
  2055. function (_AbstractCustomNodeGr) {
  2056. _inherits(ConsoleOutputCustomNodeGroup, _AbstractCustomNodeGr);
  2057. function ConsoleOutputCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  2058. var _this;
  2059. _classCallCheck(this, ConsoleOutputCustomNodeGroup);
  2060. _this = _possibleConstructorReturn(this, (ConsoleOutputCustomNodeGroup.__proto__ || _Object$getPrototypeOf(ConsoleOutputCustomNodeGroup)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2061. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
  2062. _this.customNodeFactory = customNodeFactory;
  2063. return _this;
  2064. }
  2065. _createClass(ConsoleOutputCustomNodeGroup, [{
  2066. key: "appendCustomNodes",
  2067. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  2068. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  2069. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, function (customNode) {
  2070. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  2071. });
  2072. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  2073. var targetBlockScope;
  2074. if (stackTraceData.length) {
  2075. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  2076. } else {
  2077. targetBlockScope = blockScopeNode;
  2078. }
  2079. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  2080. });
  2081. }
  2082. }, {
  2083. key: "initialize",
  2084. value: function initialize() {
  2085. this.customNodes = new _Map();
  2086. if (!this.options.disableConsoleOutput) {
  2087. return;
  2088. }
  2089. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  2090. var consoleOutputDisableExpressionNode = this.customNodeFactory(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode);
  2091. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  2092. consoleOutputDisableExpressionNode.initialize(callsControllerFunctionName);
  2093. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2094. this.customNodes.set(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, consoleOutputDisableExpressionNode);
  2095. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2096. }
  2097. }]);
  2098. return ConsoleOutputCustomNodeGroup;
  2099. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2100. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _Map)], ConsoleOutputCustomNodeGroup.prototype, "customNodes", void 0);
  2101. ConsoleOutputCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], ConsoleOutputCustomNodeGroup);
  2102. exports.ConsoleOutputCustomNodeGroup = ConsoleOutputCustomNodeGroup;
  2103. /***/ }),
  2104. /***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts":
  2105. /*!****************************************************************************************!*\
  2106. !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***!
  2107. \****************************************************************************************/
  2108. /*! no static exports found */
  2109. /***/ (function(module, exports, __webpack_require__) {
  2110. "use strict";
  2111. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2112. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2113. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2114. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2115. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2116. Object.defineProperty(exports, "__esModule", {
  2117. value: true
  2118. });
  2119. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2120. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2121. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2122. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2123. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2124. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2125. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2126. var BinaryExpressionFunctionNode =
  2127. /*#__PURE__*/
  2128. function (_AbstractCustomNode_) {
  2129. _inherits(BinaryExpressionFunctionNode, _AbstractCustomNode_);
  2130. function BinaryExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2131. _classCallCheck(this, BinaryExpressionFunctionNode);
  2132. return _possibleConstructorReturn(this, (BinaryExpressionFunctionNode.__proto__ || _Object$getPrototypeOf(BinaryExpressionFunctionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2133. }
  2134. _createClass(BinaryExpressionFunctionNode, [{
  2135. key: "initialize",
  2136. value: function initialize(operator) {
  2137. this.operator = operator;
  2138. }
  2139. }, {
  2140. key: "getNodeStructure",
  2141. value: function getNodeStructure() {
  2142. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))])));
  2143. NodeUtils_1.NodeUtils.parentize(structure);
  2144. return [structure];
  2145. }
  2146. }]);
  2147. return BinaryExpressionFunctionNode;
  2148. }(AbstractCustomNode_1.AbstractCustomNode);
  2149. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], BinaryExpressionFunctionNode.prototype, "operator", void 0);
  2150. BinaryExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionFunctionNode);
  2151. exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;
  2152. /***/ }),
  2153. /***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts":
  2154. /*!***************************************************************************************************!*\
  2155. !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***!
  2156. \***************************************************************************************************/
  2157. /*! no static exports found */
  2158. /***/ (function(module, exports, __webpack_require__) {
  2159. "use strict";
  2160. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2161. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2162. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2163. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2164. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2165. Object.defineProperty(exports, "__esModule", {
  2166. value: true
  2167. });
  2168. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2169. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2170. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2171. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2172. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2173. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2174. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  2175. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2176. var BlockStatementControlFlowFlatteningNode =
  2177. /*#__PURE__*/
  2178. function (_AbstractCustomNode_) {
  2179. _inherits(BlockStatementControlFlowFlatteningNode, _AbstractCustomNode_);
  2180. function BlockStatementControlFlowFlatteningNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2181. _classCallCheck(this, BlockStatementControlFlowFlatteningNode);
  2182. return _possibleConstructorReturn(this, (BlockStatementControlFlowFlatteningNode.__proto__ || _Object$getPrototypeOf(BlockStatementControlFlowFlatteningNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2183. }
  2184. _createClass(BlockStatementControlFlowFlatteningNode, [{
  2185. key: "initialize",
  2186. value: function initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {
  2187. this.blockStatementBody = blockStatementBody;
  2188. this.shuffledKeys = shuffledKeys;
  2189. this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;
  2190. }
  2191. }, {
  2192. key: "getNodeStructure",
  2193. value: function getNodeStructure() {
  2194. var _this = this;
  2195. var controllerIdentifierName = this.randomGenerator.getRandomString(6);
  2196. var indexIdentifierName = this.randomGenerator.getRandomString(6);
  2197. var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join('|')), NodeFactory_1.NodeFactory.identifierNode('split')), [NodeFactory_1.NodeFactory.literalNode('|')])), NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))]), NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([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(function (key, index) {
  2198. var statement = _this.blockStatementBody[key];
  2199. var consequent = [statement];
  2200. if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {
  2201. consequent.push(NodeFactory_1.NodeFactory.continueStatement());
  2202. }
  2203. return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);
  2204. })), NodeFactory_1.NodeFactory.breakStatement()]))]);
  2205. NodeUtils_1.NodeUtils.parentize(structure);
  2206. return [structure];
  2207. }
  2208. }]);
  2209. return BlockStatementControlFlowFlatteningNode;
  2210. }(AbstractCustomNode_1.AbstractCustomNode);
  2211. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0);
  2212. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0);
  2213. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0);
  2214. BlockStatementControlFlowFlatteningNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementControlFlowFlatteningNode);
  2215. exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;
  2216. /***/ }),
  2217. /***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts":
  2218. /*!**************************************************************************************!*\
  2219. !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***!
  2220. \**************************************************************************************/
  2221. /*! no static exports found */
  2222. /***/ (function(module, exports, __webpack_require__) {
  2223. "use strict";
  2224. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2225. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2226. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2227. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2228. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2229. Object.defineProperty(exports, "__esModule", {
  2230. value: true
  2231. });
  2232. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2233. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2234. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2235. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2236. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2237. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2238. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2239. var CallExpressionFunctionNode =
  2240. /*#__PURE__*/
  2241. function (_AbstractCustomNode_) {
  2242. _inherits(CallExpressionFunctionNode, _AbstractCustomNode_);
  2243. function CallExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2244. _classCallCheck(this, CallExpressionFunctionNode);
  2245. return _possibleConstructorReturn(this, (CallExpressionFunctionNode.__proto__ || _Object$getPrototypeOf(CallExpressionFunctionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2246. }
  2247. _createClass(CallExpressionFunctionNode, [{
  2248. key: "initialize",
  2249. value: function initialize(expressionArguments) {
  2250. this.expressionArguments = expressionArguments;
  2251. }
  2252. }, {
  2253. key: "getNodeStructure",
  2254. value: function getNodeStructure() {
  2255. var calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');
  2256. var params = [];
  2257. var argumentsLength = this.expressionArguments.length;
  2258. for (var i = 0; i < argumentsLength; i++) {
  2259. params.push(NodeFactory_1.NodeFactory.identifierNode("param".concat(i + 1)));
  2260. }
  2261. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([calleeIdentifier].concat(params), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))])));
  2262. NodeUtils_1.NodeUtils.parentize(structure);
  2263. return [structure];
  2264. }
  2265. }]);
  2266. return CallExpressionFunctionNode;
  2267. }(AbstractCustomNode_1.AbstractCustomNode);
  2268. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionFunctionNode.prototype, "expressionArguments", void 0);
  2269. CallExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionFunctionNode);
  2270. exports.CallExpressionFunctionNode = CallExpressionFunctionNode;
  2271. /***/ }),
  2272. /***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts":
  2273. /*!*****************************************************************************************!*\
  2274. !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***!
  2275. \*****************************************************************************************/
  2276. /*! no static exports found */
  2277. /***/ (function(module, exports, __webpack_require__) {
  2278. "use strict";
  2279. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2280. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2281. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2282. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2283. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2284. Object.defineProperty(exports, "__esModule", {
  2285. value: true
  2286. });
  2287. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2288. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2289. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2290. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2291. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2292. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2293. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2294. var LogicalExpressionFunctionNode =
  2295. /*#__PURE__*/
  2296. function (_AbstractCustomNode_) {
  2297. _inherits(LogicalExpressionFunctionNode, _AbstractCustomNode_);
  2298. function LogicalExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2299. _classCallCheck(this, LogicalExpressionFunctionNode);
  2300. return _possibleConstructorReturn(this, (LogicalExpressionFunctionNode.__proto__ || _Object$getPrototypeOf(LogicalExpressionFunctionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2301. }
  2302. _createClass(LogicalExpressionFunctionNode, [{
  2303. key: "initialize",
  2304. value: function initialize(operator) {
  2305. this.operator = operator;
  2306. }
  2307. }, {
  2308. key: "getNodeStructure",
  2309. value: function getNodeStructure() {
  2310. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))])));
  2311. NodeUtils_1.NodeUtils.parentize(structure);
  2312. return [structure];
  2313. }
  2314. }]);
  2315. return LogicalExpressionFunctionNode;
  2316. }(AbstractCustomNode_1.AbstractCustomNode);
  2317. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], LogicalExpressionFunctionNode.prototype, "operator", void 0);
  2318. LogicalExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionFunctionNode);
  2319. exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;
  2320. /***/ }),
  2321. /***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts":
  2322. /*!*****************************************************************************!*\
  2323. !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***!
  2324. \*****************************************************************************/
  2325. /*! no static exports found */
  2326. /***/ (function(module, exports, __webpack_require__) {
  2327. "use strict";
  2328. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2329. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2330. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2331. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2332. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2333. Object.defineProperty(exports, "__esModule", {
  2334. value: true
  2335. });
  2336. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2337. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2338. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2339. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2340. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2341. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2342. var StringLiteralNode =
  2343. /*#__PURE__*/
  2344. function (_AbstractCustomNode_) {
  2345. _inherits(StringLiteralNode, _AbstractCustomNode_);
  2346. function StringLiteralNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2347. _classCallCheck(this, StringLiteralNode);
  2348. return _possibleConstructorReturn(this, (StringLiteralNode.__proto__ || _Object$getPrototypeOf(StringLiteralNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2349. }
  2350. _createClass(StringLiteralNode, [{
  2351. key: "initialize",
  2352. value: function initialize(literalValue) {
  2353. this.literalValue = literalValue;
  2354. }
  2355. }, {
  2356. key: "getNodeStructure",
  2357. value: function getNodeStructure() {
  2358. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));
  2359. return [structure];
  2360. }
  2361. }]);
  2362. return StringLiteralNode;
  2363. }(AbstractCustomNode_1.AbstractCustomNode);
  2364. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralNode.prototype, "literalValue", void 0);
  2365. StringLiteralNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralNode);
  2366. exports.StringLiteralNode = StringLiteralNode;
  2367. /***/ }),
  2368. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts":
  2369. /*!*******************************************************************************************************************************!*\
  2370. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***!
  2371. \*******************************************************************************************************************************/
  2372. /*! no static exports found */
  2373. /***/ (function(module, exports, __webpack_require__) {
  2374. "use strict";
  2375. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  2376. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2377. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2378. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2379. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2380. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2381. Object.defineProperty(exports, "__esModule", {
  2382. value: true
  2383. });
  2384. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2385. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2386. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2387. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2388. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2389. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2390. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2391. var CallExpressionControlFlowStorageCallNode =
  2392. /*#__PURE__*/
  2393. function (_AbstractCustomNode_) {
  2394. _inherits(CallExpressionControlFlowStorageCallNode, _AbstractCustomNode_);
  2395. function CallExpressionControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2396. _classCallCheck(this, CallExpressionControlFlowStorageCallNode);
  2397. return _possibleConstructorReturn(this, (CallExpressionControlFlowStorageCallNode.__proto__ || _Object$getPrototypeOf(CallExpressionControlFlowStorageCallNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2398. }
  2399. _createClass(CallExpressionControlFlowStorageCallNode, [{
  2400. key: "initialize",
  2401. value: function initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {
  2402. this.controlFlowStorageName = controlFlowStorageName;
  2403. this.controlFlowStorageKey = controlFlowStorageKey;
  2404. this.callee = callee;
  2405. this.expressionArguments = expressionArguments;
  2406. }
  2407. }, {
  2408. key: "getNodeStructure",
  2409. value: function getNodeStructure() {
  2410. var 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)), [this.callee].concat(_toConsumableArray(this.expressionArguments))));
  2411. NodeUtils_1.NodeUtils.parentize(structure);
  2412. return [structure];
  2413. }
  2414. }]);
  2415. return CallExpressionControlFlowStorageCallNode;
  2416. }(AbstractCustomNode_1.AbstractCustomNode);
  2417. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0);
  2418. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  2419. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  2420. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0);
  2421. CallExpressionControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowStorageCallNode);
  2422. exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;
  2423. /***/ }),
  2424. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts":
  2425. /*!*************************************************************************************************************!*\
  2426. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***!
  2427. \*************************************************************************************************************/
  2428. /*! no static exports found */
  2429. /***/ (function(module, exports, __webpack_require__) {
  2430. "use strict";
  2431. var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
  2432. var _Array$from = __webpack_require__(/*! @babel/runtime/core-js/array/from */ "@babel/runtime/core-js/array/from");
  2433. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2434. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2435. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2436. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2437. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2438. Object.defineProperty(exports, "__esModule", {
  2439. value: true
  2440. });
  2441. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2442. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2443. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2444. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2445. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2446. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2447. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  2448. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2449. var ControlFlowStorageNode =
  2450. /*#__PURE__*/
  2451. function (_AbstractCustomNode_) {
  2452. _inherits(ControlFlowStorageNode, _AbstractCustomNode_);
  2453. function ControlFlowStorageNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2454. _classCallCheck(this, ControlFlowStorageNode);
  2455. return _possibleConstructorReturn(this, (ControlFlowStorageNode.__proto__ || _Object$getPrototypeOf(ControlFlowStorageNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2456. }
  2457. _createClass(ControlFlowStorageNode, [{
  2458. key: "initialize",
  2459. value: function initialize(controlFlowStorage) {
  2460. this.controlFlowStorage = controlFlowStorage;
  2461. }
  2462. }, {
  2463. key: "getNodeStructure",
  2464. value: function getNodeStructure() {
  2465. var propertyNodes = _Array$from(this.controlFlowStorage.getStorage()).map(function (_ref) {
  2466. var _ref2 = _slicedToArray(_ref, 2),
  2467. key = _ref2[0],
  2468. value = _ref2[1];
  2469. var node = value.getNode()[0];
  2470. if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {
  2471. throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');
  2472. }
  2473. return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);
  2474. });
  2475. var structure = NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))]);
  2476. structure = NodeUtils_1.NodeUtils.parentize(structure);
  2477. return [structure];
  2478. }
  2479. }]);
  2480. return ControlFlowStorageNode;
  2481. }(AbstractCustomNode_1.AbstractCustomNode);
  2482. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0);
  2483. ControlFlowStorageNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ControlFlowStorageNode);
  2484. exports.ControlFlowStorageNode = ControlFlowStorageNode;
  2485. /***/ }),
  2486. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts":
  2487. /*!***************************************************************************************************************************************!*\
  2488. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***!
  2489. \***************************************************************************************************************************************/
  2490. /*! no static exports found */
  2491. /***/ (function(module, exports, __webpack_require__) {
  2492. "use strict";
  2493. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2494. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2495. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2496. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2497. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2498. Object.defineProperty(exports, "__esModule", {
  2499. value: true
  2500. });
  2501. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2502. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2503. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2504. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2505. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2506. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2507. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2508. var ExpressionWithOperatorControlFlowStorageCallNode =
  2509. /*#__PURE__*/
  2510. function (_AbstractCustomNode_) {
  2511. _inherits(ExpressionWithOperatorControlFlowStorageCallNode, _AbstractCustomNode_);
  2512. function ExpressionWithOperatorControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2513. _classCallCheck(this, ExpressionWithOperatorControlFlowStorageCallNode);
  2514. return _possibleConstructorReturn(this, (ExpressionWithOperatorControlFlowStorageCallNode.__proto__ || _Object$getPrototypeOf(ExpressionWithOperatorControlFlowStorageCallNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2515. }
  2516. _createClass(ExpressionWithOperatorControlFlowStorageCallNode, [{
  2517. key: "initialize",
  2518. value: function initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {
  2519. this.controlFlowStorageName = controlFlowStorageName;
  2520. this.controlFlowStorageKey = controlFlowStorageKey;
  2521. this.leftValue = leftValue;
  2522. this.rightValue = rightValue;
  2523. }
  2524. }, {
  2525. key: "getNodeStructure",
  2526. value: function getNodeStructure() {
  2527. var 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)), [this.leftValue, this.rightValue]));
  2528. NodeUtils_1.NodeUtils.parentize(structure);
  2529. return [structure];
  2530. }
  2531. }]);
  2532. return ExpressionWithOperatorControlFlowStorageCallNode;
  2533. }(AbstractCustomNode_1.AbstractCustomNode);
  2534. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  2535. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  2536. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "leftValue", void 0);
  2537. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "rightValue", void 0);
  2538. ExpressionWithOperatorControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowStorageCallNode);
  2539. exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;
  2540. /***/ }),
  2541. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts":
  2542. /*!******************************************************************************************************************************!*\
  2543. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***!
  2544. \******************************************************************************************************************************/
  2545. /*! no static exports found */
  2546. /***/ (function(module, exports, __webpack_require__) {
  2547. "use strict";
  2548. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2549. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2550. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2551. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2552. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2553. Object.defineProperty(exports, "__esModule", {
  2554. value: true
  2555. });
  2556. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2557. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2558. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2559. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2560. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2561. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2562. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2563. var StringLiteralControlFlowStorageCallNode =
  2564. /*#__PURE__*/
  2565. function (_AbstractCustomNode_) {
  2566. _inherits(StringLiteralControlFlowStorageCallNode, _AbstractCustomNode_);
  2567. function StringLiteralControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2568. _classCallCheck(this, StringLiteralControlFlowStorageCallNode);
  2569. return _possibleConstructorReturn(this, (StringLiteralControlFlowStorageCallNode.__proto__ || _Object$getPrototypeOf(StringLiteralControlFlowStorageCallNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2570. }
  2571. _createClass(StringLiteralControlFlowStorageCallNode, [{
  2572. key: "initialize",
  2573. value: function initialize(controlFlowStorageName, controlFlowStorageKey) {
  2574. this.controlFlowStorageName = controlFlowStorageName;
  2575. this.controlFlowStorageKey = controlFlowStorageKey;
  2576. }
  2577. }, {
  2578. key: "getNodeStructure",
  2579. value: function getNodeStructure() {
  2580. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));
  2581. NodeUtils_1.NodeUtils.parentize(structure);
  2582. return [structure];
  2583. }
  2584. }]);
  2585. return StringLiteralControlFlowStorageCallNode;
  2586. }(AbstractCustomNode_1.AbstractCustomNode);
  2587. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  2588. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  2589. StringLiteralControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowStorageCallNode);
  2590. exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;
  2591. /***/ }),
  2592. /***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts":
  2593. /*!*******************************************************************************************!*\
  2594. !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***!
  2595. \*******************************************************************************************/
  2596. /*! no static exports found */
  2597. /***/ (function(module, exports, __webpack_require__) {
  2598. "use strict";
  2599. var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
  2600. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2601. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2602. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2603. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2604. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2605. Object.defineProperty(exports, "__esModule", {
  2606. value: true
  2607. });
  2608. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2609. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2610. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2611. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2612. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2613. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2614. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2615. var BlockStatementDeadCodeInjectionNode =
  2616. /*#__PURE__*/
  2617. function (_AbstractCustomNode_) {
  2618. _inherits(BlockStatementDeadCodeInjectionNode, _AbstractCustomNode_);
  2619. function BlockStatementDeadCodeInjectionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2620. _classCallCheck(this, BlockStatementDeadCodeInjectionNode);
  2621. return _possibleConstructorReturn(this, (BlockStatementDeadCodeInjectionNode.__proto__ || _Object$getPrototypeOf(BlockStatementDeadCodeInjectionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2622. }
  2623. _createClass(BlockStatementDeadCodeInjectionNode, [{
  2624. key: "initialize",
  2625. value: function initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {
  2626. this.blockStatementNode = blockStatementNode;
  2627. this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;
  2628. }
  2629. }, {
  2630. key: "getNodeStructure",
  2631. value: function getNodeStructure() {
  2632. var random1 = this.randomGenerator.getMathRandom() > 0.5;
  2633. var random2 = this.randomGenerator.getMathRandom() > 0.5;
  2634. var operator = random1 ? '===' : '!==';
  2635. var leftString = this.randomGenerator.getRandomString(5);
  2636. var rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);
  2637. var _ref = random1 === random2 ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode],
  2638. _ref2 = _slicedToArray(_ref, 2),
  2639. consequent = _ref2[0],
  2640. alternate = _ref2[1];
  2641. var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)]);
  2642. NodeUtils_1.NodeUtils.parentize(structure);
  2643. return [structure];
  2644. }
  2645. }]);
  2646. return BlockStatementDeadCodeInjectionNode;
  2647. }(AbstractCustomNode_1.AbstractCustomNode);
  2648. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "blockStatementNode", void 0);
  2649. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "deadCodeInjectionRootAstHostNode", void 0);
  2650. BlockStatementDeadCodeInjectionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementDeadCodeInjectionNode);
  2651. exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;
  2652. /***/ }),
  2653. /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts":
  2654. /*!************************************************************************************!*\
  2655. !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts ***!
  2656. \************************************************************************************/
  2657. /*! no static exports found */
  2658. /***/ (function(module, exports, __webpack_require__) {
  2659. "use strict";
  2660. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2661. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2662. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2663. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2664. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2665. Object.defineProperty(exports, "__esModule", {
  2666. value: true
  2667. });
  2668. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2669. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2670. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2671. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2672. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2673. var DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts");
  2674. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2675. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2676. var DebugProtectionFunctionCallNode =
  2677. /*#__PURE__*/
  2678. function (_AbstractCustomNode_) {
  2679. _inherits(DebugProtectionFunctionCallNode, _AbstractCustomNode_);
  2680. function DebugProtectionFunctionCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2681. _classCallCheck(this, DebugProtectionFunctionCallNode);
  2682. return _possibleConstructorReturn(this, (DebugProtectionFunctionCallNode.__proto__ || _Object$getPrototypeOf(DebugProtectionFunctionCallNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2683. }
  2684. _createClass(DebugProtectionFunctionCallNode, [{
  2685. key: "initialize",
  2686. value: function initialize(debugProtectionFunctionName, callsControllerFunctionName) {
  2687. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2688. this.callsControllerFunctionName = callsControllerFunctionName;
  2689. }
  2690. }, {
  2691. key: "getNodeStructure",
  2692. value: function getNodeStructure() {
  2693. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2694. }
  2695. }, {
  2696. key: "getTemplate",
  2697. value: function getTemplate() {
  2698. return string_template_1.default(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {
  2699. debugProtectionFunctionName: this.debugProtectionFunctionName,
  2700. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2701. });
  2702. }
  2703. }]);
  2704. return DebugProtectionFunctionCallNode;
  2705. }(AbstractCustomNode_1.AbstractCustomNode);
  2706. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "callsControllerFunctionName", void 0);
  2707. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "debugProtectionFunctionName", void 0);
  2708. DebugProtectionFunctionCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionCallNode);
  2709. exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode;
  2710. /***/ }),
  2711. /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts":
  2712. /*!****************************************************************************************!*\
  2713. !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts ***!
  2714. \****************************************************************************************/
  2715. /*! no static exports found */
  2716. /***/ (function(module, exports, __webpack_require__) {
  2717. "use strict";
  2718. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2719. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2720. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2721. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2722. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2723. Object.defineProperty(exports, "__esModule", {
  2724. value: true
  2725. });
  2726. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2727. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2728. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2729. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2730. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2731. var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts");
  2732. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2733. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2734. var DebugProtectionFunctionIntervalNode =
  2735. /*#__PURE__*/
  2736. function (_AbstractCustomNode_) {
  2737. _inherits(DebugProtectionFunctionIntervalNode, _AbstractCustomNode_);
  2738. function DebugProtectionFunctionIntervalNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2739. _classCallCheck(this, DebugProtectionFunctionIntervalNode);
  2740. return _possibleConstructorReturn(this, (DebugProtectionFunctionIntervalNode.__proto__ || _Object$getPrototypeOf(DebugProtectionFunctionIntervalNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2741. }
  2742. _createClass(DebugProtectionFunctionIntervalNode, [{
  2743. key: "initialize",
  2744. value: function initialize(debugProtectionFunctionName) {
  2745. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2746. }
  2747. }, {
  2748. key: "getNodeStructure",
  2749. value: function getNodeStructure() {
  2750. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2751. }
  2752. }, {
  2753. key: "getTemplate",
  2754. value: function getTemplate() {
  2755. return string_template_1.default(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {
  2756. debugProtectionFunctionName: this.debugProtectionFunctionName
  2757. });
  2758. }
  2759. }]);
  2760. return DebugProtectionFunctionIntervalNode;
  2761. }(AbstractCustomNode_1.AbstractCustomNode);
  2762. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionIntervalNode.prototype, "debugProtectionFunctionName", void 0);
  2763. DebugProtectionFunctionIntervalNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionIntervalNode);
  2764. exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode;
  2765. /***/ }),
  2766. /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts":
  2767. /*!********************************************************************************!*\
  2768. !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts ***!
  2769. \********************************************************************************/
  2770. /*! no static exports found */
  2771. /***/ (function(module, exports, __webpack_require__) {
  2772. "use strict";
  2773. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2774. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2775. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2776. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2777. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2778. Object.defineProperty(exports, "__esModule", {
  2779. value: true
  2780. });
  2781. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2782. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2783. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2784. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2785. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  2786. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2787. var DebuggerTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts");
  2788. var DebuggerTemplateNoEval_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts");
  2789. var DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts");
  2790. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2791. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2792. var DebugProtectionFunctionNode =
  2793. /*#__PURE__*/
  2794. function (_AbstractCustomNode_) {
  2795. _inherits(DebugProtectionFunctionNode, _AbstractCustomNode_);
  2796. function DebugProtectionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2797. _classCallCheck(this, DebugProtectionFunctionNode);
  2798. return _possibleConstructorReturn(this, (DebugProtectionFunctionNode.__proto__ || _Object$getPrototypeOf(DebugProtectionFunctionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2799. }
  2800. _createClass(DebugProtectionFunctionNode, [{
  2801. key: "initialize",
  2802. value: function initialize(debugProtectionFunctionName) {
  2803. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2804. }
  2805. }, {
  2806. key: "getNodeStructure",
  2807. value: function getNodeStructure() {
  2808. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2809. }
  2810. }, {
  2811. key: "getTemplate",
  2812. value: function getTemplate() {
  2813. var debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? DebuggerTemplate_1.DebuggerTemplate() : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();
  2814. return string_template_1.default(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {
  2815. debuggerTemplate: debuggerTemplate,
  2816. debugProtectionFunctionName: this.debugProtectionFunctionName
  2817. });
  2818. }
  2819. }]);
  2820. return DebugProtectionFunctionNode;
  2821. }(AbstractCustomNode_1.AbstractCustomNode);
  2822. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionNode.prototype, "debugProtectionFunctionName", void 0);
  2823. DebugProtectionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionNode);
  2824. exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode;
  2825. /***/ }),
  2826. /***/ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts":
  2827. /*!*****************************************************************************************!*\
  2828. !*** ./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts ***!
  2829. \*****************************************************************************************/
  2830. /*! no static exports found */
  2831. /***/ (function(module, exports, __webpack_require__) {
  2832. "use strict";
  2833. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  2834. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2835. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2836. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2837. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2838. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2839. Object.defineProperty(exports, "__esModule", {
  2840. value: true
  2841. });
  2842. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2843. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2844. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2845. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2846. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  2847. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  2848. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  2849. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  2850. var DebugProtectionCustomNodeGroup =
  2851. /*#__PURE__*/
  2852. function (_AbstractCustomNodeGr) {
  2853. _inherits(DebugProtectionCustomNodeGroup, _AbstractCustomNodeGr);
  2854. function DebugProtectionCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  2855. var _this;
  2856. _classCallCheck(this, DebugProtectionCustomNodeGroup);
  2857. _this = _possibleConstructorReturn(this, (DebugProtectionCustomNodeGroup.__proto__ || _Object$getPrototypeOf(DebugProtectionCustomNodeGroup)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2858. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
  2859. _this.customNodeFactory = customNodeFactory;
  2860. return _this;
  2861. }
  2862. _createClass(DebugProtectionCustomNodeGroup, [{
  2863. key: "appendCustomNodes",
  2864. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  2865. var _this2 = this;
  2866. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  2867. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, function (customNode) {
  2868. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  2869. });
  2870. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionNode, function (customNode) {
  2871. NodeAppender_1.NodeAppender.appendNode(blockScopeNode, customNode.getNode());
  2872. });
  2873. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, function (customNode) {
  2874. var programBodyLength = blockScopeNode.body.length;
  2875. var randomIndex = _this2.randomGenerator.getRandomInteger(0, programBodyLength);
  2876. NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, customNode.getNode(), randomIndex);
  2877. });
  2878. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  2879. var targetBlockScope;
  2880. if (stackTraceData.length) {
  2881. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  2882. } else {
  2883. targetBlockScope = blockScopeNode;
  2884. }
  2885. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  2886. });
  2887. }
  2888. }, {
  2889. key: "initialize",
  2890. value: function initialize() {
  2891. this.customNodes = new _Map();
  2892. if (!this.options.debugProtection) {
  2893. return;
  2894. }
  2895. var debugProtectionFunctionName = this.identifierNamesGenerator.generate();
  2896. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  2897. var debugProtectionFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionNode);
  2898. var debugProtectionFunctionCallNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode);
  2899. var debugProtectionFunctionIntervalNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode);
  2900. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  2901. debugProtectionFunctionNode.initialize(debugProtectionFunctionName);
  2902. debugProtectionFunctionCallNode.initialize(debugProtectionFunctionName, callsControllerFunctionName);
  2903. debugProtectionFunctionIntervalNode.initialize(debugProtectionFunctionName);
  2904. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2905. this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionNode, debugProtectionFunctionNode);
  2906. this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, debugProtectionFunctionCallNode);
  2907. if (this.options.debugProtectionInterval) {
  2908. this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, debugProtectionFunctionIntervalNode);
  2909. }
  2910. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2911. }
  2912. }]);
  2913. return DebugProtectionCustomNodeGroup;
  2914. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2915. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _Map)], DebugProtectionCustomNodeGroup.prototype, "customNodes", void 0);
  2916. DebugProtectionCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DebugProtectionCustomNodeGroup);
  2917. exports.DebugProtectionCustomNodeGroup = DebugProtectionCustomNodeGroup;
  2918. /***/ }),
  2919. /***/ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts":
  2920. /*!**************************************************************!*\
  2921. !*** ./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts ***!
  2922. \**************************************************************/
  2923. /*! no static exports found */
  2924. /***/ (function(module, exports, __webpack_require__) {
  2925. "use strict";
  2926. var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
  2927. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2928. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  2929. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  2930. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  2931. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  2932. Object.defineProperty(exports, "__esModule", {
  2933. value: true
  2934. });
  2935. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2936. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2937. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2938. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2939. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  2940. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2941. var DomainLockNodeTemplate_1 = __webpack_require__(/*! ../../templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate */ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts");
  2942. var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
  2943. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2944. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2945. var DomainLockNode =
  2946. /*#__PURE__*/
  2947. function (_AbstractCustomNode_) {
  2948. _inherits(DomainLockNode, _AbstractCustomNode_);
  2949. function DomainLockNode(identifierNamesGeneratorFactory, randomGenerator, cryptUtils, options) {
  2950. var _this;
  2951. _classCallCheck(this, DomainLockNode);
  2952. _this = _possibleConstructorReturn(this, (DomainLockNode.__proto__ || _Object$getPrototypeOf(DomainLockNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2953. _this.cryptUtils = cryptUtils;
  2954. return _this;
  2955. }
  2956. _createClass(DomainLockNode, [{
  2957. key: "initialize",
  2958. value: function initialize(callsControllerFunctionName) {
  2959. this.callsControllerFunctionName = callsControllerFunctionName;
  2960. }
  2961. }, {
  2962. key: "getNodeStructure",
  2963. value: function getNodeStructure() {
  2964. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2965. }
  2966. }, {
  2967. key: "getTemplate",
  2968. value: function getTemplate() {
  2969. var domainsString = this.options.domainLock.join(';');
  2970. var _cryptUtils$hideStrin = this.cryptUtils.hideString(domainsString, domainsString.length * 3),
  2971. _cryptUtils$hideStrin2 = _slicedToArray(_cryptUtils$hideStrin, 2),
  2972. hiddenDomainsString = _cryptUtils$hideStrin2[0],
  2973. diff = _cryptUtils$hideStrin2[1];
  2974. var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  2975. return string_template_1.default(DomainLockNodeTemplate_1.DomainLockNodeTemplate(), {
  2976. domainLockFunctionName: this.identifierNamesGenerator.generate(),
  2977. diff: diff,
  2978. domains: hiddenDomainsString,
  2979. globalVariableTemplate: globalVariableTemplate,
  2980. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2981. });
  2982. }
  2983. }]);
  2984. return DomainLockNode;
  2985. }(AbstractCustomNode_1.AbstractCustomNode);
  2986. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DomainLockNode.prototype, "callsControllerFunctionName", void 0);
  2987. DomainLockNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DomainLockNode);
  2988. exports.DomainLockNode = DomainLockNode;
  2989. /***/ }),
  2990. /***/ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts":
  2991. /*!*******************************************************************************!*\
  2992. !*** ./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts ***!
  2993. \*******************************************************************************/
  2994. /*! no static exports found */
  2995. /***/ (function(module, exports, __webpack_require__) {
  2996. "use strict";
  2997. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  2998. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  2999. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3000. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3001. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3002. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3003. Object.defineProperty(exports, "__esModule", {
  3004. value: true
  3005. });
  3006. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3007. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3008. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3009. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3010. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  3011. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  3012. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  3013. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3014. var DomainLockCustomNodeGroup =
  3015. /*#__PURE__*/
  3016. function (_AbstractCustomNodeGr) {
  3017. _inherits(DomainLockCustomNodeGroup, _AbstractCustomNodeGr);
  3018. function DomainLockCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  3019. var _this;
  3020. _classCallCheck(this, DomainLockCustomNodeGroup);
  3021. _this = _possibleConstructorReturn(this, (DomainLockCustomNodeGroup.__proto__ || _Object$getPrototypeOf(DomainLockCustomNodeGroup)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3022. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
  3023. _this.customNodeFactory = customNodeFactory;
  3024. return _this;
  3025. }
  3026. _createClass(DomainLockCustomNodeGroup, [{
  3027. key: "appendCustomNodes",
  3028. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  3029. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  3030. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DomainLockNode, function (customNode) {
  3031. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  3032. });
  3033. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  3034. var targetBlockScope;
  3035. if (stackTraceData.length) {
  3036. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  3037. } else {
  3038. targetBlockScope = blockScopeNode;
  3039. }
  3040. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  3041. });
  3042. }
  3043. }, {
  3044. key: "initialize",
  3045. value: function initialize() {
  3046. this.customNodes = new _Map();
  3047. if (!this.options.domainLock.length) {
  3048. return;
  3049. }
  3050. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  3051. var domainLockNode = this.customNodeFactory(CustomNode_1.CustomNode.DomainLockNode);
  3052. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  3053. domainLockNode.initialize(callsControllerFunctionName);
  3054. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  3055. this.customNodes.set(CustomNode_1.CustomNode.DomainLockNode, domainLockNode);
  3056. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  3057. }
  3058. }]);
  3059. return DomainLockCustomNodeGroup;
  3060. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  3061. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _Map)], DomainLockCustomNodeGroup.prototype, "customNodes", void 0);
  3062. DomainLockCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DomainLockCustomNodeGroup);
  3063. exports.DomainLockCustomNodeGroup = DomainLockCustomNodeGroup;
  3064. /***/ }),
  3065. /***/ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts":
  3066. /*!*****************************************************************************************!*\
  3067. !*** ./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts ***!
  3068. \*****************************************************************************************/
  3069. /*! no static exports found */
  3070. /***/ (function(module, exports, __webpack_require__) {
  3071. "use strict";
  3072. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  3073. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3074. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3075. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3076. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3077. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3078. Object.defineProperty(exports, "__esModule", {
  3079. value: true
  3080. });
  3081. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3082. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3083. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3084. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  3085. var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  3086. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3087. var SingleNodeCallControllerTemplate_1 = __webpack_require__(/*! ../../templates/SingleNodeCallControllerTemplate */ "./src/templates/SingleNodeCallControllerTemplate.ts");
  3088. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  3089. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  3090. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  3091. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3092. var NodeCallsControllerFunctionNode =
  3093. /*#__PURE__*/
  3094. function (_AbstractCustomNode_) {
  3095. _inherits(NodeCallsControllerFunctionNode, _AbstractCustomNode_);
  3096. function NodeCallsControllerFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  3097. _classCallCheck(this, NodeCallsControllerFunctionNode);
  3098. return _possibleConstructorReturn(this, (NodeCallsControllerFunctionNode.__proto__ || _Object$getPrototypeOf(NodeCallsControllerFunctionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3099. }
  3100. _createClass(NodeCallsControllerFunctionNode, [{
  3101. key: "initialize",
  3102. value: function initialize(appendEvent, callsControllerFunctionName) {
  3103. this.appendEvent = appendEvent;
  3104. this.callsControllerFunctionName = callsControllerFunctionName;
  3105. }
  3106. }, {
  3107. key: "getNodeStructure",
  3108. value: function getNodeStructure() {
  3109. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  3110. }
  3111. }, {
  3112. key: "getTemplate",
  3113. value: function getTemplate() {
  3114. if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {
  3115. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
  3116. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  3117. }), _Object$assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, {
  3118. identifierNamesGenerator: this.options.identifierNamesGenerator,
  3119. seed: this.options.seed
  3120. })).getObfuscatedCode();
  3121. }
  3122. return string_template_1.default(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
  3123. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  3124. });
  3125. }
  3126. }]);
  3127. return NodeCallsControllerFunctionNode;
  3128. }(AbstractCustomNode_1.AbstractCustomNode);
  3129. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "callsControllerFunctionName", void 0);
  3130. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "appendEvent", void 0);
  3131. NodeCallsControllerFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], NodeCallsControllerFunctionNode);
  3132. exports.NodeCallsControllerFunctionNode = NodeCallsControllerFunctionNode;
  3133. /***/ }),
  3134. /***/ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts":
  3135. /*!***************************************************************************!*\
  3136. !*** ./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts ***!
  3137. \***************************************************************************/
  3138. /*! no static exports found */
  3139. /***/ (function(module, exports, __webpack_require__) {
  3140. "use strict";
  3141. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  3142. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3143. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3144. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3145. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3146. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3147. Object.defineProperty(exports, "__esModule", {
  3148. value: true
  3149. });
  3150. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3151. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3152. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3153. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  3154. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3155. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  3156. var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate */ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts");
  3157. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  3158. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  3159. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3160. var SelfDefendingUnicodeNode =
  3161. /*#__PURE__*/
  3162. function (_AbstractCustomNode_) {
  3163. _inherits(SelfDefendingUnicodeNode, _AbstractCustomNode_);
  3164. function SelfDefendingUnicodeNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
  3165. var _this;
  3166. _classCallCheck(this, SelfDefendingUnicodeNode);
  3167. _this = _possibleConstructorReturn(this, (SelfDefendingUnicodeNode.__proto__ || _Object$getPrototypeOf(SelfDefendingUnicodeNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3168. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  3169. return _this;
  3170. }
  3171. _createClass(SelfDefendingUnicodeNode, [{
  3172. key: "initialize",
  3173. value: function initialize(callsControllerFunctionName) {
  3174. this.callsControllerFunctionName = callsControllerFunctionName;
  3175. }
  3176. }, {
  3177. key: "getNodeStructure",
  3178. value: function getNodeStructure() {
  3179. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  3180. }
  3181. }, {
  3182. key: "getTemplate",
  3183. value: function getTemplate() {
  3184. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
  3185. selfDefendingFunctionName: this.identifierNamesGenerator.generate(),
  3186. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  3187. }), _Object$assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, {
  3188. identifierNamesGenerator: this.options.identifierNamesGenerator,
  3189. seed: this.options.seed,
  3190. unicodeEscapeSequence: true
  3191. })).getObfuscatedCode();
  3192. }
  3193. }]);
  3194. return SelfDefendingUnicodeNode;
  3195. }(AbstractCustomNode_1.AbstractCustomNode);
  3196. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], SelfDefendingUnicodeNode.prototype, "callsControllerFunctionName", void 0);
  3197. SelfDefendingUnicodeNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], SelfDefendingUnicodeNode);
  3198. exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode;
  3199. /***/ }),
  3200. /***/ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts":
  3201. /*!*************************************************************************************!*\
  3202. !*** ./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts ***!
  3203. \*************************************************************************************/
  3204. /*! no static exports found */
  3205. /***/ (function(module, exports, __webpack_require__) {
  3206. "use strict";
  3207. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  3208. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3209. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3210. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3211. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3212. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3213. Object.defineProperty(exports, "__esModule", {
  3214. value: true
  3215. });
  3216. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3217. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3218. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3219. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3220. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  3221. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  3222. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  3223. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3224. var SelfDefendingCustomNodeGroup =
  3225. /*#__PURE__*/
  3226. function (_AbstractCustomNodeGr) {
  3227. _inherits(SelfDefendingCustomNodeGroup, _AbstractCustomNodeGr);
  3228. function SelfDefendingCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  3229. var _this;
  3230. _classCallCheck(this, SelfDefendingCustomNodeGroup);
  3231. _this = _possibleConstructorReturn(this, (SelfDefendingCustomNodeGroup.__proto__ || _Object$getPrototypeOf(SelfDefendingCustomNodeGroup)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3232. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
  3233. _this.customNodeFactory = customNodeFactory;
  3234. return _this;
  3235. }
  3236. _createClass(SelfDefendingCustomNodeGroup, [{
  3237. key: "appendCustomNodes",
  3238. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  3239. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  3240. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, function (customNode) {
  3241. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  3242. });
  3243. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  3244. var targetBlockScope;
  3245. if (stackTraceData.length) {
  3246. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  3247. } else {
  3248. targetBlockScope = blockScopeNode;
  3249. }
  3250. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  3251. });
  3252. }
  3253. }, {
  3254. key: "initialize",
  3255. value: function initialize() {
  3256. this.customNodes = new _Map();
  3257. if (!this.options.selfDefending) {
  3258. return;
  3259. }
  3260. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  3261. var selfDefendingUnicodeNode = this.customNodeFactory(CustomNode_1.CustomNode.SelfDefendingUnicodeNode);
  3262. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  3263. selfDefendingUnicodeNode.initialize(callsControllerFunctionName);
  3264. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  3265. this.customNodes.set(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, selfDefendingUnicodeNode);
  3266. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  3267. }
  3268. }]);
  3269. return SelfDefendingCustomNodeGroup;
  3270. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  3271. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _Map)], SelfDefendingCustomNodeGroup.prototype, "customNodes", void 0);
  3272. SelfDefendingCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], SelfDefendingCustomNodeGroup);
  3273. exports.SelfDefendingCustomNodeGroup = SelfDefendingCustomNodeGroup;
  3274. /***/ }),
  3275. /***/ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts":
  3276. /*!************************************************************************!*\
  3277. !*** ./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts ***!
  3278. \************************************************************************/
  3279. /*! no static exports found */
  3280. /***/ (function(module, exports, __webpack_require__) {
  3281. "use strict";
  3282. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  3283. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3284. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3285. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3286. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3287. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3288. Object.defineProperty(exports, "__esModule", {
  3289. value: true
  3290. });
  3291. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3292. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3293. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3294. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  3295. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  3296. var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  3297. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3298. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  3299. var AtobTemplate_1 = __webpack_require__(/*! ../../templates/AtobTemplate */ "./src/templates/AtobTemplate.ts");
  3300. var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
  3301. var Rc4Template_1 = __webpack_require__(/*! ../../templates/Rc4Template */ "./src/templates/Rc4Template.ts");
  3302. var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts");
  3303. var StringArrayBase64DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts");
  3304. var StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts");
  3305. var StringArrayRC4DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts");
  3306. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  3307. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  3308. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3309. var StringArrayCallsWrapper =
  3310. /*#__PURE__*/
  3311. function (_AbstractCustomNode_) {
  3312. _inherits(StringArrayCallsWrapper, _AbstractCustomNode_);
  3313. function StringArrayCallsWrapper(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
  3314. var _this;
  3315. _classCallCheck(this, StringArrayCallsWrapper);
  3316. _this = _possibleConstructorReturn(this, (StringArrayCallsWrapper.__proto__ || _Object$getPrototypeOf(StringArrayCallsWrapper)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3317. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  3318. return _this;
  3319. }
  3320. _createClass(StringArrayCallsWrapper, [{
  3321. key: "initialize",
  3322. value: function initialize(stringArrayName, stringArrayCallsWrapperName) {
  3323. this.stringArrayName = stringArrayName;
  3324. this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
  3325. }
  3326. }, {
  3327. key: "getNodeStructure",
  3328. value: function getNodeStructure() {
  3329. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  3330. }
  3331. }, {
  3332. key: "getTemplate",
  3333. value: function getTemplate() {
  3334. var decodeNodeTemplate = this.getDecodeStringArrayTemplate();
  3335. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {
  3336. decodeNodeTemplate: decodeNodeTemplate,
  3337. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  3338. stringArrayName: this.stringArrayName
  3339. }), _Object$assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, {
  3340. identifierNamesGenerator: this.options.identifierNamesGenerator,
  3341. seed: this.options.seed
  3342. })).getObfuscatedCode();
  3343. }
  3344. }, {
  3345. key: "getDecodeStringArrayTemplate",
  3346. value: function getDecodeStringArrayTemplate() {
  3347. var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  3348. var atobPolyfill = string_template_1.default(AtobTemplate_1.AtobTemplate(), {
  3349. globalVariableTemplate: globalVariableTemplate
  3350. });
  3351. var decodeStringArrayTemplate = '';
  3352. var selfDefendingCode = '';
  3353. if (this.options.selfDefending) {
  3354. selfDefendingCode = string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {
  3355. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  3356. stringArrayName: this.stringArrayName
  3357. });
  3358. }
  3359. switch (this.options.stringArrayEncoding) {
  3360. case StringArrayEncoding_1.StringArrayEncoding.Rc4:
  3361. decodeStringArrayTemplate = string_template_1.default(StringArrayRC4DecodeNodeTemplate_1.StringArrayRc4DecodeNodeTemplate(this.randomGenerator), {
  3362. atobPolyfill: atobPolyfill,
  3363. rc4Polyfill: Rc4Template_1.Rc4Template(),
  3364. selfDefendingCode: selfDefendingCode,
  3365. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  3366. });
  3367. break;
  3368. case StringArrayEncoding_1.StringArrayEncoding.Base64:
  3369. decodeStringArrayTemplate = string_template_1.default(StringArrayBase64DecodeNodeTemplate_1.StringArrayBase64DecodeNodeTemplate(this.randomGenerator), {
  3370. atobPolyfill: atobPolyfill,
  3371. selfDefendingCode: selfDefendingCode,
  3372. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  3373. });
  3374. break;
  3375. }
  3376. return decodeStringArrayTemplate;
  3377. }
  3378. }]);
  3379. return StringArrayCallsWrapper;
  3380. }(AbstractCustomNode_1.AbstractCustomNode);
  3381. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayName", void 0);
  3382. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayCallsWrapperName", void 0);
  3383. StringArrayCallsWrapper = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayCallsWrapper);
  3384. exports.StringArrayCallsWrapper = StringArrayCallsWrapper;
  3385. /***/ }),
  3386. /***/ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts":
  3387. /*!****************************************************************!*\
  3388. !*** ./src/custom-nodes/string-array-nodes/StringArrayNode.ts ***!
  3389. \****************************************************************/
  3390. /*! no static exports found */
  3391. /***/ (function(module, exports, __webpack_require__) {
  3392. "use strict";
  3393. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3394. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3395. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3396. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3397. var _get = __webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get");
  3398. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3399. Object.defineProperty(exports, "__esModule", {
  3400. value: true
  3401. });
  3402. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3403. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3404. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3405. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  3406. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3407. var StringArrayTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-node/StringArrayTemplate */ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts");
  3408. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  3409. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3410. var StringArrayNode =
  3411. /*#__PURE__*/
  3412. function (_AbstractCustomNode_) {
  3413. _inherits(StringArrayNode, _AbstractCustomNode_);
  3414. function StringArrayNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  3415. _classCallCheck(this, StringArrayNode);
  3416. return _possibleConstructorReturn(this, (StringArrayNode.__proto__ || _Object$getPrototypeOf(StringArrayNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3417. }
  3418. _createClass(StringArrayNode, [{
  3419. key: "initialize",
  3420. value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) {
  3421. this.stringArrayStorage = stringArrayStorage;
  3422. this.stringArrayName = stringArrayName;
  3423. this.stringArrayRotateValue = stringArrayRotateValue;
  3424. }
  3425. }, {
  3426. key: "getNode",
  3427. value: function getNode() {
  3428. this.stringArrayStorage.rotateArray(this.stringArrayRotateValue);
  3429. return _get(StringArrayNode.prototype.__proto__ || _Object$getPrototypeOf(StringArrayNode.prototype), "getNode", this).call(this);
  3430. }
  3431. }, {
  3432. key: "getNodeStructure",
  3433. value: function getNodeStructure() {
  3434. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  3435. }
  3436. }, {
  3437. key: "getTemplate",
  3438. value: function getTemplate() {
  3439. return string_template_1.default(StringArrayTemplate_1.StringArrayTemplate(), {
  3440. stringArrayName: this.stringArrayName,
  3441. stringArray: this.stringArrayStorage.toString()
  3442. });
  3443. }
  3444. }]);
  3445. return StringArrayNode;
  3446. }(AbstractCustomNode_1.AbstractCustomNode);
  3447. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayNode.prototype, "stringArrayStorage", void 0);
  3448. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayNode.prototype, "stringArrayName", void 0);
  3449. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayNode.prototype, "stringArrayRotateValue", void 0);
  3450. StringArrayNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringArrayNode);
  3451. exports.StringArrayNode = StringArrayNode;
  3452. /***/ }),
  3453. /***/ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts":
  3454. /*!******************************************************************************!*\
  3455. !*** ./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts ***!
  3456. \******************************************************************************/
  3457. /*! no static exports found */
  3458. /***/ (function(module, exports, __webpack_require__) {
  3459. "use strict";
  3460. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  3461. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3462. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3463. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3464. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3465. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3466. Object.defineProperty(exports, "__esModule", {
  3467. value: true
  3468. });
  3469. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3470. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3471. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3472. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  3473. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3474. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  3475. var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts");
  3476. var StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts");
  3477. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  3478. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  3479. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  3480. var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  3481. var StringArrayRotateFunctionNode =
  3482. /*#__PURE__*/
  3483. function (_AbstractCustomNode_) {
  3484. _inherits(StringArrayRotateFunctionNode, _AbstractCustomNode_);
  3485. function StringArrayRotateFunctionNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
  3486. var _this;
  3487. _classCallCheck(this, StringArrayRotateFunctionNode);
  3488. _this = _possibleConstructorReturn(this, (StringArrayRotateFunctionNode.__proto__ || _Object$getPrototypeOf(StringArrayRotateFunctionNode)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3489. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  3490. return _this;
  3491. }
  3492. _createClass(StringArrayRotateFunctionNode, [{
  3493. key: "initialize",
  3494. value: function initialize(stringArrayName, stringArrayRotateValue) {
  3495. this.stringArrayName = stringArrayName;
  3496. this.stringArrayRotateValue = stringArrayRotateValue;
  3497. }
  3498. }, {
  3499. key: "getNodeStructure",
  3500. value: function getNodeStructure() {
  3501. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  3502. }
  3503. }, {
  3504. key: "getTemplate",
  3505. value: function getTemplate() {
  3506. var timesName = this.identifierNamesGenerator.generate();
  3507. var whileFunctionName = this.identifierNamesGenerator.generate();
  3508. var code = '';
  3509. if (this.options.selfDefending) {
  3510. code = string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
  3511. timesName: timesName,
  3512. whileFunctionName: whileFunctionName
  3513. });
  3514. } else {
  3515. code = "".concat(whileFunctionName, "(++").concat(timesName, ")");
  3516. }
  3517. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {
  3518. code: code,
  3519. timesName: timesName,
  3520. stringArrayName: this.stringArrayName,
  3521. stringArrayRotateValue: Utils_1.Utils.decToHex(this.stringArrayRotateValue),
  3522. whileFunctionName: whileFunctionName
  3523. }), _Object$assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, {
  3524. identifierNamesGenerator: this.options.identifierNamesGenerator,
  3525. seed: this.options.seed
  3526. })).getObfuscatedCode();
  3527. }
  3528. }]);
  3529. return StringArrayRotateFunctionNode;
  3530. }(AbstractCustomNode_1.AbstractCustomNode);
  3531. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayRotateFunctionNode.prototype, "stringArrayName", void 0);
  3532. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayRotateFunctionNode.prototype, "stringArrayRotateValue", void 0);
  3533. StringArrayRotateFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayRotateFunctionNode);
  3534. exports.StringArrayRotateFunctionNode = StringArrayRotateFunctionNode;
  3535. /***/ }),
  3536. /***/ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts":
  3537. /*!*********************************************************************************!*\
  3538. !*** ./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts ***!
  3539. \*********************************************************************************/
  3540. /*! no static exports found */
  3541. /***/ (function(module, exports, __webpack_require__) {
  3542. "use strict";
  3543. var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
  3544. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  3545. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  3546. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  3547. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  3548. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  3549. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  3550. Object.defineProperty(exports, "__esModule", {
  3551. value: true
  3552. });
  3553. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3554. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3555. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3556. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3557. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  3558. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  3559. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  3560. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3561. var StringArrayCustomNodeGroup =
  3562. /*#__PURE__*/
  3563. function (_AbstractCustomNodeGr) {
  3564. _inherits(StringArrayCustomNodeGroup, _AbstractCustomNodeGr);
  3565. function StringArrayCustomNodeGroup(customNodeFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {
  3566. var _this;
  3567. _classCallCheck(this, StringArrayCustomNodeGroup);
  3568. _this = _possibleConstructorReturn(this, (StringArrayCustomNodeGroup.__proto__ || _Object$getPrototypeOf(StringArrayCustomNodeGroup)).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3569. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
  3570. _this.customNodeFactory = customNodeFactory;
  3571. _this.stringArrayStorage = stringArrayStorage;
  3572. return _this;
  3573. }
  3574. _createClass(StringArrayCustomNodeGroup, [{
  3575. key: "appendCustomNodes",
  3576. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  3577. if (!this.stringArrayStorage.getLength()) {
  3578. return;
  3579. }
  3580. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayNode, function (customNode) {
  3581. NodeAppender_1.NodeAppender.prependNode(blockScopeNode, customNode.getNode());
  3582. });
  3583. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayCallsWrapper, function (customNode) {
  3584. NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, customNode.getNode(), 1);
  3585. });
  3586. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, function (customNode) {
  3587. NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, customNode.getNode(), 1);
  3588. });
  3589. }
  3590. }, {
  3591. key: "initialize",
  3592. value: function initialize() {
  3593. this.customNodes = new _Map();
  3594. if (!this.options.stringArray) {
  3595. return;
  3596. }
  3597. var stringArrayNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayNode);
  3598. var stringArrayCallsWrapper = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayCallsWrapper);
  3599. var stringArrayRotateFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayRotateFunctionNode);
  3600. var stringArrayStorageId = this.stringArrayStorage.getStorageId();
  3601. var _stringArrayStorageId = stringArrayStorageId.split('|'),
  3602. _stringArrayStorageId2 = _slicedToArray(_stringArrayStorageId, 2),
  3603. stringArrayName = _stringArrayStorageId2[0],
  3604. stringArrayCallsWrapperName = _stringArrayStorageId2[1];
  3605. var stringArrayRotateValue;
  3606. if (this.options.rotateStringArray) {
  3607. stringArrayRotateValue = this.randomGenerator.getRandomInteger(100, 500);
  3608. } else {
  3609. stringArrayRotateValue = 0;
  3610. }
  3611. stringArrayNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue);
  3612. stringArrayCallsWrapper.initialize(stringArrayName, stringArrayCallsWrapperName);
  3613. stringArrayRotateFunctionNode.initialize(stringArrayName, stringArrayRotateValue);
  3614. this.customNodes.set(CustomNode_1.CustomNode.StringArrayNode, stringArrayNode);
  3615. this.customNodes.set(CustomNode_1.CustomNode.StringArrayCallsWrapper, stringArrayCallsWrapper);
  3616. if (this.options.rotateStringArray) {
  3617. this.customNodes.set(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, stringArrayRotateFunctionNode);
  3618. }
  3619. }
  3620. }]);
  3621. return StringArrayCustomNodeGroup;
  3622. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  3623. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _Map)], StringArrayCustomNodeGroup.prototype, "customNodes", void 0);
  3624. StringArrayCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Function, Object, Object])], StringArrayCustomNodeGroup);
  3625. exports.StringArrayCustomNodeGroup = StringArrayCustomNodeGroup;
  3626. /***/ }),
  3627. /***/ "./src/decorators/Initializable.ts":
  3628. /*!*****************************************!*\
  3629. !*** ./src/decorators/Initializable.ts ***!
  3630. \*****************************************/
  3631. /*! no static exports found */
  3632. /***/ (function(module, exports, __webpack_require__) {
  3633. "use strict";
  3634. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  3635. var _Object$defineProperty = __webpack_require__(/*! @babel/runtime/core-js/object/define-property */ "@babel/runtime/core-js/object/define-property");
  3636. var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime/core-js/object/get-own-property-descriptor */ "@babel/runtime/core-js/object/get-own-property-descriptor");
  3637. var _Reflect$getMetadata = __webpack_require__(/*! @babel/runtime/core-js/reflect/get-metadata */ "@babel/runtime/core-js/reflect/get-metadata");
  3638. var _Object$getOwnPropertyNames = __webpack_require__(/*! @babel/runtime/core-js/object/get-own-property-names */ "@babel/runtime/core-js/object/get-own-property-names");
  3639. var _Reflect$defineMetadata = __webpack_require__(/*! @babel/runtime/core-js/reflect/define-metadata */ "@babel/runtime/core-js/reflect/define-metadata");
  3640. var _Reflect$hasMetadata = __webpack_require__(/*! @babel/runtime/core-js/reflect/has-metadata */ "@babel/runtime/core-js/reflect/has-metadata");
  3641. var _Set = __webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set");
  3642. var _Object$keys = __webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys");
  3643. Object.defineProperty(exports, "__esModule", {
  3644. value: true
  3645. });
  3646. var defaultDescriptor = {
  3647. configurable: true,
  3648. enumerable: true
  3649. };
  3650. var initializedTargetMetadataKey = '_initialized';
  3651. var initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';
  3652. var wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';
  3653. var constructorMethodName = 'constructor';
  3654. function initializable() {
  3655. var initializeMethodName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initialize';
  3656. var decoratorName = _Object$keys(this)[0];
  3657. return function (target, propertyKey) {
  3658. var initializeMethod = target[initializeMethodName];
  3659. if (!initializeMethod || typeof initializeMethod !== 'function') {
  3660. throw new Error("`".concat(initializeMethodName, "` method with initialization logic not ") + "found. `@".concat(decoratorName, "` decorator requires `").concat(initializeMethodName, "` method"));
  3661. }
  3662. initializeTargetMetadata(initializedTargetMetadataKey, false, target);
  3663. initializeTargetMetadata(initializablePropertiesSetMetadataKey, new _Set(), target);
  3664. initializeTargetMetadata(wrappedMethodsSetMetadataKey, new _Set(), target);
  3665. wrapTargetMethodsInInitializedCheck(target, initializeMethodName);
  3666. wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);
  3667. return wrapInitializableProperty(target, propertyKey);
  3668. };
  3669. }
  3670. exports.initializable = initializable;
  3671. function initializeTargetMetadata(metadataKey, metadataValue, target) {
  3672. var hasInitializedMetadata = _Reflect$hasMetadata(metadataKey, target);
  3673. if (!hasInitializedMetadata) {
  3674. _Reflect$defineMetadata(metadataKey, metadataValue, target);
  3675. }
  3676. }
  3677. function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {
  3678. var ownPropertyNames = _Object$getOwnPropertyNames(target);
  3679. var prohibitedPropertyNames = [initializeMethodName, constructorMethodName];
  3680. ownPropertyNames.forEach(function (propertyName) {
  3681. var initializablePropertiesSet = _Reflect$getMetadata(initializablePropertiesSetMetadataKey, target);
  3682. var wrappedMethodsSet = _Reflect$getMetadata(wrappedMethodsSetMetadataKey, target);
  3683. var isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) || initializablePropertiesSet.has(propertyName) || wrappedMethodsSet.has(propertyName);
  3684. if (isProhibitedPropertyName) {
  3685. return;
  3686. }
  3687. var targetProperty = target[propertyName];
  3688. if (typeof targetProperty !== 'function') {
  3689. return;
  3690. }
  3691. var methodDescriptor = _Object$getOwnPropertyDescriptor(target, propertyName) || defaultDescriptor;
  3692. var originalMethod = methodDescriptor.value;
  3693. _Object$defineProperty(target, propertyName, _Object$assign({}, methodDescriptor, {
  3694. value: function value() {
  3695. if (!_Reflect$getMetadata(initializedTargetMetadataKey, this)) {
  3696. throw new Error("Class should be initialized with `".concat(initializeMethodName, "()` method"));
  3697. }
  3698. return originalMethod.apply(this, arguments);
  3699. }
  3700. }));
  3701. wrappedMethodsSet.add(propertyName);
  3702. });
  3703. }
  3704. function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {
  3705. var methodDescriptor = _Object$getOwnPropertyDescriptor(target, initializeMethodName) || defaultDescriptor;
  3706. var originalMethod = methodDescriptor.value;
  3707. _Object$defineProperty(target, initializeMethodName, _Object$assign({}, methodDescriptor, {
  3708. value: function value() {
  3709. _Reflect$defineMetadata(initializedTargetMetadataKey, true, this);
  3710. var result = originalMethod.apply(this, arguments);
  3711. if (this[propertyKey]) {}
  3712. return result;
  3713. }
  3714. }));
  3715. }
  3716. function wrapInitializableProperty(target, propertyKey) {
  3717. var initializablePropertiesSet = _Reflect$getMetadata(initializablePropertiesSetMetadataKey, target);
  3718. initializablePropertiesSet.add(propertyKey);
  3719. var initializablePropertyMetadataKey = "_".concat(propertyKey);
  3720. var propertyDescriptor = _Object$getOwnPropertyDescriptor(target, initializablePropertyMetadataKey) || defaultDescriptor;
  3721. _Object$defineProperty(target, propertyKey, _Object$assign({}, propertyDescriptor, {
  3722. get: function get() {
  3723. if (this[initializablePropertyMetadataKey] === undefined) {
  3724. throw new Error("Property `".concat(propertyKey, "` is not initialized! Initialize it first!"));
  3725. }
  3726. return this[initializablePropertyMetadataKey];
  3727. },
  3728. set: function set(newVal) {
  3729. this[initializablePropertyMetadataKey] = newVal;
  3730. }
  3731. }));
  3732. return propertyDescriptor;
  3733. }
  3734. /***/ }),
  3735. /***/ "./src/enums/JSFuck.ts":
  3736. /*!*****************************!*\
  3737. !*** ./src/enums/JSFuck.ts ***!
  3738. \*****************************/
  3739. /*! no static exports found */
  3740. /***/ (function(module, exports, __webpack_require__) {
  3741. "use strict";
  3742. Object.defineProperty(exports, "__esModule", {
  3743. value: true
  3744. });
  3745. var JSFuck;
  3746. (function (JSFuck) {
  3747. JSFuck["False"] = "![]";
  3748. JSFuck["True"] = "!![]";
  3749. JSFuck["a"] = "(false+\"\")[1]";
  3750. JSFuck["b"] = "([][\"entries\"]()+\"\")[2]";
  3751. JSFuck["c"] = "([][\"fill\"]+\"\")[3]";
  3752. JSFuck["d"] = "(undefined+\"\")[2]";
  3753. JSFuck["e"] = "(true+\"\")[3]";
  3754. JSFuck["f"] = "(false+\"\")[0]";
  3755. JSFuck["g"] = "(false+[0]+String)[20]";
  3756. JSFuck["h"] = "(+(101))[\"toString\"](21)[1]";
  3757. JSFuck["i"] = "([false]+undefined)[10]";
  3758. JSFuck["j"] = "([][\"entries\"]()+\"\")[3]";
  3759. JSFuck["k"] = "(+(20))[\"toString\"](21)";
  3760. JSFuck["l"] = "(false+\"\")[2]";
  3761. JSFuck["m"] = "(Number+\"\")[11]";
  3762. JSFuck["n"] = "(undefined+\"\")[1]";
  3763. JSFuck["o"] = "(true+[][\"fill\"])[10]";
  3764. JSFuck["p"] = "(+(211))[\"toString\"](31)[1]";
  3765. JSFuck["q"] = "(+(212))[\"toString\"](31)[1]";
  3766. JSFuck["r"] = "(true+\"\")[1]";
  3767. JSFuck["s"] = "(false+\"\")[3]";
  3768. JSFuck["t"] = "(true+\"\")[0]";
  3769. JSFuck["u"] = "(undefined+\"\")[0]";
  3770. JSFuck["v"] = "(+(31))[\"toString\"](32)";
  3771. JSFuck["w"] = "(+(32))[\"toString\"](33)";
  3772. JSFuck["x"] = "(+(101))[\"toString\"](34)[1]";
  3773. JSFuck["y"] = "(NaN+[Infinity])[10]";
  3774. JSFuck["z"] = "(+(35))[\"toString\"](36)";
  3775. JSFuck["A"] = "(+[]+Array)[10]";
  3776. JSFuck["B"] = "(+[]+Boolean)[10]";
  3777. JSFuck["C"] = "Function(\"return escape\")()((\"\")[\"italics\"]())[2]";
  3778. JSFuck["D"] = "Function(\"return escape\")()([][\"fill\"])[\"slice\"](\"-1\")";
  3779. JSFuck["E"] = "(RegExp+\"\")[12]";
  3780. JSFuck["F"] = "(+[]+Function)[10]";
  3781. JSFuck["G"] = "(false+Function(\"return Date\")()())[30]";
  3782. JSFuck["H"] = "'H'";
  3783. JSFuck["I"] = "(Infinity+\"\")[0]";
  3784. JSFuck["J"] = "'J'";
  3785. JSFuck["K"] = "'K'";
  3786. JSFuck["L"] = "'L'";
  3787. JSFuck["M"] = "(true+Function(\"return Date\")()())[30]";
  3788. JSFuck["N"] = "(NaN+\"\")[0]";
  3789. JSFuck["O"] = "(NaN+Function(\"return{}\")())[11]";
  3790. JSFuck["P"] = "'P'";
  3791. JSFuck["Q"] = "'Q'";
  3792. JSFuck["R"] = "(+[]+RegExp)[10]";
  3793. JSFuck["S"] = "(+[]+String)[10]";
  3794. JSFuck["T"] = "(NaN+Function(\"return Date\")()())[30]";
  3795. JSFuck["U"] = "(NaN+Function(\"return{}\")()[\"toString\"][\"call\"]())[11]";
  3796. JSFuck["V"] = "'V'";
  3797. JSFuck["W"] = "'W'";
  3798. JSFuck["X"] = "'X'";
  3799. JSFuck["Y"] = "'Y'";
  3800. JSFuck["Z"] = "'Z'";
  3801. })(JSFuck = exports.JSFuck || (exports.JSFuck = {}));
  3802. /***/ }),
  3803. /***/ "./src/enums/ObfuscationTarget.ts":
  3804. /*!****************************************!*\
  3805. !*** ./src/enums/ObfuscationTarget.ts ***!
  3806. \****************************************/
  3807. /*! no static exports found */
  3808. /***/ (function(module, exports, __webpack_require__) {
  3809. "use strict";
  3810. Object.defineProperty(exports, "__esModule", {
  3811. value: true
  3812. });
  3813. var ObfuscationTarget;
  3814. (function (ObfuscationTarget) {
  3815. ObfuscationTarget["Browser"] = "browser";
  3816. ObfuscationTarget["BrowserNoEval"] = "browser-no-eval";
  3817. ObfuscationTarget["Node"] = "node";
  3818. })(ObfuscationTarget = exports.ObfuscationTarget || (exports.ObfuscationTarget = {}));
  3819. /***/ }),
  3820. /***/ "./src/enums/StringArrayEncoding.ts":
  3821. /*!******************************************!*\
  3822. !*** ./src/enums/StringArrayEncoding.ts ***!
  3823. \******************************************/
  3824. /*! no static exports found */
  3825. /***/ (function(module, exports, __webpack_require__) {
  3826. "use strict";
  3827. Object.defineProperty(exports, "__esModule", {
  3828. value: true
  3829. });
  3830. var StringArrayEncoding;
  3831. (function (StringArrayEncoding) {
  3832. StringArrayEncoding["Base64"] = "base64";
  3833. StringArrayEncoding["Rc4"] = "rc4";
  3834. })(StringArrayEncoding = exports.StringArrayEncoding || (exports.StringArrayEncoding = {}));
  3835. /***/ }),
  3836. /***/ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts":
  3837. /*!*************************************************************************!*\
  3838. !*** ./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts ***!
  3839. \*************************************************************************/
  3840. /*! no static exports found */
  3841. /***/ (function(module, exports, __webpack_require__) {
  3842. "use strict";
  3843. Object.defineProperty(exports, "__esModule", {
  3844. value: true
  3845. });
  3846. var CalleeDataExtractor;
  3847. (function (CalleeDataExtractor) {
  3848. CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor";
  3849. CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor";
  3850. CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor";
  3851. })(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));
  3852. /***/ }),
  3853. /***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts":
  3854. /*!*********************************************************!*\
  3855. !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***!
  3856. \*********************************************************/
  3857. /*! no static exports found */
  3858. /***/ (function(module, exports, __webpack_require__) {
  3859. "use strict";
  3860. Object.defineProperty(exports, "__esModule", {
  3861. value: true
  3862. });
  3863. var ControlFlowCustomNode;
  3864. (function (ControlFlowCustomNode) {
  3865. ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode";
  3866. ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode";
  3867. ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode";
  3868. ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode";
  3869. ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode";
  3870. ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode";
  3871. ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode";
  3872. ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode";
  3873. ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode";
  3874. })(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));
  3875. /***/ }),
  3876. /***/ "./src/enums/custom-nodes/CustomNode.ts":
  3877. /*!**********************************************!*\
  3878. !*** ./src/enums/custom-nodes/CustomNode.ts ***!
  3879. \**********************************************/
  3880. /*! no static exports found */
  3881. /***/ (function(module, exports, __webpack_require__) {
  3882. "use strict";
  3883. Object.defineProperty(exports, "__esModule", {
  3884. value: true
  3885. });
  3886. var CustomNode;
  3887. (function (CustomNode) {
  3888. CustomNode["ConsoleOutputDisableExpressionNode"] = "ConsoleOutputDisableExpressionNode";
  3889. CustomNode["DebugProtectionFunctionCallNode"] = "DebugProtectionFunctionCallNode";
  3890. CustomNode["DebugProtectionFunctionIntervalNode"] = "DebugProtectionFunctionIntervalNode";
  3891. CustomNode["DebugProtectionFunctionNode"] = "DebugProtectionFunctionNode";
  3892. CustomNode["DomainLockNode"] = "DomainLockNode";
  3893. CustomNode["NodeCallsControllerFunctionNode"] = "NodeCallsControllerFunctionNode";
  3894. CustomNode["SelfDefendingUnicodeNode"] = "SelfDefendingUnicodeNode";
  3895. CustomNode["StringArrayCallsWrapper"] = "StringArrayCallsWrapper";
  3896. CustomNode["StringArrayNode"] = "StringArrayNode";
  3897. CustomNode["StringArrayRotateFunctionNode"] = "StringArrayRotateFunctionNode";
  3898. })(CustomNode = exports.CustomNode || (exports.CustomNode = {}));
  3899. /***/ }),
  3900. /***/ "./src/enums/custom-nodes/CustomNodeGroup.ts":
  3901. /*!***************************************************!*\
  3902. !*** ./src/enums/custom-nodes/CustomNodeGroup.ts ***!
  3903. \***************************************************/
  3904. /*! no static exports found */
  3905. /***/ (function(module, exports, __webpack_require__) {
  3906. "use strict";
  3907. Object.defineProperty(exports, "__esModule", {
  3908. value: true
  3909. });
  3910. var CustomNodeGroup;
  3911. (function (CustomNodeGroup) {
  3912. CustomNodeGroup["ConsoleOutputCustomNodeGroup"] = "ConsoleOutputCustomNodeGroup";
  3913. CustomNodeGroup["DebugProtectionCustomNodeGroup"] = "DebugProtectionCustomNodeGroup";
  3914. CustomNodeGroup["DomainLockCustomNodeGroup"] = "DomainLockCustomNodeGroup";
  3915. CustomNodeGroup["SelfDefendingCustomNodeGroup"] = "SelfDefendingCustomNodeGroup";
  3916. CustomNodeGroup["StringArrayCustomNodeGroup"] = "StringArrayCustomNodeGroup";
  3917. })(CustomNodeGroup = exports.CustomNodeGroup || (exports.CustomNodeGroup = {}));
  3918. /***/ }),
  3919. /***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts":
  3920. /*!***************************************************************!*\
  3921. !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***!
  3922. \***************************************************************/
  3923. /*! no static exports found */
  3924. /***/ (function(module, exports, __webpack_require__) {
  3925. "use strict";
  3926. Object.defineProperty(exports, "__esModule", {
  3927. value: true
  3928. });
  3929. var DeadCodeInjectionCustomNode;
  3930. (function (DeadCodeInjectionCustomNode) {
  3931. DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode";
  3932. })(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));
  3933. /***/ }),
  3934. /***/ "./src/enums/event-emitters/ObfuscationEvent.ts":
  3935. /*!******************************************************!*\
  3936. !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***!
  3937. \******************************************************/
  3938. /*! no static exports found */
  3939. /***/ (function(module, exports, __webpack_require__) {
  3940. "use strict";
  3941. Object.defineProperty(exports, "__esModule", {
  3942. value: true
  3943. });
  3944. var ObfuscationEvent;
  3945. (function (ObfuscationEvent) {
  3946. ObfuscationEvent["AfterObfuscation"] = "afterObfuscation";
  3947. ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation";
  3948. })(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {}));
  3949. /***/ }),
  3950. /***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts":
  3951. /*!**************************************************************************************!*\
  3952. !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***!
  3953. \**************************************************************************************/
  3954. /*! no static exports found */
  3955. /***/ (function(module, exports, __webpack_require__) {
  3956. "use strict";
  3957. Object.defineProperty(exports, "__esModule", {
  3958. value: true
  3959. });
  3960. var IdentifierNamesGenerator;
  3961. (function (IdentifierNamesGenerator) {
  3962. IdentifierNamesGenerator["HexadecimalIdentifierNamesGenerator"] = "hexadecimal";
  3963. IdentifierNamesGenerator["MangledIdentifierNamesGenerator"] = "mangled";
  3964. })(IdentifierNamesGenerator = exports.IdentifierNamesGenerator || (exports.IdentifierNamesGenerator = {}));
  3965. /***/ }),
  3966. /***/ "./src/enums/logger/LoggingMessage.ts":
  3967. /*!********************************************!*\
  3968. !*** ./src/enums/logger/LoggingMessage.ts ***!
  3969. \********************************************/
  3970. /*! no static exports found */
  3971. /***/ (function(module, exports, __webpack_require__) {
  3972. "use strict";
  3973. Object.defineProperty(exports, "__esModule", {
  3974. value: true
  3975. });
  3976. var LoggingMessage;
  3977. (function (LoggingMessage) {
  3978. LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled...";
  3979. LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec.";
  3980. LoggingMessage["ObfuscationStarted"] = "Obfuscation started...";
  3981. LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s...";
  3982. LoggingMessage["TransformationStage"] = "Transformation stage: %s...";
  3983. LoggingMessage["Version"] = "Version: %s";
  3984. })(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));
  3985. /***/ }),
  3986. /***/ "./src/enums/logger/LoggingPrefix.ts":
  3987. /*!*******************************************!*\
  3988. !*** ./src/enums/logger/LoggingPrefix.ts ***!
  3989. \*******************************************/
  3990. /*! no static exports found */
  3991. /***/ (function(module, exports, __webpack_require__) {
  3992. "use strict";
  3993. Object.defineProperty(exports, "__esModule", {
  3994. value: true
  3995. });
  3996. var LoggingPrefix;
  3997. (function (LoggingPrefix) {
  3998. LoggingPrefix["Base"] = "[javascript-obfuscator]";
  3999. LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]";
  4000. })(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));
  4001. /***/ }),
  4002. /***/ "./src/enums/node-transformers/NodeTransformer.ts":
  4003. /*!********************************************************!*\
  4004. !*** ./src/enums/node-transformers/NodeTransformer.ts ***!
  4005. \********************************************************/
  4006. /*! no static exports found */
  4007. /***/ (function(module, exports, __webpack_require__) {
  4008. "use strict";
  4009. Object.defineProperty(exports, "__esModule", {
  4010. value: true
  4011. });
  4012. var NodeTransformer;
  4013. (function (NodeTransformer) {
  4014. NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer";
  4015. NodeTransformer["ClassDeclarationTransformer"] = "ClassDeclarationTransformer";
  4016. NodeTransformer["CommentsTransformer"] = "CommentsTransformer";
  4017. NodeTransformer["CustomNodesTransformer"] = "CustomNodesTransformer";
  4018. NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer";
  4019. NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer";
  4020. NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer";
  4021. NodeTransformer["CatchClauseTransformer"] = "CatchClauseTransformer";
  4022. NodeTransformer["FunctionDeclarationTransformer"] = "FunctionDeclarationTransformer";
  4023. NodeTransformer["FunctionTransformer"] = "FunctionTransformer";
  4024. NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer";
  4025. NodeTransformer["LiteralTransformer"] = "LiteralTransformer";
  4026. NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer";
  4027. NodeTransformer["MetadataTransformer"] = "MetadataTransformer";
  4028. NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer";
  4029. NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer";
  4030. NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer";
  4031. NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer";
  4032. NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer";
  4033. NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer";
  4034. NodeTransformer["VariableDeclarationTransformer"] = "VariableDeclarationTransformer";
  4035. })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
  4036. /***/ }),
  4037. /***/ "./src/enums/node-transformers/TransformationStage.ts":
  4038. /*!************************************************************!*\
  4039. !*** ./src/enums/node-transformers/TransformationStage.ts ***!
  4040. \************************************************************/
  4041. /*! no static exports found */
  4042. /***/ (function(module, exports, __webpack_require__) {
  4043. "use strict";
  4044. Object.defineProperty(exports, "__esModule", {
  4045. value: true
  4046. });
  4047. var TransformationStage;
  4048. (function (TransformationStage) {
  4049. TransformationStage["Preparing"] = "Preparing";
  4050. TransformationStage["DeadCodeInjection"] = "DeadCodeInjection";
  4051. TransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening";
  4052. TransformationStage["Converting"] = "Converting";
  4053. TransformationStage["Obfuscating"] = "Obfuscating";
  4054. TransformationStage["Finalizing"] = "Finalizing";
  4055. })(TransformationStage = exports.TransformationStage || (exports.TransformationStage = {}));
  4056. /***/ }),
  4057. /***/ "./src/enums/node-transformers/VisitorDirection.ts":
  4058. /*!*********************************************************!*\
  4059. !*** ./src/enums/node-transformers/VisitorDirection.ts ***!
  4060. \*********************************************************/
  4061. /*! no static exports found */
  4062. /***/ (function(module, exports, __webpack_require__) {
  4063. "use strict";
  4064. Object.defineProperty(exports, "__esModule", {
  4065. value: true
  4066. });
  4067. var VisitorDirection;
  4068. (function (VisitorDirection) {
  4069. VisitorDirection["Enter"] = "enter";
  4070. VisitorDirection["Leave"] = "leave";
  4071. })(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));
  4072. /***/ }),
  4073. /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts":
  4074. /*!***********************************************************************************************************!*\
  4075. !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***!
  4076. \***********************************************************************************************************/
  4077. /*! no static exports found */
  4078. /***/ (function(module, exports, __webpack_require__) {
  4079. "use strict";
  4080. Object.defineProperty(exports, "__esModule", {
  4081. value: true
  4082. });
  4083. var ControlFlowReplacer;
  4084. (function (ControlFlowReplacer) {
  4085. ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer";
  4086. ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer";
  4087. ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer";
  4088. ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer";
  4089. })(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));
  4090. /***/ }),
  4091. /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts":
  4092. /*!*********************************************************************************************************************!*\
  4093. !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***!
  4094. \*********************************************************************************************************************/
  4095. /*! no static exports found */
  4096. /***/ (function(module, exports, __webpack_require__) {
  4097. "use strict";
  4098. Object.defineProperty(exports, "__esModule", {
  4099. value: true
  4100. });
  4101. var IdentifierObfuscatingReplacer;
  4102. (function (IdentifierObfuscatingReplacer) {
  4103. IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer";
  4104. })(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {}));
  4105. /***/ }),
  4106. /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts":
  4107. /*!******************************************************************************************************************!*\
  4108. !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***!
  4109. \******************************************************************************************************************/
  4110. /*! no static exports found */
  4111. /***/ (function(module, exports, __webpack_require__) {
  4112. "use strict";
  4113. Object.defineProperty(exports, "__esModule", {
  4114. value: true
  4115. });
  4116. var LiteralObfuscatingReplacer;
  4117. (function (LiteralObfuscatingReplacer) {
  4118. LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer";
  4119. LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer";
  4120. LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer";
  4121. })(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {}));
  4122. /***/ }),
  4123. /***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts":
  4124. /*!***************************************************************************************************!*\
  4125. !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***!
  4126. \***************************************************************************************************/
  4127. /*! no static exports found */
  4128. /***/ (function(module, exports, __webpack_require__) {
  4129. "use strict";
  4130. Object.defineProperty(exports, "__esModule", {
  4131. value: true
  4132. });
  4133. var ObfuscatingGuard;
  4134. (function (ObfuscatingGuard) {
  4135. ObfuscatingGuard["BlackListNodeGuard"] = "BlackListNodeGuard";
  4136. ObfuscatingGuard["ConditionalCommentNodeGuard"] = "ConditionalCommentNodeGuard";
  4137. })(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));
  4138. /***/ }),
  4139. /***/ "./src/enums/node/NodeType.ts":
  4140. /*!************************************!*\
  4141. !*** ./src/enums/node/NodeType.ts ***!
  4142. \************************************/
  4143. /*! no static exports found */
  4144. /***/ (function(module, exports, __webpack_require__) {
  4145. "use strict";
  4146. Object.defineProperty(exports, "__esModule", {
  4147. value: true
  4148. });
  4149. var NodeType;
  4150. (function (NodeType) {
  4151. NodeType["ArrayExpression"] = "ArrayExpression";
  4152. NodeType["ArrayPattern"] = "ArrayPattern";
  4153. NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression";
  4154. NodeType["AssignmentExpression"] = "AssignmentExpression";
  4155. NodeType["AssignmentPattern"] = "AssignmentPattern";
  4156. NodeType["AwaitExpression"] = "AwaitExpression";
  4157. NodeType["BinaryExpression"] = "BinaryExpression";
  4158. NodeType["BlockStatement"] = "BlockStatement";
  4159. NodeType["BreakStatement"] = "BreakStatement";
  4160. NodeType["CallExpression"] = "CallExpression";
  4161. NodeType["CatchClause"] = "CatchClause";
  4162. NodeType["ClassDeclaration"] = "ClassDeclaration";
  4163. NodeType["ContinueStatement"] = "ContinueStatement";
  4164. NodeType["ExpressionStatement"] = "ExpressionStatement";
  4165. NodeType["FunctionDeclaration"] = "FunctionDeclaration";
  4166. NodeType["FunctionExpression"] = "FunctionExpression";
  4167. NodeType["Identifier"] = "Identifier";
  4168. NodeType["IfStatement"] = "IfStatement";
  4169. NodeType["LabeledStatement"] = "LabeledStatement";
  4170. NodeType["Literal"] = "Literal";
  4171. NodeType["LogicalExpression"] = "LogicalExpression";
  4172. NodeType["MemberExpression"] = "MemberExpression";
  4173. NodeType["MethodDefinition"] = "MethodDefinition";
  4174. NodeType["ObjectExpression"] = "ObjectExpression";
  4175. NodeType["ObjectPattern"] = "ObjectPattern";
  4176. NodeType["Program"] = "Program";
  4177. NodeType["Property"] = "Property";
  4178. NodeType["RestElement"] = "RestElement";
  4179. NodeType["ReturnStatement"] = "ReturnStatement";
  4180. NodeType["Super"] = "Super";
  4181. NodeType["SwitchCase"] = "SwitchCase";
  4182. NodeType["SwitchStatement"] = "SwitchStatement";
  4183. NodeType["TemplateLiteral"] = "TemplateLiteral";
  4184. NodeType["TryStatement"] = "TryStatement";
  4185. NodeType["UnaryExpression"] = "UnaryExpression";
  4186. NodeType["UpdateExpression"] = "UpdateExpression";
  4187. NodeType["VariableDeclaration"] = "VariableDeclaration";
  4188. NodeType["VariableDeclarator"] = "VariableDeclarator";
  4189. NodeType["WhileStatement"] = "WhileStatement";
  4190. })(NodeType = exports.NodeType || (exports.NodeType = {}));
  4191. /***/ }),
  4192. /***/ "./src/enums/source-map/SourceMapMode.ts":
  4193. /*!***********************************************!*\
  4194. !*** ./src/enums/source-map/SourceMapMode.ts ***!
  4195. \***********************************************/
  4196. /*! no static exports found */
  4197. /***/ (function(module, exports, __webpack_require__) {
  4198. "use strict";
  4199. Object.defineProperty(exports, "__esModule", {
  4200. value: true
  4201. });
  4202. var SourceMapMode;
  4203. (function (SourceMapMode) {
  4204. SourceMapMode["Inline"] = "inline";
  4205. SourceMapMode["Separate"] = "separate";
  4206. })(SourceMapMode = exports.SourceMapMode || (exports.SourceMapMode = {}));
  4207. /***/ }),
  4208. /***/ "./src/event-emitters/ObfuscationEventEmitter.ts":
  4209. /*!*******************************************************!*\
  4210. !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***!
  4211. \*******************************************************/
  4212. /*! no static exports found */
  4213. /***/ (function(module, exports, __webpack_require__) {
  4214. "use strict";
  4215. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4216. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4217. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4218. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4219. Object.defineProperty(exports, "__esModule", {
  4220. value: true
  4221. });
  4222. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4223. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4224. var events_1 = __webpack_require__(/*! events */ "events");
  4225. inversify_1.decorate(inversify_1.injectable(), events_1.EventEmitter);
  4226. var ObfuscationEventEmitter =
  4227. /*#__PURE__*/
  4228. function (_events_1$EventEmitte) {
  4229. _inherits(ObfuscationEventEmitter, _events_1$EventEmitte);
  4230. function ObfuscationEventEmitter() {
  4231. _classCallCheck(this, ObfuscationEventEmitter);
  4232. return _possibleConstructorReturn(this, (ObfuscationEventEmitter.__proto__ || _Object$getPrototypeOf(ObfuscationEventEmitter)).apply(this, arguments));
  4233. }
  4234. return ObfuscationEventEmitter;
  4235. }(events_1.EventEmitter);
  4236. ObfuscationEventEmitter = tslib_1.__decorate([inversify_1.injectable()], ObfuscationEventEmitter);
  4237. exports.ObfuscationEventEmitter = ObfuscationEventEmitter;
  4238. /***/ }),
  4239. /***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts":
  4240. /*!****************************************************************************************!*\
  4241. !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***!
  4242. \****************************************************************************************/
  4243. /*! no static exports found */
  4244. /***/ (function(module, exports, __webpack_require__) {
  4245. "use strict";
  4246. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4247. Object.defineProperty(exports, "__esModule", {
  4248. value: true
  4249. });
  4250. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4251. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4252. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4253. var AbstractIdentifierNamesGenerator = function AbstractIdentifierNamesGenerator(randomGenerator, options) {
  4254. _classCallCheck(this, AbstractIdentifierNamesGenerator);
  4255. this.randomGenerator = randomGenerator;
  4256. this.options = options;
  4257. };
  4258. AbstractIdentifierNamesGenerator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractIdentifierNamesGenerator);
  4259. exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;
  4260. /***/ }),
  4261. /***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts":
  4262. /*!*******************************************************************************************!*\
  4263. !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***!
  4264. \*******************************************************************************************/
  4265. /*! no static exports found */
  4266. /***/ (function(module, exports, __webpack_require__) {
  4267. "use strict";
  4268. var _Set = __webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set");
  4269. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4270. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4271. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4272. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4273. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4274. Object.defineProperty(exports, "__esModule", {
  4275. value: true
  4276. });
  4277. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4278. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4279. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4280. var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  4281. var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  4282. var HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 =
  4283. /*#__PURE__*/
  4284. function (_AbstractIdentifierNa) {
  4285. _inherits(HexadecimalIdentifierNamesGenerator, _AbstractIdentifierNa);
  4286. function HexadecimalIdentifierNamesGenerator(randomGenerator, options) {
  4287. var _this;
  4288. _classCallCheck(this, HexadecimalIdentifierNamesGenerator);
  4289. _this = _possibleConstructorReturn(this, (HexadecimalIdentifierNamesGenerator.__proto__ || _Object$getPrototypeOf(HexadecimalIdentifierNamesGenerator)).call(this, randomGenerator, options));
  4290. _this.randomVariableNameSet = new _Set();
  4291. return _this;
  4292. }
  4293. _createClass(HexadecimalIdentifierNamesGenerator, [{
  4294. key: "generate",
  4295. value: function generate() {
  4296. var rangeMinInteger = 10000;
  4297. var rangeMaxInteger = 99999999;
  4298. var randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);
  4299. var hexadecimalNumber = Utils_1.Utils.decToHex(randomInteger);
  4300. var baseIdentifierName = hexadecimalNumber.substr(0, HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength);
  4301. var identifierName = "_".concat(Utils_1.Utils.hexadecimalPrefix).concat(baseIdentifierName);
  4302. if (this.randomVariableNameSet.has(identifierName)) {
  4303. return this.generate();
  4304. }
  4305. this.randomVariableNameSet.add(identifierName);
  4306. return identifierName;
  4307. }
  4308. }, {
  4309. key: "generateWithPrefix",
  4310. value: function generateWithPrefix() {
  4311. var identifierName = this.generate();
  4312. return "".concat(this.options.identifiersPrefix).concat(identifierName).replace('__', '_');
  4313. }
  4314. }]);
  4315. return HexadecimalIdentifierNamesGenerator;
  4316. }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
  4317. HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;
  4318. HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], HexadecimalIdentifierNamesGenerator);
  4319. exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;
  4320. var HexadecimalIdentifierNamesGenerator_1;
  4321. /***/ }),
  4322. /***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts":
  4323. /*!***************************************************************************************!*\
  4324. !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***!
  4325. \***************************************************************************************/
  4326. /*! no static exports found */
  4327. /***/ (function(module, exports, __webpack_require__) {
  4328. "use strict";
  4329. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4330. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4331. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4332. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4333. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4334. Object.defineProperty(exports, "__esModule", {
  4335. value: true
  4336. });
  4337. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4338. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4339. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4340. var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  4341. var MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 =
  4342. /*#__PURE__*/
  4343. function (_AbstractIdentifierNa) {
  4344. _inherits(MangledIdentifierNamesGenerator, _AbstractIdentifierNa);
  4345. function MangledIdentifierNamesGenerator(randomGenerator, options) {
  4346. var _this;
  4347. _classCallCheck(this, MangledIdentifierNamesGenerator);
  4348. _this = _possibleConstructorReturn(this, (MangledIdentifierNamesGenerator.__proto__ || _Object$getPrototypeOf(MangledIdentifierNamesGenerator)).call(this, randomGenerator, options));
  4349. _this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
  4350. return _this;
  4351. }
  4352. _createClass(MangledIdentifierNamesGenerator, [{
  4353. key: "generate",
  4354. value: function generate() {
  4355. var identifierName = MangledIdentifierNamesGenerator_1.generateNewMangledName(this.previousMangledName);
  4356. this.previousMangledName = identifierName;
  4357. return identifierName;
  4358. }
  4359. }, {
  4360. key: "generateWithPrefix",
  4361. value: function generateWithPrefix() {
  4362. var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : '';
  4363. var identifierName = this.generate();
  4364. return "".concat(prefix).concat(identifierName);
  4365. }
  4366. }], [{
  4367. key: "generateNewMangledName",
  4368. value: function generateNewMangledName(previousMangledName) {
  4369. var generateNewMangledName = function generateNewMangledName(name) {
  4370. var nameSequence = MangledIdentifierNamesGenerator_1.nameSequence;
  4371. var nameLength = name.length;
  4372. var zeroSequence = function zeroSequence(num) {
  4373. return '0'.repeat(num);
  4374. };
  4375. var index = nameLength - 1;
  4376. do {
  4377. var character = name.charAt(index);
  4378. var indexInSequence = nameSequence.indexOf(character);
  4379. var lastNameSequenceIndex = nameSequence.length - 1;
  4380. if (indexInSequence !== lastNameSequenceIndex) {
  4381. var previousNamePart = name.substring(0, index);
  4382. var nextCharacter = nameSequence[indexInSequence + 1];
  4383. var zeroSequenceLength = nameLength - (index + 1);
  4384. var zeroSequenceCharacters = zeroSequence(zeroSequenceLength);
  4385. return previousNamePart + nextCharacter + zeroSequenceCharacters;
  4386. }
  4387. --index;
  4388. } while (index >= 0);
  4389. return "a".concat(zeroSequence(nameLength));
  4390. };
  4391. var newMangledName = generateNewMangledName(previousMangledName);
  4392. if (!MangledIdentifierNamesGenerator_1.validateMangledName(newMangledName)) {
  4393. newMangledName = MangledIdentifierNamesGenerator_1.generateNewMangledName(newMangledName);
  4394. }
  4395. return newMangledName;
  4396. }
  4397. }, {
  4398. key: "validateMangledName",
  4399. value: function validateMangledName(mangledName) {
  4400. return !MangledIdentifierNamesGenerator_1.reservedNames.includes(mangledName);
  4401. }
  4402. }]);
  4403. return MangledIdentifierNamesGenerator;
  4404. }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
  4405. MangledIdentifierNamesGenerator.initMangledNameCharacter = '9';
  4406. MangledIdentifierNamesGenerator.nameSequence = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
  4407. MangledIdentifierNamesGenerator.reservedNames = ['byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', 'var', 'void', 'with'];
  4408. MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MangledIdentifierNamesGenerator);
  4409. exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;
  4410. var MangledIdentifierNamesGenerator_1;
  4411. /***/ }),
  4412. /***/ "./src/logger/Logger.ts":
  4413. /*!******************************!*\
  4414. !*** ./src/logger/Logger.ts ***!
  4415. \******************************/
  4416. /*! no static exports found */
  4417. /***/ (function(module, exports, __webpack_require__) {
  4418. "use strict";
  4419. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4420. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4421. Object.defineProperty(exports, "__esModule", {
  4422. value: true
  4423. });
  4424. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4425. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4426. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4427. var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk"));
  4428. var LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
  4429. var Logger = Logger_1 =
  4430. /*#__PURE__*/
  4431. function () {
  4432. function Logger(options) {
  4433. _classCallCheck(this, Logger);
  4434. this.options = options;
  4435. }
  4436. _createClass(Logger, [{
  4437. key: "info",
  4438. value: function info(loggingMessage, value) {
  4439. if (!this.options.log) {
  4440. return;
  4441. }
  4442. Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  4443. }
  4444. }, {
  4445. key: "success",
  4446. value: function success(loggingMessage, value) {
  4447. if (!this.options.log) {
  4448. return;
  4449. }
  4450. Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  4451. }
  4452. }, {
  4453. key: "warn",
  4454. value: function warn(loggingMessage, value) {
  4455. if (!this.options.log) {
  4456. return;
  4457. }
  4458. Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  4459. }
  4460. }], [{
  4461. key: "log",
  4462. value: function log(loggingLevelColor, loggingPrefix, loggingMessage, value) {
  4463. var processedMessage = loggingLevelColor("\n".concat(loggingPrefix, " ").concat(loggingMessage));
  4464. !value ? console.log(processedMessage) : console.log(processedMessage, value);
  4465. }
  4466. }]);
  4467. return Logger;
  4468. }();
  4469. Logger.colorInfo = chalk_1.default.cyan;
  4470. Logger.colorSuccess = chalk_1.default.green;
  4471. Logger.colorWarn = chalk_1.default.yellow;
  4472. Logger = Logger_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], Logger);
  4473. exports.Logger = Logger;
  4474. var Logger_1;
  4475. /***/ }),
  4476. /***/ "./src/node-transformers/AbstractNodeTransformer.ts":
  4477. /*!**********************************************************!*\
  4478. !*** ./src/node-transformers/AbstractNodeTransformer.ts ***!
  4479. \**********************************************************/
  4480. /*! no static exports found */
  4481. /***/ (function(module, exports, __webpack_require__) {
  4482. "use strict";
  4483. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4484. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4485. Object.defineProperty(exports, "__esModule", {
  4486. value: true
  4487. });
  4488. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4489. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4490. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4491. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  4492. var AbstractNodeTransformer =
  4493. /*#__PURE__*/
  4494. function () {
  4495. function AbstractNodeTransformer(randomGenerator, options) {
  4496. _classCallCheck(this, AbstractNodeTransformer);
  4497. this.randomGenerator = randomGenerator;
  4498. this.options = options;
  4499. }
  4500. _createClass(AbstractNodeTransformer, [{
  4501. key: "initialize",
  4502. value: function initialize() {
  4503. this.nodeIdentifier = this.randomGenerator.getRandomInteger(0, 10000);
  4504. }
  4505. }]);
  4506. return AbstractNodeTransformer;
  4507. }();
  4508. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], AbstractNodeTransformer.prototype, "nodeIdentifier", void 0);
  4509. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], AbstractNodeTransformer.prototype, "initialize", null);
  4510. AbstractNodeTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractNodeTransformer);
  4511. exports.AbstractNodeTransformer = AbstractNodeTransformer;
  4512. /***/ }),
  4513. /***/ "./src/node-transformers/TransformersRunner.ts":
  4514. /*!*****************************************************!*\
  4515. !*** ./src/node-transformers/TransformersRunner.ts ***!
  4516. \*****************************************************/
  4517. /*! no static exports found */
  4518. /***/ (function(module, exports, __webpack_require__) {
  4519. "use strict";
  4520. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4521. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4522. Object.defineProperty(exports, "__esModule", {
  4523. value: true
  4524. });
  4525. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4526. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4527. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4528. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  4529. var VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts");
  4530. var NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4531. var NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  4532. var TransformersRunner =
  4533. /*#__PURE__*/
  4534. function () {
  4535. function TransformersRunner(nodeTransformerFactory) {
  4536. _classCallCheck(this, TransformersRunner);
  4537. this.nodeTransformerFactory = nodeTransformerFactory;
  4538. }
  4539. _createClass(TransformersRunner, [{
  4540. key: "transform",
  4541. value: function transform(astTree, nodeTransformers, transformationStage) {
  4542. if (!nodeTransformers.length) {
  4543. return astTree;
  4544. }
  4545. var enterVisitors = [];
  4546. var leaveVisitors = [];
  4547. var nodeTransformersLength = nodeTransformers.length;
  4548. var visitor;
  4549. for (var i = 0; i < nodeTransformersLength; i++) {
  4550. visitor = this.nodeTransformerFactory(nodeTransformers[i]).getVisitor(transformationStage);
  4551. if (!visitor) {
  4552. continue;
  4553. }
  4554. if (visitor.enter) {
  4555. enterVisitors.push({
  4556. enter: visitor.enter
  4557. });
  4558. }
  4559. if (visitor.leave) {
  4560. leaveVisitors.push({
  4561. leave: visitor.leave
  4562. });
  4563. }
  4564. }
  4565. if (!enterVisitors.length && !leaveVisitors.length) {
  4566. return astTree;
  4567. }
  4568. estraverse.replace(astTree, {
  4569. enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),
  4570. leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)
  4571. });
  4572. return astTree;
  4573. }
  4574. }, {
  4575. key: "mergeVisitorsForDirection",
  4576. value: function mergeVisitorsForDirection(visitors, direction) {
  4577. var visitorsLength = visitors.length;
  4578. if (!visitorsLength) {
  4579. return function (node, parentNode) {
  4580. return node;
  4581. };
  4582. }
  4583. return function (node, parentNode) {
  4584. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  4585. return estraverse.VisitorOption.Skip;
  4586. }
  4587. for (var i = 0; i < visitorsLength; i++) {
  4588. var visitorFunction = visitors[i][direction];
  4589. if (!visitorFunction) {
  4590. continue;
  4591. }
  4592. var visitorResult = visitorFunction(node, parentNode);
  4593. if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {
  4594. continue;
  4595. }
  4596. node = visitorResult;
  4597. }
  4598. return node;
  4599. };
  4600. }
  4601. }]);
  4602. return TransformersRunner;
  4603. }();
  4604. TransformersRunner = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), tslib_1.__metadata("design:paramtypes", [Function])], TransformersRunner);
  4605. exports.TransformersRunner = TransformersRunner;
  4606. /***/ }),
  4607. /***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts":
  4608. /*!*************************************************************************************************!*\
  4609. !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***!
  4610. \*************************************************************************************************/
  4611. /*! no static exports found */
  4612. /***/ (function(module, exports, __webpack_require__) {
  4613. "use strict";
  4614. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4615. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4616. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4617. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4618. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4619. Object.defineProperty(exports, "__esModule", {
  4620. value: true
  4621. });
  4622. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4623. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4624. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4625. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  4626. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4627. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  4628. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  4629. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4630. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4631. var BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 =
  4632. /*#__PURE__*/
  4633. function (_AbstractNodeTransfor) {
  4634. _inherits(BlockStatementControlFlowTransformer, _AbstractNodeTransfor);
  4635. function BlockStatementControlFlowTransformer(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {
  4636. var _this;
  4637. _classCallCheck(this, BlockStatementControlFlowTransformer);
  4638. _this = _possibleConstructorReturn(this, (BlockStatementControlFlowTransformer.__proto__ || _Object$getPrototypeOf(BlockStatementControlFlowTransformer)).call(this, randomGenerator, options));
  4639. _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  4640. _this.arrayUtils = arrayUtils;
  4641. return _this;
  4642. }
  4643. _createClass(BlockStatementControlFlowTransformer, [{
  4644. key: "getVisitor",
  4645. value: function getVisitor(transformationStage) {
  4646. var _this2 = this;
  4647. switch (transformationStage) {
  4648. case TransformationStage_1.TransformationStage.ControlFlowFlattening:
  4649. return {
  4650. leave: function leave(node, parentNode) {
  4651. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  4652. return _this2.transformNode(node, parentNode);
  4653. }
  4654. }
  4655. };
  4656. default:
  4657. return null;
  4658. }
  4659. }
  4660. }, {
  4661. key: "transformNode",
  4662. value: function transformNode(blockStatementNode, parentNode) {
  4663. if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {
  4664. return blockStatementNode;
  4665. }
  4666. var blockStatementBody = blockStatementNode.body;
  4667. var originalKeys = this.arrayUtils.arrayRange(blockStatementBody.length);
  4668. var shuffledKeys = this.arrayUtils.arrayShuffle(originalKeys);
  4669. var originalKeysIndexesInShuffledArray = originalKeys.map(function (key) {
  4670. return shuffledKeys.indexOf(key);
  4671. });
  4672. var blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
  4673. blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);
  4674. var newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];
  4675. NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
  4676. return newBlockStatementNode;
  4677. }
  4678. }], [{
  4679. key: "blockStatementHasProhibitedStatements",
  4680. value: function blockStatementHasProhibitedStatements(blockStatementNode) {
  4681. return blockStatementNode.body.some(function (statement) {
  4682. var isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(statement) || NodeGuards_1.NodeGuards.isContinueStatementNode(statement);
  4683. var isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && (statement.kind === 'const' || statement.kind === 'let');
  4684. var isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(statement);
  4685. return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement) || isBreakOrContinueStatement || isVariableDeclarationWithLetOrConstKind || isClassDeclaration;
  4686. });
  4687. }
  4688. }, {
  4689. key: "canTransformBlockStatementNode",
  4690. value: function canTransformBlockStatementNode(blockStatementNode) {
  4691. var canTransform = true;
  4692. estraverse.traverse(blockStatementNode, {
  4693. enter: function enter(node) {
  4694. if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {
  4695. return estraverse.VisitorOption.Skip;
  4696. }
  4697. if (NodeGuards_1.NodeGuards.isBlockStatementNode(node) && BlockStatementControlFlowTransformer_1.blockStatementHasProhibitedStatements(node)) {
  4698. canTransform = false;
  4699. }
  4700. }
  4701. });
  4702. if (blockStatementNode.body.length <= 4) {
  4703. canTransform = false;
  4704. }
  4705. return canTransform;
  4706. }
  4707. }]);
  4708. return BlockStatementControlFlowTransformer;
  4709. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4710. BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], BlockStatementControlFlowTransformer);
  4711. exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;
  4712. var BlockStatementControlFlowTransformer_1;
  4713. /***/ }),
  4714. /***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts":
  4715. /*!*******************************************************************************************!*\
  4716. !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***!
  4717. \*******************************************************************************************/
  4718. /*! no static exports found */
  4719. /***/ (function(module, exports, __webpack_require__) {
  4720. "use strict";
  4721. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  4722. var _Set = __webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set");
  4723. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  4724. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4725. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4726. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4727. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4728. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4729. Object.defineProperty(exports, "__esModule", {
  4730. value: true
  4731. });
  4732. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4733. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4734. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4735. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  4736. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4737. var ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
  4738. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  4739. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  4740. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  4741. var NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  4742. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4743. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  4744. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4745. var FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 =
  4746. /*#__PURE__*/
  4747. function (_AbstractNodeTransfor) {
  4748. _inherits(FunctionControlFlowTransformer, _AbstractNodeTransfor);
  4749. function FunctionControlFlowTransformer(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {
  4750. var _this;
  4751. _classCallCheck(this, FunctionControlFlowTransformer);
  4752. _this = _possibleConstructorReturn(this, (FunctionControlFlowTransformer.__proto__ || _Object$getPrototypeOf(FunctionControlFlowTransformer)).call(this, randomGenerator, options));
  4753. _this.controlFlowData = new _Map();
  4754. _this.visitedFunctionNodes = new _Set();
  4755. _this.hostNodesWithControlFlowNode = new _Set();
  4756. _this.controlFlowStorageFactory = controlFlowStorageFactory;
  4757. _this.controlFlowReplacerFactory = controlFlowReplacerFactory;
  4758. _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  4759. return _this;
  4760. }
  4761. _createClass(FunctionControlFlowTransformer, [{
  4762. key: "getVisitor",
  4763. value: function getVisitor(transformationStage) {
  4764. var _this2 = this;
  4765. switch (transformationStage) {
  4766. case TransformationStage_1.TransformationStage.ControlFlowFlattening:
  4767. return {
  4768. leave: function leave(node, parentNode) {
  4769. if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {
  4770. return _this2.transformNode(node, parentNode);
  4771. }
  4772. }
  4773. };
  4774. default:
  4775. return null;
  4776. }
  4777. }
  4778. }, {
  4779. key: "transformNode",
  4780. value: function transformNode(functionNode, parentNode) {
  4781. this.visitedFunctionNodes.add(functionNode);
  4782. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {
  4783. return functionNode;
  4784. }
  4785. var hostNode = this.getHostNode(functionNode.body);
  4786. var controlFlowStorage = this.getControlFlowStorage(hostNode);
  4787. this.controlFlowData.set(hostNode, controlFlowStorage);
  4788. this.transformFunctionBody(functionNode.body, controlFlowStorage);
  4789. if (!controlFlowStorage.getLength()) {
  4790. return functionNode;
  4791. }
  4792. var controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
  4793. controlFlowStorageCustomNode.initialize(controlFlowStorage);
  4794. NodeAppender_1.NodeAppender.prependNode(hostNode, controlFlowStorageCustomNode.getNode());
  4795. this.hostNodesWithControlFlowNode.add(hostNode);
  4796. return functionNode;
  4797. }
  4798. }, {
  4799. key: "getControlFlowStorage",
  4800. value: function getControlFlowStorage(hostNode) {
  4801. var controlFlowStorage = this.controlFlowStorageFactory();
  4802. if (this.controlFlowData.has(hostNode)) {
  4803. if (this.hostNodesWithControlFlowNode.has(hostNode)) {
  4804. hostNode.body.shift();
  4805. }
  4806. var hostControlFlowStorage = this.controlFlowData.get(hostNode);
  4807. controlFlowStorage.mergeWith(hostControlFlowStorage, true);
  4808. }
  4809. return controlFlowStorage;
  4810. }
  4811. }, {
  4812. key: "getHostNode",
  4813. value: function getHostNode(functionNodeBody) {
  4814. var blockScopesOfNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(functionNodeBody);
  4815. if (blockScopesOfNode.length === 1) {
  4816. return functionNodeBody;
  4817. } else {
  4818. blockScopesOfNode.pop();
  4819. }
  4820. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {
  4821. blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);
  4822. }
  4823. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {
  4824. blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;
  4825. }
  4826. return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);
  4827. }
  4828. }, {
  4829. key: "isVisitedFunctionNode",
  4830. value: function isVisitedFunctionNode(node) {
  4831. return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);
  4832. }
  4833. }, {
  4834. key: "transformFunctionBody",
  4835. value: function transformFunctionBody(functionNodeBody, controlFlowStorage) {
  4836. var _this3 = this;
  4837. estraverse.replace(functionNodeBody, {
  4838. enter: function enter(node, parentNode) {
  4839. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  4840. return estraverse.VisitorOption.Skip;
  4841. }
  4842. if (_this3.isVisitedFunctionNode(node) || !parentNode) {
  4843. return estraverse.VisitorOption.Skip;
  4844. }
  4845. if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {
  4846. return node;
  4847. }
  4848. if (_this3.randomGenerator.getMathRandom() > _this3.options.controlFlowFlatteningThreshold) {
  4849. return node;
  4850. }
  4851. var controlFlowReplacerName = FunctionControlFlowTransformer_1.controlFlowReplacersMap.get(node.type);
  4852. if (controlFlowReplacerName === undefined) {
  4853. return node;
  4854. }
  4855. return _Object$assign({}, _this3.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage), {
  4856. parentNode: parentNode
  4857. });
  4858. }
  4859. });
  4860. }
  4861. }]);
  4862. return FunctionControlFlowTransformer;
  4863. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4864. FunctionControlFlowTransformer.controlFlowReplacersMap = new _Map([[NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer], [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer], [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer], [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]]);
  4865. FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;
  4866. FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;
  4867. FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Function, Object, Object])], FunctionControlFlowTransformer);
  4868. exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;
  4869. var FunctionControlFlowTransformer_1;
  4870. /***/ }),
  4871. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts":
  4872. /*!***************************************************************************************************************!*\
  4873. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***!
  4874. \***************************************************************************************************************/
  4875. /*! no static exports found */
  4876. /***/ (function(module, exports, __webpack_require__) {
  4877. "use strict";
  4878. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  4879. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4880. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4881. Object.defineProperty(exports, "__esModule", {
  4882. value: true
  4883. });
  4884. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4885. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4886. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4887. var AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 =
  4888. /*#__PURE__*/
  4889. function () {
  4890. function AbstractControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4891. _classCallCheck(this, AbstractControlFlowReplacer);
  4892. this.replacerDataByControlFlowStorageId = new _Map();
  4893. this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  4894. this.randomGenerator = randomGenerator;
  4895. this.options = options;
  4896. }
  4897. _createClass(AbstractControlFlowReplacer, [{
  4898. key: "insertCustomNodeToControlFlowStorage",
  4899. value: function insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {
  4900. var _this = this;
  4901. var controlFlowStorageId = controlFlowStorage.getStorageId();
  4902. var storageKeysById = AbstractControlFlowReplacer_1.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);
  4903. var storageKeysForCurrentId = storageKeysById.get(replacerId);
  4904. if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && storageKeysForCurrentId && storageKeysForCurrentId.length) {
  4905. return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);
  4906. }
  4907. var generateStorageKey = function generateStorageKey(length) {
  4908. var key = _this.randomGenerator.getRandomString(length);
  4909. if (controlFlowStorage.getStorage().has(key)) {
  4910. return generateStorageKey(length);
  4911. }
  4912. return key;
  4913. };
  4914. var storageKey = generateStorageKey(5);
  4915. storageKeysById.set(replacerId, [storageKey]);
  4916. this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);
  4917. controlFlowStorage.set(storageKey, customNode);
  4918. return storageKey;
  4919. }
  4920. }], [{
  4921. key: "getStorageKeysByIdForCurrentStorage",
  4922. value: function getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {
  4923. var storageKeysById;
  4924. if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {
  4925. storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);
  4926. } else {
  4927. storageKeysById = new _Map();
  4928. }
  4929. return storageKeysById;
  4930. }
  4931. }]);
  4932. return AbstractControlFlowReplacer;
  4933. }();
  4934. AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractControlFlowReplacer);
  4935. exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;
  4936. var AbstractControlFlowReplacer_1;
  4937. /***/ }),
  4938. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts":
  4939. /*!***********************************************************************************************************************!*\
  4940. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***!
  4941. \***********************************************************************************************************************/
  4942. /*! no static exports found */
  4943. /***/ (function(module, exports, __webpack_require__) {
  4944. "use strict";
  4945. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4946. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4947. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4948. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4949. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4950. Object.defineProperty(exports, "__esModule", {
  4951. value: true
  4952. });
  4953. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4954. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4955. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4956. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4957. var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
  4958. var BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 =
  4959. /*#__PURE__*/
  4960. function (_ExpressionWithOperat) {
  4961. _inherits(BinaryExpressionControlFlowReplacer, _ExpressionWithOperat);
  4962. function BinaryExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4963. _classCallCheck(this, BinaryExpressionControlFlowReplacer);
  4964. return _possibleConstructorReturn(this, (BinaryExpressionControlFlowReplacer.__proto__ || _Object$getPrototypeOf(BinaryExpressionControlFlowReplacer)).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  4965. }
  4966. _createClass(BinaryExpressionControlFlowReplacer, [{
  4967. key: "replace",
  4968. value: function replace(binaryExpressionNode, parentNode, controlFlowStorage) {
  4969. var replacerId = binaryExpressionNode.operator;
  4970. var binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
  4971. binaryExpressionFunctionCustomNode.initialize(replacerId);
  4972. var storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, replacerId, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  4973. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);
  4974. }
  4975. }]);
  4976. return BinaryExpressionControlFlowReplacer;
  4977. }(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer);
  4978. BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  4979. BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionControlFlowReplacer);
  4980. exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;
  4981. var BinaryExpressionControlFlowReplacer_1;
  4982. /***/ }),
  4983. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts":
  4984. /*!*********************************************************************************************************************!*\
  4985. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***!
  4986. \*********************************************************************************************************************/
  4987. /*! no static exports found */
  4988. /***/ (function(module, exports, __webpack_require__) {
  4989. "use strict";
  4990. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  4991. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  4992. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  4993. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  4994. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  4995. Object.defineProperty(exports, "__esModule", {
  4996. value: true
  4997. });
  4998. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4999. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5000. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5001. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  5002. var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  5003. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5004. var CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 =
  5005. /*#__PURE__*/
  5006. function (_AbstractControlFlowR) {
  5007. _inherits(CallExpressionControlFlowReplacer, _AbstractControlFlowR);
  5008. function CallExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  5009. _classCallCheck(this, CallExpressionControlFlowReplacer);
  5010. return _possibleConstructorReturn(this, (CallExpressionControlFlowReplacer.__proto__ || _Object$getPrototypeOf(CallExpressionControlFlowReplacer)).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  5011. }
  5012. _createClass(CallExpressionControlFlowReplacer, [{
  5013. key: "replace",
  5014. value: function replace(callExpressionNode, parentNode, controlFlowStorage) {
  5015. var callee = callExpressionNode.callee;
  5016. if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  5017. return callExpressionNode;
  5018. }
  5019. var replacerId = String(callExpressionNode.arguments.length);
  5020. var callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
  5021. var expressionArguments = callExpressionNode.arguments;
  5022. callExpressionFunctionCustomNode.initialize(expressionArguments);
  5023. var storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  5024. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);
  5025. }
  5026. }, {
  5027. key: "getControlFlowStorageCallNode",
  5028. value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {
  5029. var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
  5030. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);
  5031. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  5032. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  5033. throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  5034. }
  5035. return statementNode.expression;
  5036. }
  5037. }]);
  5038. return CallExpressionControlFlowReplacer;
  5039. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  5040. CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  5041. CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowReplacer);
  5042. exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;
  5043. var CallExpressionControlFlowReplacer_1;
  5044. /***/ }),
  5045. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts":
  5046. /*!*****************************************************************************************************************************!*\
  5047. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***!
  5048. \*****************************************************************************************************************************/
  5049. /*! no static exports found */
  5050. /***/ (function(module, exports, __webpack_require__) {
  5051. "use strict";
  5052. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5053. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5054. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5055. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5056. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5057. Object.defineProperty(exports, "__esModule", {
  5058. value: true
  5059. });
  5060. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5061. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5062. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5063. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  5064. var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  5065. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5066. var ExpressionWithOperatorControlFlowReplacer =
  5067. /*#__PURE__*/
  5068. function (_AbstractControlFlowR) {
  5069. _inherits(ExpressionWithOperatorControlFlowReplacer, _AbstractControlFlowR);
  5070. function ExpressionWithOperatorControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  5071. _classCallCheck(this, ExpressionWithOperatorControlFlowReplacer);
  5072. return _possibleConstructorReturn(this, (ExpressionWithOperatorControlFlowReplacer.__proto__ || _Object$getPrototypeOf(ExpressionWithOperatorControlFlowReplacer)).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  5073. }
  5074. _createClass(ExpressionWithOperatorControlFlowReplacer, [{
  5075. key: "getControlFlowStorageCallNode",
  5076. value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {
  5077. var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
  5078. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);
  5079. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  5080. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  5081. throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  5082. }
  5083. return statementNode.expression;
  5084. }
  5085. }]);
  5086. return ExpressionWithOperatorControlFlowReplacer;
  5087. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  5088. ExpressionWithOperatorControlFlowReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowReplacer);
  5089. exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;
  5090. /***/ }),
  5091. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts":
  5092. /*!************************************************************************************************************************!*\
  5093. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***!
  5094. \************************************************************************************************************************/
  5095. /*! no static exports found */
  5096. /***/ (function(module, exports, __webpack_require__) {
  5097. "use strict";
  5098. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5099. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5100. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5101. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5102. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5103. Object.defineProperty(exports, "__esModule", {
  5104. value: true
  5105. });
  5106. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5107. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5108. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5109. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  5110. var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
  5111. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5112. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5113. var LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 =
  5114. /*#__PURE__*/
  5115. function (_ExpressionWithOperat) {
  5116. _inherits(LogicalExpressionControlFlowReplacer, _ExpressionWithOperat);
  5117. function LogicalExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  5118. _classCallCheck(this, LogicalExpressionControlFlowReplacer);
  5119. return _possibleConstructorReturn(this, (LogicalExpressionControlFlowReplacer.__proto__ || _Object$getPrototypeOf(LogicalExpressionControlFlowReplacer)).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  5120. }
  5121. _createClass(LogicalExpressionControlFlowReplacer, [{
  5122. key: "replace",
  5123. value: function replace(logicalExpressionNode, parentNode, controlFlowStorage) {
  5124. if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {
  5125. return logicalExpressionNode;
  5126. }
  5127. var replacerId = logicalExpressionNode.operator;
  5128. var logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
  5129. logicalExpressionFunctionCustomNode.initialize(replacerId);
  5130. var storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, replacerId, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  5131. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);
  5132. }
  5133. }, {
  5134. key: "checkForProhibitedExpressions",
  5135. value: function checkForProhibitedExpressions(leftExpression, rightExpression) {
  5136. return [leftExpression, rightExpression].some(function (expressionNode) {
  5137. var nodeForCheck;
  5138. if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {
  5139. nodeForCheck = expressionNode;
  5140. } else {
  5141. nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);
  5142. }
  5143. return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);
  5144. });
  5145. }
  5146. }]);
  5147. return LogicalExpressionControlFlowReplacer;
  5148. }(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer);
  5149. LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  5150. LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionControlFlowReplacer);
  5151. exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;
  5152. var LogicalExpressionControlFlowReplacer_1;
  5153. /***/ }),
  5154. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts":
  5155. /*!********************************************************************************************************************!*\
  5156. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***!
  5157. \********************************************************************************************************************/
  5158. /*! no static exports found */
  5159. /***/ (function(module, exports, __webpack_require__) {
  5160. "use strict";
  5161. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5162. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5163. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5164. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5165. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5166. Object.defineProperty(exports, "__esModule", {
  5167. value: true
  5168. });
  5169. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5170. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5171. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5172. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  5173. var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  5174. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5175. var StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 =
  5176. /*#__PURE__*/
  5177. function (_AbstractControlFlowR) {
  5178. _inherits(StringLiteralControlFlowReplacer, _AbstractControlFlowR);
  5179. function StringLiteralControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  5180. _classCallCheck(this, StringLiteralControlFlowReplacer);
  5181. return _possibleConstructorReturn(this, (StringLiteralControlFlowReplacer.__proto__ || _Object$getPrototypeOf(StringLiteralControlFlowReplacer)).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  5182. }
  5183. _createClass(StringLiteralControlFlowReplacer, [{
  5184. key: "replace",
  5185. value: function replace(literalNode, parentNode, controlFlowStorage) {
  5186. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
  5187. return literalNode;
  5188. }
  5189. if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) {
  5190. return literalNode;
  5191. }
  5192. var replacerId = String(literalNode.value);
  5193. var literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
  5194. literalFunctionCustomNode.initialize(literalNode.value);
  5195. var storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);
  5196. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);
  5197. }
  5198. }, {
  5199. key: "getControlFlowStorageCallNode",
  5200. value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {
  5201. var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
  5202. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);
  5203. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  5204. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  5205. throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  5206. }
  5207. return statementNode.expression;
  5208. }
  5209. }]);
  5210. return StringLiteralControlFlowReplacer;
  5211. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  5212. StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;
  5213. StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowReplacer);
  5214. exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;
  5215. var StringLiteralControlFlowReplacer_1;
  5216. /***/ }),
  5217. /***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts":
  5218. /*!**************************************************************************************!*\
  5219. !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***!
  5220. \**************************************************************************************/
  5221. /*! no static exports found */
  5222. /***/ (function(module, exports, __webpack_require__) {
  5223. "use strict";
  5224. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5225. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5226. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5227. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5228. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5229. Object.defineProperty(exports, "__esModule", {
  5230. value: true
  5231. });
  5232. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5233. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5234. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5235. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5236. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5237. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5238. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5239. var MemberExpressionTransformer =
  5240. /*#__PURE__*/
  5241. function (_AbstractNodeTransfor) {
  5242. _inherits(MemberExpressionTransformer, _AbstractNodeTransfor);
  5243. function MemberExpressionTransformer(randomGenerator, options) {
  5244. _classCallCheck(this, MemberExpressionTransformer);
  5245. return _possibleConstructorReturn(this, (MemberExpressionTransformer.__proto__ || _Object$getPrototypeOf(MemberExpressionTransformer)).call(this, randomGenerator, options));
  5246. }
  5247. _createClass(MemberExpressionTransformer, [{
  5248. key: "getVisitor",
  5249. value: function getVisitor(transformationStage) {
  5250. var _this = this;
  5251. switch (transformationStage) {
  5252. case TransformationStage_1.TransformationStage.Converting:
  5253. return {
  5254. enter: function enter(node, parentNode) {
  5255. if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
  5256. return _this.transformNode(node, parentNode);
  5257. }
  5258. }
  5259. };
  5260. default:
  5261. return null;
  5262. }
  5263. }
  5264. }, {
  5265. key: "transformNode",
  5266. value: function transformNode(memberExpressionNode, parentNode) {
  5267. if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {
  5268. if (memberExpressionNode.computed) {
  5269. return memberExpressionNode;
  5270. }
  5271. memberExpressionNode.computed = true;
  5272. memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);
  5273. }
  5274. return memberExpressionNode;
  5275. }
  5276. }]);
  5277. return MemberExpressionTransformer;
  5278. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5279. MemberExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MemberExpressionTransformer);
  5280. exports.MemberExpressionTransformer = MemberExpressionTransformer;
  5281. /***/ }),
  5282. /***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts":
  5283. /*!**************************************************************************************!*\
  5284. !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***!
  5285. \**************************************************************************************/
  5286. /*! no static exports found */
  5287. /***/ (function(module, exports, __webpack_require__) {
  5288. "use strict";
  5289. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5290. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5291. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5292. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5293. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5294. Object.defineProperty(exports, "__esModule", {
  5295. value: true
  5296. });
  5297. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5298. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5299. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5300. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5301. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5302. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5303. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5304. var MethodDefinitionTransformer = MethodDefinitionTransformer_1 =
  5305. /*#__PURE__*/
  5306. function (_AbstractNodeTransfor) {
  5307. _inherits(MethodDefinitionTransformer, _AbstractNodeTransfor);
  5308. function MethodDefinitionTransformer(randomGenerator, options) {
  5309. _classCallCheck(this, MethodDefinitionTransformer);
  5310. return _possibleConstructorReturn(this, (MethodDefinitionTransformer.__proto__ || _Object$getPrototypeOf(MethodDefinitionTransformer)).call(this, randomGenerator, options));
  5311. }
  5312. _createClass(MethodDefinitionTransformer, [{
  5313. key: "getVisitor",
  5314. value: function getVisitor(transformationStage) {
  5315. var _this = this;
  5316. switch (transformationStage) {
  5317. case TransformationStage_1.TransformationStage.Converting:
  5318. return {
  5319. enter: function enter(node, parentNode) {
  5320. if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {
  5321. return _this.transformNode(node, parentNode);
  5322. }
  5323. }
  5324. };
  5325. default:
  5326. return null;
  5327. }
  5328. }
  5329. }, {
  5330. key: "transformNode",
  5331. value: function transformNode(methodDefinitionNode, parentNode) {
  5332. if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) {
  5333. methodDefinitionNode.computed = true;
  5334. methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(methodDefinitionNode.key.name);
  5335. }
  5336. return methodDefinitionNode;
  5337. }
  5338. }]);
  5339. return MethodDefinitionTransformer;
  5340. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5341. MethodDefinitionTransformer.ignoredNames = ['constructor'];
  5342. MethodDefinitionTransformer = MethodDefinitionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MethodDefinitionTransformer);
  5343. exports.MethodDefinitionTransformer = MethodDefinitionTransformer;
  5344. var MethodDefinitionTransformer_1;
  5345. /***/ }),
  5346. /***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts":
  5347. /*!******************************************************************************************!*\
  5348. !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***!
  5349. \******************************************************************************************/
  5350. /*! no static exports found */
  5351. /***/ (function(module, exports, __webpack_require__) {
  5352. "use strict";
  5353. var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
  5354. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  5355. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5356. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5357. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5358. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5359. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5360. Object.defineProperty(exports, "__esModule", {
  5361. value: true
  5362. });
  5363. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5364. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5365. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5366. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5367. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5368. var NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  5369. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5370. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5371. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5372. var ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 =
  5373. /*#__PURE__*/
  5374. function (_AbstractNodeTransfor) {
  5375. _inherits(ObjectExpressionKeysTransformer, _AbstractNodeTransfor);
  5376. function ObjectExpressionKeysTransformer(randomGenerator, options) {
  5377. var _this;
  5378. _classCallCheck(this, ObjectExpressionKeysTransformer);
  5379. _this = _possibleConstructorReturn(this, (ObjectExpressionKeysTransformer.__proto__ || _Object$getPrototypeOf(ObjectExpressionKeysTransformer)).call(this, randomGenerator, options));
  5380. _this.cachedScopeNodesMap = new _Map();
  5381. return _this;
  5382. }
  5383. _createClass(ObjectExpressionKeysTransformer, [{
  5384. key: "getVisitor",
  5385. value: function getVisitor(transformationStage) {
  5386. var _this2 = this;
  5387. switch (transformationStage) {
  5388. case TransformationStage_1.TransformationStage.Converting:
  5389. return {
  5390. enter: function enter(node, parentNode) {
  5391. if (_this2.options.transformObjectKeys && parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node) && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)) {
  5392. return _this2.transformNode(node, parentNode);
  5393. }
  5394. }
  5395. };
  5396. default:
  5397. return null;
  5398. }
  5399. }
  5400. }, {
  5401. key: "transformNode",
  5402. value: function transformNode(objectExpressionNode, variableDeclarator) {
  5403. if (!NodeGuards_1.NodeGuards.isIdentifierNode(variableDeclarator.id)) {
  5404. return objectExpressionNode;
  5405. }
  5406. var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(variableDeclarator);
  5407. if (!scopeNode || !NodeGuards_1.NodeGuards.isNodeHasScope(scopeNode)) {
  5408. return objectExpressionNode;
  5409. }
  5410. this.cachedScopeNodesMap.set(variableDeclarator, scopeNode);
  5411. return this.transformObjectExpressionNode(objectExpressionNode, variableDeclarator.id, variableDeclarator);
  5412. }
  5413. }, {
  5414. key: "extractPropertiesToExpressionStatements",
  5415. value: function extractPropertiesToExpressionStatements(properties, memberExpressionObject, variableDeclarator) {
  5416. var propertiesLength = properties.length;
  5417. var expressionStatements = [];
  5418. var removablePropertyIds = [];
  5419. for (var i = 0; i < propertiesLength; i++) {
  5420. var property = properties[i];
  5421. var propertyValue = property.value;
  5422. if (!ObjectExpressionKeysTransformer_1.isValidPropertyValueNode(propertyValue)) {
  5423. continue;
  5424. }
  5425. var propertyKeyName = ObjectExpressionKeysTransformer_1.getPropertyNodeKeyName(property);
  5426. if (!propertyKeyName) {
  5427. continue;
  5428. }
  5429. var shouldCreateLiteralNode = !property.computed || property.computed && NodeGuards_1.NodeGuards.isLiteralNode(property.key);
  5430. var memberExpressionProperty = shouldCreateLiteralNode ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);
  5431. var memberExpressionNode = NodeFactory_1.NodeFactory.memberExpressionNode(memberExpressionObject, memberExpressionProperty, true);
  5432. var expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));
  5433. if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {
  5434. this.transformObjectExpressionNode(property.value, memberExpressionNode, variableDeclarator);
  5435. }
  5436. expressionStatements.push(expressionStatementNode);
  5437. removablePropertyIds.push(i);
  5438. }
  5439. return [expressionStatements, removablePropertyIds];
  5440. }
  5441. }, {
  5442. key: "transformObjectExpressionNode",
  5443. value: function transformObjectExpressionNode(objectExpressionNode, memberExpressionObjectNode, variableDeclarator) {
  5444. var properties = objectExpressionNode.properties;
  5445. if (!properties.length) {
  5446. return objectExpressionNode;
  5447. }
  5448. var scopeNode = this.cachedScopeNodesMap.get(variableDeclarator);
  5449. if (!scopeNode) {
  5450. return objectExpressionNode;
  5451. }
  5452. var _extractPropertiesToE = this.extractPropertiesToExpressionStatements(properties, memberExpressionObjectNode, variableDeclarator),
  5453. _extractPropertiesToE2 = _slicedToArray(_extractPropertiesToE, 2),
  5454. expressionStatements = _extractPropertiesToE2[0],
  5455. removablePropertyIds = _extractPropertiesToE2[1];
  5456. objectExpressionNode.properties = ObjectExpressionKeysTransformer_1.filterObjectExpressionProperties(properties, removablePropertyIds);
  5457. ObjectExpressionKeysTransformer_1.appendExpressionStatements(scopeNode, expressionStatements, variableDeclarator);
  5458. return objectExpressionNode;
  5459. }
  5460. }], [{
  5461. key: "appendExpressionStatements",
  5462. value: function appendExpressionStatements(scopeNode, expressionStatements, variableDeclarator) {
  5463. var variableDeclaration = variableDeclarator.parentNode;
  5464. if (!variableDeclaration || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(variableDeclaration)) {
  5465. throw new Error('Cannot find variable declaration for variable declarator');
  5466. }
  5467. NodeAppender_1.NodeAppender.insertNodeAfter(scopeNode, expressionStatements, variableDeclaration);
  5468. }
  5469. }, {
  5470. key: "filterObjectExpressionProperties",
  5471. value: function filterObjectExpressionProperties(properties, removablePropertyIds) {
  5472. return properties.filter(function (property, index) {
  5473. return !removablePropertyIds.includes(index);
  5474. });
  5475. }
  5476. }, {
  5477. key: "getPropertyNodeKeyName",
  5478. value: function getPropertyNodeKeyName(propertyNode) {
  5479. var propertyKeyNode = propertyNode.key;
  5480. if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) && typeof propertyKeyNode.value === 'string') {
  5481. return propertyKeyNode.value;
  5482. } else if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {
  5483. return propertyKeyNode.name;
  5484. }
  5485. return null;
  5486. }
  5487. }, {
  5488. key: "isValidPropertyValueNode",
  5489. value: function isValidPropertyValueNode(propertyValueNode) {
  5490. return !NodeGuards_1.NodeGuards.isObjectPatternNode(propertyValueNode) && !NodeGuards_1.NodeGuards.isArrayPatternNode(propertyValueNode) && !NodeGuards_1.NodeGuards.isAssignmentPatternNode(propertyValueNode) && !NodeGuards_1.NodeGuards.isRestElementNode(propertyValueNode);
  5491. }
  5492. }]);
  5493. return ObjectExpressionKeysTransformer;
  5494. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5495. ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ObjectExpressionKeysTransformer);
  5496. exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;
  5497. var ObjectExpressionKeysTransformer_1;
  5498. /***/ }),
  5499. /***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts":
  5500. /*!*************************************************************************************!*\
  5501. !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***!
  5502. \*************************************************************************************/
  5503. /*! no static exports found */
  5504. /***/ (function(module, exports, __webpack_require__) {
  5505. "use strict";
  5506. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  5507. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5508. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5509. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5510. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5511. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5512. Object.defineProperty(exports, "__esModule", {
  5513. value: true
  5514. });
  5515. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5516. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5517. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5518. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5519. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5520. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5521. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5522. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5523. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5524. var TemplateLiteralTransformer = TemplateLiteralTransformer_1 =
  5525. /*#__PURE__*/
  5526. function (_AbstractNodeTransfor) {
  5527. _inherits(TemplateLiteralTransformer, _AbstractNodeTransfor);
  5528. function TemplateLiteralTransformer(randomGenerator, options) {
  5529. _classCallCheck(this, TemplateLiteralTransformer);
  5530. return _possibleConstructorReturn(this, (TemplateLiteralTransformer.__proto__ || _Object$getPrototypeOf(TemplateLiteralTransformer)).call(this, randomGenerator, options));
  5531. }
  5532. _createClass(TemplateLiteralTransformer, [{
  5533. key: "getVisitor",
  5534. value: function getVisitor(transformationStage) {
  5535. var _this = this;
  5536. switch (transformationStage) {
  5537. case TransformationStage_1.TransformationStage.Converting:
  5538. return {
  5539. enter: function enter(node, parentNode) {
  5540. if (parentNode && NodeGuards_1.NodeGuards.isReturnStatementNode(node) && node.argument === null) {
  5541. return _this.fixEsprimaReturnStatementTemplateLiteralNode(node);
  5542. }
  5543. },
  5544. leave: function leave(node, parentNode) {
  5545. if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
  5546. return _this.transformNode(node, parentNode);
  5547. }
  5548. }
  5549. };
  5550. default:
  5551. return null;
  5552. }
  5553. }
  5554. }, {
  5555. key: "transformNode",
  5556. value: function transformNode(templateLiteralNode, parentNode) {
  5557. var templateLiteralExpressions = templateLiteralNode.expressions;
  5558. var nodes = [];
  5559. templateLiteralNode.quasis.forEach(function (templateElement) {
  5560. nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));
  5561. var expression = templateLiteralExpressions.shift();
  5562. if (!expression) {
  5563. return;
  5564. }
  5565. nodes.push(expression);
  5566. });
  5567. nodes = nodes.filter(function (node) {
  5568. return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');
  5569. });
  5570. if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {
  5571. nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));
  5572. }
  5573. if (nodes.length > 1) {
  5574. var root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());
  5575. nodes.forEach(function (node) {
  5576. root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);
  5577. });
  5578. return root;
  5579. }
  5580. return nodes[0];
  5581. }
  5582. }, {
  5583. key: "fixEsprimaReturnStatementTemplateLiteralNode",
  5584. value: function fixEsprimaReturnStatementTemplateLiteralNode(returnStatementNode) {
  5585. var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(returnStatementNode);
  5586. var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
  5587. var indexInScope = scopeBody.indexOf(returnStatementNode);
  5588. if (indexInScope !== scopeBody.length - 2) {
  5589. return;
  5590. }
  5591. var nextSiblingStatementNode = scopeBody[indexInScope + 1];
  5592. if (!nextSiblingStatementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(nextSiblingStatementNode)) {
  5593. return;
  5594. }
  5595. var isSiblingStatementHasTemplateLiteralNode = false;
  5596. estraverse.traverse(nextSiblingStatementNode, {
  5597. enter: function enter(node, parentNode) {
  5598. if (!NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
  5599. return;
  5600. }
  5601. isSiblingStatementHasTemplateLiteralNode = true;
  5602. return estraverse.VisitorOption.Break;
  5603. }
  5604. });
  5605. if (!isSiblingStatementHasTemplateLiteralNode) {
  5606. return;
  5607. }
  5608. returnStatementNode.argument = nextSiblingStatementNode.expression;
  5609. scopeBody.pop();
  5610. if (!NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)) {
  5611. scopeNode.body = _toConsumableArray(scopeBody);
  5612. } else {
  5613. scopeNode.consequent = _toConsumableArray(scopeBody);
  5614. }
  5615. return returnStatementNode;
  5616. }
  5617. }], [{
  5618. key: "isLiteralNodeWithStringValue",
  5619. value: function isLiteralNodeWithStringValue(node) {
  5620. return node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';
  5621. }
  5622. }]);
  5623. return TemplateLiteralTransformer;
  5624. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5625. TemplateLiteralTransformer = TemplateLiteralTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], TemplateLiteralTransformer);
  5626. exports.TemplateLiteralTransformer = TemplateLiteralTransformer;
  5627. var TemplateLiteralTransformer_1;
  5628. /***/ }),
  5629. /***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts":
  5630. /*!************************************************************************************************!*\
  5631. !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***!
  5632. \************************************************************************************************/
  5633. /*! no static exports found */
  5634. /***/ (function(module, exports, __webpack_require__) {
  5635. "use strict";
  5636. var _Set = __webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set");
  5637. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5638. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5639. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5640. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5641. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5642. Object.defineProperty(exports, "__esModule", {
  5643. value: true
  5644. });
  5645. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5646. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5647. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5648. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5649. var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
  5650. var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  5651. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  5652. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5653. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5654. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5655. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5656. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5657. var DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 =
  5658. /*#__PURE__*/
  5659. function (_AbstractNodeTransfor) {
  5660. _inherits(DeadCodeInjectionTransformer, _AbstractNodeTransfor);
  5661. function DeadCodeInjectionTransformer(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {
  5662. var _this;
  5663. _classCallCheck(this, DeadCodeInjectionTransformer);
  5664. _this = _possibleConstructorReturn(this, (DeadCodeInjectionTransformer.__proto__ || _Object$getPrototypeOf(DeadCodeInjectionTransformer)).call(this, randomGenerator, options));
  5665. _this.deadCodeInjectionRootAstHostNodeSet = new _Set();
  5666. _this.collectedBlockStatements = [];
  5667. _this.collectedBlockStatementsTotalLength = 0;
  5668. _this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;
  5669. _this.transformersRunner = transformersRunner;
  5670. return _this;
  5671. }
  5672. _createClass(DeadCodeInjectionTransformer, [{
  5673. key: "getVisitor",
  5674. value: function getVisitor(transformationStage) {
  5675. var _this2 = this;
  5676. switch (transformationStage) {
  5677. case TransformationStage_1.TransformationStage.DeadCodeInjection:
  5678. return {
  5679. enter: function enter(node, parentNode) {
  5680. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  5681. _this2.analyzeNode(node, parentNode);
  5682. return node;
  5683. }
  5684. },
  5685. leave: function leave(node, parentNode) {
  5686. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  5687. return _this2.transformNode(node, parentNode);
  5688. }
  5689. }
  5690. };
  5691. case TransformationStage_1.TransformationStage.Finalizing:
  5692. if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
  5693. return null;
  5694. }
  5695. return {
  5696. enter: function enter(node, parentNode) {
  5697. if (parentNode && _this2.isDeadCodeInjectionRootAstHostNode(node)) {
  5698. return _this2.restoreNode(node, parentNode);
  5699. }
  5700. }
  5701. };
  5702. default:
  5703. return null;
  5704. }
  5705. }
  5706. }, {
  5707. key: "analyzeNode",
  5708. value: function analyzeNode(programNode, parentNode) {
  5709. var _this3 = this;
  5710. estraverse.traverse(programNode, {
  5711. enter: function enter(node) {
  5712. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  5713. return;
  5714. }
  5715. var clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);
  5716. if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {
  5717. return;
  5718. }
  5719. NodeUtils_1.NodeUtils.parentizeNode(clonedBlockStatementNode, clonedBlockStatementNode);
  5720. clonedBlockStatementNode = _this3.transformersRunner.transform(clonedBlockStatementNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, TransformationStage_1.TransformationStage.Obfuscating);
  5721. _this3.collectedBlockStatements.push(clonedBlockStatementNode);
  5722. }
  5723. });
  5724. this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;
  5725. }
  5726. }, {
  5727. key: "transformNode",
  5728. value: function transformNode(blockStatementNode, parentNode) {
  5729. var canBreakTraverse = !this.collectedBlockStatements.length || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;
  5730. if (canBreakTraverse) {
  5731. return estraverse.VisitorOption.Break;
  5732. }
  5733. if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {
  5734. return blockStatementNode;
  5735. }
  5736. var minInteger = 0;
  5737. var maxInteger = this.collectedBlockStatements.length - 1;
  5738. var randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);
  5739. var randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];
  5740. var isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;
  5741. if (isDuplicateBlockStatementNodes) {
  5742. return blockStatementNode;
  5743. }
  5744. return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);
  5745. }
  5746. }, {
  5747. key: "restoreNode",
  5748. value: function restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {
  5749. var hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];
  5750. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {
  5751. throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');
  5752. }
  5753. return hostNodeFirstStatement.body;
  5754. }
  5755. }, {
  5756. key: "isDeadCodeInjectionRootAstHostNode",
  5757. value: function isDeadCodeInjectionRootAstHostNode(node) {
  5758. return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);
  5759. }
  5760. }, {
  5761. key: "replaceBlockStatementNode",
  5762. value: function replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {
  5763. var deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)]);
  5764. this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);
  5765. var blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
  5766. blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);
  5767. var newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];
  5768. NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
  5769. return newBlockStatementNode;
  5770. }
  5771. }], [{
  5772. key: "isProhibitedNodeInsideCollectedBlockStatement",
  5773. value: function isProhibitedNodeInsideCollectedBlockStatement(targetNode) {
  5774. return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) || NodeGuards_1.NodeGuards.isSuperNode(targetNode);
  5775. }
  5776. }, {
  5777. key: "isScopeHoistingFunctionDeclaration",
  5778. value: function isScopeHoistingFunctionDeclaration(targetNode) {
  5779. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {
  5780. return false;
  5781. }
  5782. var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(targetNode);
  5783. var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
  5784. var indexInScope = scopeBody.indexOf(targetNode);
  5785. if (indexInScope === 0) {
  5786. return false;
  5787. }
  5788. var slicedBody = scopeBody.slice(0, indexInScope);
  5789. var hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);
  5790. var functionDeclarationName = targetNode.id.name;
  5791. var isScopeHoistedFunctionDeclaration = false;
  5792. estraverse.traverse(hostBlockStatementNode, {
  5793. enter: function enter(node) {
  5794. if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {
  5795. isScopeHoistedFunctionDeclaration = true;
  5796. return estraverse.VisitorOption.Break;
  5797. }
  5798. }
  5799. });
  5800. return isScopeHoistedFunctionDeclaration;
  5801. }
  5802. }, {
  5803. key: "isValidCollectedBlockStatementNode",
  5804. value: function isValidCollectedBlockStatementNode(blockStatementNode) {
  5805. if (!blockStatementNode.body.length) {
  5806. return false;
  5807. }
  5808. var nestedBlockStatementsCount = 0;
  5809. var isValidBlockStatementNode = true;
  5810. estraverse.traverse(blockStatementNode, {
  5811. enter: function enter(node) {
  5812. if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  5813. nestedBlockStatementsCount++;
  5814. }
  5815. if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
  5816. isValidBlockStatementNode = false;
  5817. return estraverse.VisitorOption.Break;
  5818. }
  5819. }
  5820. });
  5821. return isValidBlockStatementNode;
  5822. }
  5823. }, {
  5824. key: "isValidWrappedBlockStatementNode",
  5825. value: function isValidWrappedBlockStatementNode(blockStatementNode) {
  5826. if (!blockStatementNode.body.length) {
  5827. return false;
  5828. }
  5829. var isValidBlockStatementNode = true;
  5830. estraverse.traverse(blockStatementNode, {
  5831. enter: function enter(node) {
  5832. if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
  5833. isValidBlockStatementNode = false;
  5834. return estraverse.VisitorOption.Break;
  5835. }
  5836. }
  5837. });
  5838. if (!isValidBlockStatementNode) {
  5839. return false;
  5840. }
  5841. var blockScopeOfBlockStatementNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockStatementNode)[0];
  5842. return blockScopeOfBlockStatementNode.type !== NodeType_1.NodeType.Program;
  5843. }
  5844. }]);
  5845. return DeadCodeInjectionTransformer;
  5846. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5847. DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';
  5848. DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;
  5849. DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;
  5850. DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer];
  5851. DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DeadCodeInjectionTransformer);
  5852. exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;
  5853. var DeadCodeInjectionTransformer_1;
  5854. /***/ }),
  5855. /***/ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts":
  5856. /*!**********************************************************************************!*\
  5857. !*** ./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts ***!
  5858. \**********************************************************************************/
  5859. /*! no static exports found */
  5860. /***/ (function(module, exports, __webpack_require__) {
  5861. "use strict";
  5862. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5863. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5864. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5865. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5866. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5867. Object.defineProperty(exports, "__esModule", {
  5868. value: true
  5869. });
  5870. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5871. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5872. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5873. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5874. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  5875. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5876. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5877. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5878. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  5879. var CatchClauseTransformer =
  5880. /*#__PURE__*/
  5881. function (_AbstractNodeTransfor) {
  5882. _inherits(CatchClauseTransformer, _AbstractNodeTransfor);
  5883. function CatchClauseTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  5884. var _this;
  5885. _classCallCheck(this, CatchClauseTransformer);
  5886. _this = _possibleConstructorReturn(this, (CatchClauseTransformer.__proto__ || _Object$getPrototypeOf(CatchClauseTransformer)).call(this, randomGenerator, options));
  5887. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  5888. return _this;
  5889. }
  5890. _createClass(CatchClauseTransformer, [{
  5891. key: "getVisitor",
  5892. value: function getVisitor(transformationStage) {
  5893. var _this2 = this;
  5894. switch (transformationStage) {
  5895. case TransformationStage_1.TransformationStage.Obfuscating:
  5896. return {
  5897. enter: function enter(node, parentNode) {
  5898. if (parentNode && NodeGuards_1.NodeGuards.isCatchClauseNode(node)) {
  5899. return _this2.transformNode(node, parentNode);
  5900. }
  5901. }
  5902. };
  5903. default:
  5904. return null;
  5905. }
  5906. }
  5907. }, {
  5908. key: "transformNode",
  5909. value: function transformNode(catchClauseNode, parentNode) {
  5910. var nodeIdentifier = this.nodeIdentifier++;
  5911. this.storeCatchClauseParam(catchClauseNode, nodeIdentifier);
  5912. this.replaceCatchClauseParam(catchClauseNode, nodeIdentifier);
  5913. return catchClauseNode;
  5914. }
  5915. }, {
  5916. key: "storeCatchClauseParam",
  5917. value: function storeCatchClauseParam(catchClauseNode, nodeIdentifier) {
  5918. if (NodeGuards_1.NodeGuards.isIdentifierNode(catchClauseNode.param)) {
  5919. this.identifierObfuscatingReplacer.storeLocalName(catchClauseNode.param.name, nodeIdentifier);
  5920. }
  5921. }
  5922. }, {
  5923. key: "replaceCatchClauseParam",
  5924. value: function replaceCatchClauseParam(catchClauseNode, nodeIdentifier) {
  5925. var _this3 = this;
  5926. estraverse.replace(catchClauseNode, {
  5927. enter: function enter(node, parentNode) {
  5928. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode)) {
  5929. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, nodeIdentifier);
  5930. var newIdentifierName = newIdentifier.name;
  5931. if (node.name !== newIdentifierName) {
  5932. node.name = newIdentifierName;
  5933. NodeMetadata_1.NodeMetadata.set(node, {
  5934. renamedIdentifier: true
  5935. });
  5936. }
  5937. }
  5938. }
  5939. });
  5940. }
  5941. }]);
  5942. return CatchClauseTransformer;
  5943. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5944. CatchClauseTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CatchClauseTransformer);
  5945. exports.CatchClauseTransformer = CatchClauseTransformer;
  5946. /***/ }),
  5947. /***/ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts":
  5948. /*!***************************************************************************************!*\
  5949. !*** ./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts ***!
  5950. \***************************************************************************************/
  5951. /*! no static exports found */
  5952. /***/ (function(module, exports, __webpack_require__) {
  5953. "use strict";
  5954. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  5955. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  5956. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  5957. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  5958. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  5959. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  5960. Object.defineProperty(exports, "__esModule", {
  5961. value: true
  5962. });
  5963. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5964. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5965. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5966. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5967. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  5968. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  5969. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5970. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5971. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5972. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  5973. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5974. var ClassDeclarationTransformer =
  5975. /*#__PURE__*/
  5976. function (_AbstractNodeTransfor) {
  5977. _inherits(ClassDeclarationTransformer, _AbstractNodeTransfor);
  5978. function ClassDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  5979. var _this;
  5980. _classCallCheck(this, ClassDeclarationTransformer);
  5981. _this = _possibleConstructorReturn(this, (ClassDeclarationTransformer.__proto__ || _Object$getPrototypeOf(ClassDeclarationTransformer)).call(this, randomGenerator, options));
  5982. _this.replaceableIdentifiers = new _Map();
  5983. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  5984. return _this;
  5985. }
  5986. _createClass(ClassDeclarationTransformer, [{
  5987. key: "getVisitor",
  5988. value: function getVisitor(transformationStage) {
  5989. var _this2 = this;
  5990. switch (transformationStage) {
  5991. case TransformationStage_1.TransformationStage.Obfuscating:
  5992. return {
  5993. enter: function enter(node, parentNode) {
  5994. if (parentNode && NodeGuards_1.NodeGuards.isClassDeclarationNode(node)) {
  5995. return _this2.transformNode(node, parentNode);
  5996. }
  5997. }
  5998. };
  5999. default:
  6000. return null;
  6001. }
  6002. }
  6003. }, {
  6004. key: "transformNode",
  6005. value: function transformNode(classDeclarationNode, parentNode) {
  6006. var nodeIdentifier = this.nodeIdentifier++;
  6007. var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(classDeclarationNode)[0];
  6008. var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program;
  6009. if (!this.options.renameGlobals && isGlobalDeclaration) {
  6010. return classDeclarationNode;
  6011. }
  6012. this.storeClassName(classDeclarationNode, isGlobalDeclaration, nodeIdentifier);
  6013. if (this.replaceableIdentifiers.has(blockScopeNode)) {
  6014. this.replaceScopeCachedIdentifiers(blockScopeNode, nodeIdentifier);
  6015. } else {
  6016. this.replaceScopeIdentifiers(blockScopeNode, nodeIdentifier);
  6017. }
  6018. return classDeclarationNode;
  6019. }
  6020. }, {
  6021. key: "storeClassName",
  6022. value: function storeClassName(classDeclarationNode, isGlobalDeclaration, nodeIdentifier) {
  6023. if (isGlobalDeclaration) {
  6024. this.identifierObfuscatingReplacer.storeGlobalName(classDeclarationNode.id.name, nodeIdentifier);
  6025. } else {
  6026. this.identifierObfuscatingReplacer.storeLocalName(classDeclarationNode.id.name, nodeIdentifier);
  6027. }
  6028. }
  6029. }, {
  6030. key: "replaceScopeCachedIdentifiers",
  6031. value: function replaceScopeCachedIdentifiers(blockScopeNode, nodeIdentifier) {
  6032. var _this3 = this;
  6033. var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(blockScopeNode);
  6034. cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) {
  6035. var newReplaceableIdentifier = _this3.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, nodeIdentifier);
  6036. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6037. });
  6038. }
  6039. }, {
  6040. key: "replaceScopeIdentifiers",
  6041. value: function replaceScopeIdentifiers(blockScopeNode, nodeIdentifier) {
  6042. var _this4 = this;
  6043. var storedReplaceableIdentifiers = [];
  6044. estraverse.replace(blockScopeNode, {
  6045. enter: function enter(node, parentNode) {
  6046. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6047. var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, nodeIdentifier);
  6048. var newIdentifierName = newIdentifier.name;
  6049. if (node.name !== newIdentifierName) {
  6050. node.name = newIdentifierName;
  6051. NodeMetadata_1.NodeMetadata.set(node, {
  6052. renamedIdentifier: true
  6053. });
  6054. } else {
  6055. storedReplaceableIdentifiers.push(node);
  6056. }
  6057. }
  6058. }
  6059. });
  6060. this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiers);
  6061. }
  6062. }]);
  6063. return ClassDeclarationTransformer;
  6064. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6065. ClassDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ClassDeclarationTransformer);
  6066. exports.ClassDeclarationTransformer = ClassDeclarationTransformer;
  6067. /***/ }),
  6068. /***/ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts":
  6069. /*!******************************************************************************************!*\
  6070. !*** ./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts ***!
  6071. \******************************************************************************************/
  6072. /*! no static exports found */
  6073. /***/ (function(module, exports, __webpack_require__) {
  6074. "use strict";
  6075. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  6076. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6077. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6078. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6079. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6080. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6081. Object.defineProperty(exports, "__esModule", {
  6082. value: true
  6083. });
  6084. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6085. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6086. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6087. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6088. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6089. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  6090. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6091. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6092. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6093. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6094. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  6095. var FunctionDeclarationTransformer =
  6096. /*#__PURE__*/
  6097. function (_AbstractNodeTransfor) {
  6098. _inherits(FunctionDeclarationTransformer, _AbstractNodeTransfor);
  6099. function FunctionDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6100. var _this;
  6101. _classCallCheck(this, FunctionDeclarationTransformer);
  6102. _this = _possibleConstructorReturn(this, (FunctionDeclarationTransformer.__proto__ || _Object$getPrototypeOf(FunctionDeclarationTransformer)).call(this, randomGenerator, options));
  6103. _this.replaceableIdentifiers = new _Map();
  6104. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6105. return _this;
  6106. }
  6107. _createClass(FunctionDeclarationTransformer, [{
  6108. key: "getVisitor",
  6109. value: function getVisitor(transformationStage) {
  6110. var _this2 = this;
  6111. switch (transformationStage) {
  6112. case TransformationStage_1.TransformationStage.Obfuscating:
  6113. return {
  6114. enter: function enter(node, parentNode) {
  6115. if (parentNode && NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node)) {
  6116. return _this2.transformNode(node, parentNode);
  6117. }
  6118. }
  6119. };
  6120. default:
  6121. return null;
  6122. }
  6123. }
  6124. }, {
  6125. key: "transformNode",
  6126. value: function transformNode(functionDeclarationNode, parentNode) {
  6127. var nodeIdentifier = this.nodeIdentifier++;
  6128. var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(functionDeclarationNode)[0];
  6129. var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program;
  6130. if (!this.options.renameGlobals && isGlobalDeclaration) {
  6131. return functionDeclarationNode;
  6132. }
  6133. this.storeFunctionName(functionDeclarationNode, isGlobalDeclaration, nodeIdentifier);
  6134. if (this.replaceableIdentifiers.has(blockScopeNode)) {
  6135. this.replaceScopeCachedIdentifiers(functionDeclarationNode, blockScopeNode, nodeIdentifier);
  6136. } else {
  6137. this.replaceScopeIdentifiers(blockScopeNode, nodeIdentifier);
  6138. }
  6139. return functionDeclarationNode;
  6140. }
  6141. }, {
  6142. key: "storeFunctionName",
  6143. value: function storeFunctionName(functionDeclarationNode, isGlobalDeclaration, nodeIdentifier) {
  6144. if (isGlobalDeclaration) {
  6145. this.identifierObfuscatingReplacer.storeGlobalName(functionDeclarationNode.id.name, nodeIdentifier);
  6146. } else {
  6147. this.identifierObfuscatingReplacer.storeLocalName(functionDeclarationNode.id.name, nodeIdentifier);
  6148. }
  6149. }
  6150. }, {
  6151. key: "replaceScopeCachedIdentifiers",
  6152. value: function replaceScopeCachedIdentifiers(functionDeclarationNode, blockScopeNode, nodeIdentifier) {
  6153. var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(blockScopeNode);
  6154. if (!cachedReplaceableIdentifiersNamesMap) {
  6155. return;
  6156. }
  6157. var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(functionDeclarationNode.id.name);
  6158. if (!cachedReplaceableIdentifiers) {
  6159. return;
  6160. }
  6161. var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
  6162. for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
  6163. var replaceableIdentifier = cachedReplaceableIdentifiers[i];
  6164. var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, nodeIdentifier);
  6165. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6166. }
  6167. }
  6168. }, {
  6169. key: "replaceScopeIdentifiers",
  6170. value: function replaceScopeIdentifiers(blockScopeNode, nodeIdentifier) {
  6171. var _this3 = this;
  6172. var storedReplaceableIdentifiersNamesMap = new _Map();
  6173. estraverse.replace(blockScopeNode, {
  6174. enter: function enter(node, parentNode) {
  6175. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6176. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, nodeIdentifier);
  6177. var newIdentifierName = newIdentifier.name;
  6178. if (node.name !== newIdentifierName) {
  6179. node.name = newIdentifierName;
  6180. NodeMetadata_1.NodeMetadata.set(node, {
  6181. renamedIdentifier: true
  6182. });
  6183. } else {
  6184. var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
  6185. storedReplaceableIdentifiers.push(node);
  6186. storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
  6187. }
  6188. }
  6189. }
  6190. });
  6191. this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiersNamesMap);
  6192. }
  6193. }]);
  6194. return FunctionDeclarationTransformer;
  6195. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6196. FunctionDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionDeclarationTransformer);
  6197. exports.FunctionDeclarationTransformer = FunctionDeclarationTransformer;
  6198. /***/ }),
  6199. /***/ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts":
  6200. /*!*******************************************************************************!*\
  6201. !*** ./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts ***!
  6202. \*******************************************************************************/
  6203. /*! no static exports found */
  6204. /***/ (function(module, exports, __webpack_require__) {
  6205. "use strict";
  6206. var _Set = __webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set");
  6207. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6208. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6209. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6210. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6211. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6212. Object.defineProperty(exports, "__esModule", {
  6213. value: true
  6214. });
  6215. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6216. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6217. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6218. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6219. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6220. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6221. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6222. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6223. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6224. var FunctionTransformer =
  6225. /*#__PURE__*/
  6226. function (_AbstractNodeTransfor) {
  6227. _inherits(FunctionTransformer, _AbstractNodeTransfor);
  6228. function FunctionTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6229. var _this;
  6230. _classCallCheck(this, FunctionTransformer);
  6231. _this = _possibleConstructorReturn(this, (FunctionTransformer.__proto__ || _Object$getPrototypeOf(FunctionTransformer)).call(this, randomGenerator, options));
  6232. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6233. return _this;
  6234. }
  6235. _createClass(FunctionTransformer, [{
  6236. key: "getVisitor",
  6237. value: function getVisitor(transformationStage) {
  6238. var _this2 = this;
  6239. switch (transformationStage) {
  6240. case TransformationStage_1.TransformationStage.Obfuscating:
  6241. return {
  6242. enter: function enter(node, parentNode) {
  6243. if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {
  6244. return _this2.transformNode(node, parentNode);
  6245. }
  6246. }
  6247. };
  6248. default:
  6249. return null;
  6250. }
  6251. }
  6252. }, {
  6253. key: "transformNode",
  6254. value: function transformNode(functionNode, parentNode) {
  6255. var nodeIdentifier = this.nodeIdentifier++;
  6256. this.storeFunctionParams(functionNode, nodeIdentifier);
  6257. this.replaceFunctionParams(functionNode, nodeIdentifier);
  6258. return functionNode;
  6259. }
  6260. }, {
  6261. key: "storeFunctionParams",
  6262. value: function storeFunctionParams(functionNode, nodeIdentifier) {
  6263. var _this3 = this;
  6264. functionNode.params.forEach(function (paramsNode) {
  6265. if (NodeGuards_1.NodeGuards.isObjectPatternNode(paramsNode)) {
  6266. return estraverse.VisitorOption.Skip;
  6267. }
  6268. estraverse.traverse(paramsNode, {
  6269. enter: function enter(node) {
  6270. if (NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.left)) {
  6271. _this3.identifierObfuscatingReplacer.storeLocalName(node.left.name, nodeIdentifier);
  6272. return estraverse.VisitorOption.Skip;
  6273. }
  6274. if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  6275. _this3.identifierObfuscatingReplacer.storeLocalName(node.name, nodeIdentifier);
  6276. }
  6277. }
  6278. });
  6279. });
  6280. }
  6281. }, {
  6282. key: "addIdentifiersToIgnoredIdentifierNamesSet",
  6283. value: function addIdentifiersToIgnoredIdentifierNamesSet(properties, ignoredIdentifierNamesSet) {
  6284. properties.forEach(function (property) {
  6285. if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
  6286. return;
  6287. }
  6288. ignoredIdentifierNamesSet.add(property.key.name);
  6289. });
  6290. }
  6291. }, {
  6292. key: "replaceFunctionParams",
  6293. value: function replaceFunctionParams(functionNode, nodeIdentifier) {
  6294. var _this4 = this;
  6295. var ignoredIdentifierNamesSet = new _Set();
  6296. var replaceVisitor = {
  6297. enter: function enter(node, parentNode) {
  6298. if (NodeGuards_1.NodeGuards.isObjectPatternNode(node)) {
  6299. _this4.addIdentifiersToIgnoredIdentifierNamesSet(node.properties, ignoredIdentifierNamesSet);
  6300. }
  6301. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !ignoredIdentifierNamesSet.has(node.name)) {
  6302. var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, nodeIdentifier);
  6303. var newIdentifierName = newIdentifier.name;
  6304. if (node.name !== newIdentifierName) {
  6305. node.name = newIdentifierName;
  6306. NodeMetadata_1.NodeMetadata.set(node, {
  6307. renamedIdentifier: true
  6308. });
  6309. }
  6310. }
  6311. }
  6312. };
  6313. functionNode.params.forEach(function (paramsNode) {
  6314. return estraverse.replace(paramsNode, replaceVisitor);
  6315. });
  6316. estraverse.replace(functionNode.body, replaceVisitor);
  6317. }
  6318. }]);
  6319. return FunctionTransformer;
  6320. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6321. FunctionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionTransformer);
  6322. exports.FunctionTransformer = FunctionTransformer;
  6323. /***/ }),
  6324. /***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts":
  6325. /*!***************************************************************************************!*\
  6326. !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***!
  6327. \***************************************************************************************/
  6328. /*! no static exports found */
  6329. /***/ (function(module, exports, __webpack_require__) {
  6330. "use strict";
  6331. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6332. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6333. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6334. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6335. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6336. Object.defineProperty(exports, "__esModule", {
  6337. value: true
  6338. });
  6339. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6340. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6341. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6342. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6343. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6344. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6345. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6346. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6347. var LabeledStatementTransformer =
  6348. /*#__PURE__*/
  6349. function (_AbstractNodeTransfor) {
  6350. _inherits(LabeledStatementTransformer, _AbstractNodeTransfor);
  6351. function LabeledStatementTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6352. var _this;
  6353. _classCallCheck(this, LabeledStatementTransformer);
  6354. _this = _possibleConstructorReturn(this, (LabeledStatementTransformer.__proto__ || _Object$getPrototypeOf(LabeledStatementTransformer)).call(this, randomGenerator, options));
  6355. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6356. return _this;
  6357. }
  6358. _createClass(LabeledStatementTransformer, [{
  6359. key: "getVisitor",
  6360. value: function getVisitor(transformationStage) {
  6361. var _this2 = this;
  6362. switch (transformationStage) {
  6363. case TransformationStage_1.TransformationStage.Obfuscating:
  6364. return {
  6365. enter: function enter(node, parentNode) {
  6366. if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {
  6367. return _this2.transformNode(node, parentNode);
  6368. }
  6369. }
  6370. };
  6371. default:
  6372. return null;
  6373. }
  6374. }
  6375. }, {
  6376. key: "transformNode",
  6377. value: function transformNode(labeledStatementNode, parentNode) {
  6378. var nodeIdentifier = this.nodeIdentifier++;
  6379. this.storeLabeledStatementName(labeledStatementNode, nodeIdentifier);
  6380. this.replaceLabeledStatementName(labeledStatementNode, nodeIdentifier);
  6381. return labeledStatementNode;
  6382. }
  6383. }, {
  6384. key: "storeLabeledStatementName",
  6385. value: function storeLabeledStatementName(labeledStatementNode, nodeIdentifier) {
  6386. this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label.name, nodeIdentifier);
  6387. }
  6388. }, {
  6389. key: "replaceLabeledStatementName",
  6390. value: function replaceLabeledStatementName(labeledStatementNode, nodeIdentifier) {
  6391. var _this3 = this;
  6392. estraverse.replace(labeledStatementNode, {
  6393. enter: function enter(node, parentNode) {
  6394. if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {
  6395. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, nodeIdentifier);
  6396. node.name = newIdentifier.name;
  6397. }
  6398. }
  6399. });
  6400. }
  6401. }]);
  6402. return LabeledStatementTransformer;
  6403. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6404. LabeledStatementTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LabeledStatementTransformer);
  6405. exports.LabeledStatementTransformer = LabeledStatementTransformer;
  6406. /***/ }),
  6407. /***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts":
  6408. /*!******************************************************************************!*\
  6409. !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***!
  6410. \******************************************************************************/
  6411. /*! no static exports found */
  6412. /***/ (function(module, exports, __webpack_require__) {
  6413. "use strict";
  6414. var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof");
  6415. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6416. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6417. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6418. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6419. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6420. Object.defineProperty(exports, "__esModule", {
  6421. value: true
  6422. });
  6423. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6424. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6425. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6426. var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
  6427. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6428. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6429. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6430. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6431. var LiteralTransformer =
  6432. /*#__PURE__*/
  6433. function (_AbstractNodeTransfor) {
  6434. _inherits(LiteralTransformer, _AbstractNodeTransfor);
  6435. function LiteralTransformer(literalObfuscatingReplacerFactory, randomGenerator, options) {
  6436. var _this;
  6437. _classCallCheck(this, LiteralTransformer);
  6438. _this = _possibleConstructorReturn(this, (LiteralTransformer.__proto__ || _Object$getPrototypeOf(LiteralTransformer)).call(this, randomGenerator, options));
  6439. _this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory;
  6440. return _this;
  6441. }
  6442. _createClass(LiteralTransformer, [{
  6443. key: "getVisitor",
  6444. value: function getVisitor(transformationStage) {
  6445. var _this2 = this;
  6446. switch (transformationStage) {
  6447. case TransformationStage_1.TransformationStage.Obfuscating:
  6448. return {
  6449. enter: function enter(node, parentNode) {
  6450. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isObfuscatedNode(node)) {
  6451. return _this2.transformNode(node, parentNode);
  6452. }
  6453. }
  6454. };
  6455. default:
  6456. return null;
  6457. }
  6458. }
  6459. }, {
  6460. key: "transformNode",
  6461. value: function transformNode(literalNode, parentNode) {
  6462. if (parentNode && NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
  6463. return literalNode;
  6464. }
  6465. switch (_typeof(literalNode.value)) {
  6466. case 'boolean':
  6467. return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode.value);
  6468. case 'number':
  6469. return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode.value);
  6470. case 'string':
  6471. return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode.value);
  6472. default:
  6473. return literalNode;
  6474. }
  6475. }
  6476. }]);
  6477. return LiteralTransformer;
  6478. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6479. LiteralTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LiteralTransformer);
  6480. exports.LiteralTransformer = LiteralTransformer;
  6481. /***/ }),
  6482. /***/ "./src/node-transformers/obfuscating-transformers/ObjectExpressionTransformer.ts":
  6483. /*!***************************************************************************************!*\
  6484. !*** ./src/node-transformers/obfuscating-transformers/ObjectExpressionTransformer.ts ***!
  6485. \***************************************************************************************/
  6486. /*! no static exports found */
  6487. /***/ (function(module, exports, __webpack_require__) {
  6488. "use strict";
  6489. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6490. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6491. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6492. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6493. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6494. Object.defineProperty(exports, "__esModule", {
  6495. value: true
  6496. });
  6497. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6498. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6499. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6500. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6501. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6502. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  6503. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6504. var ObjectExpressionTransformer =
  6505. /*#__PURE__*/
  6506. function (_AbstractNodeTransfor) {
  6507. _inherits(ObjectExpressionTransformer, _AbstractNodeTransfor);
  6508. function ObjectExpressionTransformer(randomGenerator, options) {
  6509. _classCallCheck(this, ObjectExpressionTransformer);
  6510. return _possibleConstructorReturn(this, (ObjectExpressionTransformer.__proto__ || _Object$getPrototypeOf(ObjectExpressionTransformer)).call(this, randomGenerator, options));
  6511. }
  6512. _createClass(ObjectExpressionTransformer, [{
  6513. key: "getVisitor",
  6514. value: function getVisitor(transformationStage) {
  6515. var _this = this;
  6516. switch (transformationStage) {
  6517. case TransformationStage_1.TransformationStage.Obfuscating:
  6518. return {
  6519. enter: function enter(node, parentNode) {
  6520. if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
  6521. return _this.transformNode(node, parentNode);
  6522. }
  6523. }
  6524. };
  6525. default:
  6526. return null;
  6527. }
  6528. }
  6529. }, {
  6530. key: "transformNode",
  6531. value: function transformNode(objectExpressionNode, parentNode) {
  6532. objectExpressionNode.properties.forEach(function (property) {
  6533. if (property.computed) {
  6534. return;
  6535. }
  6536. if (property.shorthand) {
  6537. property.shorthand = false;
  6538. }
  6539. if (NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
  6540. property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name);
  6541. }
  6542. });
  6543. return objectExpressionNode;
  6544. }
  6545. }]);
  6546. return ObjectExpressionTransformer;
  6547. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6548. ObjectExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ObjectExpressionTransformer);
  6549. exports.ObjectExpressionTransformer = ObjectExpressionTransformer;
  6550. /***/ }),
  6551. /***/ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts":
  6552. /*!******************************************************************************************!*\
  6553. !*** ./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts ***!
  6554. \******************************************************************************************/
  6555. /*! no static exports found */
  6556. /***/ (function(module, exports, __webpack_require__) {
  6557. "use strict";
  6558. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  6559. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6560. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6561. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6562. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6563. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6564. Object.defineProperty(exports, "__esModule", {
  6565. value: true
  6566. });
  6567. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6568. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6569. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6570. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6571. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6572. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  6573. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6574. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6575. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6576. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6577. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  6578. var VariableDeclarationTransformer =
  6579. /*#__PURE__*/
  6580. function (_AbstractNodeTransfor) {
  6581. _inherits(VariableDeclarationTransformer, _AbstractNodeTransfor);
  6582. function VariableDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6583. var _this;
  6584. _classCallCheck(this, VariableDeclarationTransformer);
  6585. _this = _possibleConstructorReturn(this, (VariableDeclarationTransformer.__proto__ || _Object$getPrototypeOf(VariableDeclarationTransformer)).call(this, randomGenerator, options));
  6586. _this.replaceableIdentifiers = new _Map();
  6587. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6588. return _this;
  6589. }
  6590. _createClass(VariableDeclarationTransformer, [{
  6591. key: "getVisitor",
  6592. value: function getVisitor(transformationStage) {
  6593. var _this2 = this;
  6594. switch (transformationStage) {
  6595. case TransformationStage_1.TransformationStage.Obfuscating:
  6596. return {
  6597. enter: function enter(node, parentNode) {
  6598. if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {
  6599. return _this2.transformNode(node, parentNode);
  6600. }
  6601. }
  6602. };
  6603. default:
  6604. return null;
  6605. }
  6606. }
  6607. }, {
  6608. key: "transformNode",
  6609. value: function transformNode(variableDeclarationNode, parentNode) {
  6610. var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(variableDeclarationNode)[0];
  6611. var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program;
  6612. if (!this.options.renameGlobals && isGlobalDeclaration) {
  6613. return variableDeclarationNode;
  6614. }
  6615. var nodeIdentifier = this.nodeIdentifier++;
  6616. var scopeNode = variableDeclarationNode.kind === 'var' ? blockScopeNode : parentNode;
  6617. this.storeVariableNames(variableDeclarationNode, isGlobalDeclaration, nodeIdentifier);
  6618. if (this.replaceableIdentifiers.has(scopeNode)) {
  6619. this.replaceScopeCachedIdentifiers(variableDeclarationNode, scopeNode, nodeIdentifier);
  6620. } else {
  6621. this.replaceScopeIdentifiers(scopeNode, nodeIdentifier);
  6622. }
  6623. return variableDeclarationNode;
  6624. }
  6625. }, {
  6626. key: "storeVariableNames",
  6627. value: function storeVariableNames(variableDeclarationNode, isGlobalDeclaration, nodeIdentifier) {
  6628. var _this3 = this;
  6629. this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) {
  6630. if (isGlobalDeclaration) {
  6631. _this3.identifierObfuscatingReplacer.storeGlobalName(identifierNode.name, nodeIdentifier);
  6632. } else {
  6633. _this3.identifierObfuscatingReplacer.storeLocalName(identifierNode.name, nodeIdentifier);
  6634. }
  6635. });
  6636. }
  6637. }, {
  6638. key: "replaceScopeCachedIdentifiers",
  6639. value: function replaceScopeCachedIdentifiers(variableDeclarationNode, scopeNode, nodeIdentifier) {
  6640. var _this4 = this;
  6641. var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(scopeNode);
  6642. if (!cachedReplaceableIdentifiersNamesMap) {
  6643. return;
  6644. }
  6645. var identifierNames = [];
  6646. this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) {
  6647. identifierNames.push(identifierNode.name);
  6648. });
  6649. identifierNames.forEach(function (identifierName) {
  6650. var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(identifierName);
  6651. if (!cachedReplaceableIdentifiers) {
  6652. return;
  6653. }
  6654. var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
  6655. for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
  6656. var replaceableIdentifier = cachedReplaceableIdentifiers[i];
  6657. if (identifierName !== replaceableIdentifier.name) {
  6658. continue;
  6659. }
  6660. var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, nodeIdentifier);
  6661. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6662. }
  6663. });
  6664. }
  6665. }, {
  6666. key: "replaceScopeIdentifiers",
  6667. value: function replaceScopeIdentifiers(blockScopeNode, nodeIdentifier) {
  6668. var _this5 = this;
  6669. var storedReplaceableIdentifiersNamesMap = new _Map();
  6670. estraverse.replace(blockScopeNode, {
  6671. enter: function enter(node, parentNode) {
  6672. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6673. var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, nodeIdentifier);
  6674. var newIdentifierName = newIdentifier.name;
  6675. if (node.name !== newIdentifierName) {
  6676. node.name = newIdentifierName;
  6677. NodeMetadata_1.NodeMetadata.set(node, {
  6678. renamedIdentifier: true
  6679. });
  6680. } else {
  6681. var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
  6682. storedReplaceableIdentifiers.push(node);
  6683. storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
  6684. }
  6685. }
  6686. }
  6687. });
  6688. this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiersNamesMap);
  6689. }
  6690. }, {
  6691. key: "traverseDeclarationIdentifiers",
  6692. value: function traverseDeclarationIdentifiers(variableDeclarationNode, callback) {
  6693. variableDeclarationNode.declarations.forEach(function (declarationNode) {
  6694. if (NodeGuards_1.NodeGuards.isObjectPatternNode(declarationNode.id)) {
  6695. return estraverse.VisitorOption.Skip;
  6696. }
  6697. estraverse.traverse(declarationNode.id, {
  6698. enter: function enter(node) {
  6699. if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  6700. callback(node);
  6701. }
  6702. }
  6703. });
  6704. });
  6705. }
  6706. }]);
  6707. return VariableDeclarationTransformer;
  6708. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6709. VariableDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], VariableDeclarationTransformer);
  6710. exports.VariableDeclarationTransformer = VariableDeclarationTransformer;
  6711. /***/ }),
  6712. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts":
  6713. /*!*************************************************************************************************************!*\
  6714. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***!
  6715. \*************************************************************************************************************/
  6716. /*! no static exports found */
  6717. /***/ (function(module, exports, __webpack_require__) {
  6718. "use strict";
  6719. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6720. Object.defineProperty(exports, "__esModule", {
  6721. value: true
  6722. });
  6723. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6724. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6725. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6726. var AbstractObfuscatingReplacer = function AbstractObfuscatingReplacer(options) {
  6727. _classCallCheck(this, AbstractObfuscatingReplacer);
  6728. this.options = options;
  6729. };
  6730. AbstractObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractObfuscatingReplacer);
  6731. exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer;
  6732. /***/ }),
  6733. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts":
  6734. /*!****************************************************************************************************************************************************!*\
  6735. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***!
  6736. \****************************************************************************************************************************************************/
  6737. /*! no static exports found */
  6738. /***/ (function(module, exports, __webpack_require__) {
  6739. "use strict";
  6740. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  6741. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6742. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6743. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6744. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6745. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6746. Object.defineProperty(exports, "__esModule", {
  6747. value: true
  6748. });
  6749. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6750. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6751. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6752. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  6753. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  6754. var BaseIdentifierObfuscatingReplacer =
  6755. /*#__PURE__*/
  6756. function (_AbstractObfuscatingR) {
  6757. _inherits(BaseIdentifierObfuscatingReplacer, _AbstractObfuscatingR);
  6758. function BaseIdentifierObfuscatingReplacer(identifierNamesGeneratorFactory, options) {
  6759. var _this;
  6760. _classCallCheck(this, BaseIdentifierObfuscatingReplacer);
  6761. _this = _possibleConstructorReturn(this, (BaseIdentifierObfuscatingReplacer.__proto__ || _Object$getPrototypeOf(BaseIdentifierObfuscatingReplacer)).call(this, options));
  6762. _this.namesMap = new _Map();
  6763. _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  6764. return _this;
  6765. }
  6766. _createClass(BaseIdentifierObfuscatingReplacer, [{
  6767. key: "replace",
  6768. value: function replace(nodeValue, nodeIdentifier) {
  6769. var mapKey = "".concat(nodeValue, "-").concat(String(nodeIdentifier));
  6770. if (this.namesMap.has(mapKey)) {
  6771. nodeValue = this.namesMap.get(mapKey);
  6772. }
  6773. return NodeFactory_1.NodeFactory.identifierNode(nodeValue);
  6774. }
  6775. }, {
  6776. key: "storeGlobalName",
  6777. value: function storeGlobalName(nodeName, nodeIdentifier) {
  6778. if (this.isReservedName(nodeName)) {
  6779. return;
  6780. }
  6781. var identifierName = this.identifierNamesGenerator.generateWithPrefix();
  6782. this.namesMap.set("".concat(nodeName, "-").concat(String(nodeIdentifier)), identifierName);
  6783. }
  6784. }, {
  6785. key: "storeLocalName",
  6786. value: function storeLocalName(nodeName, nodeIdentifier) {
  6787. if (this.isReservedName(nodeName)) {
  6788. return;
  6789. }
  6790. var identifierName = this.identifierNamesGenerator.generate();
  6791. this.namesMap.set("".concat(nodeName, "-").concat(String(nodeIdentifier)), identifierName);
  6792. }
  6793. }, {
  6794. key: "isReservedName",
  6795. value: function isReservedName(name) {
  6796. return this.options.reservedNames.some(function (reservedName) {
  6797. return new RegExp(reservedName, 'g').exec(name) !== null;
  6798. });
  6799. }
  6800. }]);
  6801. return BaseIdentifierObfuscatingReplacer;
  6802. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  6803. BaseIdentifierObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], BaseIdentifierObfuscatingReplacer);
  6804. exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer;
  6805. /***/ }),
  6806. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts":
  6807. /*!*************************************************************************************************************************************************!*\
  6808. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***!
  6809. \*************************************************************************************************************************************************/
  6810. /*! no static exports found */
  6811. /***/ (function(module, exports, __webpack_require__) {
  6812. "use strict";
  6813. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6814. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6815. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6816. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6817. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6818. Object.defineProperty(exports, "__esModule", {
  6819. value: true
  6820. });
  6821. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6822. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6823. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6824. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  6825. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  6826. var BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 =
  6827. /*#__PURE__*/
  6828. function (_AbstractObfuscatingR) {
  6829. _inherits(BooleanLiteralObfuscatingReplacer, _AbstractObfuscatingR);
  6830. function BooleanLiteralObfuscatingReplacer(options) {
  6831. _classCallCheck(this, BooleanLiteralObfuscatingReplacer);
  6832. return _possibleConstructorReturn(this, (BooleanLiteralObfuscatingReplacer.__proto__ || _Object$getPrototypeOf(BooleanLiteralObfuscatingReplacer)).call(this, options));
  6833. }
  6834. _createClass(BooleanLiteralObfuscatingReplacer, [{
  6835. key: "replace",
  6836. value: function replace(nodeValue) {
  6837. return nodeValue ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode();
  6838. }
  6839. }], [{
  6840. key: "getTrueUnaryExpressionNode",
  6841. value: function getTrueUnaryExpressionNode() {
  6842. return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode());
  6843. }
  6844. }, {
  6845. key: "getFalseUnaryExpressionNode",
  6846. value: function getFalseUnaryExpressionNode() {
  6847. return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());
  6848. }
  6849. }]);
  6850. return BooleanLiteralObfuscatingReplacer;
  6851. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  6852. BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], BooleanLiteralObfuscatingReplacer);
  6853. exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer;
  6854. var BooleanLiteralObfuscatingReplacer_1;
  6855. /***/ }),
  6856. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts":
  6857. /*!************************************************************************************************************************************************!*\
  6858. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***!
  6859. \************************************************************************************************************************************************/
  6860. /*! no static exports found */
  6861. /***/ (function(module, exports, __webpack_require__) {
  6862. "use strict";
  6863. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  6864. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6865. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6866. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6867. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6868. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6869. Object.defineProperty(exports, "__esModule", {
  6870. value: true
  6871. });
  6872. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6873. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6874. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6875. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  6876. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  6877. var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts");
  6878. var NumberLiteralObfuscatingReplacer =
  6879. /*#__PURE__*/
  6880. function (_AbstractObfuscatingR) {
  6881. _inherits(NumberLiteralObfuscatingReplacer, _AbstractObfuscatingR);
  6882. function NumberLiteralObfuscatingReplacer(options) {
  6883. var _this;
  6884. _classCallCheck(this, NumberLiteralObfuscatingReplacer);
  6885. _this = _possibleConstructorReturn(this, (NumberLiteralObfuscatingReplacer.__proto__ || _Object$getPrototypeOf(NumberLiteralObfuscatingReplacer)).call(this, options));
  6886. _this.numberLiteralCache = new _Map();
  6887. return _this;
  6888. }
  6889. _createClass(NumberLiteralObfuscatingReplacer, [{
  6890. key: "replace",
  6891. value: function replace(nodeValue) {
  6892. var rawValue;
  6893. if (this.numberLiteralCache.has(nodeValue)) {
  6894. rawValue = this.numberLiteralCache.get(nodeValue);
  6895. } else {
  6896. if (!Utils_1.Utils.isCeilNumber(nodeValue)) {
  6897. rawValue = String(nodeValue);
  6898. } else {
  6899. rawValue = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(Utils_1.Utils.decToHex(nodeValue));
  6900. }
  6901. this.numberLiteralCache.set(nodeValue, rawValue);
  6902. }
  6903. return NodeFactory_1.NodeFactory.literalNode(nodeValue, rawValue);
  6904. }
  6905. }]);
  6906. return NumberLiteralObfuscatingReplacer;
  6907. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  6908. NumberLiteralObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], NumberLiteralObfuscatingReplacer);
  6909. exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer;
  6910. /***/ }),
  6911. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts":
  6912. /*!************************************************************************************************************************************************!*\
  6913. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***!
  6914. \************************************************************************************************************************************************/
  6915. /*! no static exports found */
  6916. /***/ (function(module, exports, __webpack_require__) {
  6917. "use strict";
  6918. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  6919. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  6920. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  6921. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  6922. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  6923. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  6924. Object.defineProperty(exports, "__esModule", {
  6925. value: true
  6926. });
  6927. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6928. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6929. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6930. var StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  6931. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  6932. var NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6933. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  6934. var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts");
  6935. var StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 =
  6936. /*#__PURE__*/
  6937. function (_AbstractObfuscatingR) {
  6938. _inherits(StringLiteralObfuscatingReplacer, _AbstractObfuscatingR);
  6939. function StringLiteralObfuscatingReplacer(stringArrayStorage, escapeSequenceEncoder, randomGenerator, cryptUtils, options) {
  6940. var _this;
  6941. _classCallCheck(this, StringLiteralObfuscatingReplacer);
  6942. _this = _possibleConstructorReturn(this, (StringLiteralObfuscatingReplacer.__proto__ || _Object$getPrototypeOf(StringLiteralObfuscatingReplacer)).call(this, options));
  6943. _this.nodesCache = new _Map();
  6944. _this.stringLiteralHexadecimalIndexCache = new _Map();
  6945. _this.stringArrayStorage = stringArrayStorage;
  6946. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  6947. _this.randomGenerator = randomGenerator;
  6948. _this.cryptUtils = cryptUtils;
  6949. _this.rc4Keys = _this.randomGenerator.getRandomGenerator().n(function () {
  6950. return _this.randomGenerator.getRandomGenerator().string({
  6951. length: StringLiteralObfuscatingReplacer_1.rc4KeyLength
  6952. });
  6953. }, StringLiteralObfuscatingReplacer_1.rc4KeysCount);
  6954. return _this;
  6955. }
  6956. _createClass(StringLiteralObfuscatingReplacer, [{
  6957. key: "replace",
  6958. value: function replace(nodeValue) {
  6959. var useStringArray = this.canUseStringArray(nodeValue);
  6960. var cacheKey = "".concat(nodeValue, "-").concat(String(useStringArray));
  6961. var useCacheValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4;
  6962. if (useCacheValue) {
  6963. return this.nodesCache.get(cacheKey);
  6964. }
  6965. var resultNode = useStringArray ? this.replaceWithStringArrayCallNode(nodeValue) : this.replaceWithLiteralNode(nodeValue);
  6966. this.nodesCache.set(cacheKey, resultNode);
  6967. return resultNode;
  6968. }
  6969. }, {
  6970. key: "canUseStringArray",
  6971. value: function canUseStringArray(nodeValue) {
  6972. return this.options.stringArray && nodeValue.length >= StringLiteralObfuscatingReplacer_1.minimumLengthForStringArray && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;
  6973. }
  6974. }, {
  6975. key: "getStringArrayHexadecimalIndex",
  6976. value: function getStringArrayHexadecimalIndex(value, stringArrayStorageLength) {
  6977. if (this.stringLiteralHexadecimalIndexCache.has(value)) {
  6978. return {
  6979. fromCache: true,
  6980. index: this.stringLiteralHexadecimalIndexCache.get(value)
  6981. };
  6982. }
  6983. var hexadecimalRawIndex = Utils_1.Utils.decToHex(stringArrayStorageLength);
  6984. var hexadecimalIndex = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(hexadecimalRawIndex);
  6985. this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex);
  6986. return {
  6987. fromCache: false,
  6988. index: hexadecimalIndex
  6989. };
  6990. }
  6991. }, {
  6992. key: "getEncodedValue",
  6993. value: function getEncodedValue(value) {
  6994. var encodedValue;
  6995. var key = null;
  6996. switch (this.options.stringArrayEncoding) {
  6997. case StringArrayEncoding_1.StringArrayEncoding.Rc4:
  6998. key = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);
  6999. encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, key));
  7000. break;
  7001. case StringArrayEncoding_1.StringArrayEncoding.Base64:
  7002. encodedValue = this.cryptUtils.btoa(value);
  7003. break;
  7004. default:
  7005. encodedValue = value;
  7006. }
  7007. return {
  7008. encodedValue: encodedValue,
  7009. key: key
  7010. };
  7011. }
  7012. }, {
  7013. key: "replaceWithLiteralNode",
  7014. value: function replaceWithLiteralNode(value) {
  7015. return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, this.options.unicodeEscapeSequence));
  7016. }
  7017. }, {
  7018. key: "replaceWithStringArrayCallNode",
  7019. value: function replaceWithStringArrayCallNode(value) {
  7020. var _getEncodedValue = this.getEncodedValue(value),
  7021. encodedValue = _getEncodedValue.encodedValue,
  7022. key = _getEncodedValue.key;
  7023. var escapedValue = this.escapeSequenceEncoder.encode(encodedValue, this.options.unicodeEscapeSequence);
  7024. var stringArrayStorageLength = this.stringArrayStorage.getLength();
  7025. var stringArrayStorageCallsWrapperName = this.stringArrayStorage.getStorageId().split('|')[1];
  7026. var _getStringArrayHexade = this.getStringArrayHexadecimalIndex(escapedValue, stringArrayStorageLength),
  7027. fromCache = _getStringArrayHexade.fromCache,
  7028. index = _getStringArrayHexade.index;
  7029. if (!fromCache) {
  7030. this.stringArrayStorage.set(stringArrayStorageLength, escapedValue);
  7031. }
  7032. var callExpressionArgs = [StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(index)];
  7033. if (key) {
  7034. callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(key, this.options.unicodeEscapeSequence)));
  7035. }
  7036. var stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(stringArrayStorageCallsWrapperName);
  7037. NodeMetadata_1.NodeMetadata.set(stringArrayIdentifierNode, {
  7038. obfuscatedNode: true
  7039. });
  7040. return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs);
  7041. }
  7042. }], [{
  7043. key: "getHexadecimalLiteralNode",
  7044. value: function getHexadecimalLiteralNode(hexadecimalIndex) {
  7045. var hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);
  7046. NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, {
  7047. obfuscatedNode: true
  7048. });
  7049. return hexadecimalLiteralNode;
  7050. }
  7051. }, {
  7052. key: "getRc4KeyLiteralNode",
  7053. value: function getRc4KeyLiteralNode(literalValue) {
  7054. var rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue);
  7055. NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, {
  7056. obfuscatedNode: true
  7057. });
  7058. return rc4KeyLiteralNode;
  7059. }
  7060. }]);
  7061. return StringLiteralObfuscatingReplacer;
  7062. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  7063. StringLiteralObfuscatingReplacer.minimumLengthForStringArray = 3;
  7064. StringLiteralObfuscatingReplacer.rc4KeyLength = 4;
  7065. StringLiteralObfuscatingReplacer.rc4KeysCount = 50;
  7066. StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], StringLiteralObfuscatingReplacer);
  7067. exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer;
  7068. var StringLiteralObfuscatingReplacer_1;
  7069. /***/ }),
  7070. /***/ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts":
  7071. /*!*****************************************************************************!*\
  7072. !*** ./src/node-transformers/preparing-transformers/CommentsTransformer.ts ***!
  7073. \*****************************************************************************/
  7074. /*! no static exports found */
  7075. /***/ (function(module, exports, __webpack_require__) {
  7076. "use strict";
  7077. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  7078. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7079. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7080. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  7081. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  7082. Object.defineProperty(exports, "__esModule", {
  7083. value: true
  7084. });
  7085. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7086. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7087. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7088. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7089. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7090. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7091. var CommentsTransformer = CommentsTransformer_1 =
  7092. /*#__PURE__*/
  7093. function (_AbstractNodeTransfor) {
  7094. _inherits(CommentsTransformer, _AbstractNodeTransfor);
  7095. function CommentsTransformer(randomGenerator, options) {
  7096. _classCallCheck(this, CommentsTransformer);
  7097. return _possibleConstructorReturn(this, (CommentsTransformer.__proto__ || _Object$getPrototypeOf(CommentsTransformer)).call(this, randomGenerator, options));
  7098. }
  7099. _createClass(CommentsTransformer, [{
  7100. key: "getVisitor",
  7101. value: function getVisitor(transformationStage) {
  7102. var _this = this;
  7103. switch (transformationStage) {
  7104. case TransformationStage_1.TransformationStage.Preparing:
  7105. return {
  7106. leave: function leave(node, parentNode) {
  7107. if (parentNode && NodeGuards_1.NodeGuards.isNodeWithComments(node)) {
  7108. return _this.transformNode(node, parentNode);
  7109. }
  7110. }
  7111. };
  7112. default:
  7113. return null;
  7114. }
  7115. }
  7116. }, {
  7117. key: "transformNode",
  7118. value: function transformNode(node, parentNode) {
  7119. if (node.leadingComments) {
  7120. node.leadingComments = this.transformComments(node.leadingComments);
  7121. }
  7122. if (node.trailingComments) {
  7123. node.trailingComments = this.transformComments(node.trailingComments);
  7124. }
  7125. return node;
  7126. }
  7127. }, {
  7128. key: "transformComments",
  7129. value: function transformComments(comments) {
  7130. return comments.filter(function (comment) {
  7131. return CommentsTransformer_1.preservedWords.some(function (availableWord) {
  7132. return comment.value.includes(availableWord);
  7133. });
  7134. });
  7135. }
  7136. }]);
  7137. return CommentsTransformer;
  7138. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7139. CommentsTransformer.preservedWords = ['@license', '@preserve'];
  7140. CommentsTransformer = CommentsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], CommentsTransformer);
  7141. exports.CommentsTransformer = CommentsTransformer;
  7142. var CommentsTransformer_1;
  7143. /***/ }),
  7144. /***/ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts":
  7145. /*!********************************************************************************!*\
  7146. !*** ./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts ***!
  7147. \********************************************************************************/
  7148. /*! no static exports found */
  7149. /***/ (function(module, exports, __webpack_require__) {
  7150. "use strict";
  7151. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  7152. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7153. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7154. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  7155. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  7156. Object.defineProperty(exports, "__esModule", {
  7157. value: true
  7158. });
  7159. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7160. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7161. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7162. var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  7163. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7164. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7165. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7166. var CustomNodesTransformer =
  7167. /*#__PURE__*/
  7168. function (_AbstractNodeTransfor) {
  7169. _inherits(CustomNodesTransformer, _AbstractNodeTransfor);
  7170. function CustomNodesTransformer(stackTraceAnalyzer, obfuscationEventEmitter, customNodeGroupStorage, randomGenerator, options) {
  7171. var _this;
  7172. _classCallCheck(this, CustomNodesTransformer);
  7173. _this = _possibleConstructorReturn(this, (CustomNodesTransformer.__proto__ || _Object$getPrototypeOf(CustomNodesTransformer)).call(this, randomGenerator, options));
  7174. _this.stackTraceData = [];
  7175. _this.stackTraceAnalyzer = stackTraceAnalyzer;
  7176. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  7177. _this.customNodeGroupStorage = customNodeGroupStorage;
  7178. return _this;
  7179. }
  7180. _createClass(CustomNodesTransformer, [{
  7181. key: "getVisitor",
  7182. value: function getVisitor(transformationStage) {
  7183. var _this2 = this;
  7184. switch (transformationStage) {
  7185. case TransformationStage_1.TransformationStage.Preparing:
  7186. return {
  7187. leave: function leave(node, parentNode) {
  7188. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  7189. _this2.analyzeNode(node, parentNode);
  7190. _this2.appendCustomNodesBeforeObfuscation(node, parentNode);
  7191. return _this2.transformNode(node, parentNode);
  7192. }
  7193. }
  7194. };
  7195. case TransformationStage_1.TransformationStage.Finalizing:
  7196. return {
  7197. leave: function leave(node, parentNode) {
  7198. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  7199. _this2.appendCustomNodesAfterObfuscation(node, parentNode);
  7200. }
  7201. }
  7202. };
  7203. default:
  7204. return null;
  7205. }
  7206. }
  7207. }, {
  7208. key: "analyzeNode",
  7209. value: function analyzeNode(node, parentNode) {
  7210. this.stackTraceData = this.stackTraceAnalyzer.analyze(node);
  7211. }
  7212. }, {
  7213. key: "transformNode",
  7214. value: function transformNode(node, parentNode) {
  7215. return node;
  7216. }
  7217. }, {
  7218. key: "appendCustomNodesBeforeObfuscation",
  7219. value: function appendCustomNodesBeforeObfuscation(node, parentNode) {
  7220. var _this3 = this;
  7221. this.customNodeGroupStorage.getStorage().forEach(function (customNodeGroup) {
  7222. customNodeGroup.initialize();
  7223. _this3.obfuscationEventEmitter.once(customNodeGroup.getAppendEvent(), customNodeGroup.appendCustomNodes.bind(customNodeGroup));
  7224. });
  7225. this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.stackTraceData);
  7226. }
  7227. }, {
  7228. key: "appendCustomNodesAfterObfuscation",
  7229. value: function appendCustomNodesAfterObfuscation(node, parentNode) {
  7230. this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.stackTraceData);
  7231. }
  7232. }]);
  7233. return CustomNodesTransformer;
  7234. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7235. CustomNodesTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], CustomNodesTransformer);
  7236. exports.CustomNodesTransformer = CustomNodesTransformer;
  7237. /***/ }),
  7238. /***/ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts":
  7239. /*!**************************************************************************************!*\
  7240. !*** ./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts ***!
  7241. \**************************************************************************************/
  7242. /*! no static exports found */
  7243. /***/ (function(module, exports, __webpack_require__) {
  7244. "use strict";
  7245. var _Set = __webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set");
  7246. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  7247. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7248. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7249. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  7250. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  7251. Object.defineProperty(exports, "__esModule", {
  7252. value: true
  7253. });
  7254. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7255. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7256. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7257. var js_string_escape_1 = tslib_1.__importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape"));
  7258. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7259. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7260. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  7261. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7262. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  7263. var EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 =
  7264. /*#__PURE__*/
  7265. function (_AbstractNodeTransfor) {
  7266. _inherits(EvalCallExpressionTransformer, _AbstractNodeTransfor);
  7267. function EvalCallExpressionTransformer(randomGenerator, options) {
  7268. var _this;
  7269. _classCallCheck(this, EvalCallExpressionTransformer);
  7270. _this = _possibleConstructorReturn(this, (EvalCallExpressionTransformer.__proto__ || _Object$getPrototypeOf(EvalCallExpressionTransformer)).call(this, randomGenerator, options));
  7271. _this.evalRootAstHostNodeSet = new _Set();
  7272. return _this;
  7273. }
  7274. _createClass(EvalCallExpressionTransformer, [{
  7275. key: "getVisitor",
  7276. value: function getVisitor(transformationStage) {
  7277. var _this2 = this;
  7278. switch (transformationStage) {
  7279. case TransformationStage_1.TransformationStage.Preparing:
  7280. return {
  7281. enter: function enter(node, parentNode) {
  7282. if (parentNode && NodeGuards_1.NodeGuards.isCallExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) && node.callee.name === 'eval') {
  7283. return _this2.transformNode(node, parentNode);
  7284. }
  7285. }
  7286. };
  7287. case TransformationStage_1.TransformationStage.Finalizing:
  7288. if (!this.evalRootAstHostNodeSet.size) {
  7289. return null;
  7290. }
  7291. return {
  7292. leave: function leave(node, parentNode) {
  7293. if (parentNode && _this2.isEvalRootAstHostNode(node)) {
  7294. return _this2.restoreNode(node, parentNode);
  7295. }
  7296. }
  7297. };
  7298. default:
  7299. return null;
  7300. }
  7301. }
  7302. }, {
  7303. key: "transformNode",
  7304. value: function transformNode(callExpressionNode, parentNode) {
  7305. var callExpressionFirstArgument = callExpressionNode.arguments[0];
  7306. if (!callExpressionFirstArgument) {
  7307. return callExpressionNode;
  7308. }
  7309. var evalString = EvalCallExpressionTransformer_1.extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);
  7310. if (!evalString) {
  7311. return callExpressionNode;
  7312. }
  7313. var ast;
  7314. try {
  7315. ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);
  7316. } catch (_a) {
  7317. return callExpressionNode;
  7318. }
  7319. var evalRootAstHostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));
  7320. this.evalRootAstHostNodeSet.add(evalRootAstHostNode);
  7321. return evalRootAstHostNode;
  7322. }
  7323. }, {
  7324. key: "restoreNode",
  7325. value: function restoreNode(evalRootAstHostNode, parentNode) {
  7326. var targetAst = evalRootAstHostNode.body.body;
  7327. var obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);
  7328. return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [NodeFactory_1.NodeFactory.literalNode(js_string_escape_1.default(obfuscatedCode))]);
  7329. }
  7330. }, {
  7331. key: "isEvalRootAstHostNode",
  7332. value: function isEvalRootAstHostNode(node) {
  7333. return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);
  7334. }
  7335. }], [{
  7336. key: "extractEvalStringFromCallExpressionArgument",
  7337. value: function extractEvalStringFromCallExpressionArgument(node) {
  7338. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  7339. return EvalCallExpressionTransformer_1.extractEvalStringFromLiteralNode(node);
  7340. }
  7341. if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
  7342. return EvalCallExpressionTransformer_1.extractEvalStringFromTemplateLiteralNode(node);
  7343. }
  7344. return null;
  7345. }
  7346. }, {
  7347. key: "extractEvalStringFromLiteralNode",
  7348. value: function extractEvalStringFromLiteralNode(node) {
  7349. return typeof node.value === 'string' ? node.value : null;
  7350. }
  7351. }, {
  7352. key: "extractEvalStringFromTemplateLiteralNode",
  7353. value: function extractEvalStringFromTemplateLiteralNode(node) {
  7354. var quasis = node.quasis;
  7355. var allowedQuasisLength = 1;
  7356. if (quasis.length !== allowedQuasisLength || node.expressions.length) {
  7357. return null;
  7358. }
  7359. return quasis[0].value.cooked;
  7360. }
  7361. }]);
  7362. return EvalCallExpressionTransformer;
  7363. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7364. EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], EvalCallExpressionTransformer);
  7365. exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;
  7366. var EvalCallExpressionTransformer_1;
  7367. /***/ }),
  7368. /***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts":
  7369. /*!*****************************************************************************!*\
  7370. !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***!
  7371. \*****************************************************************************/
  7372. /*! no static exports found */
  7373. /***/ (function(module, exports, __webpack_require__) {
  7374. "use strict";
  7375. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  7376. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7377. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7378. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  7379. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  7380. Object.defineProperty(exports, "__esModule", {
  7381. value: true
  7382. });
  7383. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7384. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7385. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7386. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7387. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7388. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7389. var MetadataTransformer =
  7390. /*#__PURE__*/
  7391. function (_AbstractNodeTransfor) {
  7392. _inherits(MetadataTransformer, _AbstractNodeTransfor);
  7393. function MetadataTransformer(randomGenerator, options) {
  7394. _classCallCheck(this, MetadataTransformer);
  7395. return _possibleConstructorReturn(this, (MetadataTransformer.__proto__ || _Object$getPrototypeOf(MetadataTransformer)).call(this, randomGenerator, options));
  7396. }
  7397. _createClass(MetadataTransformer, [{
  7398. key: "getVisitor",
  7399. value: function getVisitor(transformationStage) {
  7400. var _this = this;
  7401. switch (transformationStage) {
  7402. case TransformationStage_1.TransformationStage.Preparing:
  7403. return {
  7404. enter: function enter(node, parentNode) {
  7405. return _this.transformNode(node, parentNode);
  7406. }
  7407. };
  7408. default:
  7409. return null;
  7410. }
  7411. }
  7412. }, {
  7413. key: "transformNode",
  7414. value: function transformNode(node, parentNode) {
  7415. NodeMetadata_1.NodeMetadata.set(node, {
  7416. ignoredNode: false,
  7417. obfuscatedNode: false
  7418. });
  7419. return node;
  7420. }
  7421. }]);
  7422. return MetadataTransformer;
  7423. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7424. MetadataTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MetadataTransformer);
  7425. exports.MetadataTransformer = MetadataTransformer;
  7426. /***/ }),
  7427. /***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts":
  7428. /*!**************************************************************************************!*\
  7429. !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***!
  7430. \**************************************************************************************/
  7431. /*! no static exports found */
  7432. /***/ (function(module, exports, __webpack_require__) {
  7433. "use strict";
  7434. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  7435. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7436. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7437. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  7438. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  7439. Object.defineProperty(exports, "__esModule", {
  7440. value: true
  7441. });
  7442. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7443. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7444. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7445. var ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
  7446. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7447. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7448. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7449. var ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 =
  7450. /*#__PURE__*/
  7451. function (_AbstractNodeTransfor) {
  7452. _inherits(ObfuscatingGuardsTransformer, _AbstractNodeTransfor);
  7453. function ObfuscatingGuardsTransformer(obfuscatingGuardFactory, randomGenerator, options) {
  7454. var _this;
  7455. _classCallCheck(this, ObfuscatingGuardsTransformer);
  7456. _this = _possibleConstructorReturn(this, (ObfuscatingGuardsTransformer.__proto__ || _Object$getPrototypeOf(ObfuscatingGuardsTransformer)).call(this, randomGenerator, options));
  7457. _this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);
  7458. return _this;
  7459. }
  7460. _createClass(ObfuscatingGuardsTransformer, [{
  7461. key: "getVisitor",
  7462. value: function getVisitor(transformationStage) {
  7463. var _this2 = this;
  7464. switch (transformationStage) {
  7465. case TransformationStage_1.TransformationStage.Preparing:
  7466. return {
  7467. enter: function enter(node, parentNode) {
  7468. return _this2.transformNode(node, parentNode);
  7469. }
  7470. };
  7471. default:
  7472. return null;
  7473. }
  7474. }
  7475. }, {
  7476. key: "transformNode",
  7477. value: function transformNode(node, parentNode) {
  7478. var obfuscationAllowed = this.obfuscatingGuards.every(function (nodeGuard) {
  7479. return nodeGuard.check(node);
  7480. });
  7481. NodeMetadata_1.NodeMetadata.set(node, {
  7482. ignoredNode: !obfuscationAllowed
  7483. });
  7484. return node;
  7485. }
  7486. }]);
  7487. return ObfuscatingGuardsTransformer;
  7488. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7489. ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard, ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard];
  7490. ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObfuscatingGuardsTransformer);
  7491. exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;
  7492. var ObfuscatingGuardsTransformer_1;
  7493. /***/ }),
  7494. /***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts":
  7495. /*!************************************************************************************!*\
  7496. !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***!
  7497. \************************************************************************************/
  7498. /*! no static exports found */
  7499. /***/ (function(module, exports, __webpack_require__) {
  7500. "use strict";
  7501. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  7502. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7503. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7504. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  7505. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  7506. Object.defineProperty(exports, "__esModule", {
  7507. value: true
  7508. });
  7509. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7510. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7511. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7512. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7513. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7514. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  7515. var ParentificationTransformer =
  7516. /*#__PURE__*/
  7517. function (_AbstractNodeTransfor) {
  7518. _inherits(ParentificationTransformer, _AbstractNodeTransfor);
  7519. function ParentificationTransformer(randomGenerator, options) {
  7520. _classCallCheck(this, ParentificationTransformer);
  7521. return _possibleConstructorReturn(this, (ParentificationTransformer.__proto__ || _Object$getPrototypeOf(ParentificationTransformer)).call(this, randomGenerator, options));
  7522. }
  7523. _createClass(ParentificationTransformer, [{
  7524. key: "getVisitor",
  7525. value: function getVisitor(transformationStage) {
  7526. var _this = this;
  7527. switch (transformationStage) {
  7528. case TransformationStage_1.TransformationStage.Preparing:
  7529. return {
  7530. enter: function enter(node, parentNode) {
  7531. return _this.transformNode(node, parentNode);
  7532. }
  7533. };
  7534. default:
  7535. return null;
  7536. }
  7537. }
  7538. }, {
  7539. key: "transformNode",
  7540. value: function transformNode(node, parentNode) {
  7541. return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);
  7542. }
  7543. }]);
  7544. return ParentificationTransformer;
  7545. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7546. ParentificationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ParentificationTransformer);
  7547. exports.ParentificationTransformer = ParentificationTransformer;
  7548. /***/ }),
  7549. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts":
  7550. /*!******************************************************************************************************!*\
  7551. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***!
  7552. \******************************************************************************************************/
  7553. /*! no static exports found */
  7554. /***/ (function(module, exports, __webpack_require__) {
  7555. "use strict";
  7556. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7557. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7558. Object.defineProperty(exports, "__esModule", {
  7559. value: true
  7560. });
  7561. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7562. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7563. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7564. var BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 =
  7565. /*#__PURE__*/
  7566. function () {
  7567. function BlackListObfuscatingGuard() {
  7568. _classCallCheck(this, BlackListObfuscatingGuard);
  7569. this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;
  7570. }
  7571. _createClass(BlackListObfuscatingGuard, [{
  7572. key: "check",
  7573. value: function check(node) {
  7574. for (var i = 0; i < this.blackListGuardsLength; i++) {
  7575. if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {
  7576. return false;
  7577. }
  7578. }
  7579. return true;
  7580. }
  7581. }]);
  7582. return BlackListObfuscatingGuard;
  7583. }();
  7584. BlackListObfuscatingGuard.blackListGuards = [NodeGuards_1.NodeGuards.isUseStrictOperator];
  7585. BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], BlackListObfuscatingGuard);
  7586. exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;
  7587. var BlackListObfuscatingGuard_1;
  7588. /***/ }),
  7589. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts":
  7590. /*!***************************************************************************************************************!*\
  7591. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***!
  7592. \***************************************************************************************************************/
  7593. /*! no static exports found */
  7594. /***/ (function(module, exports, __webpack_require__) {
  7595. "use strict";
  7596. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7597. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7598. Object.defineProperty(exports, "__esModule", {
  7599. value: true
  7600. });
  7601. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7602. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7603. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7604. var ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 =
  7605. /*#__PURE__*/
  7606. function () {
  7607. function ConditionalCommentObfuscatingGuard() {
  7608. _classCallCheck(this, ConditionalCommentObfuscatingGuard);
  7609. this.obfuscationAllowedForCurrentNode = true;
  7610. this.obfuscationAllowedForNextNode = null;
  7611. }
  7612. _createClass(ConditionalCommentObfuscatingGuard, [{
  7613. key: "check",
  7614. value: function check(node) {
  7615. if (this.obfuscationAllowedForNextNode) {
  7616. this.obfuscationAllowedForCurrentNode = this.obfuscationAllowedForNextNode;
  7617. this.obfuscationAllowedForNextNode = null;
  7618. }
  7619. if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) {
  7620. return this.obfuscationAllowedForCurrentNode;
  7621. }
  7622. var leadingComments = node.leadingComments;
  7623. var trailingComments = node.trailingComments;
  7624. if (leadingComments) {
  7625. this.obfuscationAllowedForCurrentNode = this.checkComments(leadingComments);
  7626. }
  7627. if (trailingComments) {
  7628. this.obfuscationAllowedForNextNode = this.checkComments(trailingComments);
  7629. }
  7630. return this.obfuscationAllowedForCurrentNode;
  7631. }
  7632. }, {
  7633. key: "checkComments",
  7634. value: function checkComments(comments) {
  7635. var commentsLength = comments.length;
  7636. var obfuscationAllowed = this.obfuscationAllowedForCurrentNode;
  7637. for (var i = 0; i < commentsLength; i++) {
  7638. var comment = comments[i];
  7639. if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {
  7640. obfuscationAllowed = true;
  7641. continue;
  7642. }
  7643. if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {
  7644. obfuscationAllowed = false;
  7645. }
  7646. }
  7647. return obfuscationAllowed;
  7648. }
  7649. }]);
  7650. return ConditionalCommentObfuscatingGuard;
  7651. }();
  7652. ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');
  7653. ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');
  7654. ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable()], ConditionalCommentObfuscatingGuard);
  7655. exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;
  7656. var ConditionalCommentObfuscatingGuard_1;
  7657. /***/ }),
  7658. /***/ "./src/node/NodeAppender.ts":
  7659. /*!**********************************!*\
  7660. !*** ./src/node/NodeAppender.ts ***!
  7661. \**********************************/
  7662. /*! no static exports found */
  7663. /***/ (function(module, exports, __webpack_require__) {
  7664. "use strict";
  7665. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  7666. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7667. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7668. Object.defineProperty(exports, "__esModule", {
  7669. value: true
  7670. });
  7671. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  7672. var NodeAppender =
  7673. /*#__PURE__*/
  7674. function () {
  7675. function NodeAppender() {
  7676. _classCallCheck(this, NodeAppender);
  7677. }
  7678. _createClass(NodeAppender, null, [{
  7679. key: "appendNode",
  7680. value: function appendNode(scopeNode, scopeStatements) {
  7681. scopeStatements = NodeAppender.parentizeScopeStatementsBeforeAppend(scopeNode, scopeStatements);
  7682. NodeAppender.setScopeNodeStatements(scopeNode, _toConsumableArray(NodeAppender.getScopeNodeStatements(scopeNode)).concat(_toConsumableArray(scopeStatements)));
  7683. }
  7684. }, {
  7685. key: "appendNodeToOptimalBlockScope",
  7686. value: function appendNodeToOptimalBlockScope(blockScopeStackTraceData, blockScopeNode, nodeBodyStatements) {
  7687. var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  7688. var targetBlockScope;
  7689. if (!blockScopeStackTraceData.length) {
  7690. targetBlockScope = blockScopeNode;
  7691. } else {
  7692. targetBlockScope = NodeAppender.getOptimalBlockScope(blockScopeStackTraceData, index);
  7693. }
  7694. NodeAppender.prependNode(targetBlockScope, nodeBodyStatements);
  7695. }
  7696. }, {
  7697. key: "getOptimalBlockScope",
  7698. value: function getOptimalBlockScope(blockScopeTraceData, index) {
  7699. var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
  7700. var firstCall = blockScopeTraceData[index];
  7701. if (deep <= 0) {
  7702. throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");
  7703. }
  7704. if (deep > 1 && firstCall.stackTrace.length) {
  7705. return NodeAppender.getOptimalBlockScope(firstCall.stackTrace, 0, --deep);
  7706. } else {
  7707. return firstCall.callee;
  7708. }
  7709. }
  7710. }, {
  7711. key: "insertNodeAfter",
  7712. value: function insertNodeAfter(scopeNode, scopeStatements, targetStatement) {
  7713. var indexInScopeStatement = NodeAppender.getScopeNodeStatements(scopeNode).indexOf(targetStatement);
  7714. NodeAppender.insertNodeAtIndex(scopeNode, scopeStatements, indexInScopeStatement + 1);
  7715. }
  7716. }, {
  7717. key: "insertNodeAtIndex",
  7718. value: function insertNodeAtIndex(scopeNode, scopeStatements, index) {
  7719. scopeStatements = NodeAppender.parentizeScopeStatementsBeforeAppend(scopeNode, scopeStatements);
  7720. NodeAppender.setScopeNodeStatements(scopeNode, _toConsumableArray(NodeAppender.getScopeNodeStatements(scopeNode).slice(0, index)).concat(_toConsumableArray(scopeStatements), _toConsumableArray(NodeAppender.getScopeNodeStatements(scopeNode).slice(index))));
  7721. }
  7722. }, {
  7723. key: "prependNode",
  7724. value: function prependNode(scopeNode, scopeStatements) {
  7725. scopeStatements = NodeAppender.parentizeScopeStatementsBeforeAppend(scopeNode, scopeStatements);
  7726. NodeAppender.setScopeNodeStatements(scopeNode, _toConsumableArray(scopeStatements).concat(_toConsumableArray(NodeAppender.getScopeNodeStatements(scopeNode))));
  7727. }
  7728. }, {
  7729. key: "getScopeNodeStatements",
  7730. value: function getScopeNodeStatements(scopeNode) {
  7731. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)) {
  7732. return scopeNode.consequent;
  7733. }
  7734. return scopeNode.body;
  7735. }
  7736. }, {
  7737. key: "parentizeScopeStatementsBeforeAppend",
  7738. value: function parentizeScopeStatementsBeforeAppend(scopeNode, scopeStatements) {
  7739. scopeStatements.forEach(function (statement) {
  7740. statement.parentNode = scopeNode;
  7741. });
  7742. return scopeStatements;
  7743. }
  7744. }, {
  7745. key: "setScopeNodeStatements",
  7746. value: function setScopeNodeStatements(scopeNode, statements) {
  7747. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)) {
  7748. scopeNode.consequent = statements;
  7749. return;
  7750. }
  7751. scopeNode.body = statements;
  7752. }
  7753. }]);
  7754. return NodeAppender;
  7755. }();
  7756. exports.NodeAppender = NodeAppender;
  7757. /***/ }),
  7758. /***/ "./src/node/NodeFactory.ts":
  7759. /*!*********************************!*\
  7760. !*** ./src/node/NodeFactory.ts ***!
  7761. \*********************************/
  7762. /*! no static exports found */
  7763. /***/ (function(module, exports, __webpack_require__) {
  7764. "use strict";
  7765. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  7766. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  7767. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  7768. Object.defineProperty(exports, "__esModule", {
  7769. value: true
  7770. });
  7771. var escodegen = __importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
  7772. var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  7773. var NodeFactory =
  7774. /*#__PURE__*/
  7775. function () {
  7776. function NodeFactory() {
  7777. _classCallCheck(this, NodeFactory);
  7778. }
  7779. _createClass(NodeFactory, null, [{
  7780. key: "programNode",
  7781. value: function programNode() {
  7782. var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  7783. return {
  7784. type: NodeType_1.NodeType.Program,
  7785. body: body,
  7786. sourceType: 'script',
  7787. metadata: {
  7788. ignoredNode: false,
  7789. obfuscatedNode: false
  7790. }
  7791. };
  7792. }
  7793. }, {
  7794. key: "arrayExpressionNode",
  7795. value: function arrayExpressionNode() {
  7796. var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  7797. return {
  7798. type: NodeType_1.NodeType.ArrayExpression,
  7799. elements: elements,
  7800. metadata: {
  7801. ignoredNode: false,
  7802. obfuscatedNode: false
  7803. }
  7804. };
  7805. }
  7806. }, {
  7807. key: "assignmentExpressionNode",
  7808. value: function assignmentExpressionNode(operator, left, right) {
  7809. return {
  7810. type: NodeType_1.NodeType.AssignmentExpression,
  7811. operator: operator,
  7812. left: left,
  7813. right: right,
  7814. metadata: {
  7815. ignoredNode: false,
  7816. obfuscatedNode: false
  7817. }
  7818. };
  7819. }
  7820. }, {
  7821. key: "binaryExpressionNode",
  7822. value: function binaryExpressionNode(operator, left, right) {
  7823. return {
  7824. type: NodeType_1.NodeType.BinaryExpression,
  7825. operator: operator,
  7826. left: left,
  7827. right: right,
  7828. metadata: {
  7829. ignoredNode: false,
  7830. obfuscatedNode: false
  7831. }
  7832. };
  7833. }
  7834. }, {
  7835. key: "blockStatementNode",
  7836. value: function blockStatementNode() {
  7837. var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  7838. return {
  7839. type: NodeType_1.NodeType.BlockStatement,
  7840. body: body,
  7841. metadata: {
  7842. ignoredNode: false,
  7843. obfuscatedNode: false
  7844. }
  7845. };
  7846. }
  7847. }, {
  7848. key: "breakStatement",
  7849. value: function breakStatement(label) {
  7850. var breakStatementNode = {
  7851. type: NodeType_1.NodeType.BreakStatement,
  7852. metadata: {
  7853. ignoredNode: false,
  7854. obfuscatedNode: false
  7855. }
  7856. };
  7857. if (label) {
  7858. breakStatementNode.label = label;
  7859. }
  7860. return breakStatementNode;
  7861. }
  7862. }, {
  7863. key: "callExpressionNode",
  7864. value: function callExpressionNode(callee) {
  7865. var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  7866. return {
  7867. type: NodeType_1.NodeType.CallExpression,
  7868. callee: callee,
  7869. arguments: args,
  7870. metadata: {
  7871. ignoredNode: false,
  7872. obfuscatedNode: false
  7873. }
  7874. };
  7875. }
  7876. }, {
  7877. key: "continueStatement",
  7878. value: function continueStatement(label) {
  7879. var continueStatementNode = {
  7880. type: NodeType_1.NodeType.ContinueStatement,
  7881. metadata: {
  7882. ignoredNode: false,
  7883. obfuscatedNode: false
  7884. }
  7885. };
  7886. if (label) {
  7887. continueStatementNode.label = label;
  7888. }
  7889. return continueStatementNode;
  7890. }
  7891. }, {
  7892. key: "expressionStatementNode",
  7893. value: function expressionStatementNode(expression) {
  7894. return {
  7895. type: NodeType_1.NodeType.ExpressionStatement,
  7896. expression: expression,
  7897. metadata: {
  7898. ignoredNode: false,
  7899. obfuscatedNode: false
  7900. }
  7901. };
  7902. }
  7903. }, {
  7904. key: "functionDeclarationNode",
  7905. value: function functionDeclarationNode(functionName, params, body) {
  7906. return {
  7907. type: NodeType_1.NodeType.FunctionDeclaration,
  7908. id: NodeFactory.identifierNode(functionName),
  7909. params: params,
  7910. body: body,
  7911. generator: false,
  7912. metadata: {
  7913. ignoredNode: false,
  7914. obfuscatedNode: false
  7915. }
  7916. };
  7917. }
  7918. }, {
  7919. key: "functionExpressionNode",
  7920. value: function functionExpressionNode(params, body) {
  7921. return {
  7922. type: NodeType_1.NodeType.FunctionExpression,
  7923. params: params,
  7924. body: body,
  7925. generator: false,
  7926. metadata: {
  7927. ignoredNode: false,
  7928. obfuscatedNode: false
  7929. }
  7930. };
  7931. }
  7932. }, {
  7933. key: "ifStatementNode",
  7934. value: function ifStatementNode(test, consequent, alternate) {
  7935. return _Object$assign({
  7936. type: NodeType_1.NodeType.IfStatement,
  7937. test: test,
  7938. consequent: consequent
  7939. }, alternate && {
  7940. alternate: alternate
  7941. }, {
  7942. metadata: {
  7943. ignoredNode: false,
  7944. obfuscatedNode: false
  7945. }
  7946. });
  7947. }
  7948. }, {
  7949. key: "identifierNode",
  7950. value: function identifierNode(name) {
  7951. return {
  7952. type: NodeType_1.NodeType.Identifier,
  7953. name: name,
  7954. metadata: {
  7955. ignoredNode: false,
  7956. obfuscatedNode: false
  7957. }
  7958. };
  7959. }
  7960. }, {
  7961. key: "literalNode",
  7962. value: function literalNode(value, raw) {
  7963. raw = raw !== undefined ? raw : "'".concat(value, "'");
  7964. return {
  7965. type: NodeType_1.NodeType.Literal,
  7966. value: value,
  7967. raw: raw,
  7968. 'x-verbatim-property': {
  7969. content: raw,
  7970. precedence: escodegen.Precedence.Primary
  7971. },
  7972. metadata: {
  7973. ignoredNode: false,
  7974. obfuscatedNode: false
  7975. }
  7976. };
  7977. }
  7978. }, {
  7979. key: "logicalExpressionNode",
  7980. value: function logicalExpressionNode(operator, left, right) {
  7981. return {
  7982. type: NodeType_1.NodeType.LogicalExpression,
  7983. operator: operator,
  7984. left: left,
  7985. right: right,
  7986. metadata: {
  7987. ignoredNode: false,
  7988. obfuscatedNode: false
  7989. }
  7990. };
  7991. }
  7992. }, {
  7993. key: "memberExpressionNode",
  7994. value: function memberExpressionNode(object, property) {
  7995. var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  7996. return {
  7997. type: NodeType_1.NodeType.MemberExpression,
  7998. computed: computed,
  7999. object: object,
  8000. property: property,
  8001. metadata: {
  8002. ignoredNode: false,
  8003. obfuscatedNode: false
  8004. }
  8005. };
  8006. }
  8007. }, {
  8008. key: "methodDefinitionNode",
  8009. value: function methodDefinitionNode(key, value, kind, computed) {
  8010. return {
  8011. type: NodeType_1.NodeType.MethodDefinition,
  8012. key: key,
  8013. value: value,
  8014. kind: kind,
  8015. computed: computed,
  8016. static: false,
  8017. metadata: {
  8018. ignoredNode: false,
  8019. obfuscatedNode: false
  8020. }
  8021. };
  8022. }
  8023. }, {
  8024. key: "objectExpressionNode",
  8025. value: function objectExpressionNode(properties) {
  8026. return {
  8027. type: NodeType_1.NodeType.ObjectExpression,
  8028. properties: properties,
  8029. metadata: {
  8030. ignoredNode: false,
  8031. obfuscatedNode: false
  8032. }
  8033. };
  8034. }
  8035. }, {
  8036. key: "propertyNode",
  8037. value: function propertyNode(key, value) {
  8038. var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  8039. return {
  8040. type: NodeType_1.NodeType.Property,
  8041. key: key,
  8042. value: value,
  8043. kind: 'init',
  8044. method: false,
  8045. shorthand: false,
  8046. computed: computed,
  8047. metadata: {
  8048. ignoredNode: false,
  8049. obfuscatedNode: false
  8050. }
  8051. };
  8052. }
  8053. }, {
  8054. key: "returnStatementNode",
  8055. value: function returnStatementNode(argument) {
  8056. return {
  8057. type: NodeType_1.NodeType.ReturnStatement,
  8058. argument: argument,
  8059. metadata: {
  8060. ignoredNode: false,
  8061. obfuscatedNode: false
  8062. }
  8063. };
  8064. }
  8065. }, {
  8066. key: "switchStatementNode",
  8067. value: function switchStatementNode(discriminant, cases) {
  8068. return {
  8069. type: NodeType_1.NodeType.SwitchStatement,
  8070. discriminant: discriminant,
  8071. cases: cases,
  8072. metadata: {
  8073. ignoredNode: false,
  8074. obfuscatedNode: false
  8075. }
  8076. };
  8077. }
  8078. }, {
  8079. key: "switchCaseNode",
  8080. value: function switchCaseNode(test, consequent) {
  8081. return {
  8082. type: NodeType_1.NodeType.SwitchCase,
  8083. test: test,
  8084. consequent: consequent,
  8085. metadata: {
  8086. ignoredNode: false,
  8087. obfuscatedNode: false
  8088. }
  8089. };
  8090. }
  8091. }, {
  8092. key: "unaryExpressionNode",
  8093. value: function unaryExpressionNode(operator, argument) {
  8094. var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  8095. return {
  8096. type: NodeType_1.NodeType.UnaryExpression,
  8097. operator: operator,
  8098. argument: argument,
  8099. prefix: prefix,
  8100. metadata: {
  8101. ignoredNode: false,
  8102. obfuscatedNode: false
  8103. }
  8104. };
  8105. }
  8106. }, {
  8107. key: "updateExpressionNode",
  8108. value: function updateExpressionNode(operator, argumentExpr) {
  8109. return {
  8110. type: NodeType_1.NodeType.UpdateExpression,
  8111. operator: operator,
  8112. argument: argumentExpr,
  8113. prefix: false,
  8114. metadata: {
  8115. ignoredNode: false,
  8116. obfuscatedNode: false
  8117. }
  8118. };
  8119. }
  8120. }, {
  8121. key: "variableDeclarationNode",
  8122. value: function variableDeclarationNode() {
  8123. var declarations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  8124. var kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'var';
  8125. return {
  8126. type: NodeType_1.NodeType.VariableDeclaration,
  8127. declarations: declarations,
  8128. kind: kind,
  8129. metadata: {
  8130. ignoredNode: false,
  8131. obfuscatedNode: false
  8132. }
  8133. };
  8134. }
  8135. }, {
  8136. key: "variableDeclaratorNode",
  8137. value: function variableDeclaratorNode(id, init) {
  8138. return {
  8139. type: NodeType_1.NodeType.VariableDeclarator,
  8140. id: id,
  8141. init: init,
  8142. metadata: {
  8143. ignoredNode: false,
  8144. obfuscatedNode: false
  8145. }
  8146. };
  8147. }
  8148. }, {
  8149. key: "whileStatementNode",
  8150. value: function whileStatementNode(test, body) {
  8151. return {
  8152. type: NodeType_1.NodeType.WhileStatement,
  8153. test: test,
  8154. body: body,
  8155. metadata: {
  8156. ignoredNode: false,
  8157. obfuscatedNode: false
  8158. }
  8159. };
  8160. }
  8161. }]);
  8162. return NodeFactory;
  8163. }();
  8164. exports.NodeFactory = NodeFactory;
  8165. /***/ }),
  8166. /***/ "./src/node/NodeGuards.ts":
  8167. /*!********************************!*\
  8168. !*** ./src/node/NodeGuards.ts ***!
  8169. \********************************/
  8170. /*! no static exports found */
  8171. /***/ (function(module, exports, __webpack_require__) {
  8172. "use strict";
  8173. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  8174. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  8175. Object.defineProperty(exports, "__esModule", {
  8176. value: true
  8177. });
  8178. var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  8179. var NodeGuards =
  8180. /*#__PURE__*/
  8181. function () {
  8182. function NodeGuards() {
  8183. _classCallCheck(this, NodeGuards);
  8184. }
  8185. _createClass(NodeGuards, null, [{
  8186. key: "isArrayPatternNode",
  8187. value: function isArrayPatternNode(node) {
  8188. return node.type === NodeType_1.NodeType.ArrayPattern;
  8189. }
  8190. }, {
  8191. key: "isArrowFunctionExpressionNode",
  8192. value: function isArrowFunctionExpressionNode(node) {
  8193. return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
  8194. }
  8195. }, {
  8196. key: "isAssignmentPatternNode",
  8197. value: function isAssignmentPatternNode(node) {
  8198. return node.type === NodeType_1.NodeType.AssignmentPattern;
  8199. }
  8200. }, {
  8201. key: "isAwaitExpressionNode",
  8202. value: function isAwaitExpressionNode(node) {
  8203. return node.type === NodeType_1.NodeType.AwaitExpression;
  8204. }
  8205. }, {
  8206. key: "isBlockStatementNode",
  8207. value: function isBlockStatementNode(node) {
  8208. return node.type === NodeType_1.NodeType.BlockStatement;
  8209. }
  8210. }, {
  8211. key: "isBreakStatementNode",
  8212. value: function isBreakStatementNode(node) {
  8213. return node.type === NodeType_1.NodeType.BreakStatement;
  8214. }
  8215. }, {
  8216. key: "isCallExpressionNode",
  8217. value: function isCallExpressionNode(node) {
  8218. return node.type === NodeType_1.NodeType.CallExpression;
  8219. }
  8220. }, {
  8221. key: "isCatchClauseNode",
  8222. value: function isCatchClauseNode(node) {
  8223. return node.type === NodeType_1.NodeType.CatchClause;
  8224. }
  8225. }, {
  8226. key: "isClassDeclarationNode",
  8227. value: function isClassDeclarationNode(node) {
  8228. return node.type === NodeType_1.NodeType.ClassDeclaration;
  8229. }
  8230. }, {
  8231. key: "isContinueStatementNode",
  8232. value: function isContinueStatementNode(node) {
  8233. return node.type === NodeType_1.NodeType.ContinueStatement;
  8234. }
  8235. }, {
  8236. key: "isExpressionStatementNode",
  8237. value: function isExpressionStatementNode(node) {
  8238. return node.type === NodeType_1.NodeType.ExpressionStatement;
  8239. }
  8240. }, {
  8241. key: "isFunctionDeclarationNode",
  8242. value: function isFunctionDeclarationNode(node) {
  8243. return node.type === NodeType_1.NodeType.FunctionDeclaration;
  8244. }
  8245. }, {
  8246. key: "isFunctionExpressionNode",
  8247. value: function isFunctionExpressionNode(node) {
  8248. return node.type === NodeType_1.NodeType.FunctionExpression;
  8249. }
  8250. }, {
  8251. key: "isIdentifierNode",
  8252. value: function isIdentifierNode(node) {
  8253. return node.type === NodeType_1.NodeType.Identifier;
  8254. }
  8255. }, {
  8256. key: "isIfStatementNode",
  8257. value: function isIfStatementNode(node) {
  8258. return node.type === NodeType_1.NodeType.IfStatement;
  8259. }
  8260. }, {
  8261. key: "isLabelIdentifierNode",
  8262. value: function isLabelIdentifierNode(node, parentNode) {
  8263. var parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;
  8264. var parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;
  8265. var parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;
  8266. return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
  8267. }
  8268. }, {
  8269. key: "isLabeledStatementNode",
  8270. value: function isLabeledStatementNode(node) {
  8271. return node.type === NodeType_1.NodeType.LabeledStatement;
  8272. }
  8273. }, {
  8274. key: "isLiteralNode",
  8275. value: function isLiteralNode(node) {
  8276. return node.type === NodeType_1.NodeType.Literal;
  8277. }
  8278. }, {
  8279. key: "isMemberExpressionNode",
  8280. value: function isMemberExpressionNode(node) {
  8281. return node.type === NodeType_1.NodeType.MemberExpression;
  8282. }
  8283. }, {
  8284. key: "isMethodDefinitionNode",
  8285. value: function isMethodDefinitionNode(node) {
  8286. return node.type === NodeType_1.NodeType.MethodDefinition;
  8287. }
  8288. }, {
  8289. key: "isNode",
  8290. value: function isNode(object) {
  8291. return object && !object.type !== undefined;
  8292. }
  8293. }, {
  8294. key: "isNodeHasBlockScope",
  8295. value: function isNodeHasBlockScope(node, parentNode) {
  8296. return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithBlockScope.includes(parentNode.type);
  8297. }
  8298. }, {
  8299. key: "isNodeHasScope",
  8300. value: function isNodeHasScope(node) {
  8301. return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) || NodeGuards.isSwitchCaseNode(node);
  8302. }
  8303. }, {
  8304. key: "isNodeWithComments",
  8305. value: function isNodeWithComments(node) {
  8306. return Boolean(node.leadingComments) || Boolean(node.trailingComments);
  8307. }
  8308. }, {
  8309. key: "isObjectPatternNode",
  8310. value: function isObjectPatternNode(node) {
  8311. return node.type === NodeType_1.NodeType.ObjectPattern;
  8312. }
  8313. }, {
  8314. key: "isObjectExpressionNode",
  8315. value: function isObjectExpressionNode(node) {
  8316. return node.type === NodeType_1.NodeType.ObjectExpression;
  8317. }
  8318. }, {
  8319. key: "isProgramNode",
  8320. value: function isProgramNode(node) {
  8321. return node.type === NodeType_1.NodeType.Program;
  8322. }
  8323. }, {
  8324. key: "isPropertyNode",
  8325. value: function isPropertyNode(node) {
  8326. return node.type === NodeType_1.NodeType.Property;
  8327. }
  8328. }, {
  8329. key: "isReplaceableIdentifierNode",
  8330. value: function isReplaceableIdentifierNode(node, parentNode) {
  8331. if (!NodeGuards.isIdentifierNode(node)) {
  8332. return false;
  8333. }
  8334. var parentNodeIsPropertyNode = NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === node;
  8335. var parentNodeIsMemberExpressionNode = NodeGuards.isMemberExpressionNode(parentNode) && !parentNode.computed && parentNode.property === node;
  8336. var parentNodeIsMethodDefinitionNode = NodeGuards.isMethodDefinitionNode(parentNode) && !parentNode.computed;
  8337. var isLabelIdentifierNode = NodeGuards.isLabelIdentifierNode(node, parentNode);
  8338. return !parentNodeIsPropertyNode && !parentNodeIsMemberExpressionNode && !parentNodeIsMethodDefinitionNode && !isLabelIdentifierNode;
  8339. }
  8340. }, {
  8341. key: "isRestElementNode",
  8342. value: function isRestElementNode(node) {
  8343. return node.type === NodeType_1.NodeType.RestElement;
  8344. }
  8345. }, {
  8346. key: "isReturnStatementNode",
  8347. value: function isReturnStatementNode(node) {
  8348. return node.type === NodeType_1.NodeType.ReturnStatement;
  8349. }
  8350. }, {
  8351. key: "isSuperNode",
  8352. value: function isSuperNode(node) {
  8353. return node.type === NodeType_1.NodeType.Super;
  8354. }
  8355. }, {
  8356. key: "isSwitchCaseNode",
  8357. value: function isSwitchCaseNode(node) {
  8358. return node.type === NodeType_1.NodeType.SwitchCase;
  8359. }
  8360. }, {
  8361. key: "isTemplateLiteralNode",
  8362. value: function isTemplateLiteralNode(node) {
  8363. return node.type === NodeType_1.NodeType.TemplateLiteral;
  8364. }
  8365. }, {
  8366. key: "isUnaryExpressionNode",
  8367. value: function isUnaryExpressionNode(node) {
  8368. return node.type === NodeType_1.NodeType.UnaryExpression;
  8369. }
  8370. }, {
  8371. key: "isUseStrictOperator",
  8372. value: function isUseStrictOperator(node) {
  8373. return node.type === NodeType_1.NodeType.ExpressionStatement && node.directive === 'use strict';
  8374. }
  8375. }, {
  8376. key: "isVariableDeclarationNode",
  8377. value: function isVariableDeclarationNode(node) {
  8378. return node.type === NodeType_1.NodeType.VariableDeclaration;
  8379. }
  8380. }, {
  8381. key: "isVariableDeclaratorNode",
  8382. value: function isVariableDeclaratorNode(node) {
  8383. return node.type === NodeType_1.NodeType.VariableDeclarator;
  8384. }
  8385. }, {
  8386. key: "isWhileStatementNode",
  8387. value: function isWhileStatementNode(node) {
  8388. return node.type === NodeType_1.NodeType.WhileStatement;
  8389. }
  8390. }]);
  8391. return NodeGuards;
  8392. }();
  8393. NodeGuards.nodesWithBlockScope = [NodeType_1.NodeType.ArrowFunctionExpression, NodeType_1.NodeType.FunctionDeclaration, NodeType_1.NodeType.FunctionExpression, NodeType_1.NodeType.MethodDefinition];
  8394. exports.NodeGuards = NodeGuards;
  8395. /***/ }),
  8396. /***/ "./src/node/NodeMetadata.ts":
  8397. /*!**********************************!*\
  8398. !*** ./src/node/NodeMetadata.ts ***!
  8399. \**********************************/
  8400. /*! no static exports found */
  8401. /***/ (function(module, exports, __webpack_require__) {
  8402. "use strict";
  8403. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8404. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  8405. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  8406. Object.defineProperty(exports, "__esModule", {
  8407. value: true
  8408. });
  8409. var NodeMetadata =
  8410. /*#__PURE__*/
  8411. function () {
  8412. function NodeMetadata() {
  8413. _classCallCheck(this, NodeMetadata);
  8414. }
  8415. _createClass(NodeMetadata, null, [{
  8416. key: "set",
  8417. value: function set(node, metadata) {
  8418. node.metadata = _Object$assign(node.metadata || {}, metadata);
  8419. }
  8420. }, {
  8421. key: "get",
  8422. value: function get(node, metadataKey) {
  8423. return node.metadata !== undefined ? node.metadata[metadataKey] : undefined;
  8424. }
  8425. }, {
  8426. key: "isIgnoredNode",
  8427. value: function isIgnoredNode(node) {
  8428. return NodeMetadata.get(node, 'ignoredNode') === true;
  8429. }
  8430. }, {
  8431. key: "isObfuscatedNode",
  8432. value: function isObfuscatedNode(node) {
  8433. return NodeMetadata.get(node, 'obfuscatedNode') === true;
  8434. }
  8435. }, {
  8436. key: "isRenamedIdentifier",
  8437. value: function isRenamedIdentifier(identifierNode) {
  8438. return NodeMetadata.get(identifierNode, 'renamedIdentifier') === true;
  8439. }
  8440. }]);
  8441. return NodeMetadata;
  8442. }();
  8443. exports.NodeMetadata = NodeMetadata;
  8444. /***/ }),
  8445. /***/ "./src/node/NodeUtils.ts":
  8446. /*!*******************************!*\
  8447. !*** ./src/node/NodeUtils.ts ***!
  8448. \*******************************/
  8449. /*! no static exports found */
  8450. /***/ (function(module, exports, __webpack_require__) {
  8451. "use strict";
  8452. var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof");
  8453. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  8454. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  8455. Object.defineProperty(exports, "__esModule", {
  8456. value: true
  8457. });
  8458. var escodegen = __importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
  8459. var esprima = __importStar(__webpack_require__(/*! esprima */ "esprima"));
  8460. var estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  8461. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  8462. var NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts");
  8463. var NodeUtils =
  8464. /*#__PURE__*/
  8465. function () {
  8466. function NodeUtils() {
  8467. _classCallCheck(this, NodeUtils);
  8468. }
  8469. _createClass(NodeUtils, null, [{
  8470. key: "addXVerbatimPropertyToLiterals",
  8471. value: function addXVerbatimPropertyToLiterals(astTree) {
  8472. estraverse.replace(astTree, {
  8473. leave: function leave(node) {
  8474. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  8475. node['x-verbatim-property'] = {
  8476. content: node.raw,
  8477. precedence: escodegen.Precedence.Primary
  8478. };
  8479. }
  8480. }
  8481. });
  8482. return astTree;
  8483. }
  8484. }, {
  8485. key: "clone",
  8486. value: function clone(astTree) {
  8487. return NodeUtils.parentize(NodeUtils.cloneRecursive(astTree));
  8488. }
  8489. }, {
  8490. key: "convertCodeToStructure",
  8491. value: function convertCodeToStructure(code) {
  8492. var structure = esprima.parseScript(code);
  8493. structure = NodeUtils.addXVerbatimPropertyToLiterals(structure);
  8494. structure = NodeUtils.parentize(structure);
  8495. estraverse.replace(structure, {
  8496. enter: function enter(node) {
  8497. NodeMetadata_1.NodeMetadata.set(node, {
  8498. ignoredNode: false,
  8499. obfuscatedNode: false
  8500. });
  8501. return node;
  8502. }
  8503. });
  8504. return structure.body;
  8505. }
  8506. }, {
  8507. key: "convertStructureToCode",
  8508. value: function convertStructureToCode(structure) {
  8509. return structure.reduce(function (code, node) {
  8510. return code + escodegen.generate(node, {
  8511. sourceMapWithCode: true
  8512. }).code;
  8513. }, '');
  8514. }
  8515. }, {
  8516. key: "getBlockScopesOfNode",
  8517. value: function getBlockScopesOfNode(targetNode) {
  8518. return NodeUtils.getBlockScopesOfNodeRecursive(targetNode);
  8519. }
  8520. }, {
  8521. key: "getNextSiblingStatementNode",
  8522. value: function getNextSiblingStatementNode(node) {
  8523. return NodeUtils.getSiblingStatementNodeByOffset(node, 1);
  8524. }
  8525. }, {
  8526. key: "getPreviousSiblingStatementNode",
  8527. value: function getPreviousSiblingStatementNode(node) {
  8528. return NodeUtils.getSiblingStatementNodeByOffset(node, -1);
  8529. }
  8530. }, {
  8531. key: "getScopeOfNode",
  8532. value: function getScopeOfNode(node) {
  8533. var parentNode = node.parentNode;
  8534. if (!parentNode) {
  8535. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8536. }
  8537. if (!NodeGuards_1.NodeGuards.isNodeHasScope(parentNode)) {
  8538. return NodeUtils.getScopeOfNode(parentNode);
  8539. }
  8540. return parentNode;
  8541. }
  8542. }, {
  8543. key: "getUnaryExpressionArgumentNode",
  8544. value: function getUnaryExpressionArgumentNode(unaryExpressionNode) {
  8545. if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {
  8546. return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);
  8547. }
  8548. return unaryExpressionNode.argument;
  8549. }
  8550. }, {
  8551. key: "parentize",
  8552. value: function parentize(astTree) {
  8553. estraverse.replace(astTree, {
  8554. enter: NodeUtils.parentizeNode
  8555. });
  8556. return astTree;
  8557. }
  8558. }, {
  8559. key: "parentizeNode",
  8560. value: function parentizeNode(node, parentNode) {
  8561. node.parentNode = parentNode || node;
  8562. return node;
  8563. }
  8564. }, {
  8565. key: "cloneRecursive",
  8566. value: function cloneRecursive(node) {
  8567. if (node === null) {
  8568. return node;
  8569. }
  8570. var copy = {};
  8571. for (var property in node) {
  8572. if (!node.hasOwnProperty(property) || property === 'parentNode') {
  8573. continue;
  8574. }
  8575. var value = node[property];
  8576. var clonedValue = void 0;
  8577. if (value === null || value instanceof RegExp) {
  8578. clonedValue = value;
  8579. } else if (Array.isArray(value)) {
  8580. clonedValue = value.map(NodeUtils.cloneRecursive);
  8581. } else if (_typeof(value) === 'object') {
  8582. clonedValue = NodeUtils.cloneRecursive(value);
  8583. } else {
  8584. clonedValue = value;
  8585. }
  8586. copy[property] = clonedValue;
  8587. }
  8588. return copy;
  8589. }
  8590. }, {
  8591. key: "getBlockScopesOfNodeRecursive",
  8592. value: function getBlockScopesOfNodeRecursive(node) {
  8593. var blockScopes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  8594. var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
  8595. var parentNode = node.parentNode;
  8596. if (!parentNode) {
  8597. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8598. }
  8599. if (NodeGuards_1.NodeGuards.isBlockStatementNode(node) && parentNode === node) {
  8600. blockScopes.push(node);
  8601. }
  8602. if (NodeGuards_1.NodeGuards.isProgramNode(node) || depth && NodeGuards_1.NodeGuards.isNodeHasBlockScope(node, parentNode)) {
  8603. blockScopes.push(node);
  8604. }
  8605. if (node !== parentNode) {
  8606. return NodeUtils.getBlockScopesOfNodeRecursive(parentNode, blockScopes, ++depth);
  8607. }
  8608. return blockScopes;
  8609. }
  8610. }, {
  8611. key: "getSiblingStatementNodeByOffset",
  8612. value: function getSiblingStatementNodeByOffset(node, offset) {
  8613. var scopeNode = NodeUtils.getScopeOfNode(node);
  8614. var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
  8615. var indexInScope = scopeBody.indexOf(node);
  8616. return scopeBody[indexInScope + offset] || null;
  8617. }
  8618. }]);
  8619. return NodeUtils;
  8620. }();
  8621. exports.NodeUtils = NodeUtils;
  8622. /***/ }),
  8623. /***/ "./src/options/Options.ts":
  8624. /*!********************************!*\
  8625. !*** ./src/options/Options.ts ***!
  8626. \********************************/
  8627. /*! no static exports found */
  8628. /***/ (function(module, exports, __webpack_require__) {
  8629. "use strict";
  8630. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8631. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  8632. Object.defineProperty(exports, "__esModule", {
  8633. value: true
  8634. });
  8635. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  8636. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8637. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  8638. var class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
  8639. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  8640. var ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  8641. var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  8642. var StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  8643. var Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts");
  8644. var ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts");
  8645. var Options = Options_1 = function Options(inputOptions, optionsNormalizer) {
  8646. _classCallCheck(this, Options);
  8647. _Object$assign(this, Default_1.DEFAULT_PRESET, inputOptions);
  8648. var errors = class_validator_1.validateSync(this, Options_1.validatorOptions);
  8649. if (errors.length) {
  8650. throw new ReferenceError("Validation failed. errors:\n".concat(ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)));
  8651. }
  8652. _Object$assign(this, optionsNormalizer.normalize(this));
  8653. };
  8654. Options.validatorOptions = {
  8655. validationError: {
  8656. target: false
  8657. }
  8658. };
  8659. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "compact", void 0);
  8660. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "controlFlowFlattening", void 0);
  8661. tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "controlFlowFlatteningThreshold", void 0);
  8662. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "deadCodeInjection", void 0);
  8663. tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "deadCodeInjectionThreshold", void 0);
  8664. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtection", void 0);
  8665. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtectionInterval", void 0);
  8666. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "disableConsoleOutput", void 0);
  8667. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  8668. each: true
  8669. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "domainLock", void 0);
  8670. tslib_1.__decorate([class_validator_1.IsIn([IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]), tslib_1.__metadata("design:type", String)], Options.prototype, "identifierNamesGenerator", void 0);
  8671. tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "identifiersPrefix", void 0);
  8672. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "log", void 0);
  8673. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "renameGlobals", void 0);
  8674. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  8675. each: true
  8676. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedNames", void 0);
  8677. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "rotateStringArray", void 0);
  8678. tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "seed", void 0);
  8679. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "selfDefending", void 0);
  8680. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "sourceMap", void 0);
  8681. tslib_1.__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) {
  8682. return Boolean(options.sourceMapBaseUrl);
  8683. }), class_validator_1.IsUrl({
  8684. require_protocol: true,
  8685. require_tld: false,
  8686. require_valid_protocol: true
  8687. }), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapBaseUrl", void 0);
  8688. tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapFileName", void 0);
  8689. tslib_1.__decorate([class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapMode", void 0);
  8690. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "stringArray", void 0);
  8691. tslib_1.__decorate([class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]), tslib_1.__metadata("design:type", Object)], Options.prototype, "stringArrayEncoding", void 0);
  8692. tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "stringArrayThreshold", void 0);
  8693. tslib_1.__decorate([class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]), tslib_1.__metadata("design:type", String)], Options.prototype, "target", void 0);
  8694. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "transformObjectKeys", void 0);
  8695. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "unicodeEscapeSequence", void 0);
  8696. Options = Options_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)), tslib_1.__metadata("design:paramtypes", [Object, Object])], Options);
  8697. exports.Options = Options;
  8698. var Options_1;
  8699. /***/ }),
  8700. /***/ "./src/options/OptionsNormalizer.ts":
  8701. /*!******************************************!*\
  8702. !*** ./src/options/OptionsNormalizer.ts ***!
  8703. \******************************************/
  8704. /*! no static exports found */
  8705. /***/ (function(module, exports, __webpack_require__) {
  8706. "use strict";
  8707. var _getIterator = __webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator");
  8708. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8709. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  8710. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  8711. Object.defineProperty(exports, "__esModule", {
  8712. value: true
  8713. });
  8714. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  8715. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  8716. var ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts");
  8717. var DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts");
  8718. var DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts");
  8719. var DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts");
  8720. var SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts");
  8721. var SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts");
  8722. var SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts");
  8723. var StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts");
  8724. var StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts");
  8725. var StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts");
  8726. var OptionsNormalizer = OptionsNormalizer_1 =
  8727. /*#__PURE__*/
  8728. function () {
  8729. function OptionsNormalizer() {
  8730. _classCallCheck(this, OptionsNormalizer);
  8731. }
  8732. _createClass(OptionsNormalizer, [{
  8733. key: "normalize",
  8734. value: function normalize(options) {
  8735. var normalizedOptions = _Object$assign({}, options);
  8736. var _iteratorNormalCompletion = true;
  8737. var _didIteratorError = false;
  8738. var _iteratorError = undefined;
  8739. try {
  8740. for (var _iterator = _getIterator(OptionsNormalizer_1.normalizerRules), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  8741. var _normalizerRule = _step.value;
  8742. normalizedOptions = _normalizerRule(normalizedOptions);
  8743. }
  8744. } catch (err) {
  8745. _didIteratorError = true;
  8746. _iteratorError = err;
  8747. } finally {
  8748. try {
  8749. if (!_iteratorNormalCompletion && _iterator.return != null) {
  8750. _iterator.return();
  8751. }
  8752. } finally {
  8753. if (_didIteratorError) {
  8754. throw _iteratorError;
  8755. }
  8756. }
  8757. }
  8758. return normalizedOptions;
  8759. }
  8760. }]);
  8761. return OptionsNormalizer;
  8762. }();
  8763. OptionsNormalizer.normalizerRules = [ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule, DeadCodeInjectionRule_1.DeadCodeInjectionRule, DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule, DomainLockRule_1.DomainLockRule, SelfDefendingRule_1.SelfDefendingRule, SourceMapBaseUrlRule_1.SourceMapBaseUrlRule, SourceMapFileNameRule_1.SourceMapFileNameRule, StringArrayRule_1.StringArrayRule, StringArrayEncodingRule_1.StringArrayEncodingRule, StringArrayThresholdRule_1.StringArrayThresholdRule];
  8764. OptionsNormalizer = OptionsNormalizer_1 = tslib_1.__decorate([inversify_1.injectable()], OptionsNormalizer);
  8765. exports.OptionsNormalizer = OptionsNormalizer;
  8766. var OptionsNormalizer_1;
  8767. /***/ }),
  8768. /***/ "./src/options/ValidationErrorsFormatter.ts":
  8769. /*!**************************************************!*\
  8770. !*** ./src/options/ValidationErrorsFormatter.ts ***!
  8771. \**************************************************/
  8772. /*! no static exports found */
  8773. /***/ (function(module, exports, __webpack_require__) {
  8774. "use strict";
  8775. var _getIterator = __webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator");
  8776. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  8777. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  8778. Object.defineProperty(exports, "__esModule", {
  8779. value: true
  8780. });
  8781. var ValidationErrorsFormatter =
  8782. /*#__PURE__*/
  8783. function () {
  8784. function ValidationErrorsFormatter() {
  8785. _classCallCheck(this, ValidationErrorsFormatter);
  8786. }
  8787. _createClass(ValidationErrorsFormatter, null, [{
  8788. key: "format",
  8789. value: function format(validationErrors) {
  8790. var errorsArray = [];
  8791. var _iteratorNormalCompletion = true;
  8792. var _didIteratorError = false;
  8793. var _iteratorError = undefined;
  8794. try {
  8795. for (var _iterator = _getIterator(validationErrors), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  8796. var _error = _step.value;
  8797. errorsArray.push(ValidationErrorsFormatter.formatError(_error));
  8798. }
  8799. } catch (err) {
  8800. _didIteratorError = true;
  8801. _iteratorError = err;
  8802. } finally {
  8803. try {
  8804. if (!_iteratorNormalCompletion && _iterator.return != null) {
  8805. _iterator.return();
  8806. }
  8807. } finally {
  8808. if (_didIteratorError) {
  8809. throw _iteratorError;
  8810. }
  8811. }
  8812. }
  8813. return errorsArray.join('\n');
  8814. }
  8815. }, {
  8816. key: "formatError",
  8817. value: function formatError(validationError) {
  8818. var constraints = validationError.constraints;
  8819. var errorString = "`".concat(validationError.property, "` errors:\n");
  8820. for (var constraint in constraints) {
  8821. if (!constraints.hasOwnProperty(constraint)) {
  8822. continue;
  8823. }
  8824. errorString += " - ".concat(constraints[constraint], "\n");
  8825. }
  8826. return errorString;
  8827. }
  8828. }]);
  8829. return ValidationErrorsFormatter;
  8830. }();
  8831. exports.ValidationErrorsFormatter = ValidationErrorsFormatter;
  8832. /***/ }),
  8833. /***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts":
  8834. /*!****************************************************************************!*\
  8835. !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***!
  8836. \****************************************************************************/
  8837. /*! no static exports found */
  8838. /***/ (function(module, exports, __webpack_require__) {
  8839. "use strict";
  8840. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8841. Object.defineProperty(exports, "__esModule", {
  8842. value: true
  8843. });
  8844. exports.ControlFlowFlatteningThresholdRule = function (options) {
  8845. if (options.controlFlowFlatteningThreshold === 0) {
  8846. options = _Object$assign({}, options, {
  8847. controlFlowFlattening: false,
  8848. controlFlowFlatteningThreshold: 0
  8849. });
  8850. }
  8851. return options;
  8852. };
  8853. /***/ }),
  8854. /***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts":
  8855. /*!***************************************************************!*\
  8856. !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***!
  8857. \***************************************************************/
  8858. /*! no static exports found */
  8859. /***/ (function(module, exports, __webpack_require__) {
  8860. "use strict";
  8861. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8862. Object.defineProperty(exports, "__esModule", {
  8863. value: true
  8864. });
  8865. var Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
  8866. exports.DeadCodeInjectionRule = function (options) {
  8867. if (options.deadCodeInjection) {
  8868. options = _Object$assign({}, options, {
  8869. deadCodeInjection: true,
  8870. stringArray: true
  8871. });
  8872. if (!options.stringArrayThreshold) {
  8873. options = _Object$assign({}, options, {
  8874. stringArray: true,
  8875. stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold
  8876. });
  8877. }
  8878. }
  8879. return options;
  8880. };
  8881. /***/ }),
  8882. /***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts":
  8883. /*!************************************************************************!*\
  8884. !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***!
  8885. \************************************************************************/
  8886. /*! no static exports found */
  8887. /***/ (function(module, exports, __webpack_require__) {
  8888. "use strict";
  8889. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8890. Object.defineProperty(exports, "__esModule", {
  8891. value: true
  8892. });
  8893. exports.DeadCodeInjectionThresholdRule = function (options) {
  8894. if (options.deadCodeInjectionThreshold === 0) {
  8895. options = _Object$assign({}, options, {
  8896. deadCodeInjection: false,
  8897. deadCodeInjectionThreshold: 0
  8898. });
  8899. }
  8900. return options;
  8901. };
  8902. /***/ }),
  8903. /***/ "./src/options/normalizer-rules/DomainLockRule.ts":
  8904. /*!********************************************************!*\
  8905. !*** ./src/options/normalizer-rules/DomainLockRule.ts ***!
  8906. \********************************************************/
  8907. /*! no static exports found */
  8908. /***/ (function(module, exports, __webpack_require__) {
  8909. "use strict";
  8910. var _getIterator = __webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator");
  8911. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8912. Object.defineProperty(exports, "__esModule", {
  8913. value: true
  8914. });
  8915. var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  8916. exports.DomainLockRule = function (options) {
  8917. if (options.domainLock.length) {
  8918. var normalizedDomains = [];
  8919. var _iteratorNormalCompletion = true;
  8920. var _didIteratorError = false;
  8921. var _iteratorError = undefined;
  8922. try {
  8923. for (var _iterator = _getIterator(options.domainLock), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  8924. var _domain = _step.value;
  8925. normalizedDomains.push(Utils_1.Utils.extractDomainFromUrl(_domain));
  8926. }
  8927. } catch (err) {
  8928. _didIteratorError = true;
  8929. _iteratorError = err;
  8930. } finally {
  8931. try {
  8932. if (!_iteratorNormalCompletion && _iterator.return != null) {
  8933. _iterator.return();
  8934. }
  8935. } finally {
  8936. if (_didIteratorError) {
  8937. throw _iteratorError;
  8938. }
  8939. }
  8940. }
  8941. options = _Object$assign({}, options, {
  8942. domainLock: normalizedDomains
  8943. });
  8944. }
  8945. return options;
  8946. };
  8947. /***/ }),
  8948. /***/ "./src/options/normalizer-rules/SelfDefendingRule.ts":
  8949. /*!***********************************************************!*\
  8950. !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***!
  8951. \***********************************************************/
  8952. /*! no static exports found */
  8953. /***/ (function(module, exports, __webpack_require__) {
  8954. "use strict";
  8955. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8956. Object.defineProperty(exports, "__esModule", {
  8957. value: true
  8958. });
  8959. exports.SelfDefendingRule = function (options) {
  8960. if (options.selfDefending) {
  8961. options = _Object$assign({}, options, {
  8962. compact: true,
  8963. selfDefending: true
  8964. });
  8965. }
  8966. return options;
  8967. };
  8968. /***/ }),
  8969. /***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts":
  8970. /*!**************************************************************!*\
  8971. !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***!
  8972. \**************************************************************/
  8973. /*! no static exports found */
  8974. /***/ (function(module, exports, __webpack_require__) {
  8975. "use strict";
  8976. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  8977. Object.defineProperty(exports, "__esModule", {
  8978. value: true
  8979. });
  8980. exports.SourceMapBaseUrlRule = function (options) {
  8981. var _options = options,
  8982. sourceMapBaseUrl = _options.sourceMapBaseUrl;
  8983. if (!options.sourceMapFileName) {
  8984. options = _Object$assign({}, options, {
  8985. sourceMapBaseUrl: ''
  8986. });
  8987. return options;
  8988. }
  8989. if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
  8990. options = _Object$assign({}, options, {
  8991. sourceMapBaseUrl: "".concat(sourceMapBaseUrl, "/")
  8992. });
  8993. }
  8994. return options;
  8995. };
  8996. /***/ }),
  8997. /***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts":
  8998. /*!***************************************************************!*\
  8999. !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***!
  9000. \***************************************************************/
  9001. /*! no static exports found */
  9002. /***/ (function(module, exports, __webpack_require__) {
  9003. "use strict";
  9004. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  9005. Object.defineProperty(exports, "__esModule", {
  9006. value: true
  9007. });
  9008. exports.SourceMapFileNameRule = function (options) {
  9009. var _options = options,
  9010. sourceMapFileName = _options.sourceMapFileName;
  9011. if (sourceMapFileName) {
  9012. sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0];
  9013. options = _Object$assign({}, options, {
  9014. sourceMapFileName: "".concat(sourceMapFileName, ".js.map")
  9015. });
  9016. }
  9017. return options;
  9018. };
  9019. /***/ }),
  9020. /***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts":
  9021. /*!*****************************************************************!*\
  9022. !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***!
  9023. \*****************************************************************/
  9024. /*! no static exports found */
  9025. /***/ (function(module, exports, __webpack_require__) {
  9026. "use strict";
  9027. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  9028. Object.defineProperty(exports, "__esModule", {
  9029. value: true
  9030. });
  9031. var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  9032. exports.StringArrayEncodingRule = function (options) {
  9033. if (options.stringArrayEncoding === true) {
  9034. options = _Object$assign({}, options, {
  9035. stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64
  9036. });
  9037. }
  9038. return options;
  9039. };
  9040. /***/ }),
  9041. /***/ "./src/options/normalizer-rules/StringArrayRule.ts":
  9042. /*!*********************************************************!*\
  9043. !*** ./src/options/normalizer-rules/StringArrayRule.ts ***!
  9044. \*********************************************************/
  9045. /*! no static exports found */
  9046. /***/ (function(module, exports, __webpack_require__) {
  9047. "use strict";
  9048. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  9049. Object.defineProperty(exports, "__esModule", {
  9050. value: true
  9051. });
  9052. exports.StringArrayRule = function (options) {
  9053. if (!options.stringArray) {
  9054. options = _Object$assign({}, options, {
  9055. rotateStringArray: false,
  9056. stringArray: false,
  9057. stringArrayEncoding: false,
  9058. stringArrayThreshold: 0
  9059. });
  9060. }
  9061. return options;
  9062. };
  9063. /***/ }),
  9064. /***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts":
  9065. /*!******************************************************************!*\
  9066. !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***!
  9067. \******************************************************************/
  9068. /*! no static exports found */
  9069. /***/ (function(module, exports, __webpack_require__) {
  9070. "use strict";
  9071. var _Object$assign = __webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign");
  9072. Object.defineProperty(exports, "__esModule", {
  9073. value: true
  9074. });
  9075. exports.StringArrayThresholdRule = function (options) {
  9076. if (options.stringArrayThreshold === 0) {
  9077. options = _Object$assign({}, options, {
  9078. rotateStringArray: false,
  9079. stringArray: false,
  9080. stringArrayEncoding: false,
  9081. stringArrayThreshold: 0
  9082. });
  9083. }
  9084. return options;
  9085. };
  9086. /***/ }),
  9087. /***/ "./src/options/presets/Default.ts":
  9088. /*!****************************************!*\
  9089. !*** ./src/options/presets/Default.ts ***!
  9090. \****************************************/
  9091. /*! no static exports found */
  9092. /***/ (function(module, exports, __webpack_require__) {
  9093. "use strict";
  9094. var _Object$freeze = __webpack_require__(/*! @babel/runtime/core-js/object/freeze */ "@babel/runtime/core-js/object/freeze");
  9095. Object.defineProperty(exports, "__esModule", {
  9096. value: true
  9097. });
  9098. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  9099. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  9100. var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9101. exports.DEFAULT_PRESET = _Object$freeze({
  9102. compact: true,
  9103. config: '',
  9104. controlFlowFlattening: false,
  9105. controlFlowFlatteningThreshold: 0.75,
  9106. deadCodeInjection: false,
  9107. deadCodeInjectionThreshold: 0.4,
  9108. debugProtection: false,
  9109. debugProtectionInterval: false,
  9110. disableConsoleOutput: false,
  9111. domainLock: [],
  9112. exclude: [],
  9113. identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  9114. identifiersPrefix: '',
  9115. log: false,
  9116. renameGlobals: false,
  9117. reservedNames: [],
  9118. rotateStringArray: true,
  9119. seed: 0,
  9120. selfDefending: false,
  9121. sourceMap: false,
  9122. sourceMapBaseUrl: '',
  9123. sourceMapFileName: '',
  9124. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  9125. stringArray: true,
  9126. stringArrayEncoding: false,
  9127. stringArrayThreshold: 0.75,
  9128. target: ObfuscationTarget_1.ObfuscationTarget.Browser,
  9129. transformObjectKeys: false,
  9130. unicodeEscapeSequence: false
  9131. });
  9132. /***/ }),
  9133. /***/ "./src/options/presets/NoCustomNodes.ts":
  9134. /*!**********************************************!*\
  9135. !*** ./src/options/presets/NoCustomNodes.ts ***!
  9136. \**********************************************/
  9137. /*! no static exports found */
  9138. /***/ (function(module, exports, __webpack_require__) {
  9139. "use strict";
  9140. var _Object$freeze = __webpack_require__(/*! @babel/runtime/core-js/object/freeze */ "@babel/runtime/core-js/object/freeze");
  9141. Object.defineProperty(exports, "__esModule", {
  9142. value: true
  9143. });
  9144. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  9145. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  9146. var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9147. exports.NO_ADDITIONAL_NODES_PRESET = _Object$freeze({
  9148. compact: true,
  9149. controlFlowFlattening: false,
  9150. controlFlowFlatteningThreshold: 0,
  9151. deadCodeInjection: false,
  9152. deadCodeInjectionThreshold: 0,
  9153. debugProtection: false,
  9154. debugProtectionInterval: false,
  9155. disableConsoleOutput: false,
  9156. domainLock: [],
  9157. exclude: [],
  9158. identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  9159. identifiersPrefix: '',
  9160. log: false,
  9161. renameGlobals: false,
  9162. reservedNames: [],
  9163. rotateStringArray: false,
  9164. seed: 0,
  9165. selfDefending: false,
  9166. sourceMap: false,
  9167. sourceMapBaseUrl: '',
  9168. sourceMapFileName: '',
  9169. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  9170. stringArray: false,
  9171. stringArrayEncoding: false,
  9172. stringArrayThreshold: 0,
  9173. target: ObfuscationTarget_1.ObfuscationTarget.Browser,
  9174. transformObjectKeys: false,
  9175. unicodeEscapeSequence: false
  9176. });
  9177. /***/ }),
  9178. /***/ "./src/source-map/SourceMapCorrector.ts":
  9179. /*!**********************************************!*\
  9180. !*** ./src/source-map/SourceMapCorrector.ts ***!
  9181. \**********************************************/
  9182. /*! no static exports found */
  9183. /***/ (function(module, exports, __webpack_require__) {
  9184. "use strict";
  9185. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9186. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9187. Object.defineProperty(exports, "__esModule", {
  9188. value: true
  9189. });
  9190. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9191. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9192. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9193. var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9194. var SourceMapCorrector =
  9195. /*#__PURE__*/
  9196. function () {
  9197. function SourceMapCorrector(obfuscationResultFactory, cryptUtils, options) {
  9198. _classCallCheck(this, SourceMapCorrector);
  9199. this.obfuscationResultFactory = obfuscationResultFactory;
  9200. this.cryptUtils = cryptUtils;
  9201. this.options = options;
  9202. }
  9203. _createClass(SourceMapCorrector, [{
  9204. key: "correct",
  9205. value: function correct(obfuscatedCode, sourceMap) {
  9206. return this.obfuscationResultFactory(this.correctObfuscatedCode(obfuscatedCode, sourceMap), sourceMap);
  9207. }
  9208. }, {
  9209. key: "correctObfuscatedCode",
  9210. value: function correctObfuscatedCode(obfuscatedCode, sourceMap) {
  9211. if (!sourceMap) {
  9212. return obfuscatedCode;
  9213. }
  9214. var sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
  9215. var sourceMappingUrl = '//# sourceMappingURL=';
  9216. switch (this.options.sourceMapMode) {
  9217. case SourceMapMode_1.SourceMapMode.Inline:
  9218. sourceMappingUrl += "data:application/json;base64,".concat(this.cryptUtils.btoa(sourceMap));
  9219. break;
  9220. case SourceMapMode_1.SourceMapMode.Separate:
  9221. default:
  9222. if (!sourceMapUrl) {
  9223. return obfuscatedCode;
  9224. }
  9225. sourceMappingUrl += sourceMapUrl;
  9226. break;
  9227. }
  9228. return "".concat(obfuscatedCode, "\n").concat(sourceMappingUrl);
  9229. }
  9230. }]);
  9231. return SourceMapCorrector;
  9232. }();
  9233. SourceMapCorrector = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], SourceMapCorrector);
  9234. exports.SourceMapCorrector = SourceMapCorrector;
  9235. /***/ }),
  9236. /***/ "./src/storages/ArrayStorage.ts":
  9237. /*!**************************************!*\
  9238. !*** ./src/storages/ArrayStorage.ts ***!
  9239. \**************************************/
  9240. /*! no static exports found */
  9241. /***/ (function(module, exports, __webpack_require__) {
  9242. "use strict";
  9243. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  9244. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9245. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9246. Object.defineProperty(exports, "__esModule", {
  9247. value: true
  9248. });
  9249. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9250. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9251. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9252. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  9253. var ArrayStorage =
  9254. /*#__PURE__*/
  9255. function () {
  9256. function ArrayStorage(randomGenerator, options) {
  9257. _classCallCheck(this, ArrayStorage);
  9258. this.storageLength = 0;
  9259. this.randomGenerator = randomGenerator;
  9260. this.options = options;
  9261. }
  9262. _createClass(ArrayStorage, [{
  9263. key: "initialize",
  9264. value: function initialize() {
  9265. this.storage = [];
  9266. this.storageId = this.randomGenerator.getRandomString(6);
  9267. }
  9268. }, {
  9269. key: "get",
  9270. value: function get(key) {
  9271. var value = this.storage[key];
  9272. if (!value) {
  9273. throw new Error("No value found in array storage with key `".concat(key, "`"));
  9274. }
  9275. return value;
  9276. }
  9277. }, {
  9278. key: "getKeyOf",
  9279. value: function getKeyOf(value) {
  9280. var key = this.storage.indexOf(value);
  9281. return key >= 0 ? key : null;
  9282. }
  9283. }, {
  9284. key: "getLength",
  9285. value: function getLength() {
  9286. return this.storageLength;
  9287. }
  9288. }, {
  9289. key: "getStorage",
  9290. value: function getStorage() {
  9291. return this.storage;
  9292. }
  9293. }, {
  9294. key: "getStorageId",
  9295. value: function getStorageId() {
  9296. return this.storageId;
  9297. }
  9298. }, {
  9299. key: "mergeWith",
  9300. value: function mergeWith(storage) {
  9301. var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  9302. this.storage = _toConsumableArray(this.storage).concat(_toConsumableArray(storage.getStorage()));
  9303. if (mergeId) {
  9304. this.storageId = storage.getStorageId();
  9305. }
  9306. }
  9307. }, {
  9308. key: "set",
  9309. value: function set(key, value) {
  9310. if (key === this.storageLength) {
  9311. this.storage.push(value);
  9312. } else {
  9313. this.storage.splice(key, 0, value);
  9314. }
  9315. this.storageLength++;
  9316. }
  9317. }]);
  9318. return ArrayStorage;
  9319. }();
  9320. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0);
  9321. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0);
  9322. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], ArrayStorage.prototype, "initialize", null);
  9323. ArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ArrayStorage);
  9324. exports.ArrayStorage = ArrayStorage;
  9325. /***/ }),
  9326. /***/ "./src/storages/MapStorage.ts":
  9327. /*!************************************!*\
  9328. !*** ./src/storages/MapStorage.ts ***!
  9329. \************************************/
  9330. /*! no static exports found */
  9331. /***/ (function(module, exports, __webpack_require__) {
  9332. "use strict";
  9333. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  9334. var _getIterator = __webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator");
  9335. var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
  9336. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  9337. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9338. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9339. Object.defineProperty(exports, "__esModule", {
  9340. value: true
  9341. });
  9342. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9343. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9344. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9345. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  9346. var MapStorage =
  9347. /*#__PURE__*/
  9348. function () {
  9349. function MapStorage(randomGenerator, options) {
  9350. _classCallCheck(this, MapStorage);
  9351. this.randomGenerator = randomGenerator;
  9352. this.options = options;
  9353. }
  9354. _createClass(MapStorage, [{
  9355. key: "initialize",
  9356. value: function initialize() {
  9357. this.storage = new _Map();
  9358. this.storageId = this.randomGenerator.getRandomString(6);
  9359. }
  9360. }, {
  9361. key: "get",
  9362. value: function get(key) {
  9363. var value = this.storage.get(key);
  9364. if (!value) {
  9365. throw new Error("No value found in map storage with key `".concat(key, "`"));
  9366. }
  9367. return value;
  9368. }
  9369. }, {
  9370. key: "getKeyOf",
  9371. value: function getKeyOf(value) {
  9372. var _iteratorNormalCompletion = true;
  9373. var _didIteratorError = false;
  9374. var _iteratorError = undefined;
  9375. try {
  9376. for (var _iterator = _getIterator(this.storage), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  9377. var _ref3 = _step.value;
  9378. var _ref2 = _slicedToArray(_ref3, 2);
  9379. var _key = _ref2[0];
  9380. var _storageValue = _ref2[1];
  9381. if (value === _storageValue) {
  9382. return _key;
  9383. }
  9384. }
  9385. } catch (err) {
  9386. _didIteratorError = true;
  9387. _iteratorError = err;
  9388. } finally {
  9389. try {
  9390. if (!_iteratorNormalCompletion && _iterator.return != null) {
  9391. _iterator.return();
  9392. }
  9393. } finally {
  9394. if (_didIteratorError) {
  9395. throw _iteratorError;
  9396. }
  9397. }
  9398. }
  9399. return null;
  9400. }
  9401. }, {
  9402. key: "getLength",
  9403. value: function getLength() {
  9404. return this.storage.size;
  9405. }
  9406. }, {
  9407. key: "getStorage",
  9408. value: function getStorage() {
  9409. return this.storage;
  9410. }
  9411. }, {
  9412. key: "getStorageId",
  9413. value: function getStorageId() {
  9414. return this.storageId;
  9415. }
  9416. }, {
  9417. key: "mergeWith",
  9418. value: function mergeWith(storage) {
  9419. var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  9420. this.storage = new _Map(_toConsumableArray(this.storage).concat(_toConsumableArray(storage.getStorage())));
  9421. if (mergeId) {
  9422. this.storageId = storage.getStorageId();
  9423. }
  9424. }
  9425. }, {
  9426. key: "set",
  9427. value: function set(key, value) {
  9428. this.storage.set(key, value);
  9429. }
  9430. }]);
  9431. return MapStorage;
  9432. }();
  9433. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], MapStorage.prototype, "storageId", void 0);
  9434. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _Map)], MapStorage.prototype, "storage", void 0);
  9435. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], MapStorage.prototype, "initialize", null);
  9436. MapStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MapStorage);
  9437. exports.MapStorage = MapStorage;
  9438. /***/ }),
  9439. /***/ "./src/storages/control-flow/ControlFlowStorage.ts":
  9440. /*!*********************************************************!*\
  9441. !*** ./src/storages/control-flow/ControlFlowStorage.ts ***!
  9442. \*********************************************************/
  9443. /*! no static exports found */
  9444. /***/ (function(module, exports, __webpack_require__) {
  9445. "use strict";
  9446. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  9447. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9448. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  9449. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  9450. Object.defineProperty(exports, "__esModule", {
  9451. value: true
  9452. });
  9453. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9454. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9455. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9456. var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  9457. var ControlFlowStorage =
  9458. /*#__PURE__*/
  9459. function (_MapStorage_1$MapStor) {
  9460. _inherits(ControlFlowStorage, _MapStorage_1$MapStor);
  9461. function ControlFlowStorage(randomGenerator, options) {
  9462. _classCallCheck(this, ControlFlowStorage);
  9463. return _possibleConstructorReturn(this, (ControlFlowStorage.__proto__ || _Object$getPrototypeOf(ControlFlowStorage)).call(this, randomGenerator, options));
  9464. }
  9465. return ControlFlowStorage;
  9466. }(MapStorage_1.MapStorage);
  9467. ControlFlowStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ControlFlowStorage);
  9468. exports.ControlFlowStorage = ControlFlowStorage;
  9469. /***/ }),
  9470. /***/ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts":
  9471. /*!******************************************************************!*\
  9472. !*** ./src/storages/custom-node-group/CustomNodeGroupStorage.ts ***!
  9473. \******************************************************************/
  9474. /*! no static exports found */
  9475. /***/ (function(module, exports, __webpack_require__) {
  9476. "use strict";
  9477. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  9478. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9479. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9480. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  9481. var _get = __webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get");
  9482. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  9483. Object.defineProperty(exports, "__esModule", {
  9484. value: true
  9485. });
  9486. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9487. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9488. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9489. var CustomNodeGroup_1 = __webpack_require__(/*! ../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts");
  9490. var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  9491. var CustomNodeGroupStorage = CustomNodeGroupStorage_1 =
  9492. /*#__PURE__*/
  9493. function (_MapStorage_1$MapStor) {
  9494. _inherits(CustomNodeGroupStorage, _MapStorage_1$MapStor);
  9495. function CustomNodeGroupStorage(customNodeGroupFactory, randomGenerator, options) {
  9496. var _this;
  9497. _classCallCheck(this, CustomNodeGroupStorage);
  9498. _this = _possibleConstructorReturn(this, (CustomNodeGroupStorage.__proto__ || _Object$getPrototypeOf(CustomNodeGroupStorage)).call(this, randomGenerator, options));
  9499. _this.customNodeGroupFactory = customNodeGroupFactory;
  9500. return _this;
  9501. }
  9502. _createClass(CustomNodeGroupStorage, [{
  9503. key: "initialize",
  9504. value: function initialize() {
  9505. var _this2 = this;
  9506. _get(CustomNodeGroupStorage.prototype.__proto__ || _Object$getPrototypeOf(CustomNodeGroupStorage.prototype), "initialize", this).call(this);
  9507. CustomNodeGroupStorage_1.customNodeGroupsList.forEach(function (customNodeGroupName) {
  9508. var customNodeGroup = _this2.customNodeGroupFactory(customNodeGroupName);
  9509. if (!customNodeGroup) {
  9510. return;
  9511. }
  9512. _this2.storage.set(customNodeGroupName, customNodeGroup);
  9513. });
  9514. }
  9515. }]);
  9516. return CustomNodeGroupStorage;
  9517. }(MapStorage_1.MapStorage);
  9518. CustomNodeGroupStorage.customNodeGroupsList = [CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup];
  9519. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], CustomNodeGroupStorage.prototype, "initialize", null);
  9520. CustomNodeGroupStorage = CustomNodeGroupStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CustomNodeGroupStorage);
  9521. exports.CustomNodeGroupStorage = CustomNodeGroupStorage;
  9522. var CustomNodeGroupStorage_1;
  9523. /***/ }),
  9524. /***/ "./src/storages/string-array/StringArrayStorage.ts":
  9525. /*!*********************************************************!*\
  9526. !*** ./src/storages/string-array/StringArrayStorage.ts ***!
  9527. \*********************************************************/
  9528. /*! no static exports found */
  9529. /***/ (function(module, exports, __webpack_require__) {
  9530. "use strict";
  9531. var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime/core-js/object/get-prototype-of */ "@babel/runtime/core-js/object/get-prototype-of");
  9532. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9533. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9534. var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn");
  9535. var _get = __webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get");
  9536. var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits");
  9537. Object.defineProperty(exports, "__esModule", {
  9538. value: true
  9539. });
  9540. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9541. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9542. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9543. var ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts");
  9544. var StringArrayStorage = StringArrayStorage_1 =
  9545. /*#__PURE__*/
  9546. function (_ArrayStorage_1$Array) {
  9547. _inherits(StringArrayStorage, _ArrayStorage_1$Array);
  9548. function StringArrayStorage(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options) {
  9549. var _this;
  9550. _classCallCheck(this, StringArrayStorage);
  9551. _this = _possibleConstructorReturn(this, (StringArrayStorage.__proto__ || _Object$getPrototypeOf(StringArrayStorage)).call(this, randomGenerator, options));
  9552. _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  9553. _this.arrayUtils = arrayUtils;
  9554. return _this;
  9555. }
  9556. _createClass(StringArrayStorage, [{
  9557. key: "initialize",
  9558. value: function initialize() {
  9559. _get(StringArrayStorage.prototype.__proto__ || _Object$getPrototypeOf(StringArrayStorage.prototype), "initialize", this).call(this);
  9560. var baseStringArrayName = this.identifierNamesGenerator.generate().slice(0, StringArrayStorage_1.stringArrayNameLength);
  9561. var baseStringArrayCallsWrapperName = this.identifierNamesGenerator.generate().slice(0, StringArrayStorage_1.stringArrayNameLength);
  9562. var stringArrayName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayName);
  9563. var stringArrayCallsWrapperName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayCallsWrapperName);
  9564. this.storageId = "".concat(stringArrayName, "|").concat(stringArrayCallsWrapperName);
  9565. }
  9566. }, {
  9567. key: "rotateArray",
  9568. value: function rotateArray(rotationValue) {
  9569. this.storage = this.arrayUtils.arrayRotate(this.storage, rotationValue);
  9570. }
  9571. }, {
  9572. key: "toString",
  9573. value: function toString() {
  9574. return this.storage.map(function (value) {
  9575. return "'".concat(value, "'");
  9576. }).toString();
  9577. }
  9578. }]);
  9579. return StringArrayStorage;
  9580. }(ArrayStorage_1.ArrayStorage);
  9581. StringArrayStorage.stringArrayNameLength = 7;
  9582. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], StringArrayStorage.prototype, "initialize", null);
  9583. StringArrayStorage = StringArrayStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayStorage);
  9584. exports.StringArrayStorage = StringArrayStorage;
  9585. var StringArrayStorage_1;
  9586. /***/ }),
  9587. /***/ "./src/templates/AtobTemplate.ts":
  9588. /*!***************************************!*\
  9589. !*** ./src/templates/AtobTemplate.ts ***!
  9590. \***************************************/
  9591. /*! no static exports found */
  9592. /***/ (function(module, exports, __webpack_require__) {
  9593. "use strict";
  9594. Object.defineProperty(exports, "__esModule", {
  9595. value: true
  9596. });
  9597. function AtobTemplate() {
  9598. return "\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n ";
  9599. }
  9600. exports.AtobTemplate = AtobTemplate;
  9601. /***/ }),
  9602. /***/ "./src/templates/GlobalVariableNoEvalTemplate.ts":
  9603. /*!*******************************************************!*\
  9604. !*** ./src/templates/GlobalVariableNoEvalTemplate.ts ***!
  9605. \*******************************************************/
  9606. /*! no static exports found */
  9607. /***/ (function(module, exports, __webpack_require__) {
  9608. "use strict";
  9609. Object.defineProperty(exports, "__esModule", {
  9610. value: true
  9611. });
  9612. function GlobalVariableNoEvalTemplate() {
  9613. return "\n var that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n ";
  9614. }
  9615. exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;
  9616. /***/ }),
  9617. /***/ "./src/templates/GlobalVariableTemplate1.ts":
  9618. /*!**************************************************!*\
  9619. !*** ./src/templates/GlobalVariableTemplate1.ts ***!
  9620. \**************************************************/
  9621. /*! no static exports found */
  9622. /***/ (function(module, exports, __webpack_require__) {
  9623. "use strict";
  9624. Object.defineProperty(exports, "__esModule", {
  9625. value: true
  9626. });
  9627. function GlobalVariableTemplate1() {
  9628. return "\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n ";
  9629. }
  9630. exports.GlobalVariableTemplate1 = GlobalVariableTemplate1;
  9631. /***/ }),
  9632. /***/ "./src/templates/GlobalVariableTemplate2.ts":
  9633. /*!**************************************************!*\
  9634. !*** ./src/templates/GlobalVariableTemplate2.ts ***!
  9635. \**************************************************/
  9636. /*! no static exports found */
  9637. /***/ (function(module, exports, __webpack_require__) {
  9638. "use strict";
  9639. Object.defineProperty(exports, "__esModule", {
  9640. value: true
  9641. });
  9642. function GlobalVariableTemplate2() {
  9643. return "\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n ";
  9644. }
  9645. exports.GlobalVariableTemplate2 = GlobalVariableTemplate2;
  9646. /***/ }),
  9647. /***/ "./src/templates/Rc4Template.ts":
  9648. /*!**************************************!*\
  9649. !*** ./src/templates/Rc4Template.ts ***!
  9650. \**************************************/
  9651. /*! no static exports found */
  9652. /***/ (function(module, exports, __webpack_require__) {
  9653. "use strict";
  9654. Object.defineProperty(exports, "__esModule", {
  9655. value: true
  9656. });
  9657. function Rc4Template() {
  9658. return "\n var rc4 = function (str, key) {\n var s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (var k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n\t for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (var y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n ";
  9659. }
  9660. exports.Rc4Template = Rc4Template;
  9661. /***/ }),
  9662. /***/ "./src/templates/SingleNodeCallControllerTemplate.ts":
  9663. /*!***********************************************************!*\
  9664. !*** ./src/templates/SingleNodeCallControllerTemplate.ts ***!
  9665. \***********************************************************/
  9666. /*! no static exports found */
  9667. /***/ (function(module, exports, __webpack_require__) {
  9668. "use strict";
  9669. Object.defineProperty(exports, "__esModule", {
  9670. value: true
  9671. });
  9672. function SingleNodeCallControllerTemplate() {
  9673. return "\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n ";
  9674. }
  9675. exports.SingleNodeCallControllerTemplate = SingleNodeCallControllerTemplate;
  9676. /***/ }),
  9677. /***/ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts":
  9678. /*!*****************************************************************************************************************************!*\
  9679. !*** ./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts ***!
  9680. \*****************************************************************************************************************************/
  9681. /*! no static exports found */
  9682. /***/ (function(module, exports, __webpack_require__) {
  9683. "use strict";
  9684. Object.defineProperty(exports, "__esModule", {
  9685. value: true
  9686. });
  9687. function ConsoleOutputDisableExpressionTemplate() {
  9688. return "\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n ";
  9689. }
  9690. exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate;
  9691. /***/ }),
  9692. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts":
  9693. /*!*************************************************************************************************************************!*\
  9694. !*** ./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts ***!
  9695. \*************************************************************************************************************************/
  9696. /*! no static exports found */
  9697. /***/ (function(module, exports, __webpack_require__) {
  9698. "use strict";
  9699. Object.defineProperty(exports, "__esModule", {
  9700. value: true
  9701. });
  9702. function DebugProtectionFunctionCallTemplate() {
  9703. return "\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n ";
  9704. }
  9705. exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;
  9706. /***/ }),
  9707. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts":
  9708. /*!*********************************************************************************************************************************!*\
  9709. !*** ./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts ***!
  9710. \*********************************************************************************************************************************/
  9711. /*! no static exports found */
  9712. /***/ (function(module, exports, __webpack_require__) {
  9713. "use strict";
  9714. Object.defineProperty(exports, "__esModule", {
  9715. value: true
  9716. });
  9717. function DebugProtectionFunctionIntervalTemplate() {
  9718. return "\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n ";
  9719. }
  9720. exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;
  9721. /***/ }),
  9722. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts":
  9723. /*!****************************************************************************************************************!*\
  9724. !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts ***!
  9725. \****************************************************************************************************************/
  9726. /*! no static exports found */
  9727. /***/ (function(module, exports, __webpack_require__) {
  9728. "use strict";
  9729. Object.defineProperty(exports, "__esModule", {
  9730. value: true
  9731. });
  9732. function DebugProtectionFunctionTemplate() {
  9733. return "\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n ";
  9734. }
  9735. exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
  9736. /***/ }),
  9737. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts":
  9738. /*!*************************************************************************************************!*\
  9739. !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts ***!
  9740. \*************************************************************************************************/
  9741. /*! no static exports found */
  9742. /***/ (function(module, exports, __webpack_require__) {
  9743. "use strict";
  9744. Object.defineProperty(exports, "__esModule", {
  9745. value: true
  9746. });
  9747. function DebuggerTemplate() {
  9748. return "\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n ";
  9749. }
  9750. exports.DebuggerTemplate = DebuggerTemplate;
  9751. /***/ }),
  9752. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts":
  9753. /*!*******************************************************************************************************!*\
  9754. !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts ***!
  9755. \*******************************************************************************************************/
  9756. /*! no static exports found */
  9757. /***/ (function(module, exports, __webpack_require__) {
  9758. "use strict";
  9759. Object.defineProperty(exports, "__esModule", {
  9760. value: true
  9761. });
  9762. function DebuggerTemplateNoEval() {
  9763. return "\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n ";
  9764. }
  9765. exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;
  9766. /***/ }),
  9767. /***/ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts":
  9768. /*!************************************************************************************!*\
  9769. !*** ./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts ***!
  9770. \************************************************************************************/
  9771. /*! no static exports found */
  9772. /***/ (function(module, exports, __webpack_require__) {
  9773. "use strict";
  9774. Object.defineProperty(exports, "__esModule", {
  9775. value: true
  9776. });
  9777. function DomainLockNodeTemplate() {
  9778. return "\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp(\"[{diff}]\", \"g\");\n var domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n var document;\n var domain;\n \n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n \n if ((!document && !domain) || (!that[document] && !that[document][domain])) {\n return;\n }\n \n var currentDomain = that[document][domain];\n\n var ok = false;\n \n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n var position = currentDomain.length - domain.length;\n var lastIndex = currentDomain.indexOf(domain, position);\n var endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(\".\") === 0) {\n ok = true;\n }\n \n break;\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n ";
  9779. }
  9780. exports.DomainLockNodeTemplate = DomainLockNodeTemplate;
  9781. /***/ }),
  9782. /***/ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts":
  9783. /*!*************************************************************************************************!*\
  9784. !*** ./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts ***!
  9785. \*************************************************************************************************/
  9786. /*! no static exports found */
  9787. /***/ (function(module, exports, __webpack_require__) {
  9788. "use strict";
  9789. Object.defineProperty(exports, "__esModule", {
  9790. value: true
  9791. });
  9792. function SelfDefendingTemplate(escapeSequenceEncoder) {
  9793. return "\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(escapeSequenceEncoder.encode("(\\\\[x|u](\\w){2,4})+", true), "');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('ind\u0435xOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('ind\u0435xOf');\n }\n })\n \n {selfDefendingFunctionName}();\n ");
  9794. }
  9795. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  9796. /***/ }),
  9797. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts":
  9798. /*!**********************************************************************************************!*\
  9799. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts ***!
  9800. \**********************************************************************************************/
  9801. /*! no static exports found */
  9802. /***/ (function(module, exports, __webpack_require__) {
  9803. "use strict";
  9804. Object.defineProperty(exports, "__esModule", {
  9805. value: true
  9806. });
  9807. function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {
  9808. var identifierLength = 6;
  9809. var rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);
  9810. var statesIdentifier = randomGenerator.getRandomString(identifierLength);
  9811. var newStateIdentifier = randomGenerator.getRandomString(identifierLength);
  9812. var firstStateIdentifier = randomGenerator.getRandomString(identifierLength);
  9813. var secondStateIdentifier = randomGenerator.getRandomString(identifierLength);
  9814. var checkStateIdentifier = randomGenerator.getRandomString(identifierLength);
  9815. var runStateIdentifier = randomGenerator.getRandomString(identifierLength);
  9816. var getStateIdentifier = randomGenerator.getRandomString(identifierLength);
  9817. var stateResultIdentifier = randomGenerator.getRandomString(identifierLength);
  9818. return "\n var StatesClass = function (".concat(rc4BytesIdentifier, ") {\n this.").concat(rc4BytesIdentifier, " = ").concat(rc4BytesIdentifier, ";\n this.").concat(statesIdentifier, " = [1, 0, 0];\n this.").concat(newStateIdentifier, " = function(){return 'newState';};\n this.").concat(firstStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *", true), "';\n this.").concat(secondStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("['|\"].+['|\"];? *}", true), "';\n };\n \n StatesClass.prototype.").concat(checkStateIdentifier, " = function () {\n var regExp = new RegExp(this.").concat(firstStateIdentifier, " + this.").concat(secondStateIdentifier, ");\n var expression = regExp.test(this.").concat(newStateIdentifier, ".toString())\n ? --this.").concat(statesIdentifier, "[1]\n : --this.").concat(statesIdentifier, "[0];\n \n return this.").concat(runStateIdentifier, "(expression);\n };\n \n StatesClass.prototype.").concat(runStateIdentifier, " = function (").concat(stateResultIdentifier, ") {\n if (!Boolean(~").concat(stateResultIdentifier, ")) {\n return ").concat(stateResultIdentifier, ";\n }\n \n return this.").concat(getStateIdentifier, "(this.").concat(rc4BytesIdentifier, ");\n };\n\n StatesClass.prototype.").concat(getStateIdentifier, " = function (").concat(rc4BytesIdentifier, ") {\n for (var i = 0, len = this.").concat(statesIdentifier, ".length; i < len; i++) {\n this.").concat(statesIdentifier, ".push(Math.round(Math.random()));\n len = this.").concat(statesIdentifier, ".length;\n }\n \n return ").concat(rc4BytesIdentifier, "(this.").concat(statesIdentifier, "[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(checkStateIdentifier, "();\n ");
  9819. }
  9820. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  9821. /***/ }),
  9822. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts":
  9823. /*!************************************************************************************************************!*\
  9824. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts ***!
  9825. \************************************************************************************************************/
  9826. /*! no static exports found */
  9827. /***/ (function(module, exports, __webpack_require__) {
  9828. "use strict";
  9829. Object.defineProperty(exports, "__esModule", {
  9830. value: true
  9831. });
  9832. function StringArrayBase64DecodeNodeTemplate(randomGenerator) {
  9833. var identifierLength = 6;
  9834. var initializedIdentifier = randomGenerator.getRandomString(identifierLength);
  9835. var base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);
  9836. var dataIdentifier = randomGenerator.getRandomString(identifierLength);
  9837. return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, " = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, "(value);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n ");
  9838. }
  9839. exports.StringArrayBase64DecodeNodeTemplate = StringArrayBase64DecodeNodeTemplate;
  9840. /***/ }),
  9841. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts":
  9842. /*!********************************************************************************************************!*\
  9843. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***!
  9844. \********************************************************************************************************/
  9845. /*! no static exports found */
  9846. /***/ (function(module, exports, __webpack_require__) {
  9847. "use strict";
  9848. Object.defineProperty(exports, "__esModule", {
  9849. value: true
  9850. });
  9851. function StringArrayCallsWrapperTemplate() {
  9852. return "\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n ";
  9853. }
  9854. exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;
  9855. /***/ }),
  9856. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts":
  9857. /*!*********************************************************************************************************!*\
  9858. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts ***!
  9859. \*********************************************************************************************************/
  9860. /*! no static exports found */
  9861. /***/ (function(module, exports, __webpack_require__) {
  9862. "use strict";
  9863. Object.defineProperty(exports, "__esModule", {
  9864. value: true
  9865. });
  9866. function StringArrayRc4DecodeNodeTemplate(randomGenerator) {
  9867. var identifierLength = 6;
  9868. var initializedIdentifier = randomGenerator.getRandomString(identifierLength);
  9869. var rc4Identifier = randomGenerator.getRandomString(identifierLength);
  9870. var dataIdentifier = randomGenerator.getRandomString(identifierLength);
  9871. var onceIdentifier = randomGenerator.getRandomString(identifierLength);
  9872. return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(rc4Identifier, " = rc4;\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(onceIdentifier, " === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(onceIdentifier, " = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(rc4Identifier, "(value, key);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n ");
  9873. }
  9874. exports.StringArrayRc4DecodeNodeTemplate = StringArrayRc4DecodeNodeTemplate;
  9875. /***/ }),
  9876. /***/ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts":
  9877. /*!***********************************************************************************!*\
  9878. !*** ./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts ***!
  9879. \***********************************************************************************/
  9880. /*! no static exports found */
  9881. /***/ (function(module, exports, __webpack_require__) {
  9882. "use strict";
  9883. Object.defineProperty(exports, "__esModule", {
  9884. value: true
  9885. });
  9886. function StringArrayTemplate() {
  9887. return "\n var {stringArrayName} = [{stringArray}];\n ";
  9888. }
  9889. exports.StringArrayTemplate = StringArrayTemplate;
  9890. /***/ }),
  9891. /***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts":
  9892. /*!*****************************************************************************************************!*\
  9893. !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts ***!
  9894. \*****************************************************************************************************/
  9895. /*! no static exports found */
  9896. /***/ (function(module, exports, __webpack_require__) {
  9897. "use strict";
  9898. Object.defineProperty(exports, "__esModule", {
  9899. value: true
  9900. });
  9901. function SelfDefendingTemplate(escapeSequenceEncoder) {
  9902. return "\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n ");
  9903. }
  9904. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  9905. /***/ }),
  9906. /***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts":
  9907. /*!*****************************************************************************************************************!*\
  9908. !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts ***!
  9909. \*****************************************************************************************************************/
  9910. /*! no static exports found */
  9911. /***/ (function(module, exports, __webpack_require__) {
  9912. "use strict";
  9913. Object.defineProperty(exports, "__esModule", {
  9914. value: true
  9915. });
  9916. function StringArrayRotateFunctionTemplate() {
  9917. return "\n (function (array, {timesName}) {\n var {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, 0x{stringArrayRotateValue});\n ";
  9918. }
  9919. exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;
  9920. /***/ }),
  9921. /***/ "./src/utils/ArrayUtils.ts":
  9922. /*!*********************************!*\
  9923. !*** ./src/utils/ArrayUtils.ts ***!
  9924. \*********************************/
  9925. /*! no static exports found */
  9926. /***/ (function(module, exports, __webpack_require__) {
  9927. "use strict";
  9928. var _toConsumableArray = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
  9929. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9930. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9931. Object.defineProperty(exports, "__esModule", {
  9932. value: true
  9933. });
  9934. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9935. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9936. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9937. var ArrayUtils =
  9938. /*#__PURE__*/
  9939. function () {
  9940. function ArrayUtils(randomGenerator) {
  9941. _classCallCheck(this, ArrayUtils);
  9942. this.randomGenerator = randomGenerator;
  9943. }
  9944. _createClass(ArrayUtils, [{
  9945. key: "arrayRange",
  9946. value: function arrayRange(length) {
  9947. var range = [];
  9948. for (var i = 0; i < length; i++) {
  9949. range.push(i);
  9950. }
  9951. return range;
  9952. }
  9953. }, {
  9954. key: "arrayRotate",
  9955. value: function arrayRotate(array, times) {
  9956. if (!array.length) {
  9957. throw new ReferenceError("Cannot rotate empty array.");
  9958. }
  9959. if (times <= 0) {
  9960. return array;
  9961. }
  9962. var newArray = array;
  9963. var temp;
  9964. while (times--) {
  9965. temp = newArray.pop();
  9966. newArray.unshift(temp);
  9967. }
  9968. return newArray;
  9969. }
  9970. }, {
  9971. key: "arrayShuffle",
  9972. value: function arrayShuffle(array) {
  9973. var shuffledArray = _toConsumableArray(array);
  9974. for (var i = shuffledArray.length; i; i--) {
  9975. var j = Math.floor(this.randomGenerator.getMathRandom() * i);
  9976. var _ref = [shuffledArray[j], shuffledArray[i - 1]];
  9977. shuffledArray[i - 1] = _ref[0];
  9978. shuffledArray[j] = _ref[1];
  9979. }
  9980. return shuffledArray;
  9981. }
  9982. }]);
  9983. return ArrayUtils;
  9984. }();
  9985. ArrayUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], ArrayUtils);
  9986. exports.ArrayUtils = ArrayUtils;
  9987. /***/ }),
  9988. /***/ "./src/utils/CryptUtils.ts":
  9989. /*!*********************************!*\
  9990. !*** ./src/utils/CryptUtils.ts ***!
  9991. \*********************************/
  9992. /*! no static exports found */
  9993. /***/ (function(module, exports, __webpack_require__) {
  9994. "use strict";
  9995. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  9996. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  9997. Object.defineProperty(exports, "__esModule", {
  9998. value: true
  9999. });
  10000. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10001. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10002. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10003. var RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts");
  10004. var Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
  10005. var CryptUtils =
  10006. /*#__PURE__*/
  10007. function () {
  10008. function CryptUtils(randomGenerator) {
  10009. _classCallCheck(this, CryptUtils);
  10010. this.randomGenerator = randomGenerator;
  10011. }
  10012. _createClass(CryptUtils, [{
  10013. key: "btoa",
  10014. value: function btoa(string) {
  10015. var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  10016. var output = '';
  10017. string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, function (match, p1) {
  10018. return String.fromCharCode(parseInt("".concat(Utils_1.Utils.hexadecimalPrefix).concat(p1)));
  10019. });
  10020. for (var block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {
  10021. charCode = string.charCodeAt(idx += 3 / 4);
  10022. if (charCode > 0xFF) {
  10023. throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
  10024. }
  10025. block = block << 8 | charCode;
  10026. }
  10027. return output;
  10028. }
  10029. }, {
  10030. key: "hideString",
  10031. value: function hideString(str, length) {
  10032. var _this = this;
  10033. var escapeRegExp = function escapeRegExp(s) {
  10034. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  10035. };
  10036. var randomMerge = function randomMerge(s1, s2) {
  10037. var i1 = -1;
  10038. var i2 = -1;
  10039. var result = '';
  10040. while (i1 < s1.length || i2 < s2.length) {
  10041. if (_this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {
  10042. result += s2.charAt(++i2);
  10043. } else {
  10044. result += s1.charAt(++i1);
  10045. }
  10046. }
  10047. return result;
  10048. };
  10049. var randomString = this.randomGenerator.getRandomGenerator().string({
  10050. length: length,
  10051. pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool
  10052. });
  10053. var randomStringDiff = randomString.replace(new RegExp("[".concat(escapeRegExp(str), "]"), 'g'), '');
  10054. var randomStringDiffArray = randomStringDiff.split('');
  10055. this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);
  10056. randomStringDiff = randomStringDiffArray.join('');
  10057. return [randomMerge(str, randomStringDiff), randomStringDiff];
  10058. }
  10059. }, {
  10060. key: "rc4",
  10061. value: function rc4(string, key) {
  10062. var s = [],
  10063. j = 0,
  10064. x,
  10065. result = '';
  10066. for (var i = 0; i < 256; i++) {
  10067. s[i] = i;
  10068. }
  10069. for (i = 0; i < 256; i++) {
  10070. j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
  10071. x = s[i];
  10072. s[i] = s[j];
  10073. s[j] = x;
  10074. }
  10075. i = 0;
  10076. j = 0;
  10077. for (var y = 0; y < string.length; y++) {
  10078. i = (i + 1) % 256;
  10079. j = (j + s[i]) % 256;
  10080. x = s[i];
  10081. s[i] = s[j];
  10082. s[j] = x;
  10083. result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
  10084. }
  10085. return result;
  10086. }
  10087. }]);
  10088. return CryptUtils;
  10089. }();
  10090. CryptUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], CryptUtils);
  10091. exports.CryptUtils = CryptUtils;
  10092. /***/ }),
  10093. /***/ "./src/utils/EscapeSequenceEncoder.ts":
  10094. /*!********************************************!*\
  10095. !*** ./src/utils/EscapeSequenceEncoder.ts ***!
  10096. \********************************************/
  10097. /*! no static exports found */
  10098. /***/ (function(module, exports, __webpack_require__) {
  10099. "use strict";
  10100. var _Map = __webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map");
  10101. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  10102. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  10103. Object.defineProperty(exports, "__esModule", {
  10104. value: true
  10105. });
  10106. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10107. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10108. var EscapeSequenceEncoder =
  10109. /*#__PURE__*/
  10110. function () {
  10111. function EscapeSequenceEncoder() {
  10112. _classCallCheck(this, EscapeSequenceEncoder);
  10113. this.stringsCache = new _Map();
  10114. }
  10115. _createClass(EscapeSequenceEncoder, [{
  10116. key: "encode",
  10117. value: function encode(string, encodeAllSymbols) {
  10118. var cacheKey = "".concat(string, "-").concat(String(encodeAllSymbols));
  10119. if (this.stringsCache.has(cacheKey)) {
  10120. return this.stringsCache.get(cacheKey);
  10121. }
  10122. var radix = 16;
  10123. var replaceRegExp = new RegExp('[\\s\\S]', 'g');
  10124. var escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]');
  10125. var regExp = new RegExp('[\\x00-\\x7F]');
  10126. var prefix;
  10127. var template;
  10128. var result = string.replace(replaceRegExp, function (character) {
  10129. if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) {
  10130. return character;
  10131. }
  10132. if (regExp.exec(character)) {
  10133. prefix = '\\x';
  10134. template = '00';
  10135. } else {
  10136. prefix = "\\u";
  10137. template = '0000';
  10138. }
  10139. return "".concat(prefix).concat((template + character.charCodeAt(0).toString(radix)).slice(-template.length));
  10140. });
  10141. this.stringsCache.set(cacheKey, result);
  10142. return result;
  10143. }
  10144. }]);
  10145. return EscapeSequenceEncoder;
  10146. }();
  10147. EscapeSequenceEncoder = tslib_1.__decorate([inversify_1.injectable()], EscapeSequenceEncoder);
  10148. exports.EscapeSequenceEncoder = EscapeSequenceEncoder;
  10149. /***/ }),
  10150. /***/ "./src/utils/RandomGenerator.ts":
  10151. /*!**************************************!*\
  10152. !*** ./src/utils/RandomGenerator.ts ***!
  10153. \**************************************/
  10154. /*! no static exports found */
  10155. /***/ (function(module, exports, __webpack_require__) {
  10156. "use strict";
  10157. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  10158. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  10159. Object.defineProperty(exports, "__esModule", {
  10160. value: true
  10161. });
  10162. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10163. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10164. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10165. var md5_1 = tslib_1.__importDefault(__webpack_require__(/*! md5 */ "md5"));
  10166. var chance_1 = __webpack_require__(/*! chance */ "chance");
  10167. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  10168. var RandomGenerator = RandomGenerator_1 =
  10169. /*#__PURE__*/
  10170. function () {
  10171. function RandomGenerator(sourceCode, options) {
  10172. _classCallCheck(this, RandomGenerator);
  10173. this.sourceCode = sourceCode;
  10174. this.options = options;
  10175. }
  10176. _createClass(RandomGenerator, [{
  10177. key: "initialize",
  10178. value: function initialize() {
  10179. var _this = this;
  10180. var getRandomInteger = function getRandomInteger(min, max) {
  10181. return Math.floor(Math.random() * (max - min + 1) + min);
  10182. };
  10183. var getSeed = function getSeed() {
  10184. var md5Hash = md5_1.default(_this.sourceCode.getSourceCode());
  10185. return _this.seed + Number(md5Hash.replace(/\D/g, ''));
  10186. };
  10187. this.seed = this.options.seed !== 0 ? this.options.seed : getRandomInteger(0, 999999999);
  10188. this.randomGenerator = new chance_1.Chance(getSeed());
  10189. }
  10190. }, {
  10191. key: "getMathRandom",
  10192. value: function getMathRandom() {
  10193. return this.getRandomInteger(0, 99999) / 100000;
  10194. }
  10195. }, {
  10196. key: "getRandomFloat",
  10197. value: function getRandomFloat(min, max) {
  10198. return this.getRandomGenerator().floating({
  10199. min: min,
  10200. max: max,
  10201. fixed: 7
  10202. });
  10203. }
  10204. }, {
  10205. key: "getRandomGenerator",
  10206. value: function getRandomGenerator() {
  10207. return this.randomGenerator;
  10208. }
  10209. }, {
  10210. key: "getRandomInteger",
  10211. value: function getRandomInteger(min, max) {
  10212. return this.getRandomGenerator().integer({
  10213. min: min,
  10214. max: max
  10215. });
  10216. }
  10217. }, {
  10218. key: "getRandomString",
  10219. value: function getRandomString(length) {
  10220. var pool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RandomGenerator_1.randomGeneratorPool;
  10221. return this.getRandomGenerator().string({
  10222. length: length,
  10223. pool: pool
  10224. });
  10225. }
  10226. }, {
  10227. key: "getSeed",
  10228. value: function getSeed() {
  10229. return this.seed;
  10230. }
  10231. }]);
  10232. return RandomGenerator;
  10233. }();
  10234. RandomGenerator.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  10235. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], RandomGenerator.prototype, "randomGenerator", void 0);
  10236. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], RandomGenerator.prototype, "seed", void 0);
  10237. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], RandomGenerator.prototype, "initialize", null);
  10238. RandomGenerator = RandomGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], RandomGenerator);
  10239. exports.RandomGenerator = RandomGenerator;
  10240. var RandomGenerator_1;
  10241. /***/ }),
  10242. /***/ "./src/utils/Utils.ts":
  10243. /*!****************************!*\
  10244. !*** ./src/utils/Utils.ts ***!
  10245. \****************************/
  10246. /*! no static exports found */
  10247. /***/ (function(module, exports, __webpack_require__) {
  10248. "use strict";
  10249. var _Array$from = __webpack_require__(/*! @babel/runtime/core-js/array/from */ "@babel/runtime/core-js/array/from");
  10250. var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck");
  10251. var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass");
  10252. Object.defineProperty(exports, "__esModule", {
  10253. value: true
  10254. });
  10255. var JSFuck_1 = __webpack_require__(/*! ../enums/JSFuck */ "./src/enums/JSFuck.ts");
  10256. var Utils =
  10257. /*#__PURE__*/
  10258. function () {
  10259. function Utils() {
  10260. _classCallCheck(this, Utils);
  10261. }
  10262. _createClass(Utils, null, [{
  10263. key: "decToHex",
  10264. value: function decToHex(dec) {
  10265. var radix = 16;
  10266. return dec.toString(radix);
  10267. }
  10268. }, {
  10269. key: "extractDomainFromUrl",
  10270. value: function extractDomainFromUrl(url) {
  10271. var domain;
  10272. if (url.indexOf('://') > -1 || url.indexOf('//') === 0) {
  10273. domain = url.split('/')[2];
  10274. } else {
  10275. domain = url.split('/')[0];
  10276. }
  10277. domain = domain.split(':')[0];
  10278. return domain;
  10279. }
  10280. }, {
  10281. key: "isCeilNumber",
  10282. value: function isCeilNumber(number) {
  10283. return number % 1 === 0;
  10284. }
  10285. }, {
  10286. key: "stringRotate",
  10287. value: function stringRotate(string, times) {
  10288. if (!string) {
  10289. throw new ReferenceError("Cannot rotate empty string.");
  10290. }
  10291. for (var i = 0; i < times; i++) {
  10292. string = string[string.length - 1] + string.substring(0, string.length - 1);
  10293. }
  10294. return string;
  10295. }
  10296. }, {
  10297. key: "stringToJSFuck",
  10298. value: function stringToJSFuck(string) {
  10299. return _Array$from(string).map(function (character) {
  10300. return JSFuck_1.JSFuck[character] || character;
  10301. }).join(' + ');
  10302. }
  10303. }]);
  10304. return Utils;
  10305. }();
  10306. Utils.hexadecimalPrefix = '0x';
  10307. exports.Utils = Utils;
  10308. /***/ }),
  10309. /***/ "@babel/runtime/core-js/array/from":
  10310. /*!****************************************************!*\
  10311. !*** external "@babel/runtime/core-js/array/from" ***!
  10312. \****************************************************/
  10313. /*! no static exports found */
  10314. /***/ (function(module, exports) {
  10315. module.exports = require("@babel/runtime/core-js/array/from");
  10316. /***/ }),
  10317. /***/ "@babel/runtime/core-js/get-iterator":
  10318. /*!******************************************************!*\
  10319. !*** external "@babel/runtime/core-js/get-iterator" ***!
  10320. \******************************************************/
  10321. /*! no static exports found */
  10322. /***/ (function(module, exports) {
  10323. module.exports = require("@babel/runtime/core-js/get-iterator");
  10324. /***/ }),
  10325. /***/ "@babel/runtime/core-js/map":
  10326. /*!*********************************************!*\
  10327. !*** external "@babel/runtime/core-js/map" ***!
  10328. \*********************************************/
  10329. /*! no static exports found */
  10330. /***/ (function(module, exports) {
  10331. module.exports = require("@babel/runtime/core-js/map");
  10332. /***/ }),
  10333. /***/ "@babel/runtime/core-js/object/assign":
  10334. /*!*******************************************************!*\
  10335. !*** external "@babel/runtime/core-js/object/assign" ***!
  10336. \*******************************************************/
  10337. /*! no static exports found */
  10338. /***/ (function(module, exports) {
  10339. module.exports = require("@babel/runtime/core-js/object/assign");
  10340. /***/ }),
  10341. /***/ "@babel/runtime/core-js/object/define-property":
  10342. /*!****************************************************************!*\
  10343. !*** external "@babel/runtime/core-js/object/define-property" ***!
  10344. \****************************************************************/
  10345. /*! no static exports found */
  10346. /***/ (function(module, exports) {
  10347. module.exports = require("@babel/runtime/core-js/object/define-property");
  10348. /***/ }),
  10349. /***/ "@babel/runtime/core-js/object/freeze":
  10350. /*!*******************************************************!*\
  10351. !*** external "@babel/runtime/core-js/object/freeze" ***!
  10352. \*******************************************************/
  10353. /*! no static exports found */
  10354. /***/ (function(module, exports) {
  10355. module.exports = require("@babel/runtime/core-js/object/freeze");
  10356. /***/ }),
  10357. /***/ "@babel/runtime/core-js/object/get-own-property-descriptor":
  10358. /*!****************************************************************************!*\
  10359. !*** external "@babel/runtime/core-js/object/get-own-property-descriptor" ***!
  10360. \****************************************************************************/
  10361. /*! no static exports found */
  10362. /***/ (function(module, exports) {
  10363. module.exports = require("@babel/runtime/core-js/object/get-own-property-descriptor");
  10364. /***/ }),
  10365. /***/ "@babel/runtime/core-js/object/get-own-property-names":
  10366. /*!***********************************************************************!*\
  10367. !*** external "@babel/runtime/core-js/object/get-own-property-names" ***!
  10368. \***********************************************************************/
  10369. /*! no static exports found */
  10370. /***/ (function(module, exports) {
  10371. module.exports = require("@babel/runtime/core-js/object/get-own-property-names");
  10372. /***/ }),
  10373. /***/ "@babel/runtime/core-js/object/get-prototype-of":
  10374. /*!*****************************************************************!*\
  10375. !*** external "@babel/runtime/core-js/object/get-prototype-of" ***!
  10376. \*****************************************************************/
  10377. /*! no static exports found */
  10378. /***/ (function(module, exports) {
  10379. module.exports = require("@babel/runtime/core-js/object/get-prototype-of");
  10380. /***/ }),
  10381. /***/ "@babel/runtime/core-js/object/keys":
  10382. /*!*****************************************************!*\
  10383. !*** external "@babel/runtime/core-js/object/keys" ***!
  10384. \*****************************************************/
  10385. /*! no static exports found */
  10386. /***/ (function(module, exports) {
  10387. module.exports = require("@babel/runtime/core-js/object/keys");
  10388. /***/ }),
  10389. /***/ "@babel/runtime/core-js/reflect/define-metadata":
  10390. /*!*****************************************************************!*\
  10391. !*** external "@babel/runtime/core-js/reflect/define-metadata" ***!
  10392. \*****************************************************************/
  10393. /*! no static exports found */
  10394. /***/ (function(module, exports) {
  10395. module.exports = require("@babel/runtime/core-js/reflect/define-metadata");
  10396. /***/ }),
  10397. /***/ "@babel/runtime/core-js/reflect/get-metadata":
  10398. /*!**************************************************************!*\
  10399. !*** external "@babel/runtime/core-js/reflect/get-metadata" ***!
  10400. \**************************************************************/
  10401. /*! no static exports found */
  10402. /***/ (function(module, exports) {
  10403. module.exports = require("@babel/runtime/core-js/reflect/get-metadata");
  10404. /***/ }),
  10405. /***/ "@babel/runtime/core-js/reflect/has-metadata":
  10406. /*!**************************************************************!*\
  10407. !*** external "@babel/runtime/core-js/reflect/has-metadata" ***!
  10408. \**************************************************************/
  10409. /*! no static exports found */
  10410. /***/ (function(module, exports) {
  10411. module.exports = require("@babel/runtime/core-js/reflect/has-metadata");
  10412. /***/ }),
  10413. /***/ "@babel/runtime/core-js/set":
  10414. /*!*********************************************!*\
  10415. !*** external "@babel/runtime/core-js/set" ***!
  10416. \*********************************************/
  10417. /*! no static exports found */
  10418. /***/ (function(module, exports) {
  10419. module.exports = require("@babel/runtime/core-js/set");
  10420. /***/ }),
  10421. /***/ "@babel/runtime/helpers/classCallCheck":
  10422. /*!********************************************************!*\
  10423. !*** external "@babel/runtime/helpers/classCallCheck" ***!
  10424. \********************************************************/
  10425. /*! no static exports found */
  10426. /***/ (function(module, exports) {
  10427. module.exports = require("@babel/runtime/helpers/classCallCheck");
  10428. /***/ }),
  10429. /***/ "@babel/runtime/helpers/createClass":
  10430. /*!*****************************************************!*\
  10431. !*** external "@babel/runtime/helpers/createClass" ***!
  10432. \*****************************************************/
  10433. /*! no static exports found */
  10434. /***/ (function(module, exports) {
  10435. module.exports = require("@babel/runtime/helpers/createClass");
  10436. /***/ }),
  10437. /***/ "@babel/runtime/helpers/get":
  10438. /*!*********************************************!*\
  10439. !*** external "@babel/runtime/helpers/get" ***!
  10440. \*********************************************/
  10441. /*! no static exports found */
  10442. /***/ (function(module, exports) {
  10443. module.exports = require("@babel/runtime/helpers/get");
  10444. /***/ }),
  10445. /***/ "@babel/runtime/helpers/inherits":
  10446. /*!**************************************************!*\
  10447. !*** external "@babel/runtime/helpers/inherits" ***!
  10448. \**************************************************/
  10449. /*! no static exports found */
  10450. /***/ (function(module, exports) {
  10451. module.exports = require("@babel/runtime/helpers/inherits");
  10452. /***/ }),
  10453. /***/ "@babel/runtime/helpers/possibleConstructorReturn":
  10454. /*!*******************************************************************!*\
  10455. !*** external "@babel/runtime/helpers/possibleConstructorReturn" ***!
  10456. \*******************************************************************/
  10457. /*! no static exports found */
  10458. /***/ (function(module, exports) {
  10459. module.exports = require("@babel/runtime/helpers/possibleConstructorReturn");
  10460. /***/ }),
  10461. /***/ "@babel/runtime/helpers/slicedToArray":
  10462. /*!*******************************************************!*\
  10463. !*** external "@babel/runtime/helpers/slicedToArray" ***!
  10464. \*******************************************************/
  10465. /*! no static exports found */
  10466. /***/ (function(module, exports) {
  10467. module.exports = require("@babel/runtime/helpers/slicedToArray");
  10468. /***/ }),
  10469. /***/ "@babel/runtime/helpers/toConsumableArray":
  10470. /*!***********************************************************!*\
  10471. !*** external "@babel/runtime/helpers/toConsumableArray" ***!
  10472. \***********************************************************/
  10473. /*! no static exports found */
  10474. /***/ (function(module, exports) {
  10475. module.exports = require("@babel/runtime/helpers/toConsumableArray");
  10476. /***/ }),
  10477. /***/ "@babel/runtime/helpers/typeof":
  10478. /*!************************************************!*\
  10479. !*** external "@babel/runtime/helpers/typeof" ***!
  10480. \************************************************/
  10481. /*! no static exports found */
  10482. /***/ (function(module, exports) {
  10483. module.exports = require("@babel/runtime/helpers/typeof");
  10484. /***/ }),
  10485. /***/ "chalk":
  10486. /*!************************!*\
  10487. !*** external "chalk" ***!
  10488. \************************/
  10489. /*! no static exports found */
  10490. /***/ (function(module, exports) {
  10491. module.exports = require("chalk");
  10492. /***/ }),
  10493. /***/ "chance":
  10494. /*!*************************!*\
  10495. !*** external "chance" ***!
  10496. \*************************/
  10497. /*! no static exports found */
  10498. /***/ (function(module, exports) {
  10499. module.exports = require("chance");
  10500. /***/ }),
  10501. /***/ "class-validator":
  10502. /*!**********************************!*\
  10503. !*** external "class-validator" ***!
  10504. \**********************************/
  10505. /*! no static exports found */
  10506. /***/ (function(module, exports) {
  10507. module.exports = require("class-validator");
  10508. /***/ }),
  10509. /***/ "commander":
  10510. /*!****************************!*\
  10511. !*** external "commander" ***!
  10512. \****************************/
  10513. /*! no static exports found */
  10514. /***/ (function(module, exports) {
  10515. module.exports = require("commander");
  10516. /***/ }),
  10517. /***/ "escodegen-wallaby":
  10518. /*!************************************!*\
  10519. !*** external "escodegen-wallaby" ***!
  10520. \************************************/
  10521. /*! no static exports found */
  10522. /***/ (function(module, exports) {
  10523. module.exports = require("escodegen-wallaby");
  10524. /***/ }),
  10525. /***/ "esprima":
  10526. /*!**************************!*\
  10527. !*** external "esprima" ***!
  10528. \**************************/
  10529. /*! no static exports found */
  10530. /***/ (function(module, exports) {
  10531. module.exports = require("esprima");
  10532. /***/ }),
  10533. /***/ "estraverse":
  10534. /*!*****************************!*\
  10535. !*** external "estraverse" ***!
  10536. \*****************************/
  10537. /*! no static exports found */
  10538. /***/ (function(module, exports) {
  10539. module.exports = require("estraverse");
  10540. /***/ }),
  10541. /***/ "events":
  10542. /*!*************************!*\
  10543. !*** external "events" ***!
  10544. \*************************/
  10545. /*! no static exports found */
  10546. /***/ (function(module, exports) {
  10547. module.exports = require("events");
  10548. /***/ }),
  10549. /***/ "fs":
  10550. /*!*********************!*\
  10551. !*** external "fs" ***!
  10552. \*********************/
  10553. /*! no static exports found */
  10554. /***/ (function(module, exports) {
  10555. module.exports = require("fs");
  10556. /***/ }),
  10557. /***/ "inversify":
  10558. /*!****************************!*\
  10559. !*** external "inversify" ***!
  10560. \****************************/
  10561. /*! no static exports found */
  10562. /***/ (function(module, exports) {
  10563. module.exports = require("inversify");
  10564. /***/ }),
  10565. /***/ "js-string-escape":
  10566. /*!***********************************!*\
  10567. !*** external "js-string-escape" ***!
  10568. \***********************************/
  10569. /*! no static exports found */
  10570. /***/ (function(module, exports) {
  10571. module.exports = require("js-string-escape");
  10572. /***/ }),
  10573. /***/ "md5":
  10574. /*!**********************!*\
  10575. !*** external "md5" ***!
  10576. \**********************/
  10577. /*! no static exports found */
  10578. /***/ (function(module, exports) {
  10579. module.exports = require("md5");
  10580. /***/ }),
  10581. /***/ "mkdirp":
  10582. /*!*************************!*\
  10583. !*** external "mkdirp" ***!
  10584. \*************************/
  10585. /*! no static exports found */
  10586. /***/ (function(module, exports) {
  10587. module.exports = require("mkdirp");
  10588. /***/ }),
  10589. /***/ "multimatch":
  10590. /*!*****************************!*\
  10591. !*** external "multimatch" ***!
  10592. \*****************************/
  10593. /*! no static exports found */
  10594. /***/ (function(module, exports) {
  10595. module.exports = require("multimatch");
  10596. /***/ }),
  10597. /***/ "path":
  10598. /*!***********************!*\
  10599. !*** external "path" ***!
  10600. \***********************/
  10601. /*! no static exports found */
  10602. /***/ (function(module, exports) {
  10603. module.exports = require("path");
  10604. /***/ }),
  10605. /***/ "pjson":
  10606. /*!************************!*\
  10607. !*** external "pjson" ***!
  10608. \************************/
  10609. /*! no static exports found */
  10610. /***/ (function(module, exports) {
  10611. module.exports = require("pjson");
  10612. /***/ }),
  10613. /***/ "reflect-metadata":
  10614. /*!***********************************!*\
  10615. !*** external "reflect-metadata" ***!
  10616. \***********************************/
  10617. /*! no static exports found */
  10618. /***/ (function(module, exports) {
  10619. module.exports = require("reflect-metadata");
  10620. /***/ }),
  10621. /***/ "string-template":
  10622. /*!**********************************!*\
  10623. !*** external "string-template" ***!
  10624. \**********************************/
  10625. /*! no static exports found */
  10626. /***/ (function(module, exports) {
  10627. module.exports = require("string-template");
  10628. /***/ }),
  10629. /***/ "tslib":
  10630. /*!************************!*\
  10631. !*** external "tslib" ***!
  10632. \************************/
  10633. /*! no static exports found */
  10634. /***/ (function(module, exports) {
  10635. module.exports = require("tslib");
  10636. /***/ })
  10637. /******/ });
  10638. //# sourceMappingURL=index.js.map