index.js 302 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930
  1. /*
  2. Copyright (C) 2016 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. /******/ // The require function
  28. /******/ function __webpack_require__(moduleId) {
  29. /******/
  30. /******/ // Check if module is in cache
  31. /******/ if(installedModules[moduleId])
  32. /******/ return installedModules[moduleId].exports;
  33. /******/
  34. /******/ // Create a new module (and put it into the cache)
  35. /******/ var module = installedModules[moduleId] = {
  36. /******/ i: moduleId,
  37. /******/ l: false,
  38. /******/ exports: {}
  39. /******/ };
  40. /******/
  41. /******/ // Execute the module function
  42. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  43. /******/
  44. /******/ // Flag the module as loaded
  45. /******/ module.l = true;
  46. /******/
  47. /******/ // Return the exports of the module
  48. /******/ return module.exports;
  49. /******/ }
  50. /******/
  51. /******/
  52. /******/ // expose the modules object (__webpack_modules__)
  53. /******/ __webpack_require__.m = modules;
  54. /******/
  55. /******/ // expose the module cache
  56. /******/ __webpack_require__.c = installedModules;
  57. /******/
  58. /******/ // identity function for calling harmory imports with the correct context
  59. /******/ __webpack_require__.i = function(value) { return value; };
  60. /******/
  61. /******/ // define getter function for harmory exports
  62. /******/ __webpack_require__.d = function(exports, name, getter) {
  63. /******/ Object.defineProperty(exports, name, {
  64. /******/ configurable: false,
  65. /******/ enumerable: true,
  66. /******/ get: getter
  67. /******/ });
  68. /******/ };
  69. /******/
  70. /******/ // getDefaultExport function for compatibility with non-harmony modules
  71. /******/ __webpack_require__.n = function(module) {
  72. /******/ var getter = module && module.__esModule ?
  73. /******/ function getDefault() { return module['default']; } :
  74. /******/ function getModuleExports() { return module; };
  75. /******/ __webpack_require__.d(getter, 'a', getter);
  76. /******/ return getter;
  77. /******/ };
  78. /******/
  79. /******/ // Object.prototype.hasOwnProperty.call
  80. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  81. /******/
  82. /******/ // __webpack_public_path__
  83. /******/ __webpack_require__.p = "";
  84. /******/
  85. /******/ // Load entry module and return exports
  86. /******/ return __webpack_require__(__webpack_require__.s = 143);
  87. /******/ })
  88. /************************************************************************/
  89. /******/ ([
  90. /* 0 */
  91. /***/ function(module, exports) {
  92. module.exports = require("babel-runtime/helpers/classCallCheck");
  93. /***/ },
  94. /* 1 */
  95. /***/ function(module, exports) {
  96. module.exports = require("babel-runtime/helpers/createClass");
  97. /***/ },
  98. /* 2 */
  99. /***/ function(module, exports) {
  100. module.exports = require("inversify");
  101. /***/ },
  102. /* 3 */
  103. /***/ function(module, exports) {
  104. module.exports = require("tslib");
  105. /***/ },
  106. /* 4 */
  107. /***/ function(module, exports, __webpack_require__) {
  108. "use strict";
  109. "use strict";
  110. var _symbol = __webpack_require__(133);
  111. var _symbol2 = _interopRequireDefault(_symbol);
  112. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  113. exports.ServiceIdentifiers = {
  114. 'Factory<ICalleeDataExtractor>': (0, _symbol2.default)('Factory<ICalleeDataExtractor>'),
  115. 'Factory<IControlFlowReplacer>': (0, _symbol2.default)('Factory<IControlFlowReplacer>'),
  116. 'Factory<ICustomNode>': (0, _symbol2.default)('Factory<ICustomNode>'),
  117. 'Factory<ICustomNodeGroup>': (0, _symbol2.default)('Factory<ICustomNodeGroup>'),
  118. 'Factory<INodeTransformer[]>': (0, _symbol2.default)('Factory<INodeTransformer[]>'),
  119. 'Factory<IObfuscationResult>': (0, _symbol2.default)('Factory<IObfuscationResult>'),
  120. 'Factory<IObfuscatorReplacer>': (0, _symbol2.default)('Factory<IObfuscatorReplacer>'),
  121. 'Factory<IStorage<ICustomNode>>': (0, _symbol2.default)('Factory<IStorage<ICustomNode>>'),
  122. ICalleeDataExtractor: (0, _symbol2.default)('ICalleeDataExtractor'),
  123. ICustomNode: (0, _symbol2.default)('ICustomNode'),
  124. ICustomNodeGroup: (0, _symbol2.default)('ICustomNodeGroup'),
  125. IControlFlowReplacer: (0, _symbol2.default)('IControlFlowReplacer'),
  126. IJavaScriptObfuscator: (0, _symbol2.default)('IJavaScriptObfuscator'),
  127. INodeTransformer: (0, _symbol2.default)('INodeTransformer'),
  128. IObfuscationEventEmitter: (0, _symbol2.default)('IObfuscationEventEmitter'),
  129. IObfuscationResult: (0, _symbol2.default)('IObfuscationResult'),
  130. IObfuscator: (0, _symbol2.default)('IObfuscator'),
  131. IOptions: (0, _symbol2.default)('IOptions'),
  132. IObfuscatorReplacer: (0, _symbol2.default)('IObfuscatorReplacer'),
  133. ISourceMapCorrector: (0, _symbol2.default)('ISourceMapCorrector'),
  134. IStackTraceAnalyzer: (0, _symbol2.default)('IStackTraceAnalyzer'),
  135. 'IStorage<ICustomNode>': (0, _symbol2.default)('IStorage<ICustomNode>'),
  136. 'IStorage<ICustomNodeGroup>': (0, _symbol2.default)('IStorage<ICustomNodeGroup>'),
  137. 'IStorage<string>': (0, _symbol2.default)('IStorage<string>')
  138. };
  139. /***/ },
  140. /* 5 */
  141. /***/ function(module, exports) {
  142. module.exports = require("babel-runtime/core-js/object/get-prototype-of");
  143. /***/ },
  144. /* 6 */
  145. /***/ function(module, exports) {
  146. module.exports = require("babel-runtime/helpers/inherits");
  147. /***/ },
  148. /* 7 */
  149. /***/ function(module, exports) {
  150. module.exports = require("babel-runtime/helpers/possibleConstructorReturn");
  151. /***/ },
  152. /* 8 */
  153. /***/ function(module, exports, __webpack_require__) {
  154. "use strict";
  155. "use strict";
  156. var _classCallCheck2 = __webpack_require__(0);
  157. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  158. var _createClass2 = __webpack_require__(1);
  159. var _createClass3 = _interopRequireDefault(_createClass2);
  160. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  161. var chance_1 = __webpack_require__(47);
  162. var Utils_1 = __webpack_require__(11);
  163. var RandomGeneratorUtils = function () {
  164. function RandomGeneratorUtils() {
  165. (0, _classCallCheck3.default)(this, RandomGeneratorUtils);
  166. }
  167. (0, _createClass3.default)(RandomGeneratorUtils, null, [{
  168. key: "getRandomFloat",
  169. value: function getRandomFloat(min, max) {
  170. return RandomGeneratorUtils.getRandomGenerator().floating({
  171. min: min,
  172. max: max,
  173. fixed: 7
  174. });
  175. }
  176. }, {
  177. key: "getRandomGenerator",
  178. value: function getRandomGenerator() {
  179. var randomGenerator = RandomGeneratorUtils.randomGenerator;
  180. if (!randomGenerator) {
  181. throw new Error("`randomGenerator` static property is undefined");
  182. }
  183. return RandomGeneratorUtils.randomGenerator;
  184. }
  185. }, {
  186. key: "getRandomInteger",
  187. value: function getRandomInteger(min, max) {
  188. return RandomGeneratorUtils.getRandomGenerator().integer({
  189. min: min,
  190. max: max
  191. });
  192. }
  193. }, {
  194. key: "getRandomString",
  195. value: function getRandomString(length) {
  196. var pool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RandomGeneratorUtils.randomGeneratorPool;
  197. return RandomGeneratorUtils.getRandomGenerator().string({ length: length, pool: pool });
  198. }
  199. }, {
  200. key: "getRandomVariableName",
  201. value: function getRandomVariableName() {
  202. var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;
  203. var withPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  204. var prefix = withPrefix ? "_" + Utils_1.Utils.hexadecimalPrefix : '';
  205. var rangeMinInteger = 10000;
  206. var rangeMaxInteger = 99999999;
  207. return "" + prefix + Utils_1.Utils.decToHex(RandomGeneratorUtils.getRandomInteger(rangeMinInteger, rangeMaxInteger)).substr(0, length);
  208. }
  209. }, {
  210. key: "setRandomGenerator",
  211. value: function setRandomGenerator(randomGenerator) {
  212. RandomGeneratorUtils.randomGenerator = randomGenerator;
  213. }
  214. }]);
  215. return RandomGeneratorUtils;
  216. }();
  217. RandomGeneratorUtils.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  218. RandomGeneratorUtils.randomGeneratorPoolWithNumbers = RandomGeneratorUtils.randomGeneratorPool + "0123456789";
  219. RandomGeneratorUtils.randomGenerator = new chance_1.Chance();
  220. exports.RandomGeneratorUtils = RandomGeneratorUtils;
  221. /***/ },
  222. /* 9 */
  223. /***/ function(module, exports, __webpack_require__) {
  224. "use strict";
  225. "use strict";
  226. var _defineProperty = __webpack_require__(131);
  227. var _defineProperty2 = _interopRequireDefault(_defineProperty);
  228. var _getOwnPropertyDescriptor = __webpack_require__(132);
  229. var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);
  230. var _keys = __webpack_require__(45);
  231. var _keys2 = _interopRequireDefault(_keys);
  232. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  233. var tslib_1 = __webpack_require__(3);
  234. function initializable() {
  235. var initializeMethodKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initialize';
  236. var decoratorName = (0, _keys2.default)(this)[0];
  237. return function (target, propertyKey) {
  238. var descriptor = {
  239. configurable: true,
  240. enumerable: true
  241. };
  242. var initializeMethod = target[initializeMethodKey];
  243. if (!initializeMethod || typeof initializeMethod !== 'function') {
  244. throw new Error("`" + initializeMethodKey + "` method with initialization logic not found. `@" + decoratorName + "` decorator requires `" + initializeMethodKey + "` method");
  245. }
  246. var metadataPropertyKey = "_" + propertyKey;
  247. var propertyDescriptor = (0, _getOwnPropertyDescriptor2.default)(target, metadataPropertyKey) || descriptor;
  248. var methodDescriptor = (0, _getOwnPropertyDescriptor2.default)(target, initializeMethodKey) || descriptor;
  249. var originalMethod = methodDescriptor.value;
  250. (0, _defineProperty2.default)(target, propertyKey, tslib_1.__assign({}, propertyDescriptor, { get: function get() {
  251. if (this[metadataPropertyKey] === undefined) {
  252. throw new Error("Property `" + propertyKey + "` is not initialized! Initialize it first!");
  253. }
  254. return this[metadataPropertyKey];
  255. }, set: function set(newVal) {
  256. this[metadataPropertyKey] = newVal;
  257. } }));
  258. (0, _defineProperty2.default)(target, initializeMethodKey, tslib_1.__assign({}, methodDescriptor, { value: function value() {
  259. originalMethod.apply(this, arguments);
  260. if (this[propertyKey]) {}
  261. } }));
  262. return propertyDescriptor;
  263. };
  264. }
  265. exports.initializable = initializable;
  266. /***/ },
  267. /* 10 */
  268. /***/ function(module, exports, __webpack_require__) {
  269. "use strict";
  270. "use strict";
  271. var _classCallCheck2 = __webpack_require__(0);
  272. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  273. var _createClass2 = __webpack_require__(1);
  274. var _createClass3 = _interopRequireDefault(_createClass2);
  275. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  276. var NodeType_1 = __webpack_require__(17);
  277. var Node = function () {
  278. function Node() {
  279. (0, _classCallCheck3.default)(this, Node);
  280. }
  281. (0, _createClass3.default)(Node, null, [{
  282. key: "getProgramNode",
  283. value: function getProgramNode(bodyNode) {
  284. return {
  285. 'type': NodeType_1.NodeType.Program,
  286. 'body': bodyNode,
  287. 'sourceType': 'script',
  288. 'obfuscated': false
  289. };
  290. }
  291. }, {
  292. key: "isArrowFunctionExpressionNode",
  293. value: function isArrowFunctionExpressionNode(node) {
  294. return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
  295. }
  296. }, {
  297. key: "isBlockStatementNode",
  298. value: function isBlockStatementNode(node) {
  299. return node.type === NodeType_1.NodeType.BlockStatement;
  300. }
  301. }, {
  302. key: "isBreakStatementNode",
  303. value: function isBreakStatementNode(node) {
  304. return node.type === NodeType_1.NodeType.BreakStatement;
  305. }
  306. }, {
  307. key: "isCallExpressionNode",
  308. value: function isCallExpressionNode(node) {
  309. return node.type === NodeType_1.NodeType.CallExpression;
  310. }
  311. }, {
  312. key: "isContinueStatementNode",
  313. value: function isContinueStatementNode(node) {
  314. return node.type === NodeType_1.NodeType.ContinueStatement;
  315. }
  316. }, {
  317. key: "isExpressionStatementNode",
  318. value: function isExpressionStatementNode(node) {
  319. return node.type === NodeType_1.NodeType.ExpressionStatement;
  320. }
  321. }, {
  322. key: "isFunctionDeclarationNode",
  323. value: function isFunctionDeclarationNode(node) {
  324. return node.type === NodeType_1.NodeType.FunctionDeclaration;
  325. }
  326. }, {
  327. key: "isFunctionExpressionNode",
  328. value: function isFunctionExpressionNode(node) {
  329. return node.type === NodeType_1.NodeType.FunctionExpression;
  330. }
  331. }, {
  332. key: "isIdentifierNode",
  333. value: function isIdentifierNode(node) {
  334. return node.type === NodeType_1.NodeType.Identifier;
  335. }
  336. }, {
  337. key: "isIfStatementNode",
  338. value: function isIfStatementNode(node) {
  339. return node.type === NodeType_1.NodeType.IfStatement;
  340. }
  341. }, {
  342. key: "isLabelIdentifierNode",
  343. value: function isLabelIdentifierNode(node, parentNode) {
  344. var parentNodeIsLabeledStatementNode = Node.isLabeledStatementNode(parentNode) && parentNode.label === node;
  345. var parentNodeIsContinueStatementNode = Node.isContinueStatementNode(parentNode) && parentNode.label === node;
  346. var parentNodeIsBreakStatementNode = Node.isBreakStatementNode(parentNode) && parentNode.label === node;
  347. return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
  348. }
  349. }, {
  350. key: "isLabeledStatementNode",
  351. value: function isLabeledStatementNode(node) {
  352. return node.type === NodeType_1.NodeType.LabeledStatement;
  353. }
  354. }, {
  355. key: "isLiteralNode",
  356. value: function isLiteralNode(node) {
  357. return node.type === NodeType_1.NodeType.Literal;
  358. }
  359. }, {
  360. key: "isMemberExpressionNode",
  361. value: function isMemberExpressionNode(node) {
  362. return node.type === NodeType_1.NodeType.MemberExpression;
  363. }
  364. }, {
  365. key: "isObjectExpressionNode",
  366. value: function isObjectExpressionNode(node) {
  367. return node.type === NodeType_1.NodeType.ObjectExpression;
  368. }
  369. }, {
  370. key: "isProgramNode",
  371. value: function isProgramNode(node) {
  372. return node.type === NodeType_1.NodeType.Program;
  373. }
  374. }, {
  375. key: "isPropertyNode",
  376. value: function isPropertyNode(node) {
  377. return node.type === NodeType_1.NodeType.Property;
  378. }
  379. }, {
  380. key: "isReplaceableIdentifierNode",
  381. value: function isReplaceableIdentifierNode(node, parentNode) {
  382. if (!Node.isIdentifierNode(node)) {
  383. return false;
  384. }
  385. var parentNodeIsPropertyNode = Node.isPropertyNode(parentNode) && parentNode.key === node;
  386. var parentNodeIsMemberExpressionNode = Node.isMemberExpressionNode(parentNode) && parentNode.computed === false && parentNode.property === node;
  387. return !parentNodeIsPropertyNode && !parentNodeIsMemberExpressionNode && !Node.isLabelIdentifierNode(node, parentNode);
  388. }
  389. }, {
  390. key: "isVariableDeclarationNode",
  391. value: function isVariableDeclarationNode(node) {
  392. return node.type === NodeType_1.NodeType.VariableDeclaration;
  393. }
  394. }, {
  395. key: "isVariableDeclaratorNode",
  396. value: function isVariableDeclaratorNode(node) {
  397. return node.type === NodeType_1.NodeType.VariableDeclarator;
  398. }
  399. }, {
  400. key: "isNodeHasBlockStatement",
  401. value: function isNodeHasBlockStatement(node) {
  402. return node.hasOwnProperty('body') && Array.isArray(node.body);
  403. }
  404. }]);
  405. return Node;
  406. }();
  407. exports.Node = Node;
  408. /***/ },
  409. /* 11 */
  410. /***/ function(module, exports, __webpack_require__) {
  411. "use strict";
  412. "use strict";
  413. var _from = __webpack_require__(33);
  414. var _from2 = _interopRequireDefault(_from);
  415. var _slicedToArray2 = __webpack_require__(35);
  416. var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
  417. var _getIterator2 = __webpack_require__(22);
  418. var _getIterator3 = _interopRequireDefault(_getIterator2);
  419. var _classCallCheck2 = __webpack_require__(0);
  420. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  421. var _createClass2 = __webpack_require__(1);
  422. var _createClass3 = _interopRequireDefault(_createClass2);
  423. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  424. var _ = __webpack_require__(49);
  425. var JSFuck_1 = __webpack_require__(37);
  426. var Utils = function () {
  427. function Utils() {
  428. (0, _classCallCheck3.default)(this, Utils);
  429. }
  430. (0, _createClass3.default)(Utils, null, [{
  431. key: "arrayRotate",
  432. value: function arrayRotate(array, times) {
  433. if (!array.length) {
  434. throw new ReferenceError("Cannot rotate empty array.");
  435. }
  436. if (times <= 0) {
  437. return array;
  438. }
  439. var newArray = array;
  440. var temp = void 0;
  441. while (times--) {
  442. temp = newArray.pop();
  443. newArray.unshift(temp);
  444. }
  445. return newArray;
  446. }
  447. }, {
  448. key: "decToHex",
  449. value: function decToHex(dec) {
  450. var radix = 16;
  451. return Number(dec).toString(radix);
  452. }
  453. }, {
  454. key: "extractDomainFromUrl",
  455. value: function extractDomainFromUrl(url) {
  456. var domain = void 0;
  457. if (url.indexOf('://') > -1 || url.indexOf('//') === 0) {
  458. domain = url.split('/')[2];
  459. } else {
  460. domain = url.split('/')[0];
  461. }
  462. domain = domain.split(':')[0];
  463. return domain;
  464. }
  465. }, {
  466. key: "isCeilNumber",
  467. value: function isCeilNumber(number) {
  468. return number % 1 === 0;
  469. }
  470. }, {
  471. key: "mapGetFirstKeyOf",
  472. value: function mapGetFirstKeyOf(map, value) {
  473. var _iteratorNormalCompletion = true;
  474. var _didIteratorError = false;
  475. var _iteratorError = undefined;
  476. try {
  477. for (var _iterator = (0, _getIterator3.default)(map), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  478. var _step$value = (0, _slicedToArray3.default)(_step.value, 2),
  479. key = _step$value[0],
  480. storageValue = _step$value[1];
  481. if (_.isEqual(value, storageValue)) {
  482. return key;
  483. }
  484. }
  485. } catch (err) {
  486. _didIteratorError = true;
  487. _iteratorError = err;
  488. } finally {
  489. try {
  490. if (!_iteratorNormalCompletion && _iterator.return) {
  491. _iterator.return();
  492. }
  493. } finally {
  494. if (_didIteratorError) {
  495. throw _iteratorError;
  496. }
  497. }
  498. }
  499. return null;
  500. }
  501. }, {
  502. key: "strEnumify",
  503. value: function strEnumify(obj) {
  504. return obj;
  505. }
  506. }, {
  507. key: "stringRotate",
  508. value: function stringRotate(string, times) {
  509. return Utils.arrayRotate((0, _from2.default)(string), times).join('');
  510. }
  511. }, {
  512. key: "stringToJSFuck",
  513. value: function stringToJSFuck(string) {
  514. return (0, _from2.default)(string).map(function (character) {
  515. return JSFuck_1.JSFuck[character] || character;
  516. }).join(' + ');
  517. }
  518. }, {
  519. key: "stringToUnicodeEscapeSequence",
  520. value: function stringToUnicodeEscapeSequence(string) {
  521. var radix = 16;
  522. var regexp = new RegExp('[\x00-\x7F]');
  523. var prefix = void 0,
  524. template = void 0;
  525. return "" + string.replace(/[\s\S]/g, function (escape) {
  526. if (regexp.test(escape)) {
  527. prefix = '\\x';
  528. template = '0'.repeat(2);
  529. } else {
  530. prefix = "\\u";
  531. template = '0'.repeat(4);
  532. }
  533. return "" + prefix + (template + escape.charCodeAt(0).toString(radix)).slice(-template.length);
  534. });
  535. }
  536. }]);
  537. return Utils;
  538. }();
  539. Utils.hexadecimalPrefix = '0x';
  540. exports.Utils = Utils;
  541. /***/ },
  542. /* 12 */
  543. /***/ function(module, exports) {
  544. module.exports = require("babel-runtime/core-js/map");
  545. /***/ },
  546. /* 13 */
  547. /***/ function(module, exports) {
  548. module.exports = require("estraverse");
  549. /***/ },
  550. /* 14 */
  551. /***/ function(module, exports, __webpack_require__) {
  552. "use strict";
  553. "use strict";
  554. var _classCallCheck2 = __webpack_require__(0);
  555. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  556. var _createClass2 = __webpack_require__(1);
  557. var _createClass3 = _interopRequireDefault(_createClass2);
  558. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  559. var tslib_1 = __webpack_require__(3);
  560. var inversify_1 = __webpack_require__(2);
  561. var ServiceIdentifiers_1 = __webpack_require__(4);
  562. var NodeUtils_1 = __webpack_require__(15);
  563. var AbstractCustomNode = function () {
  564. function AbstractCustomNode(options) {
  565. (0, _classCallCheck3.default)(this, AbstractCustomNode);
  566. this.options = options;
  567. }
  568. (0, _createClass3.default)(AbstractCustomNode, [{
  569. key: "getCode",
  570. value: function getCode() {
  571. return NodeUtils_1.NodeUtils.convertStructureToCode(this.getNode());
  572. }
  573. }, {
  574. key: "getNode",
  575. value: function getNode() {
  576. return this.getNodeStructure();
  577. }
  578. }, {
  579. key: "getNodeStructure",
  580. value: function getNodeStructure() {
  581. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  582. }
  583. }]);
  584. return AbstractCustomNode;
  585. }();
  586. AbstractCustomNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractCustomNode);
  587. exports.AbstractCustomNode = AbstractCustomNode;
  588. /***/ },
  589. /* 15 */
  590. /***/ function(module, exports, __webpack_require__) {
  591. "use strict";
  592. "use strict";
  593. var _getIterator2 = __webpack_require__(22);
  594. var _getIterator3 = _interopRequireDefault(_getIterator2);
  595. var _classCallCheck2 = __webpack_require__(0);
  596. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  597. var _createClass2 = __webpack_require__(1);
  598. var _createClass3 = _interopRequireDefault(_createClass2);
  599. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  600. var escodegen = __webpack_require__(26);
  601. var esprima = __webpack_require__(48);
  602. var estraverse = __webpack_require__(13);
  603. var NodeType_1 = __webpack_require__(17);
  604. var Node_1 = __webpack_require__(10);
  605. var NodeUtils = function () {
  606. function NodeUtils() {
  607. (0, _classCallCheck3.default)(this, NodeUtils);
  608. }
  609. (0, _createClass3.default)(NodeUtils, null, [{
  610. key: "addXVerbatimPropertyToLiterals",
  611. value: function addXVerbatimPropertyToLiterals(node) {
  612. NodeUtils.typedReplace(node, NodeType_1.NodeType.Literal, {
  613. leave: function leave(node) {
  614. node['x-verbatim-property'] = {
  615. content: node.raw,
  616. precedence: escodegen.Precedence.Primary
  617. };
  618. }
  619. });
  620. }
  621. }, {
  622. key: "convertCodeToStructure",
  623. value: function convertCodeToStructure(code) {
  624. var structure = esprima.parse(code);
  625. NodeUtils.addXVerbatimPropertyToLiterals(structure);
  626. NodeUtils.parentize(structure);
  627. return structure.body;
  628. }
  629. }, {
  630. key: "convertStructureToCode",
  631. value: function convertStructureToCode(structure) {
  632. var code = '';
  633. var _iteratorNormalCompletion = true;
  634. var _didIteratorError = false;
  635. var _iteratorError = undefined;
  636. try {
  637. for (var _iterator = (0, _getIterator3.default)(structure), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  638. var node = _step.value;
  639. code += escodegen.generate(node, {
  640. sourceMapWithCode: true
  641. }).code;
  642. }
  643. } catch (err) {
  644. _didIteratorError = true;
  645. _iteratorError = err;
  646. } finally {
  647. try {
  648. if (!_iteratorNormalCompletion && _iterator.return) {
  649. _iterator.return();
  650. }
  651. } finally {
  652. if (_didIteratorError) {
  653. throw _iteratorError;
  654. }
  655. }
  656. }
  657. return code;
  658. }
  659. }, {
  660. key: "getBlockStatementNodeByIndex",
  661. value: function getBlockStatementNodeByIndex(node) {
  662. var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  663. if (Node_1.Node.isNodeHasBlockStatement(node)) {
  664. if (node.body[index] === undefined) {
  665. throw new ReferenceError("Wrong index `" + index + "`. Block-statement body length is `" + node.body.length + "`");
  666. }
  667. return node.body[index];
  668. }
  669. throw new TypeError('The specified node have no a block-statement');
  670. }
  671. }, {
  672. key: "getBlockScopesOfNode",
  673. value: function getBlockScopesOfNode(node) {
  674. var blockScopes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  675. var parentNode = node.parentNode;
  676. if (!parentNode) {
  677. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  678. }
  679. if (Node_1.Node.isBlockStatementNode(parentNode)) {
  680. if (!parentNode.parentNode) {
  681. throw new ReferenceError('`parentNode` property of `parentNode` of given node is `undefined`');
  682. }
  683. if (!NodeUtils.nodesWithBlockScope.includes(parentNode.parentNode.type)) {
  684. return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes);
  685. }
  686. blockScopes.push(parentNode);
  687. return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes);
  688. }
  689. if (!Node_1.Node.isProgramNode(parentNode)) {
  690. return NodeUtils.getBlockScopesOfNode(parentNode, blockScopes);
  691. }
  692. blockScopes.push(parentNode);
  693. return blockScopes;
  694. }
  695. }, {
  696. key: "getNodeBlockScopeDepth",
  697. value: function getNodeBlockScopeDepth(node) {
  698. var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  699. var parentNode = node.parentNode;
  700. if (!parentNode) {
  701. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  702. }
  703. if (Node_1.Node.isProgramNode(parentNode)) {
  704. return depth;
  705. }
  706. if (Node_1.Node.isBlockStatementNode(node) && NodeUtils.nodesWithBlockScope.includes(parentNode.type)) {
  707. return NodeUtils.getNodeBlockScopeDepth(parentNode, ++depth);
  708. }
  709. return NodeUtils.getNodeBlockScopeDepth(parentNode, depth);
  710. }
  711. }, {
  712. key: "parentize",
  713. value: function parentize(node) {
  714. var isRootNode = true;
  715. estraverse.replace(node, {
  716. enter: function enter(node, parentNode) {
  717. var value = void 0;
  718. if (isRootNode) {
  719. if (node.type === NodeType_1.NodeType.Program) {
  720. value = node;
  721. } else {
  722. value = Node_1.Node.getProgramNode([node]);
  723. value.parentNode = value;
  724. }
  725. isRootNode = false;
  726. } else {
  727. value = parentNode || node;
  728. }
  729. node.parentNode = value;
  730. node.obfuscated = false;
  731. }
  732. });
  733. }
  734. }, {
  735. key: "typedReplace",
  736. value: function typedReplace(node, nodeType, visitor) {
  737. NodeUtils.typedTraverse(node, nodeType, visitor, 'replace');
  738. }
  739. }, {
  740. key: "typedTraverse",
  741. value: function typedTraverse(node, nodeType, visitor) {
  742. var traverseType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'traverse';
  743. estraverse[traverseType](node, {
  744. enter: function enter(node, parentNode) {
  745. if (node.type === nodeType && visitor.enter) {
  746. return visitor.enter(node, parentNode);
  747. }
  748. },
  749. leave: function leave(node, parentNode) {
  750. if (node.type === nodeType && visitor.leave) {
  751. return visitor.leave(node, parentNode);
  752. }
  753. }
  754. });
  755. }
  756. }]);
  757. return NodeUtils;
  758. }();
  759. NodeUtils.nodesWithBlockScope = [NodeType_1.NodeType.ArrowFunctionExpression, NodeType_1.NodeType.FunctionDeclaration, NodeType_1.NodeType.FunctionExpression, NodeType_1.NodeType.MethodDefinition, NodeType_1.NodeType.Program];
  760. exports.NodeUtils = NodeUtils;
  761. /***/ },
  762. /* 16 */
  763. /***/ function(module, exports) {
  764. module.exports = require("string-template");
  765. /***/ },
  766. /* 17 */
  767. /***/ function(module, exports, __webpack_require__) {
  768. "use strict";
  769. "use strict";
  770. var Utils_1 = __webpack_require__(11);
  771. exports.NodeType = Utils_1.Utils.strEnumify({
  772. ArrayExpression: 'ArrayExpression',
  773. ArrowFunctionExpression: 'ArrowFunctionExpression',
  774. AssignmentExpression: 'AssignmentExpression',
  775. BinaryExpression: 'BinaryExpression',
  776. BlockStatement: 'BlockStatement',
  777. BreakStatement: 'BreakStatement',
  778. CallExpression: 'CallExpression',
  779. CatchClause: 'CatchClause',
  780. ClassDeclaration: 'ClassDeclaration',
  781. ContinueStatement: 'ContinueStatement',
  782. ExpressionStatement: 'ExpressionStatement',
  783. FunctionDeclaration: 'FunctionDeclaration',
  784. FunctionExpression: 'FunctionExpression',
  785. Identifier: 'Identifier',
  786. IfStatement: 'IfStatement',
  787. LabeledStatement: 'LabeledStatement',
  788. Literal: 'Literal',
  789. LogicalExpression: 'LogicalExpression',
  790. MemberExpression: 'MemberExpression',
  791. MethodDefinition: 'MethodDefinition',
  792. ObjectExpression: 'ObjectExpression',
  793. Program: 'Program',
  794. Property: 'Property',
  795. ReturnStatement: 'ReturnStatement',
  796. SwitchCase: 'SwitchCase',
  797. SwitchStatement: 'SwitchStatement',
  798. TryStatement: 'TryStatement',
  799. UnaryExpression: 'UnaryExpression',
  800. UpdateExpression: 'UpdateExpression',
  801. VariableDeclaration: 'VariableDeclaration',
  802. VariableDeclarator: 'VariableDeclarator',
  803. WhileStatement: 'WhileStatement'
  804. });
  805. /***/ },
  806. /* 18 */
  807. /***/ function(module, exports, __webpack_require__) {
  808. "use strict";
  809. "use strict";
  810. var _classCallCheck2 = __webpack_require__(0);
  811. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  812. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  813. var tslib_1 = __webpack_require__(3);
  814. var inversify_1 = __webpack_require__(2);
  815. var ServiceIdentifiers_1 = __webpack_require__(4);
  816. var AbstractNodeTransformer = function AbstractNodeTransformer(options) {
  817. (0, _classCallCheck3.default)(this, AbstractNodeTransformer);
  818. this.options = options;
  819. };
  820. AbstractNodeTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractNodeTransformer);
  821. exports.AbstractNodeTransformer = AbstractNodeTransformer;
  822. /***/ },
  823. /* 19 */
  824. /***/ function(module, exports) {
  825. "use strict";
  826. "use strict";
  827. var NodeObfuscatorsReplacers;
  828. (function (NodeObfuscatorsReplacers) {
  829. NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["BooleanReplacer"] = 0] = "BooleanReplacer";
  830. NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["IdentifierReplacer"] = 1] = "IdentifierReplacer";
  831. NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["NumberLiteralReplacer"] = 2] = "NumberLiteralReplacer";
  832. NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["StringLiteralReplacer"] = 3] = "StringLiteralReplacer";
  833. })(NodeObfuscatorsReplacers = exports.NodeObfuscatorsReplacers || (exports.NodeObfuscatorsReplacers = {}));
  834. /***/ },
  835. /* 20 */
  836. /***/ function(module, exports) {
  837. "use strict";
  838. "use strict";
  839. var CustomNodes;
  840. (function (CustomNodes) {
  841. CustomNodes[CustomNodes["BinaryExpressionFunctionNode"] = 0] = "BinaryExpressionFunctionNode";
  842. CustomNodes[CustomNodes["ControlFlowStorageCallNode"] = 1] = "ControlFlowStorageCallNode";
  843. CustomNodes[CustomNodes["ControlFlowStorageNode"] = 2] = "ControlFlowStorageNode";
  844. CustomNodes[CustomNodes["ConsoleOutputDisableExpressionNode"] = 3] = "ConsoleOutputDisableExpressionNode";
  845. CustomNodes[CustomNodes["DebugProtectionFunctionCallNode"] = 4] = "DebugProtectionFunctionCallNode";
  846. CustomNodes[CustomNodes["DebugProtectionFunctionIntervalNode"] = 5] = "DebugProtectionFunctionIntervalNode";
  847. CustomNodes[CustomNodes["DebugProtectionFunctionNode"] = 6] = "DebugProtectionFunctionNode";
  848. CustomNodes[CustomNodes["DomainLockNode"] = 7] = "DomainLockNode";
  849. CustomNodes[CustomNodes["NodeCallsControllerFunctionNode"] = 8] = "NodeCallsControllerFunctionNode";
  850. CustomNodes[CustomNodes["SelfDefendingUnicodeNode"] = 9] = "SelfDefendingUnicodeNode";
  851. CustomNodes[CustomNodes["StringArrayCallsWrapper"] = 10] = "StringArrayCallsWrapper";
  852. CustomNodes[CustomNodes["StringArrayNode"] = 11] = "StringArrayNode";
  853. CustomNodes[CustomNodes["StringArrayRotateFunctionNode"] = 12] = "StringArrayRotateFunctionNode";
  854. })(CustomNodes = exports.CustomNodes || (exports.CustomNodes = {}));
  855. /***/ },
  856. /* 21 */
  857. /***/ function(module, exports) {
  858. "use strict";
  859. "use strict";
  860. exports.ObfuscationEvents = {
  861. AfterObfuscation: 'afterObfuscation',
  862. BeforeObfuscation: 'beforeObfuscation'
  863. };
  864. /***/ },
  865. /* 22 */
  866. /***/ function(module, exports) {
  867. module.exports = require("babel-runtime/core-js/get-iterator");
  868. /***/ },
  869. /* 23 */
  870. /***/ function(module, exports, __webpack_require__) {
  871. "use strict";
  872. "use strict";
  873. var _classCallCheck2 = __webpack_require__(0);
  874. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  875. var _createClass2 = __webpack_require__(1);
  876. var _createClass3 = _interopRequireDefault(_createClass2);
  877. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  878. __webpack_require__(141);
  879. if (!global._babelPolyfill) {
  880. __webpack_require__(130);
  881. }
  882. var ServiceIdentifiers_1 = __webpack_require__(4);
  883. var chance_1 = __webpack_require__(47);
  884. var InversifyContainerFacade_1 = __webpack_require__(57);
  885. var JavaScriptObfuscatorCLI_1 = __webpack_require__(56);
  886. var RandomGeneratorUtils_1 = __webpack_require__(8);
  887. var JavaScriptObfuscator = function () {
  888. function JavaScriptObfuscator() {
  889. (0, _classCallCheck3.default)(this, JavaScriptObfuscator);
  890. }
  891. (0, _createClass3.default)(JavaScriptObfuscator, null, [{
  892. key: "obfuscate",
  893. value: function obfuscate(sourceCode) {
  894. var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  895. var inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade(inputOptions);
  896. var options = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);
  897. if (options.seed !== 0) {
  898. RandomGeneratorUtils_1.RandomGeneratorUtils.setRandomGenerator(new chance_1.Chance(options.seed));
  899. }
  900. var javaScriptObfuscator = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);
  901. return javaScriptObfuscator.obfuscate(sourceCode);
  902. }
  903. }, {
  904. key: "runCLI",
  905. value: function runCLI(argv) {
  906. new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv).run();
  907. }
  908. }]);
  909. return JavaScriptObfuscator;
  910. }();
  911. exports.JavaScriptObfuscator = JavaScriptObfuscator;
  912. /***/ },
  913. /* 24 */
  914. /***/ function(module, exports, __webpack_require__) {
  915. "use strict";
  916. "use strict";
  917. var _getIterator2 = __webpack_require__(22);
  918. var _getIterator3 = _interopRequireDefault(_getIterator2);
  919. var _toConsumableArray2 = __webpack_require__(36);
  920. var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
  921. var _classCallCheck2 = __webpack_require__(0);
  922. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  923. var _createClass2 = __webpack_require__(1);
  924. var _createClass3 = _interopRequireDefault(_createClass2);
  925. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  926. var RandomGeneratorUtils_1 = __webpack_require__(8);
  927. var NodeAppender = function () {
  928. function NodeAppender() {
  929. (0, _classCallCheck3.default)(this, NodeAppender);
  930. }
  931. (0, _createClass3.default)(NodeAppender, null, [{
  932. key: "appendNode",
  933. value: function appendNode(blockScopeNode, nodeBodyStatements) {
  934. if (!NodeAppender.validateBodyStatements(nodeBodyStatements)) {
  935. nodeBodyStatements = [];
  936. }
  937. nodeBodyStatements = NodeAppender.parentizeBodyStatementsBeforeAppend(blockScopeNode, nodeBodyStatements);
  938. blockScopeNode.body = [].concat((0, _toConsumableArray3.default)(blockScopeNode.body), (0, _toConsumableArray3.default)(nodeBodyStatements));
  939. }
  940. }, {
  941. key: "appendNodeToOptimalBlockScope",
  942. value: function appendNodeToOptimalBlockScope(blockScopeStackTraceData, blockScopeNode, nodeBodyStatements) {
  943. var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  944. var targetBlockScope = void 0;
  945. if (!blockScopeStackTraceData.length) {
  946. targetBlockScope = blockScopeNode;
  947. } else {
  948. targetBlockScope = NodeAppender.getOptimalBlockScope(blockScopeStackTraceData, index);
  949. }
  950. NodeAppender.prependNode(targetBlockScope, nodeBodyStatements);
  951. }
  952. }, {
  953. key: "getOptimalBlockScope",
  954. value: function getOptimalBlockScope(blockScopeTraceData, index) {
  955. var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
  956. var firstCall = blockScopeTraceData[index];
  957. if (deep <= 0) {
  958. throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");
  959. }
  960. if (deep > 1 && firstCall.stackTrace.length) {
  961. return NodeAppender.getOptimalBlockScope(firstCall.stackTrace, 0, --deep);
  962. } else {
  963. return firstCall.callee;
  964. }
  965. }
  966. }, {
  967. key: "getRandomStackTraceIndex",
  968. value: function getRandomStackTraceIndex(stackTraceRootLength) {
  969. return RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomInteger(0, Math.max(0, Math.round(stackTraceRootLength - 1)));
  970. }
  971. }, {
  972. key: "insertNodeAtIndex",
  973. value: function insertNodeAtIndex(blockScopeNode, nodeBodyStatements, index) {
  974. if (!NodeAppender.validateBodyStatements(nodeBodyStatements)) {
  975. nodeBodyStatements = [];
  976. }
  977. nodeBodyStatements = NodeAppender.parentizeBodyStatementsBeforeAppend(blockScopeNode, nodeBodyStatements);
  978. blockScopeNode.body = [].concat((0, _toConsumableArray3.default)(blockScopeNode.body.slice(0, index)), (0, _toConsumableArray3.default)(nodeBodyStatements), (0, _toConsumableArray3.default)(blockScopeNode.body.slice(index)));
  979. }
  980. }, {
  981. key: "prependNode",
  982. value: function prependNode(blockScopeNode, nodeBodyStatements) {
  983. if (!NodeAppender.validateBodyStatements(nodeBodyStatements)) {
  984. nodeBodyStatements = [];
  985. }
  986. nodeBodyStatements = NodeAppender.parentizeBodyStatementsBeforeAppend(blockScopeNode, nodeBodyStatements);
  987. blockScopeNode.body = [].concat((0, _toConsumableArray3.default)(nodeBodyStatements), (0, _toConsumableArray3.default)(blockScopeNode.body));
  988. }
  989. }, {
  990. key: "parentizeBodyStatementsBeforeAppend",
  991. value: function parentizeBodyStatementsBeforeAppend(blockScopeNode, nodeBodyStatements) {
  992. var _iteratorNormalCompletion = true;
  993. var _didIteratorError = false;
  994. var _iteratorError = undefined;
  995. try {
  996. for (var _iterator = (0, _getIterator3.default)(nodeBodyStatements), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  997. var statement = _step.value;
  998. statement.parentNode = blockScopeNode;
  999. }
  1000. } catch (err) {
  1001. _didIteratorError = true;
  1002. _iteratorError = err;
  1003. } finally {
  1004. try {
  1005. if (!_iteratorNormalCompletion && _iterator.return) {
  1006. _iterator.return();
  1007. }
  1008. } finally {
  1009. if (_didIteratorError) {
  1010. throw _iteratorError;
  1011. }
  1012. }
  1013. }
  1014. return nodeBodyStatements;
  1015. }
  1016. }, {
  1017. key: "validateBodyStatements",
  1018. value: function validateBodyStatements(nodeBodyStatements) {
  1019. return nodeBodyStatements.every(function (statementNode) {
  1020. return !!statementNode && statementNode.hasOwnProperty('type');
  1021. });
  1022. }
  1023. }]);
  1024. return NodeAppender;
  1025. }();
  1026. exports.NodeAppender = NodeAppender;
  1027. /***/ },
  1028. /* 25 */
  1029. /***/ function(module, exports, __webpack_require__) {
  1030. "use strict";
  1031. "use strict";
  1032. var _classCallCheck2 = __webpack_require__(0);
  1033. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1034. var _createClass2 = __webpack_require__(1);
  1035. var _createClass3 = _interopRequireDefault(_createClass2);
  1036. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1037. var tslib_1 = __webpack_require__(3);
  1038. var inversify_1 = __webpack_require__(2);
  1039. var ServiceIdentifiers_1 = __webpack_require__(4);
  1040. var AbstractCustomNodeGroup = function () {
  1041. function AbstractCustomNodeGroup(options) {
  1042. (0, _classCallCheck3.default)(this, AbstractCustomNodeGroup);
  1043. this.options = options;
  1044. }
  1045. (0, _createClass3.default)(AbstractCustomNodeGroup, [{
  1046. key: "getAppendEvent",
  1047. value: function getAppendEvent() {
  1048. return this.appendEvent;
  1049. }
  1050. }, {
  1051. key: "getCustomNodes",
  1052. value: function getCustomNodes() {
  1053. return this.customNodes;
  1054. }
  1055. }, {
  1056. key: "appendCustomNodeIfExist",
  1057. value: function appendCustomNodeIfExist(customNodeName, callback) {
  1058. var customNode = this.customNodes.get(customNodeName);
  1059. if (!customNode) {
  1060. return;
  1061. }
  1062. callback(customNode);
  1063. }
  1064. }]);
  1065. return AbstractCustomNodeGroup;
  1066. }();
  1067. AbstractCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractCustomNodeGroup);
  1068. exports.AbstractCustomNodeGroup = AbstractCustomNodeGroup;
  1069. /***/ },
  1070. /* 26 */
  1071. /***/ function(module, exports) {
  1072. module.exports = require("escodegen");
  1073. /***/ },
  1074. /* 27 */
  1075. /***/ function(module, exports) {
  1076. "use strict";
  1077. "use strict";
  1078. exports.SourceMapMode = {
  1079. Inline: 'inline',
  1080. Separate: 'separate'
  1081. };
  1082. /***/ },
  1083. /* 28 */
  1084. /***/ function(module, exports, __webpack_require__) {
  1085. "use strict";
  1086. "use strict";
  1087. var _classCallCheck2 = __webpack_require__(0);
  1088. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1089. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1090. var tslib_1 = __webpack_require__(3);
  1091. var inversify_1 = __webpack_require__(2);
  1092. var ServiceIdentifiers_1 = __webpack_require__(4);
  1093. var AbstractReplacer = function AbstractReplacer(options) {
  1094. (0, _classCallCheck3.default)(this, AbstractReplacer);
  1095. this.options = options;
  1096. };
  1097. AbstractReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractReplacer);
  1098. exports.AbstractReplacer = AbstractReplacer;
  1099. /***/ },
  1100. /* 29 */
  1101. /***/ function(module, exports, __webpack_require__) {
  1102. "use strict";
  1103. "use strict";
  1104. var _freeze = __webpack_require__(44);
  1105. var _freeze2 = _interopRequireDefault(_freeze);
  1106. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1107. var SourceMapMode_1 = __webpack_require__(27);
  1108. exports.NO_CUSTOM_NODES_PRESET = (0, _freeze2.default)({
  1109. compact: true,
  1110. controlFlowFlattening: false,
  1111. controlFlowFlatteningThreshold: 0,
  1112. debugProtection: false,
  1113. debugProtectionInterval: false,
  1114. disableConsoleOutput: false,
  1115. domainLock: [],
  1116. reservedNames: [],
  1117. rotateStringArray: false,
  1118. seed: 0,
  1119. selfDefending: false,
  1120. sourceMap: false,
  1121. sourceMapBaseUrl: '',
  1122. sourceMapFileName: '',
  1123. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  1124. stringArray: false,
  1125. stringArrayEncoding: false,
  1126. stringArrayThreshold: 0,
  1127. unicodeEscapeSequence: true
  1128. });
  1129. /***/ },
  1130. /* 30 */
  1131. /***/ function(module, exports) {
  1132. "use strict";
  1133. "use strict";
  1134. exports.StringArrayEncoding = {
  1135. base64: 'base64',
  1136. rc4: 'rc4'
  1137. };
  1138. /***/ },
  1139. /* 31 */
  1140. /***/ function(module, exports, __webpack_require__) {
  1141. "use strict";
  1142. "use strict";
  1143. var _classCallCheck2 = __webpack_require__(0);
  1144. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1145. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1146. var tslib_1 = __webpack_require__(3);
  1147. var inversify_1 = __webpack_require__(2);
  1148. var AbstractCalleeDataExtractor = function AbstractCalleeDataExtractor() {
  1149. (0, _classCallCheck3.default)(this, AbstractCalleeDataExtractor);
  1150. };
  1151. AbstractCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], AbstractCalleeDataExtractor);
  1152. exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;
  1153. /***/ },
  1154. /* 32 */
  1155. /***/ function(module, exports, __webpack_require__) {
  1156. "use strict";
  1157. "use strict";
  1158. var _classCallCheck2 = __webpack_require__(0);
  1159. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1160. var _createClass2 = __webpack_require__(1);
  1161. var _createClass3 = _interopRequireDefault(_createClass2);
  1162. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1163. var RandomGeneratorUtils_1 = __webpack_require__(8);
  1164. var Utils_1 = __webpack_require__(11);
  1165. var CryptUtils = function () {
  1166. function CryptUtils() {
  1167. (0, _classCallCheck3.default)(this, CryptUtils);
  1168. }
  1169. (0, _createClass3.default)(CryptUtils, null, [{
  1170. key: "btoa",
  1171. value: function btoa(string) {
  1172. var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  1173. var output = '';
  1174. string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, function (match, p1) {
  1175. return String.fromCharCode(parseInt("" + Utils_1.Utils.hexadecimalPrefix + p1));
  1176. });
  1177. for (var block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {
  1178. charCode = string.charCodeAt(idx += 3 / 4);
  1179. if (charCode > 0xFF) {
  1180. throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
  1181. }
  1182. block = block << 8 | charCode;
  1183. }
  1184. return output;
  1185. }
  1186. }, {
  1187. key: "hideString",
  1188. value: function hideString(str, length) {
  1189. var escapeRegExp = function escapeRegExp(s) {
  1190. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  1191. };
  1192. var randomMerge = function randomMerge(s1, s2) {
  1193. var i1 = -1,
  1194. i2 = -1,
  1195. result = '';
  1196. while (i1 < s1.length || i2 < s2.length) {
  1197. if (RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomFloat(0, 1) < 0.5 && i2 < s2.length) {
  1198. result += s2.charAt(++i2);
  1199. } else {
  1200. result += s1.charAt(++i1);
  1201. }
  1202. }
  1203. return result;
  1204. };
  1205. var randomString = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().string({
  1206. length: length,
  1207. pool: RandomGeneratorUtils_1.RandomGeneratorUtils.randomGeneratorPool
  1208. });
  1209. var randomStringDiff = randomString.replace(new RegExp('[' + escapeRegExp(str) + ']', 'g'), '');
  1210. var randomStringDiffArray = randomStringDiff.split('');
  1211. RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().shuffle(randomStringDiffArray);
  1212. randomStringDiff = randomStringDiffArray.join('');
  1213. return [randomMerge(str, randomStringDiff), randomStringDiff];
  1214. }
  1215. }, {
  1216. key: "rc4",
  1217. value: function rc4(string, key) {
  1218. var s = [],
  1219. j = 0,
  1220. x = void 0,
  1221. result = '';
  1222. for (var i = 0; i < 256; i++) {
  1223. s[i] = i;
  1224. }
  1225. for (i = 0; i < 256; i++) {
  1226. j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
  1227. x = s[i];
  1228. s[i] = s[j];
  1229. s[j] = x;
  1230. }
  1231. i = 0;
  1232. j = 0;
  1233. for (var y = 0; y < string.length; y++) {
  1234. i = (i + 1) % 256;
  1235. j = (j + s[i]) % 256;
  1236. x = s[i];
  1237. s[i] = s[j];
  1238. s[j] = x;
  1239. result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
  1240. }
  1241. return result;
  1242. }
  1243. }]);
  1244. return CryptUtils;
  1245. }();
  1246. exports.CryptUtils = CryptUtils;
  1247. /***/ },
  1248. /* 33 */
  1249. /***/ function(module, exports) {
  1250. module.exports = require("babel-runtime/core-js/array/from");
  1251. /***/ },
  1252. /* 34 */
  1253. /***/ function(module, exports) {
  1254. module.exports = require("babel-runtime/core-js/object/assign");
  1255. /***/ },
  1256. /* 35 */
  1257. /***/ function(module, exports) {
  1258. module.exports = require("babel-runtime/helpers/slicedToArray");
  1259. /***/ },
  1260. /* 36 */
  1261. /***/ function(module, exports) {
  1262. module.exports = require("babel-runtime/helpers/toConsumableArray");
  1263. /***/ },
  1264. /* 37 */
  1265. /***/ function(module, exports) {
  1266. "use strict";
  1267. "use strict";
  1268. exports.JSFuck = {
  1269. False: '![]',
  1270. True: '!![]',
  1271. a: '(false+"")[1]',
  1272. b: '([]["entries"]()+"")[2]',
  1273. c: '([]["fill"]+"")[3]',
  1274. d: '(undefined+"")[2]',
  1275. e: '(true+"")[3]',
  1276. f: '(false+"")[0]',
  1277. g: '(false+[0]+String)[20]',
  1278. h: '(+(101))["toString"](21)[1]',
  1279. i: '([false]+undefined)[10]',
  1280. j: '([]["entries"]()+"")[3]',
  1281. k: '(+(20))["toString"](21)',
  1282. l: '(false+"")[2]',
  1283. m: '(Number+"")[11]',
  1284. n: '(undefined+"")[1]',
  1285. o: '(true+[]["fill"])[10]',
  1286. p: '(+(211))["toString"](31)[1]',
  1287. q: '(+(212))["toString"](31)[1]',
  1288. r: '(true+"")[1]',
  1289. s: '(false+"")[3]',
  1290. t: '(true+"")[0]',
  1291. u: '(undefined+"")[0]',
  1292. v: '(+(31))["toString"](32)',
  1293. w: '(+(32))["toString"](33)',
  1294. x: '(+(101))["toString"](34)[1]',
  1295. y: '(NaN+[Infinity])[10]',
  1296. z: '(+(35))["toString"](36)',
  1297. A: '(+[]+Array)[10]',
  1298. B: '(+[]+Boolean)[10]',
  1299. C: 'Function("return escape")()(("")["italics"]())[2]',
  1300. D: 'Function("return escape")()([]["fill"])["slice"]("-1")',
  1301. E: '(RegExp+"")[12]',
  1302. F: '(+[]+Function)[10]',
  1303. G: '(false+Function("return Date")()())[30]',
  1304. H: '\'H\'',
  1305. I: '(Infinity+"")[0]',
  1306. J: '\'J\'',
  1307. K: '\'K\'',
  1308. L: '\'L\'',
  1309. M: '(true+Function("return Date")()())[30]',
  1310. N: '(NaN+"")[0]',
  1311. O: '(NaN+Function("return{}")())[11]',
  1312. P: '\'P\'',
  1313. Q: '\'Q\'',
  1314. R: '(+[]+RegExp)[10]',
  1315. S: '(+[]+String)[10]',
  1316. T: '(NaN+Function("return Date")()())[30]',
  1317. U: '(NaN+Function("return{}")()["toString"]["call"]())[11]',
  1318. V: '\'V\'',
  1319. W: '\'W\'',
  1320. X: '\'X\'',
  1321. Y: '\'Y\'',
  1322. Z: '\'Z\''
  1323. };
  1324. /***/ },
  1325. /* 38 */
  1326. /***/ function(module, exports) {
  1327. "use strict";
  1328. "use strict";
  1329. var CalleeDataExtractors;
  1330. (function (CalleeDataExtractors) {
  1331. CalleeDataExtractors[CalleeDataExtractors["FunctionDeclarationCalleeDataExtractor"] = 0] = "FunctionDeclarationCalleeDataExtractor";
  1332. CalleeDataExtractors[CalleeDataExtractors["FunctionExpressionCalleeDataExtractor"] = 1] = "FunctionExpressionCalleeDataExtractor";
  1333. CalleeDataExtractors[CalleeDataExtractors["ObjectExpressionCalleeDataExtractor"] = 2] = "ObjectExpressionCalleeDataExtractor";
  1334. })(CalleeDataExtractors = exports.CalleeDataExtractors || (exports.CalleeDataExtractors = {}));
  1335. /***/ },
  1336. /* 39 */
  1337. /***/ function(module, exports) {
  1338. "use strict";
  1339. "use strict";
  1340. var CustomNodeGroups;
  1341. (function (CustomNodeGroups) {
  1342. CustomNodeGroups[CustomNodeGroups["ConsoleOutputCustomNodeGroup"] = 0] = "ConsoleOutputCustomNodeGroup";
  1343. CustomNodeGroups[CustomNodeGroups["DebugProtectionCustomNodeGroup"] = 1] = "DebugProtectionCustomNodeGroup";
  1344. CustomNodeGroups[CustomNodeGroups["DomainLockCustomNodeGroup"] = 2] = "DomainLockCustomNodeGroup";
  1345. CustomNodeGroups[CustomNodeGroups["SelfDefendingCustomNodeGroup"] = 3] = "SelfDefendingCustomNodeGroup";
  1346. CustomNodeGroups[CustomNodeGroups["StringArrayCustomNodeGroup"] = 4] = "StringArrayCustomNodeGroup";
  1347. })(CustomNodeGroups = exports.CustomNodeGroups || (exports.CustomNodeGroups = {}));
  1348. /***/ },
  1349. /* 40 */
  1350. /***/ function(module, exports) {
  1351. "use strict";
  1352. "use strict";
  1353. var NodeControlFlowReplacers;
  1354. (function (NodeControlFlowReplacers) {
  1355. NodeControlFlowReplacers[NodeControlFlowReplacers["BinaryExpressionControlFlowReplacer"] = 0] = "BinaryExpressionControlFlowReplacer";
  1356. })(NodeControlFlowReplacers = exports.NodeControlFlowReplacers || (exports.NodeControlFlowReplacers = {}));
  1357. /***/ },
  1358. /* 41 */
  1359. /***/ function(module, exports) {
  1360. "use strict";
  1361. "use strict";
  1362. var NodeTransformers;
  1363. (function (NodeTransformers) {
  1364. NodeTransformers[NodeTransformers["FunctionControlFlowTransformer"] = 0] = "FunctionControlFlowTransformer";
  1365. NodeTransformers[NodeTransformers["CatchClauseObfuscator"] = 1] = "CatchClauseObfuscator";
  1366. NodeTransformers[NodeTransformers["FunctionDeclarationObfuscator"] = 2] = "FunctionDeclarationObfuscator";
  1367. NodeTransformers[NodeTransformers["FunctionObfuscator"] = 3] = "FunctionObfuscator";
  1368. NodeTransformers[NodeTransformers["LabeledStatementObfuscator"] = 4] = "LabeledStatementObfuscator";
  1369. NodeTransformers[NodeTransformers["LiteralObfuscator"] = 5] = "LiteralObfuscator";
  1370. NodeTransformers[NodeTransformers["MemberExpressionObfuscator"] = 6] = "MemberExpressionObfuscator";
  1371. NodeTransformers[NodeTransformers["MethodDefinitionObfuscator"] = 7] = "MethodDefinitionObfuscator";
  1372. NodeTransformers[NodeTransformers["ObjectExpressionObfuscator"] = 8] = "ObjectExpressionObfuscator";
  1373. NodeTransformers[NodeTransformers["VariableDeclarationObfuscator"] = 9] = "VariableDeclarationObfuscator";
  1374. })(NodeTransformers = exports.NodeTransformers || (exports.NodeTransformers = {}));
  1375. /***/ },
  1376. /* 42 */
  1377. /***/ function(module, exports, __webpack_require__) {
  1378. "use strict";
  1379. "use strict";
  1380. var _freeze = __webpack_require__(44);
  1381. var _freeze2 = _interopRequireDefault(_freeze);
  1382. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1383. var SourceMapMode_1 = __webpack_require__(27);
  1384. exports.DEFAULT_PRESET = (0, _freeze2.default)({
  1385. compact: true,
  1386. controlFlowFlattening: false,
  1387. controlFlowFlatteningThreshold: 0.75,
  1388. debugProtection: false,
  1389. debugProtectionInterval: false,
  1390. disableConsoleOutput: true,
  1391. domainLock: [],
  1392. reservedNames: [],
  1393. rotateStringArray: true,
  1394. seed: 0,
  1395. selfDefending: false,
  1396. sourceMap: false,
  1397. sourceMapBaseUrl: '',
  1398. sourceMapFileName: '',
  1399. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  1400. stringArray: true,
  1401. stringArrayEncoding: false,
  1402. stringArrayThreshold: 0.8,
  1403. unicodeEscapeSequence: true
  1404. });
  1405. /***/ },
  1406. /* 43 */
  1407. /***/ function(module, exports, __webpack_require__) {
  1408. "use strict";
  1409. "use strict";
  1410. var _toConsumableArray2 = __webpack_require__(36);
  1411. var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
  1412. var _map = __webpack_require__(12);
  1413. var _map2 = _interopRequireDefault(_map);
  1414. var _from = __webpack_require__(33);
  1415. var _from2 = _interopRequireDefault(_from);
  1416. var _classCallCheck2 = __webpack_require__(0);
  1417. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1418. var _createClass2 = __webpack_require__(1);
  1419. var _createClass3 = _interopRequireDefault(_createClass2);
  1420. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1421. var tslib_1 = __webpack_require__(3);
  1422. var inversify_1 = __webpack_require__(2);
  1423. var Initializable_1 = __webpack_require__(9);
  1424. var RandomGeneratorUtils_1 = __webpack_require__(8);
  1425. var Utils_1 = __webpack_require__(11);
  1426. var MapStorage = function () {
  1427. function MapStorage() {
  1428. (0, _classCallCheck3.default)(this, MapStorage);
  1429. }
  1430. (0, _createClass3.default)(MapStorage, [{
  1431. key: "get",
  1432. value: function get(key) {
  1433. var value = this.storage.get(key);
  1434. if (!value) {
  1435. throw new Error("No value found in map storage with key `" + key + "`");
  1436. }
  1437. return value;
  1438. }
  1439. }, {
  1440. key: "getKeyOf",
  1441. value: function getKeyOf(value) {
  1442. return Utils_1.Utils.mapGetFirstKeyOf(this.storage, value);
  1443. }
  1444. }, {
  1445. key: "getLength",
  1446. value: function getLength() {
  1447. return (0, _from2.default)(this.storage).length;
  1448. }
  1449. }, {
  1450. key: "getStorage",
  1451. value: function getStorage() {
  1452. return this.storage;
  1453. }
  1454. }, {
  1455. key: "getStorageId",
  1456. value: function getStorageId() {
  1457. return this.storageId;
  1458. }
  1459. }, {
  1460. key: "initialize",
  1461. value: function initialize() {
  1462. this.storage = new _map2.default();
  1463. this.storageId = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(6);
  1464. }
  1465. }, {
  1466. key: "mergeWith",
  1467. value: function mergeWith(storage) {
  1468. var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  1469. this.storage = new _map2.default([].concat((0, _toConsumableArray3.default)(this.storage), (0, _toConsumableArray3.default)(storage.getStorage())));
  1470. if (mergeId) {
  1471. this.storageId = storage.getStorageId();
  1472. }
  1473. }
  1474. }, {
  1475. key: "set",
  1476. value: function set(key, value) {
  1477. this.storage.set(key, value);
  1478. }
  1479. }]);
  1480. return MapStorage;
  1481. }();
  1482. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], MapStorage.prototype, "storageId", void 0);
  1483. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map2.default)], MapStorage.prototype, "storage", void 0);
  1484. MapStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], MapStorage);
  1485. exports.MapStorage = MapStorage;
  1486. /***/ },
  1487. /* 44 */
  1488. /***/ function(module, exports) {
  1489. module.exports = require("babel-runtime/core-js/object/freeze");
  1490. /***/ },
  1491. /* 45 */
  1492. /***/ function(module, exports) {
  1493. module.exports = require("babel-runtime/core-js/object/keys");
  1494. /***/ },
  1495. /* 46 */
  1496. /***/ function(module, exports) {
  1497. module.exports = require("babel-runtime/helpers/get");
  1498. /***/ },
  1499. /* 47 */
  1500. /***/ function(module, exports) {
  1501. module.exports = require("chance");
  1502. /***/ },
  1503. /* 48 */
  1504. /***/ function(module, exports) {
  1505. module.exports = require("esprima");
  1506. /***/ },
  1507. /* 49 */
  1508. /***/ function(module, exports) {
  1509. module.exports = require("lodash");
  1510. /***/ },
  1511. /* 50 */
  1512. /***/ function(module, exports) {
  1513. module.exports = require("path");
  1514. /***/ },
  1515. /* 51 */
  1516. /***/ function(module, exports, __webpack_require__) {
  1517. "use strict";
  1518. "use strict";
  1519. var _classCallCheck2 = __webpack_require__(0);
  1520. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1521. var _createClass2 = __webpack_require__(1);
  1522. var _createClass3 = _interopRequireDefault(_createClass2);
  1523. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1524. var tslib_1 = __webpack_require__(3);
  1525. var inversify_1 = __webpack_require__(2);
  1526. var ServiceIdentifiers_1 = __webpack_require__(4);
  1527. var esprima = __webpack_require__(48);
  1528. var escodegen = __webpack_require__(26);
  1529. var JavaScriptObfuscatorInternal = JavaScriptObfuscatorInternal_1 = function () {
  1530. function JavaScriptObfuscatorInternal(obfuscator, sourceMapCorrector, options) {
  1531. (0, _classCallCheck3.default)(this, JavaScriptObfuscatorInternal);
  1532. this.obfuscator = obfuscator;
  1533. this.sourceMapCorrector = sourceMapCorrector;
  1534. this.options = options;
  1535. }
  1536. (0, _createClass3.default)(JavaScriptObfuscatorInternal, [{
  1537. key: "generateCode",
  1538. value: function generateCode(sourceCode, astTree) {
  1539. var escodegenParams = tslib_1.__assign({}, JavaScriptObfuscatorInternal_1.escodegenParams);
  1540. if (this.options.sourceMap) {
  1541. escodegenParams.sourceMap = 'sourceMap';
  1542. escodegenParams.sourceContent = sourceCode;
  1543. }
  1544. escodegenParams.format = {
  1545. compact: this.options.compact
  1546. };
  1547. var generatorOutput = escodegen.generate(astTree, escodegenParams);
  1548. generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
  1549. return generatorOutput;
  1550. }
  1551. }, {
  1552. key: "getObfuscationResult",
  1553. value: function getObfuscationResult(generatorOutput) {
  1554. return this.sourceMapCorrector.correct(generatorOutput.code, generatorOutput.map);
  1555. }
  1556. }, {
  1557. key: "obfuscate",
  1558. value: function obfuscate(sourceCode) {
  1559. var astTree = esprima.parse(sourceCode, JavaScriptObfuscatorInternal_1.esprimaParams);
  1560. var obfuscatedAstTree = this.obfuscator.obfuscateAstTree(astTree);
  1561. var generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
  1562. return this.getObfuscationResult(generatorOutput);
  1563. }
  1564. }]);
  1565. return JavaScriptObfuscatorInternal;
  1566. }();
  1567. JavaScriptObfuscatorInternal.escodegenParams = {
  1568. verbatim: 'x-verbatim-property',
  1569. sourceMapWithCode: true
  1570. };
  1571. JavaScriptObfuscatorInternal.esprimaParams = {
  1572. loc: true
  1573. };
  1574. JavaScriptObfuscatorInternal = JavaScriptObfuscatorInternal_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object])], JavaScriptObfuscatorInternal);
  1575. exports.JavaScriptObfuscatorInternal = JavaScriptObfuscatorInternal;
  1576. var JavaScriptObfuscatorInternal_1;
  1577. /***/ },
  1578. /* 52 */
  1579. /***/ function(module, exports, __webpack_require__) {
  1580. "use strict";
  1581. "use strict";
  1582. var _classCallCheck2 = __webpack_require__(0);
  1583. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1584. var _createClass2 = __webpack_require__(1);
  1585. var _createClass3 = _interopRequireDefault(_createClass2);
  1586. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1587. var tslib_1 = __webpack_require__(3);
  1588. var inversify_1 = __webpack_require__(2);
  1589. var Initializable_1 = __webpack_require__(9);
  1590. var ObfuscationResult = function () {
  1591. function ObfuscationResult() {
  1592. (0, _classCallCheck3.default)(this, ObfuscationResult);
  1593. }
  1594. (0, _createClass3.default)(ObfuscationResult, [{
  1595. key: "initialize",
  1596. value: function initialize(obfuscatedCode, sourceMap) {
  1597. this.obfuscatedCode = obfuscatedCode;
  1598. this.sourceMap = sourceMap;
  1599. }
  1600. }, {
  1601. key: "getObfuscatedCode",
  1602. value: function getObfuscatedCode() {
  1603. return this.obfuscatedCode;
  1604. }
  1605. }, {
  1606. key: "getSourceMap",
  1607. value: function getSourceMap() {
  1608. return this.sourceMap;
  1609. }
  1610. }, {
  1611. key: "toString",
  1612. value: function toString() {
  1613. return this.obfuscatedCode;
  1614. }
  1615. }]);
  1616. return ObfuscationResult;
  1617. }();
  1618. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "obfuscatedCode", void 0);
  1619. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "sourceMap", void 0);
  1620. ObfuscationResult = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], ObfuscationResult);
  1621. exports.ObfuscationResult = ObfuscationResult;
  1622. /***/ },
  1623. /* 53 */
  1624. /***/ function(module, exports, __webpack_require__) {
  1625. "use strict";
  1626. "use strict";
  1627. var _map = __webpack_require__(12);
  1628. var _map2 = _interopRequireDefault(_map);
  1629. var _defineProperty2 = __webpack_require__(134);
  1630. var _defineProperty3 = _interopRequireDefault(_defineProperty2);
  1631. var _classCallCheck2 = __webpack_require__(0);
  1632. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1633. var _createClass2 = __webpack_require__(1);
  1634. var _createClass3 = _interopRequireDefault(_createClass2);
  1635. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1636. var tslib_1 = __webpack_require__(3);
  1637. var inversify_1 = __webpack_require__(2);
  1638. var ServiceIdentifiers_1 = __webpack_require__(4);
  1639. var estraverse = __webpack_require__(13);
  1640. var NodeTransformers_1 = __webpack_require__(41);
  1641. var NodeType_1 = __webpack_require__(17);
  1642. var ObfuscationEvents_1 = __webpack_require__(21);
  1643. var VisitorDirection_1 = __webpack_require__(82);
  1644. var Node_1 = __webpack_require__(10);
  1645. var NodeUtils_1 = __webpack_require__(15);
  1646. var Obfuscator = Obfuscator_1 = function () {
  1647. function Obfuscator(stackTraceAnalyzer, obfuscationEventEmitter, customNodeGroupStorage, nodeTransformersFactory, options) {
  1648. (0, _classCallCheck3.default)(this, Obfuscator);
  1649. this.stackTraceAnalyzer = stackTraceAnalyzer;
  1650. this.obfuscationEventEmitter = obfuscationEventEmitter;
  1651. this.customNodeGroupStorage = customNodeGroupStorage;
  1652. this.nodeTransformersFactory = nodeTransformersFactory;
  1653. this.options = options;
  1654. }
  1655. (0, _createClass3.default)(Obfuscator, [{
  1656. key: "obfuscateAstTree",
  1657. value: function obfuscateAstTree(astTree) {
  1658. var _this = this;
  1659. if (Node_1.Node.isProgramNode(astTree) && !astTree.body.length) {
  1660. return astTree;
  1661. }
  1662. NodeUtils_1.NodeUtils.parentize(astTree);
  1663. var stackTraceData = this.stackTraceAnalyzer.analyze(astTree.body);
  1664. this.customNodeGroupStorage.getStorage().forEach(function (customNodeGroup) {
  1665. customNodeGroup.initialize();
  1666. _this.obfuscationEventEmitter.once(customNodeGroup.getAppendEvent(), customNodeGroup.appendCustomNodes.bind(customNodeGroup));
  1667. });
  1668. this.obfuscationEventEmitter.emit(ObfuscationEvents_1.ObfuscationEvents.BeforeObfuscation, astTree, stackTraceData);
  1669. if (this.options.controlFlowFlattening) {
  1670. this.transformAstTree(astTree, VisitorDirection_1.VisitorDirection.leave, this.nodeTransformersFactory(Obfuscator_1.nodeControlFlowTransformersMap));
  1671. }
  1672. this.transformAstTree(astTree, VisitorDirection_1.VisitorDirection.enter, this.nodeTransformersFactory(Obfuscator_1.nodeObfuscatorsMap));
  1673. this.obfuscationEventEmitter.emit(ObfuscationEvents_1.ObfuscationEvents.AfterObfuscation, astTree, stackTraceData);
  1674. return astTree;
  1675. }
  1676. }, {
  1677. key: "transformAstTree",
  1678. value: function transformAstTree(astTree, direction, nodeTransformersConcreteFactory) {
  1679. estraverse.traverse(astTree, (0, _defineProperty3.default)({}, direction, function (node, parentNode) {
  1680. var nodeTransformers = nodeTransformersConcreteFactory(node.type);
  1681. nodeTransformers.forEach(function (nodeTransformer) {
  1682. nodeTransformer.transformNode(node, parentNode);
  1683. });
  1684. }));
  1685. }
  1686. }]);
  1687. return Obfuscator;
  1688. }();
  1689. Obfuscator.nodeControlFlowTransformersMap = new _map2.default([[NodeType_1.NodeType.FunctionDeclaration, [NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer]], [NodeType_1.NodeType.FunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer]]]);
  1690. Obfuscator.nodeObfuscatorsMap = new _map2.default([[NodeType_1.NodeType.ArrowFunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionObfuscator]], [NodeType_1.NodeType.ClassDeclaration, [NodeTransformers_1.NodeTransformers.FunctionDeclarationObfuscator]], [NodeType_1.NodeType.CatchClause, [NodeTransformers_1.NodeTransformers.CatchClauseObfuscator]], [NodeType_1.NodeType.FunctionDeclaration, [NodeTransformers_1.NodeTransformers.FunctionDeclarationObfuscator, NodeTransformers_1.NodeTransformers.FunctionObfuscator]], [NodeType_1.NodeType.FunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionObfuscator]], [NodeType_1.NodeType.MemberExpression, [NodeTransformers_1.NodeTransformers.MemberExpressionObfuscator]], [NodeType_1.NodeType.MethodDefinition, [NodeTransformers_1.NodeTransformers.MethodDefinitionObfuscator]], [NodeType_1.NodeType.ObjectExpression, [NodeTransformers_1.NodeTransformers.ObjectExpressionObfuscator]], [NodeType_1.NodeType.VariableDeclaration, [NodeTransformers_1.NodeTransformers.VariableDeclarationObfuscator]], [NodeType_1.NodeType.LabeledStatement, [NodeTransformers_1.NodeTransformers.LabeledStatementObfuscator]], [NodeType_1.NodeType.Literal, [NodeTransformers_1.NodeTransformers.LiteralObfuscator]]]);
  1691. Obfuscator = Obfuscator_1 = 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['IStorage<ICustomNodeGroup>'])), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<INodeTransformer[]>'])), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Function, Object])], Obfuscator);
  1692. exports.Obfuscator = Obfuscator;
  1693. var Obfuscator_1;
  1694. /***/ },
  1695. /* 54 */
  1696. /***/ function(module, exports, __webpack_require__) {
  1697. "use strict";
  1698. "use strict";
  1699. var _classCallCheck2 = __webpack_require__(0);
  1700. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1701. var _createClass2 = __webpack_require__(1);
  1702. var _createClass3 = _interopRequireDefault(_createClass2);
  1703. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1704. var tslib_1 = __webpack_require__(3);
  1705. var inversify_1 = __webpack_require__(2);
  1706. var ServiceIdentifiers_1 = __webpack_require__(4);
  1707. var SourceMapMode_1 = __webpack_require__(27);
  1708. var CryptUtils_1 = __webpack_require__(32);
  1709. var SourceMapCorrector = function () {
  1710. function SourceMapCorrector(obfuscationResultFactory, options) {
  1711. (0, _classCallCheck3.default)(this, SourceMapCorrector);
  1712. this.obfuscationResultFactory = obfuscationResultFactory;
  1713. this.options = options;
  1714. }
  1715. (0, _createClass3.default)(SourceMapCorrector, [{
  1716. key: "correct",
  1717. value: function correct(obfuscatedCode, sourceMap) {
  1718. return this.obfuscationResultFactory(this.correctObfuscatedCode(obfuscatedCode, sourceMap), sourceMap);
  1719. }
  1720. }, {
  1721. key: "correctObfuscatedCode",
  1722. value: function correctObfuscatedCode(obfuscatedCode, sourceMap) {
  1723. if (!sourceMap) {
  1724. return obfuscatedCode;
  1725. }
  1726. var sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
  1727. var sourceMappingUrl = '//# sourceMappingURL=';
  1728. switch (this.options.sourceMapMode) {
  1729. case SourceMapMode_1.SourceMapMode.Inline:
  1730. sourceMappingUrl += "data:application/json;base64," + CryptUtils_1.CryptUtils.btoa(sourceMap);
  1731. break;
  1732. case SourceMapMode_1.SourceMapMode.Separate:
  1733. default:
  1734. if (!sourceMapUrl) {
  1735. return obfuscatedCode;
  1736. }
  1737. sourceMappingUrl += sourceMapUrl;
  1738. break;
  1739. }
  1740. return obfuscatedCode + "\n" + sourceMappingUrl;
  1741. }
  1742. }]);
  1743. return SourceMapCorrector;
  1744. }();
  1745. 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.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], SourceMapCorrector);
  1746. exports.SourceMapCorrector = SourceMapCorrector;
  1747. /***/ },
  1748. /* 55 */
  1749. /***/ function(module, exports, __webpack_require__) {
  1750. "use strict";
  1751. "use strict";
  1752. var _classCallCheck2 = __webpack_require__(0);
  1753. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1754. var _createClass2 = __webpack_require__(1);
  1755. var _createClass3 = _interopRequireDefault(_createClass2);
  1756. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1757. var fs = __webpack_require__(139);
  1758. var mkdirp = __webpack_require__(140);
  1759. var path = __webpack_require__(50);
  1760. var CLIUtils = function () {
  1761. function CLIUtils() {
  1762. (0, _classCallCheck3.default)(this, CLIUtils);
  1763. }
  1764. (0, _createClass3.default)(CLIUtils, null, [{
  1765. key: "getOutputCodePath",
  1766. value: function getOutputCodePath(outputPath, inputPath) {
  1767. if (outputPath) {
  1768. return outputPath;
  1769. }
  1770. return inputPath.split('.').map(function (value, index) {
  1771. return index === 0 ? value + "-obfuscated" : value;
  1772. }).join('.');
  1773. }
  1774. }, {
  1775. key: "getOutputSourceMapPath",
  1776. value: function getOutputSourceMapPath(outputCodePath) {
  1777. var sourceMapFileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  1778. if (sourceMapFileName) {
  1779. outputCodePath = outputCodePath.substr(0, outputCodePath.lastIndexOf('/')) + "/" + sourceMapFileName;
  1780. }
  1781. if (!/\.js\.map$/.test(outputCodePath)) {
  1782. outputCodePath = outputCodePath.split('.')[0] + ".js.map";
  1783. } else if (/\.js$/.test(outputCodePath)) {
  1784. outputCodePath += '.map';
  1785. }
  1786. return outputCodePath;
  1787. }
  1788. }, {
  1789. key: "getPackageConfig",
  1790. value: function getPackageConfig() {
  1791. return JSON.parse(fs.readFileSync(path.join(path.dirname(fs.realpathSync(process.argv[1])), '../package.json'), CLIUtils.encoding));
  1792. }
  1793. }, {
  1794. key: "isFilePath",
  1795. value: function isFilePath(filePath) {
  1796. try {
  1797. return fs.statSync(filePath).isFile();
  1798. } catch (e) {
  1799. return false;
  1800. }
  1801. }
  1802. }, {
  1803. key: "readFile",
  1804. value: function readFile(inputPath) {
  1805. return fs.readFileSync(inputPath, CLIUtils.encoding);
  1806. }
  1807. }, {
  1808. key: "validateInputPath",
  1809. value: function validateInputPath(inputPath) {
  1810. if (!CLIUtils.isFilePath(inputPath)) {
  1811. throw new ReferenceError("Given input path must be a valid file path");
  1812. }
  1813. if (!CLIUtils.availableInputExtensions.includes(path.extname(inputPath))) {
  1814. throw new ReferenceError("Input file must have .js extension");
  1815. }
  1816. }
  1817. }, {
  1818. key: "writeFile",
  1819. value: function writeFile(outputPath, data) {
  1820. mkdirp.sync(path.dirname(outputPath));
  1821. fs.writeFileSync(outputPath, data, {
  1822. encoding: CLIUtils.encoding
  1823. });
  1824. }
  1825. }]);
  1826. return CLIUtils;
  1827. }();
  1828. CLIUtils.availableInputExtensions = ['.js'];
  1829. CLIUtils.encoding = 'utf8';
  1830. exports.CLIUtils = CLIUtils;
  1831. /***/ },
  1832. /* 56 */
  1833. /***/ function(module, exports, __webpack_require__) {
  1834. "use strict";
  1835. "use strict";
  1836. var _keys = __webpack_require__(45);
  1837. var _keys2 = _interopRequireDefault(_keys);
  1838. var _classCallCheck2 = __webpack_require__(0);
  1839. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1840. var _createClass2 = __webpack_require__(1);
  1841. var _createClass3 = _interopRequireDefault(_createClass2);
  1842. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1843. var tslib_1 = __webpack_require__(3);
  1844. var commander = __webpack_require__(137);
  1845. var path = __webpack_require__(50);
  1846. var SourceMapMode_1 = __webpack_require__(27);
  1847. var StringArrayEncoding_1 = __webpack_require__(30);
  1848. var Default_1 = __webpack_require__(42);
  1849. var CLIUtils_1 = __webpack_require__(55);
  1850. var JavaScriptObfuscator_1 = __webpack_require__(23);
  1851. var JavaScriptObfuscatorCLI = function () {
  1852. function JavaScriptObfuscatorCLI(argv) {
  1853. (0, _classCallCheck3.default)(this, JavaScriptObfuscatorCLI);
  1854. this.data = '';
  1855. this.rawArguments = argv;
  1856. this.arguments = this.rawArguments.slice(2);
  1857. }
  1858. (0, _createClass3.default)(JavaScriptObfuscatorCLI, [{
  1859. key: "run",
  1860. value: function run() {
  1861. this.configureCommands();
  1862. if (!this.arguments.length || this.arguments.includes('--help')) {
  1863. this.commands.outputHelp();
  1864. return;
  1865. }
  1866. this.inputPath = this.arguments[0];
  1867. CLIUtils_1.CLIUtils.validateInputPath(this.inputPath);
  1868. this.getData();
  1869. this.processData();
  1870. }
  1871. }, {
  1872. key: "buildOptions",
  1873. value: function buildOptions() {
  1874. var inputOptions = {};
  1875. var availableOptions = (0, _keys2.default)(Default_1.DEFAULT_PRESET);
  1876. for (var option in this.commands) {
  1877. if (!this.commands.hasOwnProperty(option)) {
  1878. continue;
  1879. }
  1880. if (!availableOptions.includes(option)) {
  1881. continue;
  1882. }
  1883. inputOptions[option] = this.commands[option];
  1884. }
  1885. return tslib_1.__assign({}, Default_1.DEFAULT_PRESET, inputOptions);
  1886. }
  1887. }, {
  1888. key: "configureCommands",
  1889. value: function configureCommands() {
  1890. this.commands = new commander.Command().version(JavaScriptObfuscatorCLI.getBuildVersion(), '-v, --version').usage('<inputPath> [options]').option('-o, --output <path>', 'Output path for obfuscated code').option('--compact <boolean>', 'Disable one line output code compacting', JavaScriptObfuscatorCLI.parseBoolean).option('--controlFlowFlattening <boolean>', 'Enables control flow flattening', JavaScriptObfuscatorCLI.parseBoolean).option('--controlFlowFlatteningThreshold <number>', 'The probability that the control flow flattening transformation will be applied to the node', parseFloat).option('--debugProtection <boolean>', 'Disable browser Debug panel (can cause DevTools enabled browser freeze)', JavaScriptObfuscatorCLI.parseBoolean).option('--debugProtectionInterval <boolean>', 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)', JavaScriptObfuscatorCLI.parseBoolean).option('--disableConsoleOutput <boolean>', 'Allow console.log, console.info, console.error and console.warn messages output into browser console', JavaScriptObfuscatorCLI.parseBoolean).option('--domainLock <list>', 'Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)', function (val) {
  1891. return val.split(',');
  1892. }).option('--reservedNames <list>', 'Disable obfuscation of variable names, function names and names of function parameters that match the passed RegExp patterns (comma separated)', function (val) {
  1893. return val.split(',');
  1894. }).option('--rotateStringArray <boolean>', 'Disable rotation of unicode array values during obfuscation', JavaScriptObfuscatorCLI.parseBoolean).option('--seed <number>', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat).option('--selfDefending <boolean>', 'Disables self-defending for obfuscated code', JavaScriptObfuscatorCLI.parseBoolean).option('--sourceMap <boolean>', 'Enables source map generation', JavaScriptObfuscatorCLI.parseBoolean).option('--sourceMapBaseUrl <string>', 'Sets base url to the source map import url when `--sourceMapMode=separate`').option('--sourceMapFileName <string>', 'Sets file name for output source map when `--sourceMapMode=separate`').option('--sourceMapMode <string> [inline, separate]', 'Specify source map output mode', JavaScriptObfuscatorCLI.parseSourceMapMode).option('--stringArray <boolean>', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', JavaScriptObfuscatorCLI.parseBoolean).option('--stringArrayEncoding <boolean|string> [true, false, base64, rc4]', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed', JavaScriptObfuscatorCLI.parseStringArrayEncoding).option('--stringArrayThreshold <number>', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat).option('--unicodeEscapeSequence <boolean>', 'Allows to enable/disable string conversion to unicode escape sequence', JavaScriptObfuscatorCLI.parseBoolean).parse(this.rawArguments);
  1895. this.commands.on('--help', function () {
  1896. console.log(' Examples:\n');
  1897. console.log(' %> javascript-obfuscator in.js --compact true --selfDefending false');
  1898. console.log(' %> javascript-obfuscator in.js --output out.js --compact true --selfDefending false');
  1899. console.log('');
  1900. });
  1901. }
  1902. }, {
  1903. key: "getData",
  1904. value: function getData() {
  1905. this.data = CLIUtils_1.CLIUtils.readFile(this.inputPath);
  1906. }
  1907. }, {
  1908. key: "processData",
  1909. value: function processData() {
  1910. var options = this.buildOptions();
  1911. var outputCodePath = CLIUtils_1.CLIUtils.getOutputCodePath(this.commands.output, this.inputPath);
  1912. if (options.sourceMap) {
  1913. this.processDataWithSourceMap(outputCodePath, options);
  1914. } else {
  1915. this.processDataWithoutSourceMap(outputCodePath, options);
  1916. }
  1917. }
  1918. }, {
  1919. key: "processDataWithoutSourceMap",
  1920. value: function processDataWithoutSourceMap(outputCodePath, options) {
  1921. var obfuscatedCode = JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(this.data, options).getObfuscatedCode();
  1922. CLIUtils_1.CLIUtils.writeFile(outputCodePath, obfuscatedCode);
  1923. }
  1924. }, {
  1925. key: "processDataWithSourceMap",
  1926. value: function processDataWithSourceMap(outputCodePath, options) {
  1927. var outputSourceMapPath = CLIUtils_1.CLIUtils.getOutputSourceMapPath(outputCodePath, options.sourceMapFileName || '');
  1928. options.sourceMapFileName = path.basename(outputSourceMapPath);
  1929. var obfuscationResult = JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(this.data, options);
  1930. CLIUtils_1.CLIUtils.writeFile(outputCodePath, obfuscationResult.getObfuscatedCode());
  1931. if (options.sourceMapMode === 'separate' && obfuscationResult.getSourceMap()) {
  1932. CLIUtils_1.CLIUtils.writeFile(outputSourceMapPath, obfuscationResult.getSourceMap());
  1933. }
  1934. }
  1935. }], [{
  1936. key: "getBuildVersion",
  1937. value: function getBuildVersion() {
  1938. return CLIUtils_1.CLIUtils.getPackageConfig().version;
  1939. }
  1940. }, {
  1941. key: "parseBoolean",
  1942. value: function parseBoolean(value) {
  1943. return value === 'true' || value === '1';
  1944. }
  1945. }, {
  1946. key: "parseSourceMapMode",
  1947. value: function parseSourceMapMode(value) {
  1948. var availableMode = (0, _keys2.default)(SourceMapMode_1.SourceMapMode).some(function (key) {
  1949. return SourceMapMode_1.SourceMapMode[key] === value;
  1950. });
  1951. if (!availableMode) {
  1952. throw new ReferenceError('Invalid value of `--sourceMapMode` option');
  1953. }
  1954. return value;
  1955. }
  1956. }, {
  1957. key: "parseStringArrayEncoding",
  1958. value: function parseStringArrayEncoding(value) {
  1959. switch (value) {
  1960. case 'true':
  1961. case '1':
  1962. case StringArrayEncoding_1.StringArrayEncoding.base64:
  1963. return true;
  1964. case StringArrayEncoding_1.StringArrayEncoding.rc4:
  1965. return StringArrayEncoding_1.StringArrayEncoding.rc4;
  1966. default:
  1967. return false;
  1968. }
  1969. }
  1970. }]);
  1971. return JavaScriptObfuscatorCLI;
  1972. }();
  1973. exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI;
  1974. /***/ },
  1975. /* 57 */
  1976. /***/ function(module, exports, __webpack_require__) {
  1977. "use strict";
  1978. "use strict";
  1979. var _classCallCheck2 = __webpack_require__(0);
  1980. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  1981. var _createClass2 = __webpack_require__(1);
  1982. var _createClass3 = _interopRequireDefault(_createClass2);
  1983. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1984. var inversify_1 = __webpack_require__(2);
  1985. var ServiceIdentifiers_1 = __webpack_require__(4);
  1986. var CustomNodesModule_1 = __webpack_require__(58);
  1987. var NodeControlFlowTransformersModule_1 = __webpack_require__(59);
  1988. var NodeObfuscatorsModule_1 = __webpack_require__(60);
  1989. var NodeTransformersModule_1 = __webpack_require__(61);
  1990. var StackTraceAnalyzerModule_1 = __webpack_require__(62);
  1991. var StoragesModule_1 = __webpack_require__(63);
  1992. var JavaScriptObfuscatorInternal_1 = __webpack_require__(51);
  1993. var ObfuscationEventEmitter_1 = __webpack_require__(83);
  1994. var ObfuscationResult_1 = __webpack_require__(52);
  1995. var Obfuscator_1 = __webpack_require__(53);
  1996. var Options_1 = __webpack_require__(100);
  1997. var SourceMapCorrector_1 = __webpack_require__(54);
  1998. var InversifyContainerFacade = function () {
  1999. function InversifyContainerFacade(options) {
  2000. (0, _classCallCheck3.default)(this, InversifyContainerFacade);
  2001. this.container = new inversify_1.Container();
  2002. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions).toDynamicValue(function () {
  2003. return new Options_1.Options(options);
  2004. }).inSingletonScope();
  2005. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator).to(JavaScriptObfuscatorInternal_1.JavaScriptObfuscatorInternal).inSingletonScope();
  2006. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscator).to(Obfuscator_1.Obfuscator).inSingletonScope();
  2007. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult).to(ObfuscationResult_1.ObfuscationResult).inSingletonScope();
  2008. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscationResult>']).toFactory(function (context) {
  2009. return function (obfuscatedCode, sourceMap) {
  2010. var obfuscationResult = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult);
  2011. obfuscationResult.initialize(obfuscatedCode, sourceMap);
  2012. return obfuscationResult;
  2013. };
  2014. });
  2015. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector).to(SourceMapCorrector_1.SourceMapCorrector).inSingletonScope();
  2016. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter).to(ObfuscationEventEmitter_1.ObfuscationEventEmitter).inSingletonScope();
  2017. this.container.load(StoragesModule_1.storagesModule);
  2018. this.container.load(StackTraceAnalyzerModule_1.stackTraceAnalyzerModule);
  2019. this.container.load(CustomNodesModule_1.customNodesModule);
  2020. this.container.load(NodeTransformersModule_1.nodeTransformersModule);
  2021. this.container.load(NodeControlFlowTransformersModule_1.nodeControlFlowTransformersModule);
  2022. this.container.load(NodeObfuscatorsModule_1.nodeObfuscatorsModule);
  2023. }
  2024. (0, _createClass3.default)(InversifyContainerFacade, [{
  2025. key: "get",
  2026. value: function get(serviceIdentifier) {
  2027. return this.container.get(serviceIdentifier);
  2028. }
  2029. }, {
  2030. key: "getNamed",
  2031. value: function getNamed(serviceIdentifier, named) {
  2032. return this.container.getNamed(serviceIdentifier, named);
  2033. }
  2034. }]);
  2035. return InversifyContainerFacade;
  2036. }();
  2037. exports.InversifyContainerFacade = InversifyContainerFacade;
  2038. /***/ },
  2039. /* 58 */
  2040. /***/ function(module, exports, __webpack_require__) {
  2041. "use strict";
  2042. "use strict";
  2043. var inversify_1 = __webpack_require__(2);
  2044. var ServiceIdentifiers_1 = __webpack_require__(4);
  2045. var CustomNodes_1 = __webpack_require__(20);
  2046. var CustomNodeGroups_1 = __webpack_require__(39);
  2047. var ConsoleOutputCustomNodeGroup_1 = __webpack_require__(65);
  2048. var DebugProtectionCustomNodeGroup_1 = __webpack_require__(72);
  2049. var DomainLockCustomNodeGroup_1 = __webpack_require__(74);
  2050. var SelfDefendingCustomNodeGroup_1 = __webpack_require__(77);
  2051. var StringArrayCustomNodeGroup_1 = __webpack_require__(81);
  2052. var BinaryExpressionFunctionNode_1 = __webpack_require__(66);
  2053. var ControlFlowStorageCallNode_1 = __webpack_require__(67);
  2054. var ControlFlowStorageNode_1 = __webpack_require__(68);
  2055. var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(64);
  2056. var DebugProtectionFunctionCallNode_1 = __webpack_require__(69);
  2057. var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(70);
  2058. var DebugProtectionFunctionNode_1 = __webpack_require__(71);
  2059. var DomainLockNode_1 = __webpack_require__(73);
  2060. var NodeCallsControllerFunctionNode_1 = __webpack_require__(75);
  2061. var SelfDefendingUnicodeNode_1 = __webpack_require__(76);
  2062. var StringArrayCallsWrapper_1 = __webpack_require__(78);
  2063. var StringArrayNode_1 = __webpack_require__(79);
  2064. var StringArrayRotateFunctionNode_1 = __webpack_require__(80);
  2065. exports.customNodesModule = new inversify_1.ContainerModule(function (bind) {
  2066. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode).whenTargetNamed(CustomNodes_1.CustomNodes.BinaryExpressionFunctionNode);
  2067. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ControlFlowStorageCallNode_1.ControlFlowStorageCallNode).whenTargetNamed(CustomNodes_1.CustomNodes.ControlFlowStorageCallNode);
  2068. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ControlFlowStorageNode_1.ControlFlowStorageNode).whenTargetNamed(CustomNodes_1.CustomNodes.ControlFlowStorageNode);
  2069. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode).whenTargetNamed(CustomNodes_1.CustomNodes.ConsoleOutputDisableExpressionNode);
  2070. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionCallNode_1.DebugProtectionFunctionCallNode).whenTargetNamed(CustomNodes_1.CustomNodes.DebugProtectionFunctionCallNode);
  2071. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionIntervalNode_1.DebugProtectionFunctionIntervalNode).whenTargetNamed(CustomNodes_1.CustomNodes.DebugProtectionFunctionIntervalNode);
  2072. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionNode_1.DebugProtectionFunctionNode).whenTargetNamed(CustomNodes_1.CustomNodes.DebugProtectionFunctionNode);
  2073. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DomainLockNode_1.DomainLockNode).whenTargetNamed(CustomNodes_1.CustomNodes.DomainLockNode);
  2074. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(NodeCallsControllerFunctionNode_1.NodeCallsControllerFunctionNode).whenTargetNamed(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode);
  2075. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(SelfDefendingUnicodeNode_1.SelfDefendingUnicodeNode).whenTargetNamed(CustomNodes_1.CustomNodes.SelfDefendingUnicodeNode);
  2076. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayCallsWrapper_1.StringArrayCallsWrapper).whenTargetNamed(CustomNodes_1.CustomNodes.StringArrayCallsWrapper);
  2077. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayNode_1.StringArrayNode).whenTargetNamed(CustomNodes_1.CustomNodes.StringArrayNode);
  2078. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayRotateFunctionNode_1.StringArrayRotateFunctionNode).whenTargetNamed(CustomNodes_1.CustomNodes.StringArrayRotateFunctionNode);
  2079. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(ConsoleOutputCustomNodeGroup_1.ConsoleOutputCustomNodeGroup).whenTargetNamed(CustomNodeGroups_1.CustomNodeGroups.ConsoleOutputCustomNodeGroup);
  2080. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DebugProtectionCustomNodeGroup_1.DebugProtectionCustomNodeGroup).whenTargetNamed(CustomNodeGroups_1.CustomNodeGroups.DebugProtectionCustomNodeGroup);
  2081. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DomainLockCustomNodeGroup_1.DomainLockCustomNodeGroup).whenTargetNamed(CustomNodeGroups_1.CustomNodeGroups.DomainLockCustomNodeGroup);
  2082. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(SelfDefendingCustomNodeGroup_1.SelfDefendingCustomNodeGroup).whenTargetNamed(CustomNodeGroups_1.CustomNodeGroups.SelfDefendingCustomNodeGroup);
  2083. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(StringArrayCustomNodeGroup_1.StringArrayCustomNodeGroup).whenTargetNamed(CustomNodeGroups_1.CustomNodeGroups.StringArrayCustomNodeGroup);
  2084. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<ICustomNode>']).toFactory(function (context) {
  2085. return function (customNodeName) {
  2086. return context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode, customNodeName);
  2087. };
  2088. });
  2089. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<ICustomNodeGroup>']).toFactory(function (context) {
  2090. return function (customNodeGroupName) {
  2091. return context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup, customNodeGroupName);
  2092. };
  2093. });
  2094. });
  2095. /***/ },
  2096. /* 59 */
  2097. /***/ function(module, exports, __webpack_require__) {
  2098. "use strict";
  2099. "use strict";
  2100. var _map = __webpack_require__(12);
  2101. var _map2 = _interopRequireDefault(_map);
  2102. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2103. var inversify_1 = __webpack_require__(2);
  2104. var ServiceIdentifiers_1 = __webpack_require__(4);
  2105. var NodeControlFlowReplacers_1 = __webpack_require__(40);
  2106. var BinaryExpressionControlFlowReplacer_1 = __webpack_require__(86);
  2107. exports.nodeControlFlowTransformersModule = new inversify_1.ContainerModule(function (bind) {
  2108. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer).whenTargetNamed(NodeControlFlowReplacers_1.NodeControlFlowReplacers.BinaryExpressionControlFlowReplacer);
  2109. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IControlFlowReplacer>']).toFactory(function (context) {
  2110. var cache = new _map2.default();
  2111. return function (replacerName) {
  2112. if (cache.has(replacerName)) {
  2113. return cache.get(replacerName);
  2114. }
  2115. var controlFlowReplacer = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer, replacerName);
  2116. cache.set(replacerName, controlFlowReplacer);
  2117. return controlFlowReplacer;
  2118. };
  2119. });
  2120. });
  2121. /***/ },
  2122. /* 60 */
  2123. /***/ function(module, exports, __webpack_require__) {
  2124. "use strict";
  2125. "use strict";
  2126. var _map = __webpack_require__(12);
  2127. var _map2 = _interopRequireDefault(_map);
  2128. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2129. var inversify_1 = __webpack_require__(2);
  2130. var ServiceIdentifiers_1 = __webpack_require__(4);
  2131. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  2132. var BooleanLiteralReplacer_1 = __webpack_require__(96);
  2133. var IdentifierReplacer_1 = __webpack_require__(97);
  2134. var NumberLiteralReplacer_1 = __webpack_require__(98);
  2135. var StringLiteralReplacer_1 = __webpack_require__(99);
  2136. exports.nodeObfuscatorsModule = new inversify_1.ContainerModule(function (bind) {
  2137. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatorReplacer).to(BooleanLiteralReplacer_1.BooleanLiteralReplacer).whenTargetNamed(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.BooleanReplacer);
  2138. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatorReplacer).to(IdentifierReplacer_1.IdentifierReplacer).whenTargetNamed(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.IdentifierReplacer);
  2139. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatorReplacer).to(NumberLiteralReplacer_1.NumberLiteralReplacer).whenTargetNamed(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.NumberLiteralReplacer);
  2140. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatorReplacer).to(StringLiteralReplacer_1.StringLiteralReplacer).whenTargetNamed(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.StringLiteralReplacer);
  2141. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>']).toFactory(function (context) {
  2142. var cache = new _map2.default();
  2143. return function (replacerName) {
  2144. if (cache.has(replacerName)) {
  2145. return cache.get(replacerName);
  2146. }
  2147. var obfuscationReplacer = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatorReplacer, replacerName);
  2148. cache.set(replacerName, obfuscationReplacer);
  2149. return obfuscationReplacer;
  2150. };
  2151. });
  2152. });
  2153. /***/ },
  2154. /* 61 */
  2155. /***/ function(module, exports, __webpack_require__) {
  2156. "use strict";
  2157. "use strict";
  2158. var _map = __webpack_require__(12);
  2159. var _map2 = _interopRequireDefault(_map);
  2160. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2161. var inversify_1 = __webpack_require__(2);
  2162. var ServiceIdentifiers_1 = __webpack_require__(4);
  2163. var NodeTransformers_1 = __webpack_require__(41);
  2164. var FunctionControlFlowTransformer_1 = __webpack_require__(84);
  2165. var CatchClauseObfuscator_1 = __webpack_require__(87);
  2166. var FunctionDeclarationObfuscator_1 = __webpack_require__(88);
  2167. var FunctionObfuscator_1 = __webpack_require__(89);
  2168. var LabeledStatementObfuscator_1 = __webpack_require__(90);
  2169. var LiteralObfuscator_1 = __webpack_require__(91);
  2170. var MemberExpressionObfuscator_1 = __webpack_require__(92);
  2171. var MethodDefinitionObfuscator_1 = __webpack_require__(93);
  2172. var ObjectExpressionObfuscator_1 = __webpack_require__(94);
  2173. var VariableDeclarationObfuscator_1 = __webpack_require__(95);
  2174. exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) {
  2175. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer);
  2176. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseObfuscator_1.CatchClauseObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.CatchClauseObfuscator);
  2177. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationObfuscator_1.FunctionDeclarationObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.FunctionDeclarationObfuscator);
  2178. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionObfuscator_1.FunctionObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.FunctionObfuscator);
  2179. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementObfuscator_1.LabeledStatementObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.LabeledStatementObfuscator);
  2180. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralObfuscator_1.LiteralObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.LiteralObfuscator);
  2181. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionObfuscator_1.MemberExpressionObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.MemberExpressionObfuscator);
  2182. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionObfuscator_1.MethodDefinitionObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.MethodDefinitionObfuscator);
  2183. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionObfuscator_1.ObjectExpressionObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.ObjectExpressionObfuscator);
  2184. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationObfuscator_1.VariableDeclarationObfuscator).whenTargetNamed(NodeTransformers_1.NodeTransformers.VariableDeclarationObfuscator);
  2185. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<INodeTransformer[]>']).toFactory(function (context) {
  2186. var cache = new _map2.default();
  2187. return function (nodeTransformersMap) {
  2188. return function (nodeType) {
  2189. var nodeTransformers = nodeTransformersMap.get(nodeType) || [];
  2190. var instancesArray = [];
  2191. nodeTransformers.forEach(function (transformer) {
  2192. var nodeTransformer = void 0;
  2193. if (cache.has(transformer)) {
  2194. nodeTransformer = cache.get(transformer);
  2195. } else {
  2196. nodeTransformer = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer, transformer);
  2197. cache.set(transformer, nodeTransformer);
  2198. }
  2199. instancesArray.push(nodeTransformer);
  2200. });
  2201. return instancesArray;
  2202. };
  2203. };
  2204. });
  2205. });
  2206. /***/ },
  2207. /* 62 */
  2208. /***/ function(module, exports, __webpack_require__) {
  2209. "use strict";
  2210. "use strict";
  2211. var _map = __webpack_require__(12);
  2212. var _map2 = _interopRequireDefault(_map);
  2213. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2214. var inversify_1 = __webpack_require__(2);
  2215. var ServiceIdentifiers_1 = __webpack_require__(4);
  2216. var CalleeDataExtractors_1 = __webpack_require__(38);
  2217. var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(104);
  2218. var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(105);
  2219. var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(106);
  2220. var StackTraceAnalyzer_1 = __webpack_require__(103);
  2221. exports.stackTraceAnalyzerModule = new inversify_1.ContainerModule(function (bind) {
  2222. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer).to(StackTraceAnalyzer_1.StackTraceAnalyzer).inSingletonScope();
  2223. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(CalleeDataExtractors_1.CalleeDataExtractors.FunctionDeclarationCalleeDataExtractor);
  2224. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractors_1.CalleeDataExtractors.FunctionExpressionCalleeDataExtractor);
  2225. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractors_1.CalleeDataExtractors.ObjectExpressionCalleeDataExtractor);
  2226. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<ICalleeDataExtractor>']).toFactory(function (context) {
  2227. var cache = new _map2.default();
  2228. return function (calleeDataExtractorName) {
  2229. if (cache.has(calleeDataExtractorName)) {
  2230. return cache.get(calleeDataExtractorName);
  2231. }
  2232. var calleeDataExtractor = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor, calleeDataExtractorName);
  2233. cache.set(calleeDataExtractorName, calleeDataExtractor);
  2234. return calleeDataExtractor;
  2235. };
  2236. });
  2237. });
  2238. /***/ },
  2239. /* 63 */
  2240. /***/ function(module, exports, __webpack_require__) {
  2241. "use strict";
  2242. "use strict";
  2243. var inversify_1 = __webpack_require__(2);
  2244. var ServiceIdentifiers_1 = __webpack_require__(4);
  2245. var ControlFlowStorage_1 = __webpack_require__(108);
  2246. var CustomNodeGroupStorage_1 = __webpack_require__(109);
  2247. var StringArrayStorage_1 = __webpack_require__(110);
  2248. exports.storagesModule = new inversify_1.ContainerModule(function (bind) {
  2249. bind(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<ICustomNodeGroup>']).to(CustomNodeGroupStorage_1.CustomNodeGroupStorage).inSingletonScope();
  2250. bind(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<ICustomNode>']).to(ControlFlowStorage_1.ControlFlowStorage);
  2251. bind(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<string>']).to(StringArrayStorage_1.StringArrayStorage).inSingletonScope();
  2252. bind(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IStorage<ICustomNode>>']).toFactory(function (context) {
  2253. return function () {
  2254. return context.container.get(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<ICustomNode>']);
  2255. };
  2256. });
  2257. });
  2258. /***/ },
  2259. /* 64 */
  2260. /***/ function(module, exports, __webpack_require__) {
  2261. "use strict";
  2262. "use strict";
  2263. var _getPrototypeOf = __webpack_require__(5);
  2264. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2265. var _classCallCheck2 = __webpack_require__(0);
  2266. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2267. var _createClass2 = __webpack_require__(1);
  2268. var _createClass3 = _interopRequireDefault(_createClass2);
  2269. var _possibleConstructorReturn2 = __webpack_require__(7);
  2270. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2271. var _inherits2 = __webpack_require__(6);
  2272. var _inherits3 = _interopRequireDefault(_inherits2);
  2273. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2274. var tslib_1 = __webpack_require__(3);
  2275. var inversify_1 = __webpack_require__(2);
  2276. var ServiceIdentifiers_1 = __webpack_require__(4);
  2277. var format = __webpack_require__(16);
  2278. var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(114);
  2279. var Initializable_1 = __webpack_require__(9);
  2280. var AbstractCustomNode_1 = __webpack_require__(14);
  2281. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2282. var ConsoleOutputDisableExpressionNode = function (_AbstractCustomNode_) {
  2283. (0, _inherits3.default)(ConsoleOutputDisableExpressionNode, _AbstractCustomNode_);
  2284. function ConsoleOutputDisableExpressionNode(options) {
  2285. (0, _classCallCheck3.default)(this, ConsoleOutputDisableExpressionNode);
  2286. return (0, _possibleConstructorReturn3.default)(this, (ConsoleOutputDisableExpressionNode.__proto__ || (0, _getPrototypeOf2.default)(ConsoleOutputDisableExpressionNode)).call(this, options));
  2287. }
  2288. (0, _createClass3.default)(ConsoleOutputDisableExpressionNode, [{
  2289. key: "initialize",
  2290. value: function initialize(callsControllerFunctionName) {
  2291. this.callsControllerFunctionName = callsControllerFunctionName;
  2292. }
  2293. }, {
  2294. key: "getTemplate",
  2295. value: function getTemplate() {
  2296. return format(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), {
  2297. consoleLogDisableFunctionName: RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName(),
  2298. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2299. });
  2300. }
  2301. }]);
  2302. return ConsoleOutputDisableExpressionNode;
  2303. }(AbstractCustomNode_1.AbstractCustomNode);
  2304. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ConsoleOutputDisableExpressionNode.prototype, "callsControllerFunctionName", void 0);
  2305. ConsoleOutputDisableExpressionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], ConsoleOutputDisableExpressionNode);
  2306. exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode;
  2307. /***/ },
  2308. /* 65 */
  2309. /***/ function(module, exports, __webpack_require__) {
  2310. "use strict";
  2311. "use strict";
  2312. var _map = __webpack_require__(12);
  2313. var _map2 = _interopRequireDefault(_map);
  2314. var _getPrototypeOf = __webpack_require__(5);
  2315. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2316. var _classCallCheck2 = __webpack_require__(0);
  2317. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2318. var _createClass2 = __webpack_require__(1);
  2319. var _createClass3 = _interopRequireDefault(_createClass2);
  2320. var _possibleConstructorReturn2 = __webpack_require__(7);
  2321. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2322. var _inherits2 = __webpack_require__(6);
  2323. var _inherits3 = _interopRequireDefault(_inherits2);
  2324. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2325. var tslib_1 = __webpack_require__(3);
  2326. var inversify_1 = __webpack_require__(2);
  2327. var ServiceIdentifiers_1 = __webpack_require__(4);
  2328. var Initializable_1 = __webpack_require__(9);
  2329. var CustomNodes_1 = __webpack_require__(20);
  2330. var ObfuscationEvents_1 = __webpack_require__(21);
  2331. var AbstractCustomNodeGroup_1 = __webpack_require__(25);
  2332. var NodeAppender_1 = __webpack_require__(24);
  2333. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2334. var ConsoleOutputCustomNodeGroup = function (_AbstractCustomNodeGr) {
  2335. (0, _inherits3.default)(ConsoleOutputCustomNodeGroup, _AbstractCustomNodeGr);
  2336. function ConsoleOutputCustomNodeGroup(customNodeFactory, obfuscationEventEmitter, options) {
  2337. (0, _classCallCheck3.default)(this, ConsoleOutputCustomNodeGroup);
  2338. var _this = (0, _possibleConstructorReturn3.default)(this, (ConsoleOutputCustomNodeGroup.__proto__ || (0, _getPrototypeOf2.default)(ConsoleOutputCustomNodeGroup)).call(this, options));
  2339. _this.appendEvent = ObfuscationEvents_1.ObfuscationEvents.BeforeObfuscation;
  2340. _this.customNodeFactory = customNodeFactory;
  2341. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  2342. return _this;
  2343. }
  2344. (0, _createClass3.default)(ConsoleOutputCustomNodeGroup, [{
  2345. key: "appendCustomNodes",
  2346. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  2347. var randomStackTraceIndex = NodeAppender_1.NodeAppender.getRandomStackTraceIndex(stackTraceData.length);
  2348. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.ConsoleOutputDisableExpressionNode, function (customNode) {
  2349. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  2350. });
  2351. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode, function (customNode) {
  2352. var targetBlockScope = void 0;
  2353. if (stackTraceData.length) {
  2354. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  2355. } else {
  2356. targetBlockScope = blockScopeNode;
  2357. }
  2358. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  2359. });
  2360. }
  2361. }, {
  2362. key: "initialize",
  2363. value: function initialize() {
  2364. this.customNodes = new _map2.default();
  2365. if (!this.options.disableConsoleOutput) {
  2366. return;
  2367. }
  2368. var callsControllerFunctionName = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName();
  2369. var consoleOutputDisableExpressionNode = this.customNodeFactory(CustomNodes_1.CustomNodes.ConsoleOutputDisableExpressionNode);
  2370. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode);
  2371. consoleOutputDisableExpressionNode.initialize(callsControllerFunctionName);
  2372. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2373. this.customNodes.set(CustomNodes_1.CustomNodes.ConsoleOutputDisableExpressionNode, consoleOutputDisableExpressionNode);
  2374. this.customNodes.set(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2375. }
  2376. }]);
  2377. return ConsoleOutputCustomNodeGroup;
  2378. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2379. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map2.default)], ConsoleOutputCustomNodeGroup.prototype, "customNodes", void 0);
  2380. 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.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ConsoleOutputCustomNodeGroup);
  2381. exports.ConsoleOutputCustomNodeGroup = ConsoleOutputCustomNodeGroup;
  2382. /***/ },
  2383. /* 66 */
  2384. /***/ function(module, exports, __webpack_require__) {
  2385. "use strict";
  2386. "use strict";
  2387. var _getPrototypeOf = __webpack_require__(5);
  2388. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2389. var _classCallCheck2 = __webpack_require__(0);
  2390. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2391. var _createClass2 = __webpack_require__(1);
  2392. var _createClass3 = _interopRequireDefault(_createClass2);
  2393. var _possibleConstructorReturn2 = __webpack_require__(7);
  2394. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2395. var _inherits2 = __webpack_require__(6);
  2396. var _inherits3 = _interopRequireDefault(_inherits2);
  2397. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2398. var tslib_1 = __webpack_require__(3);
  2399. var inversify_1 = __webpack_require__(2);
  2400. var ServiceIdentifiers_1 = __webpack_require__(4);
  2401. var format = __webpack_require__(16);
  2402. var Initializable_1 = __webpack_require__(9);
  2403. var BinaryExpressionFunctionTemplate_1 = __webpack_require__(115);
  2404. var AbstractCustomNode_1 = __webpack_require__(14);
  2405. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2406. var BinaryExpressionFunctionNode = function (_AbstractCustomNode_) {
  2407. (0, _inherits3.default)(BinaryExpressionFunctionNode, _AbstractCustomNode_);
  2408. function BinaryExpressionFunctionNode(options) {
  2409. (0, _classCallCheck3.default)(this, BinaryExpressionFunctionNode);
  2410. return (0, _possibleConstructorReturn3.default)(this, (BinaryExpressionFunctionNode.__proto__ || (0, _getPrototypeOf2.default)(BinaryExpressionFunctionNode)).call(this, options));
  2411. }
  2412. (0, _createClass3.default)(BinaryExpressionFunctionNode, [{
  2413. key: "initialize",
  2414. value: function initialize(operator) {
  2415. this.operator = operator;
  2416. }
  2417. }, {
  2418. key: "getTemplate",
  2419. value: function getTemplate() {
  2420. return format(BinaryExpressionFunctionTemplate_1.BinaryExpressionFunctionTemplate(), {
  2421. functionName: RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName(1),
  2422. operator: this.operator
  2423. });
  2424. }
  2425. }]);
  2426. return BinaryExpressionFunctionNode;
  2427. }(AbstractCustomNode_1.AbstractCustomNode);
  2428. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], BinaryExpressionFunctionNode.prototype, "operator", void 0);
  2429. BinaryExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], BinaryExpressionFunctionNode);
  2430. exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;
  2431. /***/ },
  2432. /* 67 */
  2433. /***/ function(module, exports, __webpack_require__) {
  2434. "use strict";
  2435. "use strict";
  2436. var _getPrototypeOf = __webpack_require__(5);
  2437. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2438. var _classCallCheck2 = __webpack_require__(0);
  2439. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2440. var _createClass2 = __webpack_require__(1);
  2441. var _createClass3 = _interopRequireDefault(_createClass2);
  2442. var _possibleConstructorReturn2 = __webpack_require__(7);
  2443. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2444. var _inherits2 = __webpack_require__(6);
  2445. var _inherits3 = _interopRequireDefault(_inherits2);
  2446. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2447. var tslib_1 = __webpack_require__(3);
  2448. var inversify_1 = __webpack_require__(2);
  2449. var ServiceIdentifiers_1 = __webpack_require__(4);
  2450. var format = __webpack_require__(16);
  2451. var Initializable_1 = __webpack_require__(9);
  2452. var ControlFlowStorageCallTemplate_1 = __webpack_require__(116);
  2453. var AbstractCustomNode_1 = __webpack_require__(14);
  2454. var ControlFlowStorageCallNode = function (_AbstractCustomNode_) {
  2455. (0, _inherits3.default)(ControlFlowStorageCallNode, _AbstractCustomNode_);
  2456. function ControlFlowStorageCallNode(options) {
  2457. (0, _classCallCheck3.default)(this, ControlFlowStorageCallNode);
  2458. return (0, _possibleConstructorReturn3.default)(this, (ControlFlowStorageCallNode.__proto__ || (0, _getPrototypeOf2.default)(ControlFlowStorageCallNode)).call(this, options));
  2459. }
  2460. (0, _createClass3.default)(ControlFlowStorageCallNode, [{
  2461. key: "initialize",
  2462. value: function initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {
  2463. this.controlFlowStorageName = controlFlowStorageName;
  2464. this.controlFlowStorageKey = controlFlowStorageKey;
  2465. this.leftValue = leftValue;
  2466. this.rightValue = rightValue;
  2467. }
  2468. }, {
  2469. key: "getTemplate",
  2470. value: function getTemplate() {
  2471. return format(ControlFlowStorageCallTemplate_1.ControlFlowStorageCallTemplate(), {
  2472. controlFlowStorageKey: this.controlFlowStorageKey,
  2473. controlFlowStorageName: this.controlFlowStorageName,
  2474. leftValue: this.leftValue,
  2475. rightValue: this.rightValue
  2476. });
  2477. }
  2478. }]);
  2479. return ControlFlowStorageCallNode;
  2480. }(AbstractCustomNode_1.AbstractCustomNode);
  2481. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  2482. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  2483. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ControlFlowStorageCallNode.prototype, "leftValue", void 0);
  2484. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ControlFlowStorageCallNode.prototype, "rightValue", void 0);
  2485. ControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], ControlFlowStorageCallNode);
  2486. exports.ControlFlowStorageCallNode = ControlFlowStorageCallNode;
  2487. /***/ },
  2488. /* 68 */
  2489. /***/ function(module, exports, __webpack_require__) {
  2490. "use strict";
  2491. "use strict";
  2492. var _getPrototypeOf = __webpack_require__(5);
  2493. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2494. var _classCallCheck2 = __webpack_require__(0);
  2495. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2496. var _createClass2 = __webpack_require__(1);
  2497. var _createClass3 = _interopRequireDefault(_createClass2);
  2498. var _possibleConstructorReturn2 = __webpack_require__(7);
  2499. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2500. var _inherits2 = __webpack_require__(6);
  2501. var _inherits3 = _interopRequireDefault(_inherits2);
  2502. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2503. var tslib_1 = __webpack_require__(3);
  2504. var inversify_1 = __webpack_require__(2);
  2505. var ServiceIdentifiers_1 = __webpack_require__(4);
  2506. var format = __webpack_require__(16);
  2507. var Initializable_1 = __webpack_require__(9);
  2508. var ControlFlowStorageTemplate_1 = __webpack_require__(117);
  2509. var AbstractCustomNode_1 = __webpack_require__(14);
  2510. var ControlFlowStorageNode = function (_AbstractCustomNode_) {
  2511. (0, _inherits3.default)(ControlFlowStorageNode, _AbstractCustomNode_);
  2512. function ControlFlowStorageNode(options) {
  2513. (0, _classCallCheck3.default)(this, ControlFlowStorageNode);
  2514. return (0, _possibleConstructorReturn3.default)(this, (ControlFlowStorageNode.__proto__ || (0, _getPrototypeOf2.default)(ControlFlowStorageNode)).call(this, options));
  2515. }
  2516. (0, _createClass3.default)(ControlFlowStorageNode, [{
  2517. key: "initialize",
  2518. value: function initialize(controlFlowStorage) {
  2519. this.controlFlowStorage = controlFlowStorage;
  2520. }
  2521. }, {
  2522. key: "getTemplate",
  2523. value: function getTemplate() {
  2524. return format(ControlFlowStorageTemplate_1.ControlFlowStorageTemplate(), {
  2525. controlFlowStorage: this.controlFlowStorage.toString(),
  2526. controlFlowStorageName: this.controlFlowStorage.getStorageId()
  2527. });
  2528. }
  2529. }]);
  2530. return ControlFlowStorageNode;
  2531. }(AbstractCustomNode_1.AbstractCustomNode);
  2532. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0);
  2533. ControlFlowStorageNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], ControlFlowStorageNode);
  2534. exports.ControlFlowStorageNode = ControlFlowStorageNode;
  2535. /***/ },
  2536. /* 69 */
  2537. /***/ function(module, exports, __webpack_require__) {
  2538. "use strict";
  2539. "use strict";
  2540. var _getPrototypeOf = __webpack_require__(5);
  2541. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2542. var _classCallCheck2 = __webpack_require__(0);
  2543. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2544. var _createClass2 = __webpack_require__(1);
  2545. var _createClass3 = _interopRequireDefault(_createClass2);
  2546. var _possibleConstructorReturn2 = __webpack_require__(7);
  2547. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2548. var _inherits2 = __webpack_require__(6);
  2549. var _inherits3 = _interopRequireDefault(_inherits2);
  2550. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2551. var tslib_1 = __webpack_require__(3);
  2552. var inversify_1 = __webpack_require__(2);
  2553. var ServiceIdentifiers_1 = __webpack_require__(4);
  2554. var format = __webpack_require__(16);
  2555. var Initializable_1 = __webpack_require__(9);
  2556. var DebufProtectionFunctionCallTemplate_1 = __webpack_require__(118);
  2557. var AbstractCustomNode_1 = __webpack_require__(14);
  2558. var DebugProtectionFunctionCallNode = function (_AbstractCustomNode_) {
  2559. (0, _inherits3.default)(DebugProtectionFunctionCallNode, _AbstractCustomNode_);
  2560. function DebugProtectionFunctionCallNode(options) {
  2561. (0, _classCallCheck3.default)(this, DebugProtectionFunctionCallNode);
  2562. return (0, _possibleConstructorReturn3.default)(this, (DebugProtectionFunctionCallNode.__proto__ || (0, _getPrototypeOf2.default)(DebugProtectionFunctionCallNode)).call(this, options));
  2563. }
  2564. (0, _createClass3.default)(DebugProtectionFunctionCallNode, [{
  2565. key: "initialize",
  2566. value: function initialize(debugProtectionFunctionName) {
  2567. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2568. }
  2569. }, {
  2570. key: "getTemplate",
  2571. value: function getTemplate() {
  2572. return format(DebufProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {
  2573. debugProtectionFunctionName: this.debugProtectionFunctionName
  2574. });
  2575. }
  2576. }]);
  2577. return DebugProtectionFunctionCallNode;
  2578. }(AbstractCustomNode_1.AbstractCustomNode);
  2579. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "debugProtectionFunctionName", void 0);
  2580. DebugProtectionFunctionCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], DebugProtectionFunctionCallNode);
  2581. exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode;
  2582. /***/ },
  2583. /* 70 */
  2584. /***/ function(module, exports, __webpack_require__) {
  2585. "use strict";
  2586. "use strict";
  2587. var _getPrototypeOf = __webpack_require__(5);
  2588. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2589. var _classCallCheck2 = __webpack_require__(0);
  2590. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2591. var _createClass2 = __webpack_require__(1);
  2592. var _createClass3 = _interopRequireDefault(_createClass2);
  2593. var _possibleConstructorReturn2 = __webpack_require__(7);
  2594. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2595. var _inherits2 = __webpack_require__(6);
  2596. var _inherits3 = _interopRequireDefault(_inherits2);
  2597. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2598. var tslib_1 = __webpack_require__(3);
  2599. var inversify_1 = __webpack_require__(2);
  2600. var ServiceIdentifiers_1 = __webpack_require__(4);
  2601. var format = __webpack_require__(16);
  2602. var Initializable_1 = __webpack_require__(9);
  2603. var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(119);
  2604. var AbstractCustomNode_1 = __webpack_require__(14);
  2605. var DebugProtectionFunctionIntervalNode = function (_AbstractCustomNode_) {
  2606. (0, _inherits3.default)(DebugProtectionFunctionIntervalNode, _AbstractCustomNode_);
  2607. function DebugProtectionFunctionIntervalNode(options) {
  2608. (0, _classCallCheck3.default)(this, DebugProtectionFunctionIntervalNode);
  2609. return (0, _possibleConstructorReturn3.default)(this, (DebugProtectionFunctionIntervalNode.__proto__ || (0, _getPrototypeOf2.default)(DebugProtectionFunctionIntervalNode)).call(this, options));
  2610. }
  2611. (0, _createClass3.default)(DebugProtectionFunctionIntervalNode, [{
  2612. key: "initialize",
  2613. value: function initialize(debugProtectionFunctionName) {
  2614. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2615. }
  2616. }, {
  2617. key: "getTemplate",
  2618. value: function getTemplate() {
  2619. return format(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {
  2620. debugProtectionFunctionName: this.debugProtectionFunctionName
  2621. });
  2622. }
  2623. }]);
  2624. return DebugProtectionFunctionIntervalNode;
  2625. }(AbstractCustomNode_1.AbstractCustomNode);
  2626. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionIntervalNode.prototype, "debugProtectionFunctionName", void 0);
  2627. DebugProtectionFunctionIntervalNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], DebugProtectionFunctionIntervalNode);
  2628. exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode;
  2629. /***/ },
  2630. /* 71 */
  2631. /***/ function(module, exports, __webpack_require__) {
  2632. "use strict";
  2633. "use strict";
  2634. var _getPrototypeOf = __webpack_require__(5);
  2635. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2636. var _classCallCheck2 = __webpack_require__(0);
  2637. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2638. var _createClass2 = __webpack_require__(1);
  2639. var _createClass3 = _interopRequireDefault(_createClass2);
  2640. var _possibleConstructorReturn2 = __webpack_require__(7);
  2641. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2642. var _inherits2 = __webpack_require__(6);
  2643. var _inherits3 = _interopRequireDefault(_inherits2);
  2644. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2645. var tslib_1 = __webpack_require__(3);
  2646. var inversify_1 = __webpack_require__(2);
  2647. var ServiceIdentifiers_1 = __webpack_require__(4);
  2648. var format = __webpack_require__(16);
  2649. var Initializable_1 = __webpack_require__(9);
  2650. var DebugProtectionFunctionTemplate_1 = __webpack_require__(120);
  2651. var AbstractCustomNode_1 = __webpack_require__(14);
  2652. var DebugProtectionFunctionNode = function (_AbstractCustomNode_) {
  2653. (0, _inherits3.default)(DebugProtectionFunctionNode, _AbstractCustomNode_);
  2654. function DebugProtectionFunctionNode(options) {
  2655. (0, _classCallCheck3.default)(this, DebugProtectionFunctionNode);
  2656. return (0, _possibleConstructorReturn3.default)(this, (DebugProtectionFunctionNode.__proto__ || (0, _getPrototypeOf2.default)(DebugProtectionFunctionNode)).call(this, options));
  2657. }
  2658. (0, _createClass3.default)(DebugProtectionFunctionNode, [{
  2659. key: "initialize",
  2660. value: function initialize(debugProtectionFunctionName) {
  2661. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2662. }
  2663. }, {
  2664. key: "getTemplate",
  2665. value: function getTemplate() {
  2666. return format(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {
  2667. debugProtectionFunctionName: this.debugProtectionFunctionName
  2668. });
  2669. }
  2670. }]);
  2671. return DebugProtectionFunctionNode;
  2672. }(AbstractCustomNode_1.AbstractCustomNode);
  2673. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionNode.prototype, "debugProtectionFunctionName", void 0);
  2674. DebugProtectionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], DebugProtectionFunctionNode);
  2675. exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode;
  2676. /***/ },
  2677. /* 72 */
  2678. /***/ function(module, exports, __webpack_require__) {
  2679. "use strict";
  2680. "use strict";
  2681. var _map = __webpack_require__(12);
  2682. var _map2 = _interopRequireDefault(_map);
  2683. var _getPrototypeOf = __webpack_require__(5);
  2684. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2685. var _classCallCheck2 = __webpack_require__(0);
  2686. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2687. var _createClass2 = __webpack_require__(1);
  2688. var _createClass3 = _interopRequireDefault(_createClass2);
  2689. var _possibleConstructorReturn2 = __webpack_require__(7);
  2690. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2691. var _inherits2 = __webpack_require__(6);
  2692. var _inherits3 = _interopRequireDefault(_inherits2);
  2693. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2694. var tslib_1 = __webpack_require__(3);
  2695. var inversify_1 = __webpack_require__(2);
  2696. var ServiceIdentifiers_1 = __webpack_require__(4);
  2697. var Initializable_1 = __webpack_require__(9);
  2698. var CustomNodes_1 = __webpack_require__(20);
  2699. var ObfuscationEvents_1 = __webpack_require__(21);
  2700. var AbstractCustomNodeGroup_1 = __webpack_require__(25);
  2701. var NodeAppender_1 = __webpack_require__(24);
  2702. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2703. var DebugProtectionCustomNodeGroup = function (_AbstractCustomNodeGr) {
  2704. (0, _inherits3.default)(DebugProtectionCustomNodeGroup, _AbstractCustomNodeGr);
  2705. function DebugProtectionCustomNodeGroup(customNodeFactory, obfuscationEventEmitter, options) {
  2706. (0, _classCallCheck3.default)(this, DebugProtectionCustomNodeGroup);
  2707. var _this = (0, _possibleConstructorReturn3.default)(this, (DebugProtectionCustomNodeGroup.__proto__ || (0, _getPrototypeOf2.default)(DebugProtectionCustomNodeGroup)).call(this, options));
  2708. _this.appendEvent = ObfuscationEvents_1.ObfuscationEvents.BeforeObfuscation;
  2709. _this.customNodeFactory = customNodeFactory;
  2710. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  2711. return _this;
  2712. }
  2713. (0, _createClass3.default)(DebugProtectionCustomNodeGroup, [{
  2714. key: "appendCustomNodes",
  2715. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  2716. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.DebugProtectionFunctionNode, function (customNode) {
  2717. NodeAppender_1.NodeAppender.appendNode(blockScopeNode, customNode.getNode());
  2718. });
  2719. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.DebugProtectionFunctionCallNode, function (customNode) {
  2720. NodeAppender_1.NodeAppender.appendNode(blockScopeNode, customNode.getNode());
  2721. });
  2722. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.DebugProtectionFunctionIntervalNode, function (customNode) {
  2723. var programBodyLength = blockScopeNode.body.length;
  2724. var randomIndex = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomInteger(0, programBodyLength);
  2725. NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, customNode.getNode(), randomIndex);
  2726. });
  2727. }
  2728. }, {
  2729. key: "initialize",
  2730. value: function initialize() {
  2731. this.customNodes = new _map2.default();
  2732. if (!this.options.debugProtection) {
  2733. return;
  2734. }
  2735. var debugProtectionFunctionName = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName();
  2736. var debugProtectionFunctionNode = this.customNodeFactory(CustomNodes_1.CustomNodes.DebugProtectionFunctionNode);
  2737. var debugProtectionFunctionCallNode = this.customNodeFactory(CustomNodes_1.CustomNodes.DebugProtectionFunctionCallNode);
  2738. var debugProtectionFunctionIntervalNode = this.customNodeFactory(CustomNodes_1.CustomNodes.DebugProtectionFunctionIntervalNode);
  2739. debugProtectionFunctionNode.initialize(debugProtectionFunctionName);
  2740. debugProtectionFunctionCallNode.initialize(debugProtectionFunctionName);
  2741. debugProtectionFunctionIntervalNode.initialize(debugProtectionFunctionName);
  2742. this.customNodes.set(CustomNodes_1.CustomNodes.DebugProtectionFunctionNode, debugProtectionFunctionNode);
  2743. this.customNodes.set(CustomNodes_1.CustomNodes.DebugProtectionFunctionCallNode, debugProtectionFunctionCallNode);
  2744. if (this.options.debugProtectionInterval) {
  2745. this.customNodes.set(CustomNodes_1.CustomNodes.DebugProtectionFunctionIntervalNode, debugProtectionFunctionIntervalNode);
  2746. }
  2747. }
  2748. }]);
  2749. return DebugProtectionCustomNodeGroup;
  2750. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2751. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map2.default)], DebugProtectionCustomNodeGroup.prototype, "customNodes", void 0);
  2752. 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.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionCustomNodeGroup);
  2753. exports.DebugProtectionCustomNodeGroup = DebugProtectionCustomNodeGroup;
  2754. /***/ },
  2755. /* 73 */
  2756. /***/ function(module, exports, __webpack_require__) {
  2757. "use strict";
  2758. "use strict";
  2759. var _slicedToArray2 = __webpack_require__(35);
  2760. var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
  2761. var _getPrototypeOf = __webpack_require__(5);
  2762. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2763. var _classCallCheck2 = __webpack_require__(0);
  2764. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2765. var _createClass2 = __webpack_require__(1);
  2766. var _createClass3 = _interopRequireDefault(_createClass2);
  2767. var _possibleConstructorReturn2 = __webpack_require__(7);
  2768. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2769. var _inherits2 = __webpack_require__(6);
  2770. var _inherits3 = _interopRequireDefault(_inherits2);
  2771. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2772. var tslib_1 = __webpack_require__(3);
  2773. var inversify_1 = __webpack_require__(2);
  2774. var ServiceIdentifiers_1 = __webpack_require__(4);
  2775. var format = __webpack_require__(16);
  2776. var Initializable_1 = __webpack_require__(9);
  2777. var DomainLockNodeTemplate_1 = __webpack_require__(121);
  2778. var AbstractCustomNode_1 = __webpack_require__(14);
  2779. var CryptUtils_1 = __webpack_require__(32);
  2780. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2781. var DomainLockNode = function (_AbstractCustomNode_) {
  2782. (0, _inherits3.default)(DomainLockNode, _AbstractCustomNode_);
  2783. function DomainLockNode(options) {
  2784. (0, _classCallCheck3.default)(this, DomainLockNode);
  2785. return (0, _possibleConstructorReturn3.default)(this, (DomainLockNode.__proto__ || (0, _getPrototypeOf2.default)(DomainLockNode)).call(this, options));
  2786. }
  2787. (0, _createClass3.default)(DomainLockNode, [{
  2788. key: "initialize",
  2789. value: function initialize(callsControllerFunctionName) {
  2790. this.callsControllerFunctionName = callsControllerFunctionName;
  2791. }
  2792. }, {
  2793. key: "getTemplate",
  2794. value: function getTemplate() {
  2795. var domainsString = this.options.domainLock.join(';'),
  2796. _CryptUtils_1$CryptUt = CryptUtils_1.CryptUtils.hideString(domainsString, domainsString.length * 3),
  2797. _CryptUtils_1$CryptUt2 = (0, _slicedToArray3.default)(_CryptUtils_1$CryptUt, 2),
  2798. hiddenDomainsString = _CryptUtils_1$CryptUt2[0],
  2799. diff = _CryptUtils_1$CryptUt2[1];
  2800. return format(DomainLockNodeTemplate_1.DomainLockNodeTemplate(), {
  2801. domainLockFunctionName: RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName(),
  2802. diff: diff,
  2803. domains: hiddenDomainsString,
  2804. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2805. });
  2806. }
  2807. }]);
  2808. return DomainLockNode;
  2809. }(AbstractCustomNode_1.AbstractCustomNode);
  2810. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DomainLockNode.prototype, "callsControllerFunctionName", void 0);
  2811. DomainLockNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], DomainLockNode);
  2812. exports.DomainLockNode = DomainLockNode;
  2813. /***/ },
  2814. /* 74 */
  2815. /***/ function(module, exports, __webpack_require__) {
  2816. "use strict";
  2817. "use strict";
  2818. var _map = __webpack_require__(12);
  2819. var _map2 = _interopRequireDefault(_map);
  2820. var _getPrototypeOf = __webpack_require__(5);
  2821. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2822. var _classCallCheck2 = __webpack_require__(0);
  2823. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2824. var _createClass2 = __webpack_require__(1);
  2825. var _createClass3 = _interopRequireDefault(_createClass2);
  2826. var _possibleConstructorReturn2 = __webpack_require__(7);
  2827. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2828. var _inherits2 = __webpack_require__(6);
  2829. var _inherits3 = _interopRequireDefault(_inherits2);
  2830. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2831. var tslib_1 = __webpack_require__(3);
  2832. var inversify_1 = __webpack_require__(2);
  2833. var ServiceIdentifiers_1 = __webpack_require__(4);
  2834. var Initializable_1 = __webpack_require__(9);
  2835. var CustomNodes_1 = __webpack_require__(20);
  2836. var ObfuscationEvents_1 = __webpack_require__(21);
  2837. var AbstractCustomNodeGroup_1 = __webpack_require__(25);
  2838. var NodeAppender_1 = __webpack_require__(24);
  2839. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2840. var DomainLockCustomNodeGroup = function (_AbstractCustomNodeGr) {
  2841. (0, _inherits3.default)(DomainLockCustomNodeGroup, _AbstractCustomNodeGr);
  2842. function DomainLockCustomNodeGroup(customNodeFactory, obfuscationEventEmitter, options) {
  2843. (0, _classCallCheck3.default)(this, DomainLockCustomNodeGroup);
  2844. var _this = (0, _possibleConstructorReturn3.default)(this, (DomainLockCustomNodeGroup.__proto__ || (0, _getPrototypeOf2.default)(DomainLockCustomNodeGroup)).call(this, options));
  2845. _this.appendEvent = ObfuscationEvents_1.ObfuscationEvents.BeforeObfuscation;
  2846. _this.customNodeFactory = customNodeFactory;
  2847. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  2848. return _this;
  2849. }
  2850. (0, _createClass3.default)(DomainLockCustomNodeGroup, [{
  2851. key: "appendCustomNodes",
  2852. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  2853. var randomStackTraceIndex = NodeAppender_1.NodeAppender.getRandomStackTraceIndex(stackTraceData.length);
  2854. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.DomainLockNode, function (customNode) {
  2855. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  2856. });
  2857. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode, function (customNode) {
  2858. var targetBlockScope = void 0;
  2859. if (stackTraceData.length) {
  2860. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  2861. } else {
  2862. targetBlockScope = blockScopeNode;
  2863. }
  2864. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  2865. });
  2866. }
  2867. }, {
  2868. key: "initialize",
  2869. value: function initialize() {
  2870. this.customNodes = new _map2.default();
  2871. if (!this.options.domainLock.length) {
  2872. return;
  2873. }
  2874. var callsControllerFunctionName = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName();
  2875. var domainLockNode = this.customNodeFactory(CustomNodes_1.CustomNodes.DomainLockNode);
  2876. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode);
  2877. domainLockNode.initialize(callsControllerFunctionName);
  2878. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2879. this.customNodes.set(CustomNodes_1.CustomNodes.DomainLockNode, domainLockNode);
  2880. this.customNodes.set(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2881. }
  2882. }]);
  2883. return DomainLockCustomNodeGroup;
  2884. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2885. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map2.default)], DomainLockCustomNodeGroup.prototype, "customNodes", void 0);
  2886. 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.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DomainLockCustomNodeGroup);
  2887. exports.DomainLockCustomNodeGroup = DomainLockCustomNodeGroup;
  2888. /***/ },
  2889. /* 75 */
  2890. /***/ function(module, exports, __webpack_require__) {
  2891. "use strict";
  2892. "use strict";
  2893. var _getPrototypeOf = __webpack_require__(5);
  2894. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2895. var _classCallCheck2 = __webpack_require__(0);
  2896. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2897. var _createClass2 = __webpack_require__(1);
  2898. var _createClass3 = _interopRequireDefault(_createClass2);
  2899. var _possibleConstructorReturn2 = __webpack_require__(7);
  2900. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2901. var _inherits2 = __webpack_require__(6);
  2902. var _inherits3 = _interopRequireDefault(_inherits2);
  2903. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2904. var tslib_1 = __webpack_require__(3);
  2905. var inversify_1 = __webpack_require__(2);
  2906. var ServiceIdentifiers_1 = __webpack_require__(4);
  2907. var format = __webpack_require__(16);
  2908. var ObfuscationEvents_1 = __webpack_require__(21);
  2909. var Initializable_1 = __webpack_require__(9);
  2910. var SingleNodeCallControllerTemplate_1 = __webpack_require__(113);
  2911. var NoCustomNodes_1 = __webpack_require__(29);
  2912. var AbstractCustomNode_1 = __webpack_require__(14);
  2913. var JavaScriptObfuscator_1 = __webpack_require__(23);
  2914. var NodeCallsControllerFunctionNode = function (_AbstractCustomNode_) {
  2915. (0, _inherits3.default)(NodeCallsControllerFunctionNode, _AbstractCustomNode_);
  2916. function NodeCallsControllerFunctionNode(options) {
  2917. (0, _classCallCheck3.default)(this, NodeCallsControllerFunctionNode);
  2918. return (0, _possibleConstructorReturn3.default)(this, (NodeCallsControllerFunctionNode.__proto__ || (0, _getPrototypeOf2.default)(NodeCallsControllerFunctionNode)).call(this, options));
  2919. }
  2920. (0, _createClass3.default)(NodeCallsControllerFunctionNode, [{
  2921. key: "initialize",
  2922. value: function initialize(appendEvent, callsControllerFunctionName) {
  2923. this.appendEvent = appendEvent;
  2924. this.callsControllerFunctionName = callsControllerFunctionName;
  2925. }
  2926. }, {
  2927. key: "getTemplate",
  2928. value: function getTemplate() {
  2929. if (this.appendEvent === ObfuscationEvents_1.ObfuscationEvents.AfterObfuscation) {
  2930. return JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(format(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
  2931. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2932. }), tslib_1.__assign({}, NoCustomNodes_1.NO_CUSTOM_NODES_PRESET, { seed: this.options.seed })).getObfuscatedCode();
  2933. }
  2934. return format(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
  2935. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2936. });
  2937. }
  2938. }]);
  2939. return NodeCallsControllerFunctionNode;
  2940. }(AbstractCustomNode_1.AbstractCustomNode);
  2941. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "appendEvent", void 0);
  2942. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "callsControllerFunctionName", void 0);
  2943. NodeCallsControllerFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], NodeCallsControllerFunctionNode);
  2944. exports.NodeCallsControllerFunctionNode = NodeCallsControllerFunctionNode;
  2945. /***/ },
  2946. /* 76 */
  2947. /***/ function(module, exports, __webpack_require__) {
  2948. "use strict";
  2949. "use strict";
  2950. var _getPrototypeOf = __webpack_require__(5);
  2951. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  2952. var _classCallCheck2 = __webpack_require__(0);
  2953. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  2954. var _createClass2 = __webpack_require__(1);
  2955. var _createClass3 = _interopRequireDefault(_createClass2);
  2956. var _possibleConstructorReturn2 = __webpack_require__(7);
  2957. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  2958. var _inherits2 = __webpack_require__(6);
  2959. var _inherits3 = _interopRequireDefault(_inherits2);
  2960. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  2961. var tslib_1 = __webpack_require__(3);
  2962. var inversify_1 = __webpack_require__(2);
  2963. var ServiceIdentifiers_1 = __webpack_require__(4);
  2964. var format = __webpack_require__(16);
  2965. var Initializable_1 = __webpack_require__(9);
  2966. var NoCustomNodes_1 = __webpack_require__(29);
  2967. var SelfDefendingTemplate_1 = __webpack_require__(122);
  2968. var AbstractCustomNode_1 = __webpack_require__(14);
  2969. var JavaScriptObfuscator_1 = __webpack_require__(23);
  2970. var RandomGeneratorUtils_1 = __webpack_require__(8);
  2971. var SelfDefendingUnicodeNode = function (_AbstractCustomNode_) {
  2972. (0, _inherits3.default)(SelfDefendingUnicodeNode, _AbstractCustomNode_);
  2973. function SelfDefendingUnicodeNode(options) {
  2974. (0, _classCallCheck3.default)(this, SelfDefendingUnicodeNode);
  2975. return (0, _possibleConstructorReturn3.default)(this, (SelfDefendingUnicodeNode.__proto__ || (0, _getPrototypeOf2.default)(SelfDefendingUnicodeNode)).call(this, options));
  2976. }
  2977. (0, _createClass3.default)(SelfDefendingUnicodeNode, [{
  2978. key: "initialize",
  2979. value: function initialize(callsControllerFunctionName) {
  2980. this.callsControllerFunctionName = callsControllerFunctionName;
  2981. }
  2982. }, {
  2983. key: "getTemplate",
  2984. value: function getTemplate() {
  2985. return JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(format(SelfDefendingTemplate_1.SelfDefendingTemplate(), {
  2986. selfDefendingFunctionName: RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName(),
  2987. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2988. }), tslib_1.__assign({}, NoCustomNodes_1.NO_CUSTOM_NODES_PRESET, { seed: this.options.seed })).getObfuscatedCode();
  2989. }
  2990. }]);
  2991. return SelfDefendingUnicodeNode;
  2992. }(AbstractCustomNode_1.AbstractCustomNode);
  2993. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], SelfDefendingUnicodeNode.prototype, "callsControllerFunctionName", void 0);
  2994. SelfDefendingUnicodeNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], SelfDefendingUnicodeNode);
  2995. exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode;
  2996. /***/ },
  2997. /* 77 */
  2998. /***/ function(module, exports, __webpack_require__) {
  2999. "use strict";
  3000. "use strict";
  3001. var _map = __webpack_require__(12);
  3002. var _map2 = _interopRequireDefault(_map);
  3003. var _getPrototypeOf = __webpack_require__(5);
  3004. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3005. var _classCallCheck2 = __webpack_require__(0);
  3006. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3007. var _createClass2 = __webpack_require__(1);
  3008. var _createClass3 = _interopRequireDefault(_createClass2);
  3009. var _possibleConstructorReturn2 = __webpack_require__(7);
  3010. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3011. var _inherits2 = __webpack_require__(6);
  3012. var _inherits3 = _interopRequireDefault(_inherits2);
  3013. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3014. var tslib_1 = __webpack_require__(3);
  3015. var inversify_1 = __webpack_require__(2);
  3016. var ServiceIdentifiers_1 = __webpack_require__(4);
  3017. var Initializable_1 = __webpack_require__(9);
  3018. var CustomNodes_1 = __webpack_require__(20);
  3019. var ObfuscationEvents_1 = __webpack_require__(21);
  3020. var AbstractCustomNodeGroup_1 = __webpack_require__(25);
  3021. var NodeAppender_1 = __webpack_require__(24);
  3022. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3023. var SelfDefendingCustomNodeGroup = function (_AbstractCustomNodeGr) {
  3024. (0, _inherits3.default)(SelfDefendingCustomNodeGroup, _AbstractCustomNodeGr);
  3025. function SelfDefendingCustomNodeGroup(customNodeFactory, obfuscationEventEmitter, options) {
  3026. (0, _classCallCheck3.default)(this, SelfDefendingCustomNodeGroup);
  3027. var _this = (0, _possibleConstructorReturn3.default)(this, (SelfDefendingCustomNodeGroup.__proto__ || (0, _getPrototypeOf2.default)(SelfDefendingCustomNodeGroup)).call(this, options));
  3028. _this.appendEvent = ObfuscationEvents_1.ObfuscationEvents.AfterObfuscation;
  3029. _this.customNodeFactory = customNodeFactory;
  3030. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  3031. return _this;
  3032. }
  3033. (0, _createClass3.default)(SelfDefendingCustomNodeGroup, [{
  3034. key: "appendCustomNodes",
  3035. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  3036. var randomStackTraceIndex = NodeAppender_1.NodeAppender.getRandomStackTraceIndex(stackTraceData.length);
  3037. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.SelfDefendingUnicodeNode, function (customNode) {
  3038. NodeAppender_1.NodeAppender.appendNodeToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex);
  3039. });
  3040. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode, function (customNode) {
  3041. var targetBlockScope = void 0;
  3042. if (stackTraceData.length) {
  3043. targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1);
  3044. } else {
  3045. targetBlockScope = blockScopeNode;
  3046. }
  3047. NodeAppender_1.NodeAppender.prependNode(targetBlockScope, customNode.getNode());
  3048. });
  3049. }
  3050. }, {
  3051. key: "initialize",
  3052. value: function initialize() {
  3053. this.customNodes = new _map2.default();
  3054. if (!this.options.selfDefending) {
  3055. return;
  3056. }
  3057. var callsControllerFunctionName = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName();
  3058. var selfDefendingUnicodeNode = this.customNodeFactory(CustomNodes_1.CustomNodes.SelfDefendingUnicodeNode);
  3059. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode);
  3060. selfDefendingUnicodeNode.initialize(callsControllerFunctionName);
  3061. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  3062. this.customNodes.set(CustomNodes_1.CustomNodes.SelfDefendingUnicodeNode, selfDefendingUnicodeNode);
  3063. this.customNodes.set(CustomNodes_1.CustomNodes.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  3064. }
  3065. }]);
  3066. return SelfDefendingCustomNodeGroup;
  3067. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  3068. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map2.default)], SelfDefendingCustomNodeGroup.prototype, "customNodes", void 0);
  3069. 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.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], SelfDefendingCustomNodeGroup);
  3070. exports.SelfDefendingCustomNodeGroup = SelfDefendingCustomNodeGroup;
  3071. /***/ },
  3072. /* 78 */
  3073. /***/ function(module, exports, __webpack_require__) {
  3074. "use strict";
  3075. "use strict";
  3076. var _getPrototypeOf = __webpack_require__(5);
  3077. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3078. var _classCallCheck2 = __webpack_require__(0);
  3079. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3080. var _createClass2 = __webpack_require__(1);
  3081. var _createClass3 = _interopRequireDefault(_createClass2);
  3082. var _possibleConstructorReturn2 = __webpack_require__(7);
  3083. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3084. var _inherits2 = __webpack_require__(6);
  3085. var _inherits3 = _interopRequireDefault(_inherits2);
  3086. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3087. var tslib_1 = __webpack_require__(3);
  3088. var inversify_1 = __webpack_require__(2);
  3089. var ServiceIdentifiers_1 = __webpack_require__(4);
  3090. var format = __webpack_require__(16);
  3091. var StringArrayEncoding_1 = __webpack_require__(30);
  3092. var Initializable_1 = __webpack_require__(9);
  3093. var NoCustomNodes_1 = __webpack_require__(29);
  3094. var AtobTemplate_1 = __webpack_require__(111);
  3095. var Rc4Template_1 = __webpack_require__(112);
  3096. var SelfDefendingTemplate_1 = __webpack_require__(123);
  3097. var StringArrayBase64DecodeNodeTemplate_1 = __webpack_require__(124);
  3098. var StringArrayCallsWrapperTemplate_1 = __webpack_require__(125);
  3099. var StringArrayRC4DecodeNodeTemplate_1 = __webpack_require__(126);
  3100. var AbstractCustomNode_1 = __webpack_require__(14);
  3101. var JavaScriptObfuscator_1 = __webpack_require__(23);
  3102. var StringArrayCallsWrapper = function (_AbstractCustomNode_) {
  3103. (0, _inherits3.default)(StringArrayCallsWrapper, _AbstractCustomNode_);
  3104. function StringArrayCallsWrapper(options) {
  3105. (0, _classCallCheck3.default)(this, StringArrayCallsWrapper);
  3106. return (0, _possibleConstructorReturn3.default)(this, (StringArrayCallsWrapper.__proto__ || (0, _getPrototypeOf2.default)(StringArrayCallsWrapper)).call(this, options));
  3107. }
  3108. (0, _createClass3.default)(StringArrayCallsWrapper, [{
  3109. key: "initialize",
  3110. value: function initialize(stringArrayStorage, stringArrayName, stringArrayCallsWrapperName) {
  3111. this.stringArrayStorage = stringArrayStorage;
  3112. this.stringArrayName = stringArrayName;
  3113. this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
  3114. }
  3115. }, {
  3116. key: "getDecodeStringArrayTemplate",
  3117. value: function getDecodeStringArrayTemplate() {
  3118. var decodeStringArrayTemplate = '',
  3119. selfDefendingCode = '';
  3120. if (this.options.selfDefending) {
  3121. selfDefendingCode = format(SelfDefendingTemplate_1.SelfDefendingTemplate(), {
  3122. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  3123. stringArrayName: this.stringArrayName
  3124. });
  3125. }
  3126. switch (this.options.stringArrayEncoding) {
  3127. case StringArrayEncoding_1.StringArrayEncoding.base64:
  3128. decodeStringArrayTemplate = format(StringArrayBase64DecodeNodeTemplate_1.StringArrayBase64DecodeNodeTemplate(), {
  3129. atobPolyfill: AtobTemplate_1.AtobTemplate(),
  3130. selfDefendingCode: selfDefendingCode,
  3131. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  3132. });
  3133. break;
  3134. case StringArrayEncoding_1.StringArrayEncoding.rc4:
  3135. decodeStringArrayTemplate = format(StringArrayRC4DecodeNodeTemplate_1.StringArrayRc4DecodeNodeTemplate(), {
  3136. atobPolyfill: AtobTemplate_1.AtobTemplate(),
  3137. rc4Polyfill: Rc4Template_1.Rc4Template(),
  3138. selfDefendingCode: selfDefendingCode,
  3139. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  3140. });
  3141. break;
  3142. }
  3143. return decodeStringArrayTemplate;
  3144. }
  3145. }, {
  3146. key: "getTemplate",
  3147. value: function getTemplate() {
  3148. var decodeNodeTemplate = this.getDecodeStringArrayTemplate();
  3149. return JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(format(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {
  3150. decodeNodeTemplate: decodeNodeTemplate,
  3151. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  3152. stringArrayName: this.stringArrayName
  3153. }), tslib_1.__assign({}, NoCustomNodes_1.NO_CUSTOM_NODES_PRESET, { seed: this.options.seed })).getObfuscatedCode();
  3154. }
  3155. }]);
  3156. return StringArrayCallsWrapper;
  3157. }(AbstractCustomNode_1.AbstractCustomNode);
  3158. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayCallsWrapper.prototype, "stringArrayStorage", void 0);
  3159. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayName", void 0);
  3160. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayCallsWrapperName", void 0);
  3161. StringArrayCallsWrapper = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], StringArrayCallsWrapper);
  3162. exports.StringArrayCallsWrapper = StringArrayCallsWrapper;
  3163. /***/ },
  3164. /* 79 */
  3165. /***/ function(module, exports, __webpack_require__) {
  3166. "use strict";
  3167. "use strict";
  3168. var _getPrototypeOf = __webpack_require__(5);
  3169. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3170. var _classCallCheck2 = __webpack_require__(0);
  3171. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3172. var _createClass2 = __webpack_require__(1);
  3173. var _createClass3 = _interopRequireDefault(_createClass2);
  3174. var _possibleConstructorReturn2 = __webpack_require__(7);
  3175. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3176. var _get2 = __webpack_require__(46);
  3177. var _get3 = _interopRequireDefault(_get2);
  3178. var _inherits2 = __webpack_require__(6);
  3179. var _inherits3 = _interopRequireDefault(_inherits2);
  3180. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3181. var tslib_1 = __webpack_require__(3);
  3182. var inversify_1 = __webpack_require__(2);
  3183. var ServiceIdentifiers_1 = __webpack_require__(4);
  3184. var format = __webpack_require__(16);
  3185. var Initializable_1 = __webpack_require__(9);
  3186. var StringArrayTemplate_1 = __webpack_require__(127);
  3187. var AbstractCustomNode_1 = __webpack_require__(14);
  3188. var StringArrayNode = function (_AbstractCustomNode_) {
  3189. (0, _inherits3.default)(StringArrayNode, _AbstractCustomNode_);
  3190. function StringArrayNode(options) {
  3191. (0, _classCallCheck3.default)(this, StringArrayNode);
  3192. return (0, _possibleConstructorReturn3.default)(this, (StringArrayNode.__proto__ || (0, _getPrototypeOf2.default)(StringArrayNode)).call(this, options));
  3193. }
  3194. (0, _createClass3.default)(StringArrayNode, [{
  3195. key: "initialize",
  3196. value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) {
  3197. this.stringArrayStorage = stringArrayStorage;
  3198. this.stringArrayName = stringArrayName;
  3199. this.stringArrayRotateValue = stringArrayRotateValue;
  3200. }
  3201. }, {
  3202. key: "getNode",
  3203. value: function getNode() {
  3204. this.stringArrayStorage.rotateArray(this.stringArrayRotateValue);
  3205. return (0, _get3.default)(StringArrayNode.prototype.__proto__ || (0, _getPrototypeOf2.default)(StringArrayNode.prototype), "getNode", this).call(this);
  3206. }
  3207. }, {
  3208. key: "getTemplate",
  3209. value: function getTemplate() {
  3210. return format(StringArrayTemplate_1.StringArrayTemplate(), {
  3211. stringArrayName: this.stringArrayName,
  3212. stringArray: this.stringArrayStorage.toString()
  3213. });
  3214. }
  3215. }]);
  3216. return StringArrayNode;
  3217. }(AbstractCustomNode_1.AbstractCustomNode);
  3218. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayNode.prototype, "stringArrayStorage", void 0);
  3219. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayNode.prototype, "stringArrayName", void 0);
  3220. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayNode.prototype, "stringArrayRotateValue", void 0);
  3221. StringArrayNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], StringArrayNode);
  3222. exports.StringArrayNode = StringArrayNode;
  3223. /***/ },
  3224. /* 80 */
  3225. /***/ function(module, exports, __webpack_require__) {
  3226. "use strict";
  3227. "use strict";
  3228. var _getPrototypeOf = __webpack_require__(5);
  3229. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3230. var _classCallCheck2 = __webpack_require__(0);
  3231. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3232. var _createClass2 = __webpack_require__(1);
  3233. var _createClass3 = _interopRequireDefault(_createClass2);
  3234. var _possibleConstructorReturn2 = __webpack_require__(7);
  3235. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3236. var _inherits2 = __webpack_require__(6);
  3237. var _inherits3 = _interopRequireDefault(_inherits2);
  3238. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3239. var tslib_1 = __webpack_require__(3);
  3240. var inversify_1 = __webpack_require__(2);
  3241. var ServiceIdentifiers_1 = __webpack_require__(4);
  3242. var format = __webpack_require__(16);
  3243. var Initializable_1 = __webpack_require__(9);
  3244. var NoCustomNodes_1 = __webpack_require__(29);
  3245. var SelfDefendingTemplate_1 = __webpack_require__(128);
  3246. var StringArrayRotateFunctionTemplate_1 = __webpack_require__(129);
  3247. var AbstractCustomNode_1 = __webpack_require__(14);
  3248. var JavaScriptObfuscator_1 = __webpack_require__(23);
  3249. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3250. var Utils_1 = __webpack_require__(11);
  3251. var StringArrayRotateFunctionNode = function (_AbstractCustomNode_) {
  3252. (0, _inherits3.default)(StringArrayRotateFunctionNode, _AbstractCustomNode_);
  3253. function StringArrayRotateFunctionNode(options) {
  3254. (0, _classCallCheck3.default)(this, StringArrayRotateFunctionNode);
  3255. return (0, _possibleConstructorReturn3.default)(this, (StringArrayRotateFunctionNode.__proto__ || (0, _getPrototypeOf2.default)(StringArrayRotateFunctionNode)).call(this, options));
  3256. }
  3257. (0, _createClass3.default)(StringArrayRotateFunctionNode, [{
  3258. key: "initialize",
  3259. value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) {
  3260. this.stringArrayStorage = stringArrayStorage;
  3261. this.stringArrayName = stringArrayName;
  3262. this.stringArrayRotateValue = stringArrayRotateValue;
  3263. }
  3264. }, {
  3265. key: "getTemplate",
  3266. value: function getTemplate() {
  3267. var code = '',
  3268. timesName = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName(),
  3269. whileFunctionName = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName();
  3270. if (this.options.selfDefending) {
  3271. code = format(SelfDefendingTemplate_1.SelfDefendingTemplate(), {
  3272. timesName: timesName,
  3273. whileFunctionName: whileFunctionName
  3274. });
  3275. } else {
  3276. code = whileFunctionName + "(++" + timesName + ")";
  3277. }
  3278. return JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(format(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {
  3279. code: code,
  3280. timesName: timesName,
  3281. stringArrayName: this.stringArrayName,
  3282. stringArrayRotateValue: Utils_1.Utils.decToHex(this.stringArrayRotateValue),
  3283. whileFunctionName: whileFunctionName
  3284. }), tslib_1.__assign({}, NoCustomNodes_1.NO_CUSTOM_NODES_PRESET, { seed: this.options.seed })).getObfuscatedCode();
  3285. }
  3286. }]);
  3287. return StringArrayRotateFunctionNode;
  3288. }(AbstractCustomNode_1.AbstractCustomNode);
  3289. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayRotateFunctionNode.prototype, "stringArrayStorage", void 0);
  3290. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayRotateFunctionNode.prototype, "stringArrayName", void 0);
  3291. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayRotateFunctionNode.prototype, "stringArrayRotateValue", void 0);
  3292. StringArrayRotateFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], StringArrayRotateFunctionNode);
  3293. exports.StringArrayRotateFunctionNode = StringArrayRotateFunctionNode;
  3294. /***/ },
  3295. /* 81 */
  3296. /***/ function(module, exports, __webpack_require__) {
  3297. "use strict";
  3298. "use strict";
  3299. var _map = __webpack_require__(12);
  3300. var _map2 = _interopRequireDefault(_map);
  3301. var _getPrototypeOf = __webpack_require__(5);
  3302. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3303. var _classCallCheck2 = __webpack_require__(0);
  3304. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3305. var _createClass2 = __webpack_require__(1);
  3306. var _createClass3 = _interopRequireDefault(_createClass2);
  3307. var _possibleConstructorReturn2 = __webpack_require__(7);
  3308. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3309. var _inherits2 = __webpack_require__(6);
  3310. var _inherits3 = _interopRequireDefault(_inherits2);
  3311. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3312. var tslib_1 = __webpack_require__(3);
  3313. var inversify_1 = __webpack_require__(2);
  3314. var ServiceIdentifiers_1 = __webpack_require__(4);
  3315. var Initializable_1 = __webpack_require__(9);
  3316. var CustomNodes_1 = __webpack_require__(20);
  3317. var ObfuscationEvents_1 = __webpack_require__(21);
  3318. var AbstractCustomNodeGroup_1 = __webpack_require__(25);
  3319. var NodeAppender_1 = __webpack_require__(24);
  3320. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3321. var Utils_1 = __webpack_require__(11);
  3322. var StringArrayCustomNodeGroup = function (_AbstractCustomNodeGr) {
  3323. (0, _inherits3.default)(StringArrayCustomNodeGroup, _AbstractCustomNodeGr);
  3324. function StringArrayCustomNodeGroup(customNodeFactory, obfuscationEventEmitter, stringArrayStorage, options) {
  3325. (0, _classCallCheck3.default)(this, StringArrayCustomNodeGroup);
  3326. var _this = (0, _possibleConstructorReturn3.default)(this, (StringArrayCustomNodeGroup.__proto__ || (0, _getPrototypeOf2.default)(StringArrayCustomNodeGroup)).call(this, options));
  3327. _this.appendEvent = ObfuscationEvents_1.ObfuscationEvents.AfterObfuscation;
  3328. _this.customNodeFactory = customNodeFactory;
  3329. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  3330. _this.stringArrayStorage = stringArrayStorage;
  3331. return _this;
  3332. }
  3333. (0, _createClass3.default)(StringArrayCustomNodeGroup, [{
  3334. key: "appendCustomNodes",
  3335. value: function appendCustomNodes(blockScopeNode, stackTraceData) {
  3336. if (!this.stringArrayStorage.getLength()) {
  3337. return;
  3338. }
  3339. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.StringArrayNode, function (customNode) {
  3340. NodeAppender_1.NodeAppender.prependNode(blockScopeNode, customNode.getNode());
  3341. });
  3342. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.StringArrayCallsWrapper, function (customNode) {
  3343. NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, customNode.getNode(), 1);
  3344. });
  3345. this.appendCustomNodeIfExist(CustomNodes_1.CustomNodes.StringArrayRotateFunctionNode, function (customNode) {
  3346. NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, customNode.getNode(), 1);
  3347. });
  3348. }
  3349. }, {
  3350. key: "initialize",
  3351. value: function initialize() {
  3352. this.customNodes = new _map2.default();
  3353. if (!this.options.stringArray) {
  3354. return;
  3355. }
  3356. var stringArrayNode = this.customNodeFactory(CustomNodes_1.CustomNodes.StringArrayNode);
  3357. var stringArrayCallsWrapper = this.customNodeFactory(CustomNodes_1.CustomNodes.StringArrayCallsWrapper);
  3358. var stringArrayRotateFunctionNode = this.customNodeFactory(CustomNodes_1.CustomNodes.StringArrayRotateFunctionNode);
  3359. var stringArrayStorageId = this.stringArrayStorage.getStorageId();
  3360. var stringArrayName = "_" + Utils_1.Utils.hexadecimalPrefix + stringArrayStorageId;
  3361. var stringArrayCallsWrapperName = "_" + Utils_1.Utils.hexadecimalPrefix + Utils_1.Utils.stringRotate(stringArrayStorageId, 2);
  3362. var stringArrayRotateValue = void 0;
  3363. if (this.options.rotateStringArray) {
  3364. stringArrayRotateValue = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomInteger(100, 500);
  3365. } else {
  3366. stringArrayRotateValue = 0;
  3367. }
  3368. stringArrayNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue);
  3369. stringArrayCallsWrapper.initialize(this.stringArrayStorage, stringArrayName, stringArrayCallsWrapperName);
  3370. stringArrayRotateFunctionNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue);
  3371. this.customNodes.set(CustomNodes_1.CustomNodes.StringArrayNode, stringArrayNode);
  3372. this.customNodes.set(CustomNodes_1.CustomNodes.StringArrayCallsWrapper, stringArrayCallsWrapper);
  3373. if (this.options.rotateStringArray) {
  3374. this.customNodes.set(CustomNodes_1.CustomNodes.StringArrayRotateFunctionNode, stringArrayRotateFunctionNode);
  3375. }
  3376. }
  3377. }]);
  3378. return StringArrayCustomNodeGroup;
  3379. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  3380. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map2.default)], StringArrayCustomNodeGroup.prototype, "customNodes", void 0);
  3381. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayCustomNodeGroup.prototype, "stringArrayStorage", void 0);
  3382. 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.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<string>'])), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayCustomNodeGroup);
  3383. exports.StringArrayCustomNodeGroup = StringArrayCustomNodeGroup;
  3384. /***/ },
  3385. /* 82 */
  3386. /***/ function(module, exports, __webpack_require__) {
  3387. "use strict";
  3388. "use strict";
  3389. var Utils_1 = __webpack_require__(11);
  3390. exports.VisitorDirection = Utils_1.Utils.strEnumify({
  3391. enter: 'enter',
  3392. leave: 'leave'
  3393. });
  3394. /***/ },
  3395. /* 83 */
  3396. /***/ function(module, exports, __webpack_require__) {
  3397. "use strict";
  3398. "use strict";
  3399. var _getPrototypeOf = __webpack_require__(5);
  3400. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3401. var _classCallCheck2 = __webpack_require__(0);
  3402. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3403. var _possibleConstructorReturn2 = __webpack_require__(7);
  3404. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3405. var _inherits2 = __webpack_require__(6);
  3406. var _inherits3 = _interopRequireDefault(_inherits2);
  3407. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3408. var tslib_1 = __webpack_require__(3);
  3409. var inversify_1 = __webpack_require__(2);
  3410. var events_1 = __webpack_require__(138);
  3411. inversify_1.decorate(inversify_1.injectable(), events_1.EventEmitter);
  3412. var ObfuscationEventEmitter = function (_events_1$EventEmitte) {
  3413. (0, _inherits3.default)(ObfuscationEventEmitter, _events_1$EventEmitte);
  3414. function ObfuscationEventEmitter() {
  3415. (0, _classCallCheck3.default)(this, ObfuscationEventEmitter);
  3416. return (0, _possibleConstructorReturn3.default)(this, (ObfuscationEventEmitter.__proto__ || (0, _getPrototypeOf2.default)(ObfuscationEventEmitter)).apply(this, arguments));
  3417. }
  3418. return ObfuscationEventEmitter;
  3419. }(events_1.EventEmitter);
  3420. ObfuscationEventEmitter = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], ObfuscationEventEmitter);
  3421. exports.ObfuscationEventEmitter = ObfuscationEventEmitter;
  3422. /***/ },
  3423. /* 84 */
  3424. /***/ function(module, exports, __webpack_require__) {
  3425. "use strict";
  3426. "use strict";
  3427. var _getIterator2 = __webpack_require__(22);
  3428. var _getIterator3 = _interopRequireDefault(_getIterator2);
  3429. var _map = __webpack_require__(12);
  3430. var _map2 = _interopRequireDefault(_map);
  3431. var _getPrototypeOf = __webpack_require__(5);
  3432. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3433. var _classCallCheck2 = __webpack_require__(0);
  3434. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3435. var _createClass2 = __webpack_require__(1);
  3436. var _createClass3 = _interopRequireDefault(_createClass2);
  3437. var _possibleConstructorReturn2 = __webpack_require__(7);
  3438. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3439. var _inherits2 = __webpack_require__(6);
  3440. var _inherits3 = _interopRequireDefault(_inherits2);
  3441. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3442. var tslib_1 = __webpack_require__(3);
  3443. var inversify_1 = __webpack_require__(2);
  3444. var ServiceIdentifiers_1 = __webpack_require__(4);
  3445. var estraverse = __webpack_require__(13);
  3446. var _ = __webpack_require__(49);
  3447. var CustomNodes_1 = __webpack_require__(20);
  3448. var NodeType_1 = __webpack_require__(17);
  3449. var AbstractNodeTransformer_1 = __webpack_require__(18);
  3450. var Node_1 = __webpack_require__(10);
  3451. var NodeAppender_1 = __webpack_require__(24);
  3452. var NodeControlFlowReplacers_1 = __webpack_require__(40);
  3453. var NodeUtils_1 = __webpack_require__(15);
  3454. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3455. var FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = function (_AbstractNodeTransfor) {
  3456. (0, _inherits3.default)(FunctionControlFlowTransformer, _AbstractNodeTransfor);
  3457. function FunctionControlFlowTransformer(controlFlowStorageFactory, controlFlowReplacerFactory, customNodeFactory, options) {
  3458. (0, _classCallCheck3.default)(this, FunctionControlFlowTransformer);
  3459. var _this = (0, _possibleConstructorReturn3.default)(this, (FunctionControlFlowTransformer.__proto__ || (0, _getPrototypeOf2.default)(FunctionControlFlowTransformer)).call(this, options));
  3460. _this.controlFlowData = new _map2.default();
  3461. _this.controlFlowNodesList = [];
  3462. _this.controlFlowStorageFactory = controlFlowStorageFactory;
  3463. _this.controlFlowReplacerFactory = controlFlowReplacerFactory;
  3464. _this.customNodeFactory = customNodeFactory;
  3465. return _this;
  3466. }
  3467. (0, _createClass3.default)(FunctionControlFlowTransformer, [{
  3468. key: "transformNode",
  3469. value: function transformNode(functionNode) {
  3470. this.changeFunctionBodyControlFlow(functionNode);
  3471. }
  3472. }, {
  3473. key: "changeFunctionBodyControlFlow",
  3474. value: function changeFunctionBodyControlFlow(functionNode) {
  3475. var _this2 = this;
  3476. if (Node_1.Node.isArrowFunctionExpressionNode(functionNode)) {
  3477. return;
  3478. }
  3479. var controlFlowStorage = this.controlFlowStorageFactory();
  3480. var hostNode = FunctionControlFlowTransformer_1.getHostNode(functionNode);
  3481. if (!this.controlFlowData.has(hostNode)) {
  3482. this.controlFlowData.set(hostNode, controlFlowStorage);
  3483. } else {
  3484. hostNode.body = FunctionControlFlowTransformer_1.removeOldControlFlowNodeFromHostNodeBody(hostNode.body, this.controlFlowNodesList);
  3485. var hostControlFlowStorage = this.controlFlowData.get(hostNode);
  3486. controlFlowStorage.mergeWith(hostControlFlowStorage, true);
  3487. this.controlFlowData.set(hostNode, controlFlowStorage);
  3488. }
  3489. estraverse.replace(functionNode.body, {
  3490. enter: function enter(node, parentNode) {
  3491. if (RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomFloat(0, 1) > _this2.options.controlFlowFlatteningThreshold) {
  3492. return;
  3493. }
  3494. var controlFlowReplacerName = FunctionControlFlowTransformer_1.controlFlowReplacersMap.get(node.type);
  3495. if (controlFlowReplacerName === undefined) {
  3496. return;
  3497. }
  3498. return tslib_1.__assign({}, _this2.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage), { parentNode: parentNode });
  3499. }
  3500. });
  3501. if (!controlFlowStorage.getLength()) {
  3502. return;
  3503. }
  3504. var controlFlowStorageCustomNode = this.customNodeFactory(CustomNodes_1.CustomNodes.ControlFlowStorageNode);
  3505. controlFlowStorageCustomNode.initialize(controlFlowStorage);
  3506. var controlFlowStorageNode = controlFlowStorageCustomNode.getNode();
  3507. this.controlFlowNodesList.push(controlFlowStorageNode);
  3508. NodeAppender_1.NodeAppender.prependNode(hostNode, controlFlowStorageNode);
  3509. }
  3510. }], [{
  3511. key: "getHostNode",
  3512. value: function getHostNode(functionNode) {
  3513. var blockScopesOfNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(functionNode);
  3514. if (blockScopesOfNode.length === 1) {
  3515. return functionNode.body;
  3516. } else {
  3517. blockScopesOfNode.pop();
  3518. }
  3519. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {
  3520. blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);
  3521. }
  3522. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {
  3523. blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;
  3524. }
  3525. return RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().pickone(blockScopesOfNode);
  3526. }
  3527. }, {
  3528. key: "removeOldControlFlowNodeFromHostNodeBody",
  3529. value: function removeOldControlFlowNodeFromHostNodeBody(hostNodeBody, controlFlowNodesList) {
  3530. var _iteratorNormalCompletion = true;
  3531. var _didIteratorError = false;
  3532. var _iteratorError = undefined;
  3533. try {
  3534. for (var _iterator = (0, _getIterator3.default)(controlFlowNodesList), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  3535. var controlFlowNode = _step.value;
  3536. var firstIndexOfNode = hostNodeBody.indexOf(controlFlowNode[0]);
  3537. if (firstIndexOfNode === -1) {
  3538. continue;
  3539. }
  3540. return _.difference(hostNodeBody, controlFlowNode);
  3541. }
  3542. } catch (err) {
  3543. _didIteratorError = true;
  3544. _iteratorError = err;
  3545. } finally {
  3546. try {
  3547. if (!_iteratorNormalCompletion && _iterator.return) {
  3548. _iterator.return();
  3549. }
  3550. } finally {
  3551. if (_didIteratorError) {
  3552. throw _iteratorError;
  3553. }
  3554. }
  3555. }
  3556. return hostNodeBody;
  3557. }
  3558. }]);
  3559. return FunctionControlFlowTransformer;
  3560. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  3561. FunctionControlFlowTransformer.controlFlowReplacersMap = new _map2.default([[NodeType_1.NodeType.BinaryExpression, NodeControlFlowReplacers_1.NodeControlFlowReplacers.BinaryExpressionControlFlowReplacer]]);
  3562. FunctionControlFlowTransformer.hostNodeSearchMinDepth = 2;
  3563. FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 10;
  3564. FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IStorage<ICustomNode>>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IControlFlowReplacer>'])), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<ICustomNode>'])), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Function, Object])], FunctionControlFlowTransformer);
  3565. exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;
  3566. var FunctionControlFlowTransformer_1;
  3567. /***/ },
  3568. /* 85 */
  3569. /***/ function(module, exports, __webpack_require__) {
  3570. "use strict";
  3571. "use strict";
  3572. var _classCallCheck2 = __webpack_require__(0);
  3573. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3574. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3575. var tslib_1 = __webpack_require__(3);
  3576. var inversify_1 = __webpack_require__(2);
  3577. var ServiceIdentifiers_1 = __webpack_require__(4);
  3578. var AbstractControlFlowReplacer = function AbstractControlFlowReplacer(options) {
  3579. (0, _classCallCheck3.default)(this, AbstractControlFlowReplacer);
  3580. this.options = options;
  3581. };
  3582. AbstractControlFlowReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractControlFlowReplacer);
  3583. exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;
  3584. /***/ },
  3585. /* 86 */
  3586. /***/ function(module, exports, __webpack_require__) {
  3587. "use strict";
  3588. "use strict";
  3589. var _map = __webpack_require__(12);
  3590. var _map2 = _interopRequireDefault(_map);
  3591. var _getPrototypeOf = __webpack_require__(5);
  3592. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3593. var _classCallCheck2 = __webpack_require__(0);
  3594. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3595. var _createClass2 = __webpack_require__(1);
  3596. var _createClass3 = _interopRequireDefault(_createClass2);
  3597. var _possibleConstructorReturn2 = __webpack_require__(7);
  3598. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3599. var _inherits2 = __webpack_require__(6);
  3600. var _inherits3 = _interopRequireDefault(_inherits2);
  3601. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3602. var tslib_1 = __webpack_require__(3);
  3603. var inversify_1 = __webpack_require__(2);
  3604. var ServiceIdentifiers_1 = __webpack_require__(4);
  3605. var CustomNodes_1 = __webpack_require__(20);
  3606. var AbstractControlFlowReplacer_1 = __webpack_require__(85);
  3607. var Node_1 = __webpack_require__(10);
  3608. var NodeUtils_1 = __webpack_require__(15);
  3609. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3610. var BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = function (_AbstractControlFlowR) {
  3611. (0, _inherits3.default)(BinaryExpressionControlFlowReplacer, _AbstractControlFlowR);
  3612. function BinaryExpressionControlFlowReplacer(customNodeFactory, options) {
  3613. (0, _classCallCheck3.default)(this, BinaryExpressionControlFlowReplacer);
  3614. var _this = (0, _possibleConstructorReturn3.default)(this, (BinaryExpressionControlFlowReplacer.__proto__ || (0, _getPrototypeOf2.default)(BinaryExpressionControlFlowReplacer)).call(this, options));
  3615. _this.binaryOperatorsDataByControlFlowStorageId = new _map2.default();
  3616. _this.customNodeFactory = customNodeFactory;
  3617. return _this;
  3618. }
  3619. (0, _createClass3.default)(BinaryExpressionControlFlowReplacer, [{
  3620. key: "replace",
  3621. value: function replace(binaryExpressionNode, parentNode, controlFlowStorage) {
  3622. var controlFlowStorageId = controlFlowStorage.getStorageId();
  3623. var controlFlowStorageCallCustomNode = this.customNodeFactory(CustomNodes_1.CustomNodes.ControlFlowStorageCallNode);
  3624. var storageKeysByBinaryOperator = BinaryExpressionControlFlowReplacer_1.getStorageKeysByBinaryOperatorForCurrentStorage(this.binaryOperatorsDataByControlFlowStorageId, controlFlowStorageId);
  3625. var storageKeysForCurrentOperator = storageKeysByBinaryOperator.get(binaryExpressionNode.operator);
  3626. var storageKey = void 0;
  3627. if (RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomFloat(0, 1) > BinaryExpressionControlFlowReplacer_1.useExistingOperatorKeyThreshold && storageKeysForCurrentOperator && storageKeysForCurrentOperator.length) {
  3628. storageKey = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().pickone(storageKeysForCurrentOperator);
  3629. } else {
  3630. var binaryExpressionFunctionCustomNode = this.customNodeFactory(CustomNodes_1.CustomNodes.BinaryExpressionFunctionNode);
  3631. binaryExpressionFunctionCustomNode.initialize(binaryExpressionNode.operator);
  3632. storageKey = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(3);
  3633. storageKeysByBinaryOperator.set(binaryExpressionNode.operator, [storageKey]);
  3634. this.binaryOperatorsDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysByBinaryOperator);
  3635. controlFlowStorage.set(storageKey, binaryExpressionFunctionCustomNode);
  3636. }
  3637. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, NodeUtils_1.NodeUtils.convertStructureToCode([binaryExpressionNode.left]), NodeUtils_1.NodeUtils.convertStructureToCode([binaryExpressionNode.right]));
  3638. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  3639. if (!statementNode || !Node_1.Node.isExpressionStatementNode(statementNode)) {
  3640. throw new Error("`controlFlowStorageCallNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  3641. }
  3642. return statementNode.expression;
  3643. }
  3644. }], [{
  3645. key: "getStorageKeysByBinaryOperatorForCurrentStorage",
  3646. value: function getStorageKeysByBinaryOperatorForCurrentStorage(binaryOperatorsDataByControlFlowStorageId, controlFlowStorageId) {
  3647. var storageKeysByBinaryOperator = void 0;
  3648. if (binaryOperatorsDataByControlFlowStorageId.has(controlFlowStorageId)) {
  3649. storageKeysByBinaryOperator = binaryOperatorsDataByControlFlowStorageId.get(controlFlowStorageId);
  3650. } else {
  3651. storageKeysByBinaryOperator = new _map2.default();
  3652. }
  3653. return storageKeysByBinaryOperator;
  3654. }
  3655. }]);
  3656. return BinaryExpressionControlFlowReplacer;
  3657. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  3658. BinaryExpressionControlFlowReplacer.useExistingOperatorKeyThreshold = 0.5;
  3659. BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = 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.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], BinaryExpressionControlFlowReplacer);
  3660. exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;
  3661. var BinaryExpressionControlFlowReplacer_1;
  3662. /***/ },
  3663. /* 87 */
  3664. /***/ function(module, exports, __webpack_require__) {
  3665. "use strict";
  3666. "use strict";
  3667. var _getPrototypeOf = __webpack_require__(5);
  3668. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3669. var _classCallCheck2 = __webpack_require__(0);
  3670. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3671. var _createClass2 = __webpack_require__(1);
  3672. var _createClass3 = _interopRequireDefault(_createClass2);
  3673. var _possibleConstructorReturn2 = __webpack_require__(7);
  3674. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3675. var _inherits2 = __webpack_require__(6);
  3676. var _inherits3 = _interopRequireDefault(_inherits2);
  3677. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3678. var tslib_1 = __webpack_require__(3);
  3679. var inversify_1 = __webpack_require__(2);
  3680. var ServiceIdentifiers_1 = __webpack_require__(4);
  3681. var estraverse = __webpack_require__(13);
  3682. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  3683. var NodeType_1 = __webpack_require__(17);
  3684. var AbstractNodeTransformer_1 = __webpack_require__(18);
  3685. var Node_1 = __webpack_require__(10);
  3686. var NodeUtils_1 = __webpack_require__(15);
  3687. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3688. var CatchClauseObfuscator = function (_AbstractNodeTransfor) {
  3689. (0, _inherits3.default)(CatchClauseObfuscator, _AbstractNodeTransfor);
  3690. function CatchClauseObfuscator(replacersFactory, options) {
  3691. (0, _classCallCheck3.default)(this, CatchClauseObfuscator);
  3692. var _this = (0, _possibleConstructorReturn3.default)(this, (CatchClauseObfuscator.__proto__ || (0, _getPrototypeOf2.default)(CatchClauseObfuscator)).call(this, options));
  3693. _this.identifierReplacer = replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.IdentifierReplacer);
  3694. return _this;
  3695. }
  3696. (0, _createClass3.default)(CatchClauseObfuscator, [{
  3697. key: "transformNode",
  3698. value: function transformNode(catchClauseNode) {
  3699. var nodeIdentifier = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(7);
  3700. this.storeCatchClauseParam(catchClauseNode, nodeIdentifier);
  3701. this.replaceCatchClauseParam(catchClauseNode, nodeIdentifier);
  3702. }
  3703. }, {
  3704. key: "storeCatchClauseParam",
  3705. value: function storeCatchClauseParam(catchClauseNode, nodeIdentifier) {
  3706. var _this2 = this;
  3707. NodeUtils_1.NodeUtils.typedTraverse(catchClauseNode.param, NodeType_1.NodeType.Identifier, {
  3708. enter: function enter(node) {
  3709. return _this2.identifierReplacer.storeNames(node.name, nodeIdentifier);
  3710. }
  3711. });
  3712. }
  3713. }, {
  3714. key: "replaceCatchClauseParam",
  3715. value: function replaceCatchClauseParam(catchClauseNode, nodeIdentifier) {
  3716. var _this3 = this;
  3717. estraverse.replace(catchClauseNode, {
  3718. enter: function enter(node, parentNode) {
  3719. if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
  3720. node.name = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
  3721. }
  3722. }
  3723. });
  3724. }
  3725. }]);
  3726. return CatchClauseObfuscator;
  3727. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  3728. CatchClauseObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], CatchClauseObfuscator);
  3729. exports.CatchClauseObfuscator = CatchClauseObfuscator;
  3730. /***/ },
  3731. /* 88 */
  3732. /***/ function(module, exports, __webpack_require__) {
  3733. "use strict";
  3734. "use strict";
  3735. var _getPrototypeOf = __webpack_require__(5);
  3736. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3737. var _classCallCheck2 = __webpack_require__(0);
  3738. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3739. var _createClass2 = __webpack_require__(1);
  3740. var _createClass3 = _interopRequireDefault(_createClass2);
  3741. var _possibleConstructorReturn2 = __webpack_require__(7);
  3742. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3743. var _inherits2 = __webpack_require__(6);
  3744. var _inherits3 = _interopRequireDefault(_inherits2);
  3745. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3746. var tslib_1 = __webpack_require__(3);
  3747. var inversify_1 = __webpack_require__(2);
  3748. var ServiceIdentifiers_1 = __webpack_require__(4);
  3749. var estraverse = __webpack_require__(13);
  3750. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  3751. var NodeType_1 = __webpack_require__(17);
  3752. var AbstractNodeTransformer_1 = __webpack_require__(18);
  3753. var Node_1 = __webpack_require__(10);
  3754. var NodeUtils_1 = __webpack_require__(15);
  3755. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3756. var FunctionDeclarationObfuscator = function (_AbstractNodeTransfor) {
  3757. (0, _inherits3.default)(FunctionDeclarationObfuscator, _AbstractNodeTransfor);
  3758. function FunctionDeclarationObfuscator(nodeObfuscatorsReplacersFactory, options) {
  3759. (0, _classCallCheck3.default)(this, FunctionDeclarationObfuscator);
  3760. var _this = (0, _possibleConstructorReturn3.default)(this, (FunctionDeclarationObfuscator.__proto__ || (0, _getPrototypeOf2.default)(FunctionDeclarationObfuscator)).call(this, options));
  3761. _this.identifierReplacer = nodeObfuscatorsReplacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.IdentifierReplacer);
  3762. return _this;
  3763. }
  3764. (0, _createClass3.default)(FunctionDeclarationObfuscator, [{
  3765. key: "transformNode",
  3766. value: function transformNode(functionDeclarationNode, parentNode) {
  3767. var nodeIdentifier = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(7);
  3768. var blockScopeOfFunctionDeclarationNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(functionDeclarationNode)[0];
  3769. if (blockScopeOfFunctionDeclarationNode.type === NodeType_1.NodeType.Program) {
  3770. return;
  3771. }
  3772. this.storeFunctionName(functionDeclarationNode, nodeIdentifier);
  3773. this.replaceFunctionName(blockScopeOfFunctionDeclarationNode, nodeIdentifier);
  3774. }
  3775. }, {
  3776. key: "storeFunctionName",
  3777. value: function storeFunctionName(functionDeclarationNode, nodeIdentifier) {
  3778. var _this2 = this;
  3779. NodeUtils_1.NodeUtils.typedTraverse(functionDeclarationNode.id, NodeType_1.NodeType.Identifier, {
  3780. enter: function enter(node) {
  3781. return _this2.identifierReplacer.storeNames(node.name, nodeIdentifier);
  3782. }
  3783. });
  3784. }
  3785. }, {
  3786. key: "replaceFunctionName",
  3787. value: function replaceFunctionName(scopeNode, nodeIdentifier) {
  3788. var _this3 = this;
  3789. estraverse.replace(scopeNode, {
  3790. enter: function enter(node, parentNode) {
  3791. if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
  3792. node.name = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
  3793. }
  3794. }
  3795. });
  3796. }
  3797. }]);
  3798. return FunctionDeclarationObfuscator;
  3799. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  3800. FunctionDeclarationObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], FunctionDeclarationObfuscator);
  3801. exports.FunctionDeclarationObfuscator = FunctionDeclarationObfuscator;
  3802. /***/ },
  3803. /* 89 */
  3804. /***/ function(module, exports, __webpack_require__) {
  3805. "use strict";
  3806. "use strict";
  3807. var _getPrototypeOf = __webpack_require__(5);
  3808. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3809. var _classCallCheck2 = __webpack_require__(0);
  3810. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3811. var _createClass2 = __webpack_require__(1);
  3812. var _createClass3 = _interopRequireDefault(_createClass2);
  3813. var _possibleConstructorReturn2 = __webpack_require__(7);
  3814. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3815. var _inherits2 = __webpack_require__(6);
  3816. var _inherits3 = _interopRequireDefault(_inherits2);
  3817. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3818. var tslib_1 = __webpack_require__(3);
  3819. var inversify_1 = __webpack_require__(2);
  3820. var ServiceIdentifiers_1 = __webpack_require__(4);
  3821. var estraverse = __webpack_require__(13);
  3822. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  3823. var NodeType_1 = __webpack_require__(17);
  3824. var AbstractNodeTransformer_1 = __webpack_require__(18);
  3825. var Node_1 = __webpack_require__(10);
  3826. var NodeUtils_1 = __webpack_require__(15);
  3827. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3828. var FunctionObfuscator = function (_AbstractNodeTransfor) {
  3829. (0, _inherits3.default)(FunctionObfuscator, _AbstractNodeTransfor);
  3830. function FunctionObfuscator(nodeObfuscatorsReplacersFactory, options) {
  3831. (0, _classCallCheck3.default)(this, FunctionObfuscator);
  3832. var _this = (0, _possibleConstructorReturn3.default)(this, (FunctionObfuscator.__proto__ || (0, _getPrototypeOf2.default)(FunctionObfuscator)).call(this, options));
  3833. _this.identifierReplacer = nodeObfuscatorsReplacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.IdentifierReplacer);
  3834. return _this;
  3835. }
  3836. (0, _createClass3.default)(FunctionObfuscator, [{
  3837. key: "transformNode",
  3838. value: function transformNode(functionNode) {
  3839. var nodeIdentifier = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(7);
  3840. this.storeFunctionParams(functionNode, nodeIdentifier);
  3841. this.replaceFunctionParams(functionNode, nodeIdentifier);
  3842. }
  3843. }, {
  3844. key: "storeFunctionParams",
  3845. value: function storeFunctionParams(functionNode, nodeIdentifier) {
  3846. var _this2 = this;
  3847. functionNode.params.forEach(function (paramsNode) {
  3848. NodeUtils_1.NodeUtils.typedTraverse(paramsNode, NodeType_1.NodeType.Identifier, {
  3849. enter: function enter(node) {
  3850. return _this2.identifierReplacer.storeNames(node.name, nodeIdentifier);
  3851. }
  3852. });
  3853. });
  3854. }
  3855. }, {
  3856. key: "replaceFunctionParams",
  3857. value: function replaceFunctionParams(functionNode, nodeIdentifier) {
  3858. var _this3 = this;
  3859. var traverseVisitor = {
  3860. enter: function enter(node, parentNode) {
  3861. if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
  3862. var newNodeName = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
  3863. if (node.name !== newNodeName) {
  3864. node.name = newNodeName;
  3865. node.obfuscated = true;
  3866. }
  3867. }
  3868. }
  3869. };
  3870. functionNode.params.forEach(function (paramsNode) {
  3871. return estraverse.replace(paramsNode, traverseVisitor);
  3872. });
  3873. estraverse.replace(functionNode.body, traverseVisitor);
  3874. }
  3875. }]);
  3876. return FunctionObfuscator;
  3877. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  3878. FunctionObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], FunctionObfuscator);
  3879. exports.FunctionObfuscator = FunctionObfuscator;
  3880. /***/ },
  3881. /* 90 */
  3882. /***/ function(module, exports, __webpack_require__) {
  3883. "use strict";
  3884. "use strict";
  3885. var _getPrototypeOf = __webpack_require__(5);
  3886. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3887. var _classCallCheck2 = __webpack_require__(0);
  3888. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3889. var _createClass2 = __webpack_require__(1);
  3890. var _createClass3 = _interopRequireDefault(_createClass2);
  3891. var _possibleConstructorReturn2 = __webpack_require__(7);
  3892. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3893. var _inherits2 = __webpack_require__(6);
  3894. var _inherits3 = _interopRequireDefault(_inherits2);
  3895. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3896. var tslib_1 = __webpack_require__(3);
  3897. var inversify_1 = __webpack_require__(2);
  3898. var ServiceIdentifiers_1 = __webpack_require__(4);
  3899. var estraverse = __webpack_require__(13);
  3900. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  3901. var NodeType_1 = __webpack_require__(17);
  3902. var AbstractNodeTransformer_1 = __webpack_require__(18);
  3903. var Node_1 = __webpack_require__(10);
  3904. var NodeUtils_1 = __webpack_require__(15);
  3905. var RandomGeneratorUtils_1 = __webpack_require__(8);
  3906. var LabeledStatementObfuscator = function (_AbstractNodeTransfor) {
  3907. (0, _inherits3.default)(LabeledStatementObfuscator, _AbstractNodeTransfor);
  3908. function LabeledStatementObfuscator(nodeObfuscatorsReplacersFactory, options) {
  3909. (0, _classCallCheck3.default)(this, LabeledStatementObfuscator);
  3910. var _this = (0, _possibleConstructorReturn3.default)(this, (LabeledStatementObfuscator.__proto__ || (0, _getPrototypeOf2.default)(LabeledStatementObfuscator)).call(this, options));
  3911. _this.identifierReplacer = nodeObfuscatorsReplacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.IdentifierReplacer);
  3912. return _this;
  3913. }
  3914. (0, _createClass3.default)(LabeledStatementObfuscator, [{
  3915. key: "transformNode",
  3916. value: function transformNode(labeledStatementNode) {
  3917. var nodeIdentifier = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(7);
  3918. this.storeLabeledStatementName(labeledStatementNode, nodeIdentifier);
  3919. this.replaceLabeledStatementName(labeledStatementNode, nodeIdentifier);
  3920. }
  3921. }, {
  3922. key: "storeLabeledStatementName",
  3923. value: function storeLabeledStatementName(labeledStatementNode, nodeIdentifier) {
  3924. var _this2 = this;
  3925. NodeUtils_1.NodeUtils.typedTraverse(labeledStatementNode.label, NodeType_1.NodeType.Identifier, {
  3926. enter: function enter(node) {
  3927. return _this2.identifierReplacer.storeNames(node.name, nodeIdentifier);
  3928. }
  3929. });
  3930. }
  3931. }, {
  3932. key: "replaceLabeledStatementName",
  3933. value: function replaceLabeledStatementName(labeledStatementNode, nodeIdentifier) {
  3934. var _this3 = this;
  3935. estraverse.replace(labeledStatementNode, {
  3936. enter: function enter(node, parentNode) {
  3937. if (Node_1.Node.isLabelIdentifierNode(node, parentNode)) {
  3938. node.name = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
  3939. }
  3940. }
  3941. });
  3942. }
  3943. }]);
  3944. return LabeledStatementObfuscator;
  3945. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  3946. LabeledStatementObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], LabeledStatementObfuscator);
  3947. exports.LabeledStatementObfuscator = LabeledStatementObfuscator;
  3948. /***/ },
  3949. /* 91 */
  3950. /***/ function(module, exports, __webpack_require__) {
  3951. "use strict";
  3952. "use strict";
  3953. var _typeof2 = __webpack_require__(135);
  3954. var _typeof3 = _interopRequireDefault(_typeof2);
  3955. var _getPrototypeOf = __webpack_require__(5);
  3956. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  3957. var _classCallCheck2 = __webpack_require__(0);
  3958. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  3959. var _createClass2 = __webpack_require__(1);
  3960. var _createClass3 = _interopRequireDefault(_createClass2);
  3961. var _possibleConstructorReturn2 = __webpack_require__(7);
  3962. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  3963. var _inherits2 = __webpack_require__(6);
  3964. var _inherits3 = _interopRequireDefault(_inherits2);
  3965. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  3966. var tslib_1 = __webpack_require__(3);
  3967. var inversify_1 = __webpack_require__(2);
  3968. var ServiceIdentifiers_1 = __webpack_require__(4);
  3969. var escodegen = __webpack_require__(26);
  3970. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  3971. var AbstractNodeTransformer_1 = __webpack_require__(18);
  3972. var Node_1 = __webpack_require__(10);
  3973. var LiteralObfuscator = function (_AbstractNodeTransfor) {
  3974. (0, _inherits3.default)(LiteralObfuscator, _AbstractNodeTransfor);
  3975. function LiteralObfuscator(replacersFactory, options) {
  3976. (0, _classCallCheck3.default)(this, LiteralObfuscator);
  3977. var _this = (0, _possibleConstructorReturn3.default)(this, (LiteralObfuscator.__proto__ || (0, _getPrototypeOf2.default)(LiteralObfuscator)).call(this, options));
  3978. _this.replacersFactory = replacersFactory;
  3979. return _this;
  3980. }
  3981. (0, _createClass3.default)(LiteralObfuscator, [{
  3982. key: "transformNode",
  3983. value: function transformNode(literalNode, parentNode) {
  3984. if (Node_1.Node.isPropertyNode(parentNode) && parentNode.key === literalNode) {
  3985. return;
  3986. }
  3987. var content = void 0;
  3988. switch ((0, _typeof3.default)(literalNode.value)) {
  3989. case 'boolean':
  3990. content = this.replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.BooleanReplacer).replace(literalNode.value);
  3991. break;
  3992. case 'number':
  3993. content = this.replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.NumberLiteralReplacer).replace(literalNode.value);
  3994. break;
  3995. case 'string':
  3996. content = this.replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.StringLiteralReplacer).replace(literalNode.value);
  3997. break;
  3998. default:
  3999. return;
  4000. }
  4001. literalNode['x-verbatim-property'] = {
  4002. content: content,
  4003. precedence: escodegen.Precedence.Primary
  4004. };
  4005. }
  4006. }]);
  4007. return LiteralObfuscator;
  4008. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4009. LiteralObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], LiteralObfuscator);
  4010. exports.LiteralObfuscator = LiteralObfuscator;
  4011. /***/ },
  4012. /* 92 */
  4013. /***/ function(module, exports, __webpack_require__) {
  4014. "use strict";
  4015. "use strict";
  4016. var _assign = __webpack_require__(34);
  4017. var _assign2 = _interopRequireDefault(_assign);
  4018. var _getPrototypeOf = __webpack_require__(5);
  4019. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4020. var _classCallCheck2 = __webpack_require__(0);
  4021. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4022. var _createClass2 = __webpack_require__(1);
  4023. var _createClass3 = _interopRequireDefault(_createClass2);
  4024. var _possibleConstructorReturn2 = __webpack_require__(7);
  4025. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4026. var _inherits2 = __webpack_require__(6);
  4027. var _inherits3 = _interopRequireDefault(_inherits2);
  4028. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4029. var tslib_1 = __webpack_require__(3);
  4030. var inversify_1 = __webpack_require__(2);
  4031. var ServiceIdentifiers_1 = __webpack_require__(4);
  4032. var escodegen = __webpack_require__(26);
  4033. var estraverse = __webpack_require__(13);
  4034. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  4035. var NodeType_1 = __webpack_require__(17);
  4036. var AbstractNodeTransformer_1 = __webpack_require__(18);
  4037. var Node_1 = __webpack_require__(10);
  4038. var MemberExpressionObfuscator = function (_AbstractNodeTransfor) {
  4039. (0, _inherits3.default)(MemberExpressionObfuscator, _AbstractNodeTransfor);
  4040. function MemberExpressionObfuscator(replacersFactory, options) {
  4041. (0, _classCallCheck3.default)(this, MemberExpressionObfuscator);
  4042. var _this = (0, _possibleConstructorReturn3.default)(this, (MemberExpressionObfuscator.__proto__ || (0, _getPrototypeOf2.default)(MemberExpressionObfuscator)).call(this, options));
  4043. _this.stringLiteralReplacer = replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.StringLiteralReplacer);
  4044. return _this;
  4045. }
  4046. (0, _createClass3.default)(MemberExpressionObfuscator, [{
  4047. key: "transformNode",
  4048. value: function transformNode(memberExpressionNode) {
  4049. var _this2 = this;
  4050. estraverse.traverse(memberExpressionNode.property, {
  4051. enter: function enter(node, parentNode) {
  4052. if (Node_1.Node.isLiteralNode(node)) {
  4053. _this2.obfuscateLiteralProperty(node);
  4054. return;
  4055. }
  4056. if (Node_1.Node.isIdentifierNode(node)) {
  4057. if (memberExpressionNode.computed) {
  4058. return;
  4059. }
  4060. memberExpressionNode.computed = true;
  4061. _this2.obfuscateIdentifierProperty(node);
  4062. }
  4063. }
  4064. });
  4065. }
  4066. }, {
  4067. key: "obfuscateIdentifierProperty",
  4068. value: function obfuscateIdentifierProperty(node) {
  4069. var nodeValue = node.name;
  4070. var literalNode = {
  4071. raw: "'" + nodeValue + "'",
  4072. 'x-verbatim-property': {
  4073. content: this.stringLiteralReplacer.replace(nodeValue),
  4074. precedence: escodegen.Precedence.Primary
  4075. },
  4076. type: NodeType_1.NodeType.Literal,
  4077. value: nodeValue
  4078. };
  4079. delete node.name;
  4080. (0, _assign2.default)(node, literalNode);
  4081. }
  4082. }, {
  4083. key: "obfuscateLiteralProperty",
  4084. value: function obfuscateLiteralProperty(node) {
  4085. if (typeof node.value === 'string' && !node['x-verbatim-property']) {
  4086. node['x-verbatim-property'] = {
  4087. content: this.stringLiteralReplacer.replace(node.value),
  4088. precedence: escodegen.Precedence.Primary
  4089. };
  4090. }
  4091. }
  4092. }]);
  4093. return MemberExpressionObfuscator;
  4094. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4095. MemberExpressionObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], MemberExpressionObfuscator);
  4096. exports.MemberExpressionObfuscator = MemberExpressionObfuscator;
  4097. /***/ },
  4098. /* 93 */
  4099. /***/ function(module, exports, __webpack_require__) {
  4100. "use strict";
  4101. "use strict";
  4102. var _getPrototypeOf = __webpack_require__(5);
  4103. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4104. var _classCallCheck2 = __webpack_require__(0);
  4105. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4106. var _createClass2 = __webpack_require__(1);
  4107. var _createClass3 = _interopRequireDefault(_createClass2);
  4108. var _possibleConstructorReturn2 = __webpack_require__(7);
  4109. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4110. var _inherits2 = __webpack_require__(6);
  4111. var _inherits3 = _interopRequireDefault(_inherits2);
  4112. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4113. var tslib_1 = __webpack_require__(3);
  4114. var inversify_1 = __webpack_require__(2);
  4115. var ServiceIdentifiers_1 = __webpack_require__(4);
  4116. var estraverse = __webpack_require__(13);
  4117. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  4118. var AbstractNodeTransformer_1 = __webpack_require__(18);
  4119. var Node_1 = __webpack_require__(10);
  4120. var MethodDefinitionObfuscator = MethodDefinitionObfuscator_1 = function (_AbstractNodeTransfor) {
  4121. (0, _inherits3.default)(MethodDefinitionObfuscator, _AbstractNodeTransfor);
  4122. function MethodDefinitionObfuscator(replacersFactory, options) {
  4123. (0, _classCallCheck3.default)(this, MethodDefinitionObfuscator);
  4124. var _this = (0, _possibleConstructorReturn3.default)(this, (MethodDefinitionObfuscator.__proto__ || (0, _getPrototypeOf2.default)(MethodDefinitionObfuscator)).call(this, options));
  4125. _this.stringLiteralReplacer = replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.StringLiteralReplacer);
  4126. return _this;
  4127. }
  4128. (0, _createClass3.default)(MethodDefinitionObfuscator, [{
  4129. key: "transformNode",
  4130. value: function transformNode(methodDefinitionNode, parentNode) {
  4131. this.replaceMethodName(methodDefinitionNode);
  4132. }
  4133. }, {
  4134. key: "replaceMethodName",
  4135. value: function replaceMethodName(methodDefinitionNode) {
  4136. var _this2 = this;
  4137. estraverse.replace(methodDefinitionNode.key, {
  4138. enter: function enter(node) {
  4139. if (Node_1.Node.isIdentifierNode(node) && !MethodDefinitionObfuscator_1.ignoredNames.includes(node.name) && methodDefinitionNode.computed === false) {
  4140. methodDefinitionNode.computed = true;
  4141. node.name = _this2.stringLiteralReplacer.replace(node.name);
  4142. return;
  4143. }
  4144. return estraverse.VisitorOption.Skip;
  4145. }
  4146. });
  4147. }
  4148. }]);
  4149. return MethodDefinitionObfuscator;
  4150. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4151. MethodDefinitionObfuscator.ignoredNames = ['constructor'];
  4152. MethodDefinitionObfuscator = MethodDefinitionObfuscator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], MethodDefinitionObfuscator);
  4153. exports.MethodDefinitionObfuscator = MethodDefinitionObfuscator;
  4154. var MethodDefinitionObfuscator_1;
  4155. /***/ },
  4156. /* 94 */
  4157. /***/ function(module, exports, __webpack_require__) {
  4158. "use strict";
  4159. "use strict";
  4160. var _assign = __webpack_require__(34);
  4161. var _assign2 = _interopRequireDefault(_assign);
  4162. var _getPrototypeOf = __webpack_require__(5);
  4163. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4164. var _classCallCheck2 = __webpack_require__(0);
  4165. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4166. var _createClass2 = __webpack_require__(1);
  4167. var _createClass3 = _interopRequireDefault(_createClass2);
  4168. var _possibleConstructorReturn2 = __webpack_require__(7);
  4169. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4170. var _inherits2 = __webpack_require__(6);
  4171. var _inherits3 = _interopRequireDefault(_inherits2);
  4172. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4173. var tslib_1 = __webpack_require__(3);
  4174. var inversify_1 = __webpack_require__(2);
  4175. var ServiceIdentifiers_1 = __webpack_require__(4);
  4176. var escodegen = __webpack_require__(26);
  4177. var estraverse = __webpack_require__(13);
  4178. var NodeType_1 = __webpack_require__(17);
  4179. var AbstractNodeTransformer_1 = __webpack_require__(18);
  4180. var Node_1 = __webpack_require__(10);
  4181. var Utils_1 = __webpack_require__(11);
  4182. var ObjectExpressionObfuscator = function (_AbstractNodeTransfor) {
  4183. (0, _inherits3.default)(ObjectExpressionObfuscator, _AbstractNodeTransfor);
  4184. function ObjectExpressionObfuscator(options) {
  4185. (0, _classCallCheck3.default)(this, ObjectExpressionObfuscator);
  4186. return (0, _possibleConstructorReturn3.default)(this, (ObjectExpressionObfuscator.__proto__ || (0, _getPrototypeOf2.default)(ObjectExpressionObfuscator)).call(this, options));
  4187. }
  4188. (0, _createClass3.default)(ObjectExpressionObfuscator, [{
  4189. key: "transformNode",
  4190. value: function transformNode(objectExpressionNode) {
  4191. var _this2 = this;
  4192. objectExpressionNode.properties.forEach(function (property) {
  4193. if (property.shorthand) {
  4194. property.shorthand = false;
  4195. }
  4196. estraverse.traverse(property.key, {
  4197. enter: function enter(node, parentNode) {
  4198. if (Node_1.Node.isLiteralNode(node)) {
  4199. _this2.obfuscateLiteralPropertyKey(node);
  4200. return;
  4201. }
  4202. if (Node_1.Node.isIdentifierNode(node)) {
  4203. _this2.obfuscateIdentifierPropertyKey(node);
  4204. }
  4205. }
  4206. });
  4207. });
  4208. }
  4209. }, {
  4210. key: "obfuscateLiteralPropertyKey",
  4211. value: function obfuscateLiteralPropertyKey(node) {
  4212. if (typeof node.value === 'string' && !node['x-verbatim-property']) {
  4213. node['x-verbatim-property'] = {
  4214. content: "'" + Utils_1.Utils.stringToUnicodeEscapeSequence(node.value) + "'",
  4215. precedence: escodegen.Precedence.Primary
  4216. };
  4217. }
  4218. }
  4219. }, {
  4220. key: "obfuscateIdentifierPropertyKey",
  4221. value: function obfuscateIdentifierPropertyKey(node) {
  4222. var nodeValue = node.name;
  4223. var literalNode = {
  4224. raw: "'" + nodeValue + "'",
  4225. 'x-verbatim-property': {
  4226. content: "'" + Utils_1.Utils.stringToUnicodeEscapeSequence(nodeValue) + "'",
  4227. precedence: escodegen.Precedence.Primary
  4228. },
  4229. type: NodeType_1.NodeType.Literal,
  4230. value: nodeValue
  4231. };
  4232. delete node.name;
  4233. (0, _assign2.default)(node, literalNode);
  4234. }
  4235. }]);
  4236. return ObjectExpressionObfuscator;
  4237. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4238. ObjectExpressionObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], ObjectExpressionObfuscator);
  4239. exports.ObjectExpressionObfuscator = ObjectExpressionObfuscator;
  4240. /***/ },
  4241. /* 95 */
  4242. /***/ function(module, exports, __webpack_require__) {
  4243. "use strict";
  4244. "use strict";
  4245. var _getPrototypeOf = __webpack_require__(5);
  4246. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4247. var _classCallCheck2 = __webpack_require__(0);
  4248. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4249. var _createClass2 = __webpack_require__(1);
  4250. var _createClass3 = _interopRequireDefault(_createClass2);
  4251. var _possibleConstructorReturn2 = __webpack_require__(7);
  4252. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4253. var _inherits2 = __webpack_require__(6);
  4254. var _inherits3 = _interopRequireDefault(_inherits2);
  4255. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4256. var tslib_1 = __webpack_require__(3);
  4257. var inversify_1 = __webpack_require__(2);
  4258. var ServiceIdentifiers_1 = __webpack_require__(4);
  4259. var estraverse = __webpack_require__(13);
  4260. var NodeObfuscatorsReplacers_1 = __webpack_require__(19);
  4261. var NodeType_1 = __webpack_require__(17);
  4262. var AbstractNodeTransformer_1 = __webpack_require__(18);
  4263. var Node_1 = __webpack_require__(10);
  4264. var NodeUtils_1 = __webpack_require__(15);
  4265. var RandomGeneratorUtils_1 = __webpack_require__(8);
  4266. var VariableDeclarationObfuscator = function (_AbstractNodeTransfor) {
  4267. (0, _inherits3.default)(VariableDeclarationObfuscator, _AbstractNodeTransfor);
  4268. function VariableDeclarationObfuscator(replacersFactory, options) {
  4269. (0, _classCallCheck3.default)(this, VariableDeclarationObfuscator);
  4270. var _this = (0, _possibleConstructorReturn3.default)(this, (VariableDeclarationObfuscator.__proto__ || (0, _getPrototypeOf2.default)(VariableDeclarationObfuscator)).call(this, options));
  4271. _this.identifierReplacer = replacersFactory(NodeObfuscatorsReplacers_1.NodeObfuscatorsReplacers.IdentifierReplacer);
  4272. return _this;
  4273. }
  4274. (0, _createClass3.default)(VariableDeclarationObfuscator, [{
  4275. key: "transformNode",
  4276. value: function transformNode(variableDeclarationNode, parentNode) {
  4277. var blockScopeOfVariableDeclarationNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(variableDeclarationNode)[0];
  4278. if (blockScopeOfVariableDeclarationNode.type === NodeType_1.NodeType.Program) {
  4279. return;
  4280. }
  4281. var nodeIdentifier = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(7);
  4282. var scopeNode = variableDeclarationNode.kind === 'var' ? blockScopeOfVariableDeclarationNode : parentNode;
  4283. this.storeVariableNames(variableDeclarationNode, nodeIdentifier);
  4284. this.replaceVariableNames(scopeNode, nodeIdentifier);
  4285. }
  4286. }, {
  4287. key: "storeVariableNames",
  4288. value: function storeVariableNames(variableDeclarationNode, nodeIdentifier) {
  4289. var _this2 = this;
  4290. variableDeclarationNode.declarations.forEach(function (declarationNode) {
  4291. NodeUtils_1.NodeUtils.typedTraverse(declarationNode.id, NodeType_1.NodeType.Identifier, {
  4292. enter: function enter(node) {
  4293. return _this2.identifierReplacer.storeNames(node.name, nodeIdentifier);
  4294. }
  4295. });
  4296. });
  4297. }
  4298. }, {
  4299. key: "replaceVariableNames",
  4300. value: function replaceVariableNames(scopeNode, nodeIdentifier) {
  4301. var _this3 = this;
  4302. estraverse.replace(scopeNode, {
  4303. enter: function enter(node, parentNode) {
  4304. if (!node.obfuscated && Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) {
  4305. node.name = _this3.identifierReplacer.replace(node.name, nodeIdentifier);
  4306. }
  4307. }
  4308. });
  4309. }
  4310. }]);
  4311. return VariableDeclarationObfuscator;
  4312. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4313. VariableDeclarationObfuscator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['Factory<IObfuscatorReplacer>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], VariableDeclarationObfuscator);
  4314. exports.VariableDeclarationObfuscator = VariableDeclarationObfuscator;
  4315. /***/ },
  4316. /* 96 */
  4317. /***/ function(module, exports, __webpack_require__) {
  4318. "use strict";
  4319. "use strict";
  4320. var _getPrototypeOf = __webpack_require__(5);
  4321. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4322. var _classCallCheck2 = __webpack_require__(0);
  4323. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4324. var _createClass2 = __webpack_require__(1);
  4325. var _createClass3 = _interopRequireDefault(_createClass2);
  4326. var _possibleConstructorReturn2 = __webpack_require__(7);
  4327. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4328. var _inherits2 = __webpack_require__(6);
  4329. var _inherits3 = _interopRequireDefault(_inherits2);
  4330. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4331. var tslib_1 = __webpack_require__(3);
  4332. var inversify_1 = __webpack_require__(2);
  4333. var ServiceIdentifiers_1 = __webpack_require__(4);
  4334. var JSFuck_1 = __webpack_require__(37);
  4335. var AbstractReplacer_1 = __webpack_require__(28);
  4336. var BooleanLiteralReplacer = function (_AbstractReplacer_1$A) {
  4337. (0, _inherits3.default)(BooleanLiteralReplacer, _AbstractReplacer_1$A);
  4338. function BooleanLiteralReplacer(options) {
  4339. (0, _classCallCheck3.default)(this, BooleanLiteralReplacer);
  4340. return (0, _possibleConstructorReturn3.default)(this, (BooleanLiteralReplacer.__proto__ || (0, _getPrototypeOf2.default)(BooleanLiteralReplacer)).call(this, options));
  4341. }
  4342. (0, _createClass3.default)(BooleanLiteralReplacer, [{
  4343. key: "replace",
  4344. value: function replace(nodeValue) {
  4345. return nodeValue ? JSFuck_1.JSFuck.True : JSFuck_1.JSFuck.False;
  4346. }
  4347. }]);
  4348. return BooleanLiteralReplacer;
  4349. }(AbstractReplacer_1.AbstractReplacer);
  4350. BooleanLiteralReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], BooleanLiteralReplacer);
  4351. exports.BooleanLiteralReplacer = BooleanLiteralReplacer;
  4352. /***/ },
  4353. /* 97 */
  4354. /***/ function(module, exports, __webpack_require__) {
  4355. "use strict";
  4356. "use strict";
  4357. var _map = __webpack_require__(12);
  4358. var _map2 = _interopRequireDefault(_map);
  4359. var _getPrototypeOf = __webpack_require__(5);
  4360. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4361. var _classCallCheck2 = __webpack_require__(0);
  4362. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4363. var _createClass2 = __webpack_require__(1);
  4364. var _createClass3 = _interopRequireDefault(_createClass2);
  4365. var _possibleConstructorReturn2 = __webpack_require__(7);
  4366. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4367. var _inherits2 = __webpack_require__(6);
  4368. var _inherits3 = _interopRequireDefault(_inherits2);
  4369. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4370. var tslib_1 = __webpack_require__(3);
  4371. var inversify_1 = __webpack_require__(2);
  4372. var ServiceIdentifiers_1 = __webpack_require__(4);
  4373. var AbstractReplacer_1 = __webpack_require__(28);
  4374. var RandomGeneratorUtils_1 = __webpack_require__(8);
  4375. var IdentifierReplacer = function (_AbstractReplacer_1$A) {
  4376. (0, _inherits3.default)(IdentifierReplacer, _AbstractReplacer_1$A);
  4377. function IdentifierReplacer(options) {
  4378. (0, _classCallCheck3.default)(this, IdentifierReplacer);
  4379. var _this = (0, _possibleConstructorReturn3.default)(this, (IdentifierReplacer.__proto__ || (0, _getPrototypeOf2.default)(IdentifierReplacer)).call(this, options));
  4380. _this.namesMap = new _map2.default();
  4381. return _this;
  4382. }
  4383. (0, _createClass3.default)(IdentifierReplacer, [{
  4384. key: "replace",
  4385. value: function replace(nodeValue, nodeIdentifier) {
  4386. var obfuscatedIdentifierName = this.namesMap.get(nodeValue + "-" + nodeIdentifier);
  4387. if (!obfuscatedIdentifierName) {
  4388. return nodeValue;
  4389. }
  4390. return obfuscatedIdentifierName;
  4391. }
  4392. }, {
  4393. key: "storeNames",
  4394. value: function storeNames(nodeName, nodeIdentifier) {
  4395. if (!this.isReservedName(nodeName)) {
  4396. this.namesMap.set(nodeName + "-" + nodeIdentifier, RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName());
  4397. }
  4398. }
  4399. }, {
  4400. key: "isReservedName",
  4401. value: function isReservedName(name) {
  4402. return this.options.reservedNames.some(function (reservedName) {
  4403. return new RegExp(reservedName, 'g').test(name);
  4404. });
  4405. }
  4406. }]);
  4407. return IdentifierReplacer;
  4408. }(AbstractReplacer_1.AbstractReplacer);
  4409. IdentifierReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], IdentifierReplacer);
  4410. exports.IdentifierReplacer = IdentifierReplacer;
  4411. /***/ },
  4412. /* 98 */
  4413. /***/ function(module, exports, __webpack_require__) {
  4414. "use strict";
  4415. "use strict";
  4416. var _getPrototypeOf = __webpack_require__(5);
  4417. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4418. var _classCallCheck2 = __webpack_require__(0);
  4419. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4420. var _createClass2 = __webpack_require__(1);
  4421. var _createClass3 = _interopRequireDefault(_createClass2);
  4422. var _possibleConstructorReturn2 = __webpack_require__(7);
  4423. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4424. var _inherits2 = __webpack_require__(6);
  4425. var _inherits3 = _interopRequireDefault(_inherits2);
  4426. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4427. var tslib_1 = __webpack_require__(3);
  4428. var inversify_1 = __webpack_require__(2);
  4429. var ServiceIdentifiers_1 = __webpack_require__(4);
  4430. var AbstractReplacer_1 = __webpack_require__(28);
  4431. var Utils_1 = __webpack_require__(11);
  4432. var NumberLiteralReplacer = function (_AbstractReplacer_1$A) {
  4433. (0, _inherits3.default)(NumberLiteralReplacer, _AbstractReplacer_1$A);
  4434. function NumberLiteralReplacer(options) {
  4435. (0, _classCallCheck3.default)(this, NumberLiteralReplacer);
  4436. return (0, _possibleConstructorReturn3.default)(this, (NumberLiteralReplacer.__proto__ || (0, _getPrototypeOf2.default)(NumberLiteralReplacer)).call(this, options));
  4437. }
  4438. (0, _createClass3.default)(NumberLiteralReplacer, [{
  4439. key: "replace",
  4440. value: function replace(nodeValue) {
  4441. if (!Utils_1.Utils.isCeilNumber(nodeValue)) {
  4442. return String(nodeValue);
  4443. }
  4444. return "" + Utils_1.Utils.hexadecimalPrefix + Utils_1.Utils.decToHex(nodeValue);
  4445. }
  4446. }]);
  4447. return NumberLiteralReplacer;
  4448. }(AbstractReplacer_1.AbstractReplacer);
  4449. NumberLiteralReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], NumberLiteralReplacer);
  4450. exports.NumberLiteralReplacer = NumberLiteralReplacer;
  4451. /***/ },
  4452. /* 99 */
  4453. /***/ function(module, exports, __webpack_require__) {
  4454. "use strict";
  4455. "use strict";
  4456. var _getPrototypeOf = __webpack_require__(5);
  4457. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4458. var _classCallCheck2 = __webpack_require__(0);
  4459. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4460. var _createClass2 = __webpack_require__(1);
  4461. var _createClass3 = _interopRequireDefault(_createClass2);
  4462. var _possibleConstructorReturn2 = __webpack_require__(7);
  4463. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4464. var _inherits2 = __webpack_require__(6);
  4465. var _inherits3 = _interopRequireDefault(_inherits2);
  4466. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4467. var tslib_1 = __webpack_require__(3);
  4468. var inversify_1 = __webpack_require__(2);
  4469. var ServiceIdentifiers_1 = __webpack_require__(4);
  4470. var StringArrayEncoding_1 = __webpack_require__(30);
  4471. var AbstractReplacer_1 = __webpack_require__(28);
  4472. var CryptUtils_1 = __webpack_require__(32);
  4473. var RandomGeneratorUtils_1 = __webpack_require__(8);
  4474. var Utils_1 = __webpack_require__(11);
  4475. var StringLiteralReplacer = StringLiteralReplacer_1 = function (_AbstractReplacer_1$A) {
  4476. (0, _inherits3.default)(StringLiteralReplacer, _AbstractReplacer_1$A);
  4477. function StringLiteralReplacer(customNodeGroupStorage, stringArrayStorage, options) {
  4478. (0, _classCallCheck3.default)(this, StringLiteralReplacer);
  4479. var _this = (0, _possibleConstructorReturn3.default)(this, (StringLiteralReplacer.__proto__ || (0, _getPrototypeOf2.default)(StringLiteralReplacer)).call(this, options));
  4480. _this.customNodeGroupStorage = customNodeGroupStorage;
  4481. _this.stringArrayStorage = stringArrayStorage;
  4482. return _this;
  4483. }
  4484. (0, _createClass3.default)(StringLiteralReplacer, [{
  4485. key: "replace",
  4486. value: function replace(nodeValue) {
  4487. var replaceWithStringArrayFlag = nodeValue.length >= StringLiteralReplacer_1.minimumLengthForStringArray && RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomFloat(0, 1) <= this.options.stringArrayThreshold;
  4488. if (this.options.stringArray && replaceWithStringArrayFlag) {
  4489. return this.replaceStringLiteralWithStringArrayCall(nodeValue);
  4490. }
  4491. return "'" + Utils_1.Utils.stringToUnicodeEscapeSequence(nodeValue) + "'";
  4492. }
  4493. }, {
  4494. key: "replaceStringLiteralWithStringArrayCall",
  4495. value: function replaceStringLiteralWithStringArrayCall(value) {
  4496. var rc4Key = '';
  4497. switch (this.options.stringArrayEncoding) {
  4498. case StringArrayEncoding_1.StringArrayEncoding.base64:
  4499. value = CryptUtils_1.CryptUtils.btoa(value);
  4500. break;
  4501. case StringArrayEncoding_1.StringArrayEncoding.rc4:
  4502. rc4Key = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().pickone(StringLiteralReplacer_1.rc4Keys);
  4503. value = CryptUtils_1.CryptUtils.btoa(CryptUtils_1.CryptUtils.rc4(value, rc4Key));
  4504. break;
  4505. }
  4506. if (this.options.unicodeEscapeSequence) {
  4507. value = Utils_1.Utils.stringToUnicodeEscapeSequence(value);
  4508. }
  4509. var indexOfExistingValue = this.stringArrayStorage.getKeyOf(value);
  4510. var indexOfValue = void 0;
  4511. if (indexOfExistingValue >= 0) {
  4512. indexOfValue = indexOfExistingValue;
  4513. } else {
  4514. indexOfValue = this.stringArrayStorage.getLength();
  4515. this.stringArrayStorage.set(null, value);
  4516. }
  4517. var rotatedStringArrayStorageId = Utils_1.Utils.stringRotate(this.stringArrayStorage.getStorageId(), 2);
  4518. var stringArrayStorageCallsWrapperName = "_" + Utils_1.Utils.hexadecimalPrefix + rotatedStringArrayStorageId;
  4519. var hexadecimalIndex = "" + Utils_1.Utils.hexadecimalPrefix + Utils_1.Utils.decToHex(indexOfValue);
  4520. if (this.options.stringArrayEncoding === StringArrayEncoding_1.StringArrayEncoding.rc4) {
  4521. return stringArrayStorageCallsWrapperName + "('" + hexadecimalIndex + "', '" + Utils_1.Utils.stringToUnicodeEscapeSequence(rc4Key) + "')";
  4522. }
  4523. return stringArrayStorageCallsWrapperName + "('" + hexadecimalIndex + "')";
  4524. }
  4525. }]);
  4526. return StringLiteralReplacer;
  4527. }(AbstractReplacer_1.AbstractReplacer);
  4528. StringLiteralReplacer.minimumLengthForStringArray = 3;
  4529. StringLiteralReplacer.rc4Keys = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().n(function () {
  4530. return RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomGenerator().string({ length: 4 });
  4531. }, 50);
  4532. StringLiteralReplacer = StringLiteralReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<ICustomNodeGroup>'])), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers['IStorage<string>'])), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object])], StringLiteralReplacer);
  4533. exports.StringLiteralReplacer = StringLiteralReplacer;
  4534. var StringLiteralReplacer_1;
  4535. /***/ },
  4536. /* 100 */
  4537. /***/ function(module, exports, __webpack_require__) {
  4538. "use strict";
  4539. "use strict";
  4540. var _assign = __webpack_require__(34);
  4541. var _assign2 = _interopRequireDefault(_assign);
  4542. var _classCallCheck2 = __webpack_require__(0);
  4543. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4544. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4545. var tslib_1 = __webpack_require__(3);
  4546. var inversify_1 = __webpack_require__(2);
  4547. var class_validator_1 = __webpack_require__(136);
  4548. var Default_1 = __webpack_require__(42);
  4549. var OptionsNormalizer_1 = __webpack_require__(101);
  4550. var ValidationErrorsFormatter_1 = __webpack_require__(102);
  4551. var Options = Options_1 = function Options(inputOptions) {
  4552. (0, _classCallCheck3.default)(this, Options);
  4553. (0, _assign2.default)(this, Default_1.DEFAULT_PRESET, inputOptions);
  4554. var errors = class_validator_1.validateSync(this, Options_1.validatorOptions);
  4555. if (errors.length) {
  4556. throw new ReferenceError("Validation failed. errors:\n" + ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors));
  4557. }
  4558. (0, _assign2.default)(this, OptionsNormalizer_1.OptionsNormalizer.normalizeOptions(this));
  4559. };
  4560. Options.validatorOptions = {
  4561. validationError: {
  4562. target: false
  4563. }
  4564. };
  4565. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "compact", void 0);
  4566. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "controlFlowFlattening", void 0);
  4567. 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);
  4568. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtection", void 0);
  4569. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtectionInterval", void 0);
  4570. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "disableConsoleOutput", void 0);
  4571. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  4572. each: true
  4573. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "domainLock", void 0);
  4574. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  4575. each: true
  4576. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedNames", void 0);
  4577. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "rotateStringArray", void 0);
  4578. tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "seed", void 0);
  4579. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "selfDefending", void 0);
  4580. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "sourceMap", void 0);
  4581. tslib_1.__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) {
  4582. return Boolean(options.sourceMapBaseUrl);
  4583. }), class_validator_1.IsUrl({
  4584. require_protocol: true,
  4585. require_valid_protocol: true
  4586. }), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapBaseUrl", void 0);
  4587. tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapFileName", void 0);
  4588. tslib_1.__decorate([class_validator_1.IsIn(['inline', 'separate']), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapMode", void 0);
  4589. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "stringArray", void 0);
  4590. tslib_1.__decorate([class_validator_1.IsIn([true, false, 'base64', 'rc4']), tslib_1.__metadata("design:type", Object)], Options.prototype, "stringArrayEncoding", void 0);
  4591. 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);
  4592. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "unicodeEscapeSequence", void 0);
  4593. Options = Options_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [Object])], Options);
  4594. exports.Options = Options;
  4595. var Options_1;
  4596. /***/ },
  4597. /* 101 */
  4598. /***/ function(module, exports, __webpack_require__) {
  4599. "use strict";
  4600. "use strict";
  4601. var _getIterator2 = __webpack_require__(22);
  4602. var _getIterator3 = _interopRequireDefault(_getIterator2);
  4603. var _classCallCheck2 = __webpack_require__(0);
  4604. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4605. var _createClass2 = __webpack_require__(1);
  4606. var _createClass3 = _interopRequireDefault(_createClass2);
  4607. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4608. var tslib_1 = __webpack_require__(3);
  4609. var Utils_1 = __webpack_require__(11);
  4610. var OptionsNormalizer = function () {
  4611. function OptionsNormalizer() {
  4612. (0, _classCallCheck3.default)(this, OptionsNormalizer);
  4613. }
  4614. (0, _createClass3.default)(OptionsNormalizer, null, [{
  4615. key: "normalizeOptions",
  4616. value: function normalizeOptions(options) {
  4617. var normalizedOptions = tslib_1.__assign({}, options);
  4618. var _iteratorNormalCompletion = true;
  4619. var _didIteratorError = false;
  4620. var _iteratorError = undefined;
  4621. try {
  4622. for (var _iterator = (0, _getIterator3.default)(OptionsNormalizer.normalizerRules), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  4623. var normalizerRule = _step.value;
  4624. normalizedOptions = normalizerRule(normalizedOptions);
  4625. }
  4626. } catch (err) {
  4627. _didIteratorError = true;
  4628. _iteratorError = err;
  4629. } finally {
  4630. try {
  4631. if (!_iteratorNormalCompletion && _iterator.return) {
  4632. _iterator.return();
  4633. }
  4634. } finally {
  4635. if (_didIteratorError) {
  4636. throw _iteratorError;
  4637. }
  4638. }
  4639. }
  4640. return normalizedOptions;
  4641. }
  4642. }, {
  4643. key: "controlFlowFlatteningThresholdRule",
  4644. value: function controlFlowFlatteningThresholdRule(options) {
  4645. if (options.controlFlowFlatteningThreshold === 0) {
  4646. options = tslib_1.__assign({}, options, OptionsNormalizer.DISABLED_CONTROL_FLOW_FLATTENING_OPTIONS);
  4647. }
  4648. return options;
  4649. }
  4650. }, {
  4651. key: "domainLockRule",
  4652. value: function domainLockRule(options) {
  4653. if (options.domainLock.length) {
  4654. var normalizedDomains = [];
  4655. var _iteratorNormalCompletion2 = true;
  4656. var _didIteratorError2 = false;
  4657. var _iteratorError2 = undefined;
  4658. try {
  4659. for (var _iterator2 = (0, _getIterator3.default)(options.domainLock), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  4660. var domain = _step2.value;
  4661. normalizedDomains.push(Utils_1.Utils.extractDomainFromUrl(domain));
  4662. }
  4663. } catch (err) {
  4664. _didIteratorError2 = true;
  4665. _iteratorError2 = err;
  4666. } finally {
  4667. try {
  4668. if (!_iteratorNormalCompletion2 && _iterator2.return) {
  4669. _iterator2.return();
  4670. }
  4671. } finally {
  4672. if (_didIteratorError2) {
  4673. throw _iteratorError2;
  4674. }
  4675. }
  4676. }
  4677. options = tslib_1.__assign({}, options, { domainLock: normalizedDomains });
  4678. }
  4679. return options;
  4680. }
  4681. }, {
  4682. key: "selfDefendingRule",
  4683. value: function selfDefendingRule(options) {
  4684. if (options.selfDefending) {
  4685. options = tslib_1.__assign({}, options, OptionsNormalizer.SELF_DEFENDING_OPTIONS);
  4686. }
  4687. return options;
  4688. }
  4689. }, {
  4690. key: "sourceMapBaseUrlRule",
  4691. value: function sourceMapBaseUrlRule(options) {
  4692. var _options = options,
  4693. sourceMapBaseUrl = _options.sourceMapBaseUrl;
  4694. if (!options.sourceMapFileName) {
  4695. options = tslib_1.__assign({}, options, { sourceMapBaseUrl: '' });
  4696. return options;
  4697. }
  4698. if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
  4699. options = tslib_1.__assign({}, options, { sourceMapBaseUrl: sourceMapBaseUrl + "/" });
  4700. }
  4701. return options;
  4702. }
  4703. }, {
  4704. key: "sourceMapFileNameRule",
  4705. value: function sourceMapFileNameRule(options) {
  4706. var _options2 = options,
  4707. sourceMapFileName = _options2.sourceMapFileName;
  4708. if (sourceMapFileName) {
  4709. sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0];
  4710. options = tslib_1.__assign({}, options, { sourceMapFileName: sourceMapFileName + ".js.map" });
  4711. }
  4712. return options;
  4713. }
  4714. }, {
  4715. key: "stringArrayRule",
  4716. value: function stringArrayRule(options) {
  4717. if (!options.stringArray) {
  4718. options = tslib_1.__assign({}, options, OptionsNormalizer.DISABLED_STRING_ARRAY_OPTIONS);
  4719. }
  4720. return options;
  4721. }
  4722. }, {
  4723. key: "stringArrayEncodingRule",
  4724. value: function stringArrayEncodingRule(options) {
  4725. if (options.stringArrayEncoding === true) {
  4726. options = tslib_1.__assign({}, options, OptionsNormalizer.STRING_ARRAY_ENCODING_OPTIONS);
  4727. }
  4728. return options;
  4729. }
  4730. }, {
  4731. key: "stringArrayThresholdRule",
  4732. value: function stringArrayThresholdRule(options) {
  4733. if (options.stringArrayThreshold === 0) {
  4734. options = tslib_1.__assign({}, options, OptionsNormalizer.DISABLED_STRING_ARRAY_OPTIONS);
  4735. }
  4736. return options;
  4737. }
  4738. }]);
  4739. return OptionsNormalizer;
  4740. }();
  4741. OptionsNormalizer.DISABLED_CONTROL_FLOW_FLATTENING_OPTIONS = {
  4742. controlFlowFlattening: false,
  4743. controlFlowFlatteningThreshold: 0
  4744. };
  4745. OptionsNormalizer.DISABLED_STRING_ARRAY_OPTIONS = {
  4746. rotateStringArray: false,
  4747. stringArray: false,
  4748. stringArrayEncoding: false,
  4749. stringArrayThreshold: 0
  4750. };
  4751. OptionsNormalizer.SELF_DEFENDING_OPTIONS = {
  4752. compact: true,
  4753. selfDefending: true
  4754. };
  4755. OptionsNormalizer.STRING_ARRAY_ENCODING_OPTIONS = {
  4756. stringArrayEncoding: 'base64'
  4757. };
  4758. OptionsNormalizer.normalizerRules = [OptionsNormalizer.controlFlowFlatteningThresholdRule, OptionsNormalizer.domainLockRule, OptionsNormalizer.selfDefendingRule, OptionsNormalizer.sourceMapBaseUrlRule, OptionsNormalizer.sourceMapFileNameRule, OptionsNormalizer.stringArrayRule, OptionsNormalizer.stringArrayEncodingRule, OptionsNormalizer.stringArrayThresholdRule];
  4759. exports.OptionsNormalizer = OptionsNormalizer;
  4760. /***/ },
  4761. /* 102 */
  4762. /***/ function(module, exports, __webpack_require__) {
  4763. "use strict";
  4764. "use strict";
  4765. var _getIterator2 = __webpack_require__(22);
  4766. var _getIterator3 = _interopRequireDefault(_getIterator2);
  4767. var _classCallCheck2 = __webpack_require__(0);
  4768. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4769. var _createClass2 = __webpack_require__(1);
  4770. var _createClass3 = _interopRequireDefault(_createClass2);
  4771. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4772. var ValidationErrorsFormatter = function () {
  4773. function ValidationErrorsFormatter() {
  4774. (0, _classCallCheck3.default)(this, ValidationErrorsFormatter);
  4775. }
  4776. (0, _createClass3.default)(ValidationErrorsFormatter, null, [{
  4777. key: "format",
  4778. value: function format(validationErrors) {
  4779. var errorsArray = [];
  4780. var _iteratorNormalCompletion = true;
  4781. var _didIteratorError = false;
  4782. var _iteratorError = undefined;
  4783. try {
  4784. for (var _iterator = (0, _getIterator3.default)(validationErrors), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  4785. var error = _step.value;
  4786. errorsArray.push(ValidationErrorsFormatter.formatError(error));
  4787. }
  4788. } catch (err) {
  4789. _didIteratorError = true;
  4790. _iteratorError = err;
  4791. } finally {
  4792. try {
  4793. if (!_iteratorNormalCompletion && _iterator.return) {
  4794. _iterator.return();
  4795. }
  4796. } finally {
  4797. if (_didIteratorError) {
  4798. throw _iteratorError;
  4799. }
  4800. }
  4801. }
  4802. return errorsArray.join('\n');
  4803. }
  4804. }, {
  4805. key: "formatError",
  4806. value: function formatError(validationError) {
  4807. var constraints = validationError.constraints;
  4808. var errorString = "`" + validationError.property + "` errors:\n";
  4809. for (var constraint in constraints) {
  4810. if (!constraints.hasOwnProperty(constraint)) {
  4811. continue;
  4812. }
  4813. errorString += " - " + constraints[constraint] + "\n";
  4814. }
  4815. return errorString;
  4816. }
  4817. }]);
  4818. return ValidationErrorsFormatter;
  4819. }();
  4820. exports.ValidationErrorsFormatter = ValidationErrorsFormatter;
  4821. /***/ },
  4822. /* 103 */
  4823. /***/ function(module, exports, __webpack_require__) {
  4824. "use strict";
  4825. "use strict";
  4826. var _classCallCheck2 = __webpack_require__(0);
  4827. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4828. var _createClass2 = __webpack_require__(1);
  4829. var _createClass3 = _interopRequireDefault(_createClass2);
  4830. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4831. var tslib_1 = __webpack_require__(3);
  4832. var inversify_1 = __webpack_require__(2);
  4833. var ServiceIdentifiers_1 = __webpack_require__(4);
  4834. var estraverse = __webpack_require__(13);
  4835. var CalleeDataExtractors_1 = __webpack_require__(38);
  4836. var Node_1 = __webpack_require__(10);
  4837. var NodeUtils_1 = __webpack_require__(15);
  4838. var StackTraceAnalyzer = StackTraceAnalyzer_1 = function () {
  4839. function StackTraceAnalyzer(calleeDataExtractorsFactory) {
  4840. (0, _classCallCheck3.default)(this, StackTraceAnalyzer);
  4841. this.calleeDataExtractorsFactory = calleeDataExtractorsFactory;
  4842. }
  4843. (0, _createClass3.default)(StackTraceAnalyzer, [{
  4844. key: "analyze",
  4845. value: function analyze(blockScopeBody) {
  4846. return this.analyzeRecursive(blockScopeBody);
  4847. }
  4848. }, {
  4849. key: "analyzeRecursive",
  4850. value: function analyzeRecursive(blockScopeBody) {
  4851. var _this = this;
  4852. var limitIndex = StackTraceAnalyzer_1.getLimitIndex(blockScopeBody.length);
  4853. var stackTraceData = [];
  4854. var blockScopeBodyLength = blockScopeBody.length;
  4855. var _loop = function _loop(index) {
  4856. if (index > limitIndex) {
  4857. return "break";
  4858. }
  4859. var blockScopeBodyNode = blockScopeBody[index];
  4860. estraverse.traverse(blockScopeBodyNode, {
  4861. enter: function enter(node) {
  4862. if (!Node_1.Node.isCallExpressionNode(node) || blockScopeBodyNode.parentNode !== NodeUtils_1.NodeUtils.getBlockScopesOfNode(node)[0]) {
  4863. return;
  4864. }
  4865. _this.analyzeCallExpressionNode(stackTraceData, blockScopeBody, node);
  4866. }
  4867. });
  4868. };
  4869. for (var index = 0; index < blockScopeBodyLength; index++) {
  4870. var _ret = _loop(index);
  4871. if (_ret === "break") break;
  4872. }
  4873. return stackTraceData;
  4874. }
  4875. }, {
  4876. key: "analyzeCallExpressionNode",
  4877. value: function analyzeCallExpressionNode(stackTraceData, blockScopeBody, callExpressionNode) {
  4878. var _this2 = this;
  4879. StackTraceAnalyzer_1.calleeDataExtractorsList.forEach(function (calleeDataExtractorName) {
  4880. var calleeData = _this2.calleeDataExtractorsFactory(calleeDataExtractorName).extract(blockScopeBody, callExpressionNode.callee);
  4881. if (!calleeData) {
  4882. return;
  4883. }
  4884. stackTraceData.push(tslib_1.__assign({}, calleeData, { stackTrace: _this2.analyzeRecursive(calleeData.callee.body) }));
  4885. });
  4886. }
  4887. }], [{
  4888. key: "getLimitIndex",
  4889. value: function getLimitIndex(blockScopeBodyLength) {
  4890. var lastIndex = blockScopeBodyLength - 1;
  4891. var limitThresholdActivationIndex = StackTraceAnalyzer_1.limitThresholdActivationLength - 1;
  4892. var limitIndex = lastIndex;
  4893. if (lastIndex > limitThresholdActivationIndex) {
  4894. limitIndex = Math.round(limitThresholdActivationIndex + lastIndex * StackTraceAnalyzer_1.limitThreshold);
  4895. if (limitIndex > lastIndex) {
  4896. limitIndex = lastIndex;
  4897. }
  4898. }
  4899. return limitIndex;
  4900. }
  4901. }]);
  4902. return StackTraceAnalyzer;
  4903. }();
  4904. StackTraceAnalyzer.calleeDataExtractorsList = [CalleeDataExtractors_1.CalleeDataExtractors.FunctionDeclarationCalleeDataExtractor, CalleeDataExtractors_1.CalleeDataExtractors.FunctionExpressionCalleeDataExtractor, CalleeDataExtractors_1.CalleeDataExtractors.ObjectExpressionCalleeDataExtractor];
  4905. StackTraceAnalyzer.limitThresholdActivationLength = 25;
  4906. StackTraceAnalyzer.limitThreshold = 0.002;
  4907. 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);
  4908. exports.StackTraceAnalyzer = StackTraceAnalyzer;
  4909. var StackTraceAnalyzer_1;
  4910. /***/ },
  4911. /* 104 */
  4912. /***/ function(module, exports, __webpack_require__) {
  4913. "use strict";
  4914. "use strict";
  4915. var _getPrototypeOf = __webpack_require__(5);
  4916. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4917. var _classCallCheck2 = __webpack_require__(0);
  4918. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4919. var _createClass2 = __webpack_require__(1);
  4920. var _createClass3 = _interopRequireDefault(_createClass2);
  4921. var _possibleConstructorReturn2 = __webpack_require__(7);
  4922. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4923. var _inherits2 = __webpack_require__(6);
  4924. var _inherits3 = _interopRequireDefault(_inherits2);
  4925. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4926. var tslib_1 = __webpack_require__(3);
  4927. var inversify_1 = __webpack_require__(2);
  4928. var estraverse = __webpack_require__(13);
  4929. var AbstractCalleeDataExtractor_1 = __webpack_require__(31);
  4930. var Node_1 = __webpack_require__(10);
  4931. var NodeUtils_1 = __webpack_require__(15);
  4932. var FunctionDeclarationCalleeDataExtractor = function (_AbstractCalleeDataEx) {
  4933. (0, _inherits3.default)(FunctionDeclarationCalleeDataExtractor, _AbstractCalleeDataEx);
  4934. function FunctionDeclarationCalleeDataExtractor() {
  4935. (0, _classCallCheck3.default)(this, FunctionDeclarationCalleeDataExtractor);
  4936. return (0, _possibleConstructorReturn3.default)(this, (FunctionDeclarationCalleeDataExtractor.__proto__ || (0, _getPrototypeOf2.default)(FunctionDeclarationCalleeDataExtractor)).apply(this, arguments));
  4937. }
  4938. (0, _createClass3.default)(FunctionDeclarationCalleeDataExtractor, [{
  4939. key: "extract",
  4940. value: function extract(blockScopeBody, callee) {
  4941. var calleeBlockStatement = null;
  4942. if (Node_1.Node.isIdentifierNode(callee)) {
  4943. calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockScopeBody[0])[0], callee.name);
  4944. }
  4945. if (!calleeBlockStatement) {
  4946. return null;
  4947. }
  4948. return {
  4949. callee: calleeBlockStatement,
  4950. name: callee.name
  4951. };
  4952. }
  4953. }, {
  4954. key: "getCalleeBlockStatement",
  4955. value: function getCalleeBlockStatement(node, name) {
  4956. var calleeBlockStatement = null;
  4957. estraverse.traverse(node, {
  4958. enter: function enter(node) {
  4959. if (Node_1.Node.isFunctionDeclarationNode(node) && node.id.name === name) {
  4960. calleeBlockStatement = node.body;
  4961. return estraverse.VisitorOption.Break;
  4962. }
  4963. }
  4964. });
  4965. return calleeBlockStatement;
  4966. }
  4967. }]);
  4968. return FunctionDeclarationCalleeDataExtractor;
  4969. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  4970. FunctionDeclarationCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], FunctionDeclarationCalleeDataExtractor);
  4971. exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;
  4972. /***/ },
  4973. /* 105 */
  4974. /***/ function(module, exports, __webpack_require__) {
  4975. "use strict";
  4976. "use strict";
  4977. var _getPrototypeOf = __webpack_require__(5);
  4978. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  4979. var _classCallCheck2 = __webpack_require__(0);
  4980. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  4981. var _createClass2 = __webpack_require__(1);
  4982. var _createClass3 = _interopRequireDefault(_createClass2);
  4983. var _possibleConstructorReturn2 = __webpack_require__(7);
  4984. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  4985. var _inherits2 = __webpack_require__(6);
  4986. var _inherits3 = _interopRequireDefault(_inherits2);
  4987. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  4988. var tslib_1 = __webpack_require__(3);
  4989. var inversify_1 = __webpack_require__(2);
  4990. var estraverse = __webpack_require__(13);
  4991. var AbstractCalleeDataExtractor_1 = __webpack_require__(31);
  4992. var Node_1 = __webpack_require__(10);
  4993. var NodeUtils_1 = __webpack_require__(15);
  4994. var FunctionExpressionCalleeDataExtractor = function (_AbstractCalleeDataEx) {
  4995. (0, _inherits3.default)(FunctionExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
  4996. function FunctionExpressionCalleeDataExtractor() {
  4997. (0, _classCallCheck3.default)(this, FunctionExpressionCalleeDataExtractor);
  4998. return (0, _possibleConstructorReturn3.default)(this, (FunctionExpressionCalleeDataExtractor.__proto__ || (0, _getPrototypeOf2.default)(FunctionExpressionCalleeDataExtractor)).apply(this, arguments));
  4999. }
  5000. (0, _createClass3.default)(FunctionExpressionCalleeDataExtractor, [{
  5001. key: "extract",
  5002. value: function extract(blockScopeBody, callee) {
  5003. var calleeBlockStatement = null;
  5004. if (Node_1.Node.isIdentifierNode(callee)) {
  5005. calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockScopeBody[0])[0], callee.name);
  5006. }
  5007. if (Node_1.Node.isFunctionExpressionNode(callee)) {
  5008. calleeBlockStatement = callee.body;
  5009. }
  5010. if (!calleeBlockStatement) {
  5011. return null;
  5012. }
  5013. return {
  5014. callee: calleeBlockStatement,
  5015. name: callee.name || null
  5016. };
  5017. }
  5018. }, {
  5019. key: "getCalleeBlockStatement",
  5020. value: function getCalleeBlockStatement(node, name) {
  5021. var calleeBlockStatement = null;
  5022. estraverse.traverse(node, {
  5023. enter: function enter(node, parentNode) {
  5024. if (Node_1.Node.isFunctionExpressionNode(node) && Node_1.Node.isVariableDeclaratorNode(parentNode) && Node_1.Node.isIdentifierNode(parentNode.id) && parentNode.id.name === name) {
  5025. calleeBlockStatement = node.body;
  5026. return estraverse.VisitorOption.Break;
  5027. }
  5028. }
  5029. });
  5030. return calleeBlockStatement;
  5031. }
  5032. }]);
  5033. return FunctionExpressionCalleeDataExtractor;
  5034. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  5035. FunctionExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], FunctionExpressionCalleeDataExtractor);
  5036. exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;
  5037. /***/ },
  5038. /* 106 */
  5039. /***/ function(module, exports, __webpack_require__) {
  5040. "use strict";
  5041. "use strict";
  5042. var _getIterator2 = __webpack_require__(22);
  5043. var _getIterator3 = _interopRequireDefault(_getIterator2);
  5044. var _getPrototypeOf = __webpack_require__(5);
  5045. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  5046. var _classCallCheck2 = __webpack_require__(0);
  5047. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  5048. var _createClass2 = __webpack_require__(1);
  5049. var _createClass3 = _interopRequireDefault(_createClass2);
  5050. var _possibleConstructorReturn2 = __webpack_require__(7);
  5051. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  5052. var _inherits2 = __webpack_require__(6);
  5053. var _inherits3 = _interopRequireDefault(_inherits2);
  5054. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  5055. var tslib_1 = __webpack_require__(3);
  5056. var inversify_1 = __webpack_require__(2);
  5057. var estraverse = __webpack_require__(13);
  5058. var Node_1 = __webpack_require__(10);
  5059. var NodeUtils_1 = __webpack_require__(15);
  5060. var AbstractCalleeDataExtractor_1 = __webpack_require__(31);
  5061. var ObjectExpressionCalleeDataExtractor = function (_AbstractCalleeDataEx) {
  5062. (0, _inherits3.default)(ObjectExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
  5063. function ObjectExpressionCalleeDataExtractor() {
  5064. (0, _classCallCheck3.default)(this, ObjectExpressionCalleeDataExtractor);
  5065. return (0, _possibleConstructorReturn3.default)(this, (ObjectExpressionCalleeDataExtractor.__proto__ || (0, _getPrototypeOf2.default)(ObjectExpressionCalleeDataExtractor)).apply(this, arguments));
  5066. }
  5067. (0, _createClass3.default)(ObjectExpressionCalleeDataExtractor, [{
  5068. key: "extract",
  5069. value: function extract(blockScopeBody, callee) {
  5070. var calleeBlockStatement = null,
  5071. functionExpressionName = null;
  5072. if (Node_1.Node.isMemberExpressionNode(callee)) {
  5073. var objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
  5074. if (!objectMembersCallsChain.length) {
  5075. return null;
  5076. }
  5077. functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];
  5078. calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopesOfNode(blockScopeBody[0])[0], objectMembersCallsChain);
  5079. }
  5080. if (!calleeBlockStatement) {
  5081. return null;
  5082. }
  5083. return {
  5084. callee: calleeBlockStatement,
  5085. name: functionExpressionName
  5086. };
  5087. }
  5088. }, {
  5089. key: "createObjectMembersCallsChain",
  5090. value: function createObjectMembersCallsChain(currentChain, memberExpression) {
  5091. if (Node_1.Node.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) {
  5092. currentChain.unshift(memberExpression.property.name);
  5093. } else if (Node_1.Node.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) {
  5094. currentChain.unshift(memberExpression.property.value);
  5095. } else {
  5096. return currentChain;
  5097. }
  5098. if (Node_1.Node.isMemberExpressionNode(memberExpression.object)) {
  5099. return this.createObjectMembersCallsChain(currentChain, memberExpression.object);
  5100. } else if (Node_1.Node.isIdentifierNode(memberExpression.object)) {
  5101. currentChain.unshift(memberExpression.object.name);
  5102. }
  5103. return currentChain;
  5104. }
  5105. }, {
  5106. key: "getCalleeBlockStatement",
  5107. value: function getCalleeBlockStatement(node, objectMembersCallsChain) {
  5108. var _this2 = this;
  5109. var objectName = objectMembersCallsChain.shift();
  5110. if (!objectName) {
  5111. return null;
  5112. }
  5113. var calleeBlockStatement = null;
  5114. estraverse.traverse(node, {
  5115. enter: function enter(node, parentNode) {
  5116. if (Node_1.Node.isVariableDeclaratorNode(node) && Node_1.Node.isIdentifierNode(node.id) && node.init && Node_1.Node.isObjectExpressionNode(node.init) && node.id.name === objectName) {
  5117. calleeBlockStatement = _this2.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);
  5118. return estraverse.VisitorOption.Break;
  5119. }
  5120. }
  5121. });
  5122. return calleeBlockStatement;
  5123. }
  5124. }, {
  5125. key: "findCalleeBlockStatement",
  5126. value: function findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {
  5127. var nextItemInCallsChain = objectMembersCallsChain.shift();
  5128. if (!nextItemInCallsChain) {
  5129. return null;
  5130. }
  5131. var _iteratorNormalCompletion = true;
  5132. var _didIteratorError = false;
  5133. var _iteratorError = undefined;
  5134. try {
  5135. for (var _iterator = (0, _getIterator3.default)(objectExpressionProperties), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  5136. var propertyNode = _step.value;
  5137. var isTargetPropertyNodeWithIdentifierKey = Node_1.Node.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;
  5138. var isTargetPropertyNodeWithLiteralKey = Node_1.Node.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain;
  5139. if (!isTargetPropertyNodeWithIdentifierKey && !isTargetPropertyNodeWithLiteralKey) {
  5140. continue;
  5141. }
  5142. if (Node_1.Node.isObjectExpressionNode(propertyNode.value)) {
  5143. return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);
  5144. }
  5145. if (Node_1.Node.isFunctionExpressionNode(propertyNode.value)) {
  5146. return propertyNode.value.body;
  5147. }
  5148. }
  5149. } catch (err) {
  5150. _didIteratorError = true;
  5151. _iteratorError = err;
  5152. } finally {
  5153. try {
  5154. if (!_iteratorNormalCompletion && _iterator.return) {
  5155. _iterator.return();
  5156. }
  5157. } finally {
  5158. if (_didIteratorError) {
  5159. throw _iteratorError;
  5160. }
  5161. }
  5162. }
  5163. return null;
  5164. }
  5165. }]);
  5166. return ObjectExpressionCalleeDataExtractor;
  5167. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  5168. ObjectExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], ObjectExpressionCalleeDataExtractor);
  5169. exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;
  5170. /***/ },
  5171. /* 107 */
  5172. /***/ function(module, exports, __webpack_require__) {
  5173. "use strict";
  5174. "use strict";
  5175. var _toConsumableArray2 = __webpack_require__(36);
  5176. var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
  5177. var _classCallCheck2 = __webpack_require__(0);
  5178. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  5179. var _createClass2 = __webpack_require__(1);
  5180. var _createClass3 = _interopRequireDefault(_createClass2);
  5181. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  5182. var tslib_1 = __webpack_require__(3);
  5183. var inversify_1 = __webpack_require__(2);
  5184. var Initializable_1 = __webpack_require__(9);
  5185. var RandomGeneratorUtils_1 = __webpack_require__(8);
  5186. var ArrayStorage = function () {
  5187. function ArrayStorage() {
  5188. (0, _classCallCheck3.default)(this, ArrayStorage);
  5189. }
  5190. (0, _createClass3.default)(ArrayStorage, [{
  5191. key: "get",
  5192. value: function get(key) {
  5193. var value = this.storage[key];
  5194. if (!value) {
  5195. throw new Error("No value found in array storage with key `" + key + "`");
  5196. }
  5197. return value;
  5198. }
  5199. }, {
  5200. key: "getKeyOf",
  5201. value: function getKeyOf(value) {
  5202. return this.storage.indexOf(value);
  5203. }
  5204. }, {
  5205. key: "getLength",
  5206. value: function getLength() {
  5207. return this.storage.length;
  5208. }
  5209. }, {
  5210. key: "getStorage",
  5211. value: function getStorage() {
  5212. return this.storage;
  5213. }
  5214. }, {
  5215. key: "getStorageId",
  5216. value: function getStorageId() {
  5217. return this.storageId;
  5218. }
  5219. }, {
  5220. key: "initialize",
  5221. value: function initialize() {
  5222. this.storage = [];
  5223. this.storageId = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(6);
  5224. }
  5225. }, {
  5226. key: "mergeWith",
  5227. value: function mergeWith(storage) {
  5228. var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  5229. this.storage = [].concat((0, _toConsumableArray3.default)(this.storage), (0, _toConsumableArray3.default)(storage.getStorage()));
  5230. if (mergeId) {
  5231. this.storageId = storage.getStorageId();
  5232. }
  5233. }
  5234. }, {
  5235. key: "set",
  5236. value: function set(key, value) {
  5237. this.storage.push(value);
  5238. }
  5239. }]);
  5240. return ArrayStorage;
  5241. }();
  5242. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0);
  5243. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0);
  5244. ArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], ArrayStorage);
  5245. exports.ArrayStorage = ArrayStorage;
  5246. /***/ },
  5247. /* 108 */
  5248. /***/ function(module, exports, __webpack_require__) {
  5249. "use strict";
  5250. "use strict";
  5251. var _slicedToArray2 = __webpack_require__(35);
  5252. var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
  5253. var _from = __webpack_require__(33);
  5254. var _from2 = _interopRequireDefault(_from);
  5255. var _getPrototypeOf = __webpack_require__(5);
  5256. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  5257. var _classCallCheck2 = __webpack_require__(0);
  5258. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  5259. var _createClass2 = __webpack_require__(1);
  5260. var _createClass3 = _interopRequireDefault(_createClass2);
  5261. var _possibleConstructorReturn2 = __webpack_require__(7);
  5262. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  5263. var _inherits2 = __webpack_require__(6);
  5264. var _inherits3 = _interopRequireDefault(_inherits2);
  5265. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  5266. var MapStorage_1 = __webpack_require__(43);
  5267. var ControlFlowStorage = function (_MapStorage_1$MapStor) {
  5268. (0, _inherits3.default)(ControlFlowStorage, _MapStorage_1$MapStor);
  5269. function ControlFlowStorage() {
  5270. (0, _classCallCheck3.default)(this, ControlFlowStorage);
  5271. var _this = (0, _possibleConstructorReturn3.default)(this, (ControlFlowStorage.__proto__ || (0, _getPrototypeOf2.default)(ControlFlowStorage)).call(this));
  5272. _this.initialize();
  5273. return _this;
  5274. }
  5275. (0, _createClass3.default)(ControlFlowStorage, [{
  5276. key: "toString",
  5277. value: function toString() {
  5278. return (0, _from2.default)(this.storage).reduce(function (controlFlowStorageItems, _ref) {
  5279. var _ref2 = (0, _slicedToArray3.default)(_ref, 2),
  5280. key = _ref2[0],
  5281. value = _ref2[1];
  5282. controlFlowStorageItems.push(key + ": " + value.getCode());
  5283. return controlFlowStorageItems;
  5284. }, []).join(',');
  5285. }
  5286. }]);
  5287. return ControlFlowStorage;
  5288. }(MapStorage_1.MapStorage);
  5289. exports.ControlFlowStorage = ControlFlowStorage;
  5290. /***/ },
  5291. /* 109 */
  5292. /***/ function(module, exports, __webpack_require__) {
  5293. "use strict";
  5294. "use strict";
  5295. var _map = __webpack_require__(12);
  5296. var _map2 = _interopRequireDefault(_map);
  5297. var _getPrototypeOf = __webpack_require__(5);
  5298. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  5299. var _classCallCheck2 = __webpack_require__(0);
  5300. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  5301. var _createClass2 = __webpack_require__(1);
  5302. var _createClass3 = _interopRequireDefault(_createClass2);
  5303. var _possibleConstructorReturn2 = __webpack_require__(7);
  5304. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  5305. var _inherits2 = __webpack_require__(6);
  5306. var _inherits3 = _interopRequireDefault(_inherits2);
  5307. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  5308. var tslib_1 = __webpack_require__(3);
  5309. var inversify_1 = __webpack_require__(2);
  5310. var ServiceIdentifiers_1 = __webpack_require__(4);
  5311. var CustomNodeGroups_1 = __webpack_require__(39);
  5312. var MapStorage_1 = __webpack_require__(43);
  5313. var RandomGeneratorUtils_1 = __webpack_require__(8);
  5314. var CustomNodeGroupStorage = CustomNodeGroupStorage_1 = function (_MapStorage_1$MapStor) {
  5315. (0, _inherits3.default)(CustomNodeGroupStorage, _MapStorage_1$MapStor);
  5316. function CustomNodeGroupStorage(customNodeGroupFactory, options) {
  5317. (0, _classCallCheck3.default)(this, CustomNodeGroupStorage);
  5318. var _this = (0, _possibleConstructorReturn3.default)(this, (CustomNodeGroupStorage.__proto__ || (0, _getPrototypeOf2.default)(CustomNodeGroupStorage)).call(this));
  5319. _this.customNodeGroupFactory = customNodeGroupFactory;
  5320. _this.options = options;
  5321. _this.initialize();
  5322. return _this;
  5323. }
  5324. (0, _createClass3.default)(CustomNodeGroupStorage, [{
  5325. key: "initialize",
  5326. value: function initialize() {
  5327. var _this2 = this;
  5328. this.storage = new _map2.default();
  5329. this.storageId = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomString(6);
  5330. CustomNodeGroupStorage_1.customNodeGroupsList.forEach(function (customNodeGroupName) {
  5331. var customNodeGroup = _this2.customNodeGroupFactory(customNodeGroupName);
  5332. if (!customNodeGroup) {
  5333. return;
  5334. }
  5335. _this2.storage.set(customNodeGroupName, customNodeGroup);
  5336. });
  5337. }
  5338. }]);
  5339. return CustomNodeGroupStorage;
  5340. }(MapStorage_1.MapStorage);
  5341. CustomNodeGroupStorage.customNodeGroupsList = [CustomNodeGroups_1.CustomNodeGroups.ConsoleOutputCustomNodeGroup, CustomNodeGroups_1.CustomNodeGroups.DebugProtectionCustomNodeGroup, CustomNodeGroups_1.CustomNodeGroups.DomainLockCustomNodeGroup, CustomNodeGroups_1.CustomNodeGroups.SelfDefendingCustomNodeGroup, CustomNodeGroups_1.CustomNodeGroups.StringArrayCustomNodeGroup];
  5342. 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.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], CustomNodeGroupStorage);
  5343. exports.CustomNodeGroupStorage = CustomNodeGroupStorage;
  5344. var CustomNodeGroupStorage_1;
  5345. /***/ },
  5346. /* 110 */
  5347. /***/ function(module, exports, __webpack_require__) {
  5348. "use strict";
  5349. "use strict";
  5350. var _getPrototypeOf = __webpack_require__(5);
  5351. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  5352. var _classCallCheck2 = __webpack_require__(0);
  5353. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  5354. var _createClass2 = __webpack_require__(1);
  5355. var _createClass3 = _interopRequireDefault(_createClass2);
  5356. var _possibleConstructorReturn2 = __webpack_require__(7);
  5357. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  5358. var _get2 = __webpack_require__(46);
  5359. var _get3 = _interopRequireDefault(_get2);
  5360. var _inherits2 = __webpack_require__(6);
  5361. var _inherits3 = _interopRequireDefault(_inherits2);
  5362. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  5363. var tslib_1 = __webpack_require__(3);
  5364. var inversify_1 = __webpack_require__(2);
  5365. var ArrayStorage_1 = __webpack_require__(107);
  5366. var RandomGeneratorUtils_1 = __webpack_require__(8);
  5367. var Utils_1 = __webpack_require__(11);
  5368. var StringArrayStorage = function (_ArrayStorage_1$Array) {
  5369. (0, _inherits3.default)(StringArrayStorage, _ArrayStorage_1$Array);
  5370. function StringArrayStorage() {
  5371. (0, _classCallCheck3.default)(this, StringArrayStorage);
  5372. var _this = (0, _possibleConstructorReturn3.default)(this, (StringArrayStorage.__proto__ || (0, _getPrototypeOf2.default)(StringArrayStorage)).call(this));
  5373. _this.initialize();
  5374. return _this;
  5375. }
  5376. (0, _createClass3.default)(StringArrayStorage, [{
  5377. key: "initialize",
  5378. value: function initialize() {
  5379. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  5380. args[_key] = arguments[_key];
  5381. }
  5382. (0, _get3.default)(StringArrayStorage.prototype.__proto__ || (0, _getPrototypeOf2.default)(StringArrayStorage.prototype), "initialize", this).call(this, args);
  5383. this.storageId = RandomGeneratorUtils_1.RandomGeneratorUtils.getRandomVariableName(4, false);
  5384. }
  5385. }, {
  5386. key: "rotateArray",
  5387. value: function rotateArray(rotationValue) {
  5388. this.storage = Utils_1.Utils.arrayRotate(this.storage, rotationValue);
  5389. }
  5390. }, {
  5391. key: "toString",
  5392. value: function toString() {
  5393. return this.storage.map(function (value) {
  5394. return "'" + value + "'";
  5395. }).toString();
  5396. }
  5397. }]);
  5398. return StringArrayStorage;
  5399. }(ArrayStorage_1.ArrayStorage);
  5400. StringArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], StringArrayStorage);
  5401. exports.StringArrayStorage = StringArrayStorage;
  5402. /***/ },
  5403. /* 111 */
  5404. /***/ function(module, exports) {
  5405. "use strict";
  5406. "use strict";
  5407. function AtobTemplate() {
  5408. return "\n (function () {\n var getGlobal = Function('return (function () ' + '{}.constructor(\"return this\")()' + ');');\n\n var object = getGlobal();\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n object.atob || (\n object.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 ";
  5409. }
  5410. exports.AtobTemplate = AtobTemplate;
  5411. /***/ },
  5412. /* 112 */
  5413. /***/ function(module, exports) {
  5414. "use strict";
  5415. "use strict";
  5416. function Rc4Template() {
  5417. 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 ";
  5418. }
  5419. exports.Rc4Template = Rc4Template;
  5420. /***/ },
  5421. /* 113 */
  5422. /***/ function(module, exports) {
  5423. "use strict";
  5424. "use strict";
  5425. function SingleNodeCallControllerTemplate() {
  5426. return "\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\t\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 ";
  5427. }
  5428. exports.SingleNodeCallControllerTemplate = SingleNodeCallControllerTemplate;
  5429. /***/ },
  5430. /* 114 */
  5431. /***/ function(module, exports) {
  5432. "use strict";
  5433. "use strict";
  5434. function ConsoleOutputDisableExpressionTemplate() {
  5435. return "\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n var func = function () {};\n var that = getGlobal();\n \n that.console.log = func; \n that.console.error = func;\n that.console.warn = func;\n that.console.info = func;\n });\n \n {consoleLogDisableFunctionName}();\n ";
  5436. }
  5437. exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate;
  5438. /***/ },
  5439. /* 115 */
  5440. /***/ function(module, exports) {
  5441. "use strict";
  5442. "use strict";
  5443. function BinaryExpressionFunctionTemplate() {
  5444. return "\n function {functionName} (x, y) {\n return x {operator} y;\n }\n ";
  5445. }
  5446. exports.BinaryExpressionFunctionTemplate = BinaryExpressionFunctionTemplate;
  5447. /***/ },
  5448. /* 116 */
  5449. /***/ function(module, exports) {
  5450. "use strict";
  5451. "use strict";
  5452. function ControlFlowStorageCallTemplate() {
  5453. return '{controlFlowStorageName}.{controlFlowStorageKey}({leftValue}, {rightValue})';
  5454. }
  5455. exports.ControlFlowStorageCallTemplate = ControlFlowStorageCallTemplate;
  5456. /***/ },
  5457. /* 117 */
  5458. /***/ function(module, exports) {
  5459. "use strict";
  5460. "use strict";
  5461. function ControlFlowStorageTemplate() {
  5462. return "\n var {controlFlowStorageName} = { {controlFlowStorage} };\n ";
  5463. }
  5464. exports.ControlFlowStorageTemplate = ControlFlowStorageTemplate;
  5465. /***/ },
  5466. /* 118 */
  5467. /***/ function(module, exports) {
  5468. "use strict";
  5469. "use strict";
  5470. function DebugProtectionFunctionCallTemplate() {
  5471. return "{debugProtectionFunctionName}();";
  5472. }
  5473. exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;
  5474. /***/ },
  5475. /* 119 */
  5476. /***/ function(module, exports) {
  5477. "use strict";
  5478. "use strict";
  5479. function DebugProtectionFunctionIntervalTemplate() {
  5480. return "\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n ";
  5481. }
  5482. exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;
  5483. /***/ },
  5484. /* 120 */
  5485. /***/ function(module, exports) {
  5486. "use strict";
  5487. "use strict";
  5488. function DebugProtectionFunctionTemplate() {
  5489. return "\n var {debugProtectionFunctionName} = function () {\n function debuggerProtection (counter) {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {}.constructor('debugger')());\n } else {\n (function () {}.constructor('debugger')());\n }\n \n debuggerProtection(++counter);\n }\n \n try {\n debuggerProtection(0);\n } catch (y) {}\n };\n ";
  5490. }
  5491. exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
  5492. /***/ },
  5493. /* 121 */
  5494. /***/ function(module, exports) {
  5495. "use strict";
  5496. "use strict";
  5497. function DomainLockNodeTemplate() {
  5498. return "\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var getGlobal = Function('return (function () ' + '{}.constructor(\"return this\")()' + ');');\n\n var func = function () { \n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n getGlobal()['eval']('while(true){}')();\n }()\n };\n };\n \n var regExp = new RegExp(\"[{diff}]\", \"g\");\n var domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n var eval = [][\"forEach\"][\"constructor\"];\n var windowObject = eval(\"return this\")();\n var document;\n var domain;\n \n for (var d in windowObject) {\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 windowObject[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) || (!windowObject[document] && !windowObject[document][domain])) {\n return;\n }\n \n var currentDomain = windowObject[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 ";
  5499. }
  5500. exports.DomainLockNodeTemplate = DomainLockNodeTemplate;
  5501. /***/ },
  5502. /* 122 */
  5503. /***/ function(module, exports, __webpack_require__) {
  5504. "use strict";
  5505. "use strict";
  5506. var Utils_1 = __webpack_require__(11);
  5507. function SelfDefendingTemplate() {
  5508. 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('" + Utils_1.Utils.stringToUnicodeEscapeSequence("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}") + "');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('" + Utils_1.Utils.stringToUnicodeEscapeSequence("(\\\\[x|u](\\w){2,4})+") + "');\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 ";
  5509. }
  5510. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  5511. /***/ },
  5512. /* 123 */
  5513. /***/ function(module, exports, __webpack_require__) {
  5514. "use strict";
  5515. "use strict";
  5516. var Utils_1 = __webpack_require__(11);
  5517. function SelfDefendingTemplate() {
  5518. return "\n var StatesClass = function (rc4Bytes) {\n this.rc4Bytes = rc4Bytes;\n this.states = [1, 0, 0];\n this.newState = function(){return 'newState';};\n this.firstState = '" + Utils_1.Utils.stringToUnicodeEscapeSequence("\\w+ *\\(\\) *{\\w+ *") + "';\n this.secondState = '" + Utils_1.Utils.stringToUnicodeEscapeSequence("['|\"].+['|\"];? *}") + "';\n };\n \n StatesClass.prototype.checkState = function () {\n var regExp = new RegExp(this.firstState + this.secondState);\n\n return this.runState(regExp.test(this.newState.toString()) ? --this.states[1] : --this.states[0]);\n };\n \n StatesClass.prototype.runState = function (stateResult) {\n if (!Boolean(~stateResult)) {\n return stateResult;\n }\n \n return this.getState(this.rc4Bytes);\n };\n\n StatesClass.prototype.getState = function (rc4Bytes) {\n for (var i = 0, len = this.states.length; i < len; i++) {\n this.states.push(Math.round(Math.random()));\n len = this.states.length;\n }\n \n return rc4Bytes(this.states[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).checkState();\n ";
  5519. }
  5520. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  5521. /***/ },
  5522. /* 124 */
  5523. /***/ function(module, exports) {
  5524. "use strict";
  5525. "use strict";
  5526. function StringArrayBase64DecodeNodeTemplate() {
  5527. return " \n if (!{stringArrayCallsWrapperName}.atobPolyfillAppended) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.atobPolyfillAppended = true;\n }\n \n if (!{stringArrayCallsWrapperName}.base64DecodeUnicode) { \n {stringArrayCallsWrapperName}.base64DecodeUnicode = 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 \n if (!{stringArrayCallsWrapperName}.data) {\n {stringArrayCallsWrapperName}.data = {};\n }\n \n if (!{stringArrayCallsWrapperName}.data[index]) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.base64DecodeUnicode(value);\n {stringArrayCallsWrapperName}.data[index] = value;\n } else {\n value = {stringArrayCallsWrapperName}.data[index];\n } \n ";
  5528. }
  5529. exports.StringArrayBase64DecodeNodeTemplate = StringArrayBase64DecodeNodeTemplate;
  5530. /***/ },
  5531. /* 125 */
  5532. /***/ function(module, exports) {
  5533. "use strict";
  5534. "use strict";
  5535. function StringArrayCallsWrapperTemplate() {
  5536. return "\n var {stringArrayCallsWrapperName} = function (index, key) {\n var index = parseInt(index, 0x10);\n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n ";
  5537. }
  5538. exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;
  5539. /***/ },
  5540. /* 126 */
  5541. /***/ function(module, exports) {
  5542. "use strict";
  5543. "use strict";
  5544. function StringArrayRc4DecodeNodeTemplate() {
  5545. return "\n if (!{stringArrayCallsWrapperName}.atobPolyfillAppended) { \n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.atobPolyfillAppended = true;\n }\n \n if (!{stringArrayCallsWrapperName}.rc4) { \n {rc4Polyfill}\n \n {stringArrayCallsWrapperName}.rc4 = rc4;\n }\n \n if (!{stringArrayCallsWrapperName}.data) {\n {stringArrayCallsWrapperName}.data = {};\n }\n\n if ({stringArrayCallsWrapperName}.data[index] === undefined) {\n if (!{stringArrayCallsWrapperName}.once) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.once = true;\n }\n \n value = {stringArrayCallsWrapperName}.rc4(value, key);\n {stringArrayCallsWrapperName}.data[index] = value;\n } else {\n value = {stringArrayCallsWrapperName}.data[index];\n }\n ";
  5546. }
  5547. exports.StringArrayRc4DecodeNodeTemplate = StringArrayRc4DecodeNodeTemplate;
  5548. /***/ },
  5549. /* 127 */
  5550. /***/ function(module, exports) {
  5551. "use strict";
  5552. "use strict";
  5553. function StringArrayTemplate() {
  5554. return "\n var {stringArrayName} = [{stringArray}];\n ";
  5555. }
  5556. exports.StringArrayTemplate = StringArrayTemplate;
  5557. /***/ },
  5558. /* 128 */
  5559. /***/ function(module, exports, __webpack_require__) {
  5560. "use strict";
  5561. "use strict";
  5562. var Utils_1 = __webpack_require__(11);
  5563. function SelfDefendingTemplate() {
  5564. 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('" + Utils_1.Utils.stringToUnicodeEscapeSequence("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}") + "');\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 ";
  5565. }
  5566. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  5567. /***/ },
  5568. /* 129 */
  5569. /***/ function(module, exports) {
  5570. "use strict";
  5571. "use strict";
  5572. function StringArrayRotateFunctionTemplate() {
  5573. 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 ";
  5574. }
  5575. exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;
  5576. /***/ },
  5577. /* 130 */
  5578. /***/ function(module, exports) {
  5579. module.exports = require("babel-polyfill");
  5580. /***/ },
  5581. /* 131 */
  5582. /***/ function(module, exports) {
  5583. module.exports = require("babel-runtime/core-js/object/define-property");
  5584. /***/ },
  5585. /* 132 */
  5586. /***/ function(module, exports) {
  5587. module.exports = require("babel-runtime/core-js/object/get-own-property-descriptor");
  5588. /***/ },
  5589. /* 133 */
  5590. /***/ function(module, exports) {
  5591. module.exports = require("babel-runtime/core-js/symbol");
  5592. /***/ },
  5593. /* 134 */
  5594. /***/ function(module, exports) {
  5595. module.exports = require("babel-runtime/helpers/defineProperty");
  5596. /***/ },
  5597. /* 135 */
  5598. /***/ function(module, exports) {
  5599. module.exports = require("babel-runtime/helpers/typeof");
  5600. /***/ },
  5601. /* 136 */
  5602. /***/ function(module, exports) {
  5603. module.exports = require("class-validator");
  5604. /***/ },
  5605. /* 137 */
  5606. /***/ function(module, exports) {
  5607. module.exports = require("commander");
  5608. /***/ },
  5609. /* 138 */
  5610. /***/ function(module, exports) {
  5611. module.exports = require("events");
  5612. /***/ },
  5613. /* 139 */
  5614. /***/ function(module, exports) {
  5615. module.exports = require("fs");
  5616. /***/ },
  5617. /* 140 */
  5618. /***/ function(module, exports) {
  5619. module.exports = require("mkdirp");
  5620. /***/ },
  5621. /* 141 */
  5622. /***/ function(module, exports) {
  5623. module.exports = require("reflect-metadata");
  5624. /***/ },
  5625. /* 142 */,
  5626. /* 143 */
  5627. /***/ function(module, exports, __webpack_require__) {
  5628. "use strict";
  5629. "use strict";
  5630. var JavaScriptObfuscator_1 = __webpack_require__(23);
  5631. module.exports = JavaScriptObfuscator_1.JavaScriptObfuscator;
  5632. /***/ }
  5633. /******/ ]);
  5634. //# sourceMappingURL=index.js.map