index.js 708 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017
  1. /*!
  2. Copyright (C) 2016-2018 Timofey Kachalov <[email protected]>
  3. Redistribution and use in source and binary forms, with or without
  4. modification, are permitted provided that the following conditions are met:
  5. * Redistributions of source code must retain the above copyright
  6. notice, this list of conditions and the following disclaimer.
  7. * Redistributions in binary form must reproduce the above copyright
  8. notice, this list of conditions and the following disclaimer in the
  9. documentation and/or other materials provided with the distribution.
  10. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  11. AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  12. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  13. ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
  14. DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  15. (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  16. LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  17. ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  18. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  19. THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  20. */
  21. require("source-map-support").install();
  22. module.exports =
  23. /******/ (function(modules) { // webpackBootstrap
  24. /******/ // The module cache
  25. /******/ var installedModules = {};
  26. /******/
  27. /******/ // 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. /******/ // define getter function for harmony exports
  59. /******/ __webpack_require__.d = function(exports, name, getter) {
  60. /******/ if(!__webpack_require__.o(exports, name)) {
  61. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  62. /******/ }
  63. /******/ };
  64. /******/
  65. /******/ // define __esModule on exports
  66. /******/ __webpack_require__.r = function(exports) {
  67. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  68. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  69. /******/ }
  70. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  71. /******/ };
  72. /******/
  73. /******/ // create a fake namespace object
  74. /******/ // mode & 1: value is a module id, require it
  75. /******/ // mode & 2: merge all properties of value into the ns
  76. /******/ // mode & 4: return value when already ns object
  77. /******/ // mode & 8|1: behave like require
  78. /******/ __webpack_require__.t = function(value, mode) {
  79. /******/ if(mode & 1) value = __webpack_require__(value);
  80. /******/ if(mode & 8) return value;
  81. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  82. /******/ var ns = Object.create(null);
  83. /******/ __webpack_require__.r(ns);
  84. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  85. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  86. /******/ return ns;
  87. /******/ };
  88. /******/
  89. /******/ // getDefaultExport function for compatibility with non-harmony modules
  90. /******/ __webpack_require__.n = function(module) {
  91. /******/ var getter = module && module.__esModule ?
  92. /******/ function getDefault() { return module['default']; } :
  93. /******/ function getModuleExports() { return module; };
  94. /******/ __webpack_require__.d(getter, 'a', getter);
  95. /******/ return getter;
  96. /******/ };
  97. /******/
  98. /******/ // Object.prototype.hasOwnProperty.call
  99. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  100. /******/
  101. /******/ // __webpack_public_path__
  102. /******/ __webpack_require__.p = "";
  103. /******/
  104. /******/
  105. /******/ // Load entry module and return exports
  106. /******/ return __webpack_require__(__webpack_require__.s = "./index.ts");
  107. /******/ })
  108. /************************************************************************/
  109. /******/ ({
  110. /***/ "./index.ts":
  111. /*!******************!*\
  112. !*** ./index.ts ***!
  113. \******************/
  114. /*! no static exports found */
  115. /***/ (function(module, exports, __webpack_require__) {
  116. "use strict";
  117. Object.defineProperty(exports, "__esModule", {
  118. value: true
  119. });
  120. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  121. module.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator;
  122. /***/ }),
  123. /***/ "./src/EspreeFacade.ts":
  124. /*!*****************************!*\
  125. !*** ./src/EspreeFacade.ts ***!
  126. \*****************************/
  127. /*! no static exports found */
  128. /***/ (function(module, exports, __webpack_require__) {
  129. "use strict";
  130. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  131. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  132. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  133. Object.defineProperty(exports, "__esModule", {
  134. value: true
  135. });
  136. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  137. var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree"));
  138. var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk"));
  139. var EspreeFacade =
  140. /*#__PURE__*/
  141. function () {
  142. function EspreeFacade() {
  143. (0, _classCallCheck2["default"])(this, EspreeFacade);
  144. }
  145. (0, _createClass2["default"])(EspreeFacade, null, [{
  146. key: "parse",
  147. value: function parse(input, config) {
  148. var sourceTypeLength = EspreeFacade.sourceTypes.length;
  149. for (var i = 0; i < sourceTypeLength; i++) {
  150. try {
  151. return EspreeFacade.parseType(input, config, EspreeFacade.sourceTypes[i]);
  152. } catch (error) {
  153. if (i < sourceTypeLength - 1) {
  154. continue;
  155. }
  156. throw new Error(EspreeFacade.processParsingError(input, error.message, {
  157. line: error.lineNumber,
  158. column: error.column
  159. }));
  160. }
  161. }
  162. throw new Error("Espree parsing error");
  163. }
  164. }, {
  165. key: "parseType",
  166. value: function parseType(input, inputConfig, sourceType) {
  167. var config = Object.assign(Object.assign({}, inputConfig), {
  168. sourceType: sourceType
  169. });
  170. return espree.parse(input, config);
  171. }
  172. }, {
  173. key: "processParsingError",
  174. value: function processParsingError(sourceCode, errorMessage, position) {
  175. if (!position || !position.line || !position.column) {
  176. throw new Error(errorMessage);
  177. }
  178. var sourceCodeLines = sourceCode.split(/\r?\n/);
  179. var errorLine = sourceCodeLines[position.line - 1];
  180. if (!errorLine) {
  181. throw new Error(errorMessage);
  182. }
  183. var startErrorIndex = Math.max(0, position.column - EspreeFacade.nearestSymbolsCount);
  184. var endErrorIndex = Math.min(errorLine.length, position.column + EspreeFacade.nearestSymbolsCount);
  185. var formattedPointer = EspreeFacade.colorError('>');
  186. var formattedCodeSlice = "...".concat(errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, ''), "...");
  187. throw new Error("Line ".concat(position.line, ": ").concat(errorMessage, "\n").concat(formattedPointer, " ").concat(formattedCodeSlice));
  188. }
  189. }]);
  190. return EspreeFacade;
  191. }();
  192. exports.EspreeFacade = EspreeFacade;
  193. EspreeFacade.colorError = chalk_1["default"].red;
  194. EspreeFacade.nearestSymbolsCount = 15;
  195. EspreeFacade.sourceTypes = ['script', 'module'];
  196. /***/ }),
  197. /***/ "./src/JavaScriptObfuscator.ts":
  198. /*!*************************************!*\
  199. !*** ./src/JavaScriptObfuscator.ts ***!
  200. \*************************************/
  201. /*! no static exports found */
  202. /***/ (function(module, exports, __webpack_require__) {
  203. "use strict";
  204. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  205. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  206. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  207. var JavaScriptObfuscator_1;
  208. Object.defineProperty(exports, "__esModule", {
  209. value: true
  210. });
  211. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  212. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  213. var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  214. var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
  215. var LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts");
  216. var NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  217. var TransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  218. var EspreeFacade_1 = __webpack_require__(/*! ./EspreeFacade */ "./src/EspreeFacade.ts");
  219. var NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts");
  220. var JavaScriptObfuscator = JavaScriptObfuscator_1 =
  221. /*#__PURE__*/
  222. function () {
  223. function JavaScriptObfuscator(transformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {
  224. (0, _classCallCheck2["default"])(this, JavaScriptObfuscator);
  225. this.transformersRunner = transformersRunner;
  226. this.randomGenerator = randomGenerator;
  227. this.obfuscatedCodeFactory = obfuscatedCodeFactory;
  228. this.logger = logger;
  229. this.options = options;
  230. }
  231. (0, _createClass2["default"])(JavaScriptObfuscator, [{
  232. key: "obfuscate",
  233. value: function obfuscate(sourceCode) {
  234. var timeStart = Date.now();
  235. this.logger.info(LoggingMessage_1.LoggingMessage.Version, "0.19.4");
  236. this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);
  237. this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getSeed());
  238. var astTree = this.parseCode(sourceCode);
  239. var obfuscatedAstTree = this.transformAstTree(astTree);
  240. var generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
  241. var obfuscationTime = (Date.now() - timeStart) / 1000;
  242. this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);
  243. return this.getObfuscatedCode(generatorOutput);
  244. }
  245. }, {
  246. key: "parseCode",
  247. value: function parseCode(sourceCode) {
  248. return EspreeFacade_1.EspreeFacade.parse(sourceCode, JavaScriptObfuscator_1.espreeParseOptions);
  249. }
  250. }, {
  251. key: "transformAstTree",
  252. value: function transformAstTree(astTree) {
  253. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Initializing);
  254. var isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) && !astTree.body.length && !astTree.leadingComments && !astTree.trailingComments;
  255. if (isEmptyAstTree) {
  256. this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);
  257. return astTree;
  258. }
  259. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Preparing);
  260. if (this.options.deadCodeInjection) {
  261. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.DeadCodeInjection);
  262. }
  263. if (this.options.controlFlowFlattening) {
  264. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.ControlFlowFlattening);
  265. }
  266. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Converting);
  267. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Obfuscating);
  268. astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Finalizing);
  269. return astTree;
  270. }
  271. }, {
  272. key: "generateCode",
  273. value: function generateCode(sourceCode, astTree) {
  274. var escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams);
  275. if (this.options.sourceMap) {
  276. escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';
  277. escodegenParams.sourceContent = sourceCode;
  278. }
  279. var generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), {
  280. format: {
  281. compact: this.options.compact
  282. }
  283. }));
  284. generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
  285. return generatorOutput;
  286. }
  287. }, {
  288. key: "getObfuscatedCode",
  289. value: function getObfuscatedCode(generatorOutput) {
  290. return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);
  291. }
  292. }, {
  293. key: "runTransformationStage",
  294. value: function runTransformationStage(astTree, transformationStage) {
  295. this.logger.info(LoggingMessage_1.LoggingMessage.TransformationStage, transformationStage);
  296. return this.transformersRunner.transform(astTree, JavaScriptObfuscator_1.transformersList, transformationStage);
  297. }
  298. }]);
  299. return JavaScriptObfuscator;
  300. }();
  301. JavaScriptObfuscator.espreeParseOptions = {
  302. comment: true,
  303. ecmaVersion: 10,
  304. loc: true,
  305. range: true
  306. };
  307. JavaScriptObfuscator.escodegenParams = {
  308. comment: true,
  309. verbatim: 'x-verbatim-property',
  310. sourceMapWithCode: true
  311. };
  312. JavaScriptObfuscator.transformersList = [NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.CommentsTransformer, NodeTransformer_1.NodeTransformer.CustomNodesTransformer, NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.LiteralTransformer, NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, NodeTransformer_1.NodeTransformer.MetadataTransformer, NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, NodeTransformer_1.NodeTransformer.ParentificationTransformer, NodeTransformer_1.NodeTransformer.SplitStringTransformer, NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer, NodeTransformer_1.NodeTransformer.VariablePreserveTransformer];
  313. JavaScriptObfuscator = JavaScriptObfuscator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Function, Object, Object])], JavaScriptObfuscator);
  314. exports.JavaScriptObfuscator = JavaScriptObfuscator;
  315. /***/ }),
  316. /***/ "./src/JavaScriptObfuscatorFacade.ts":
  317. /*!*******************************************!*\
  318. !*** ./src/JavaScriptObfuscatorFacade.ts ***!
  319. \*******************************************/
  320. /*! no static exports found */
  321. /***/ (function(module, exports, __webpack_require__) {
  322. "use strict";
  323. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  324. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  325. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  326. Object.defineProperty(exports, "__esModule", {
  327. value: true
  328. });
  329. __webpack_require__(/*! reflect-metadata */ "reflect-metadata");
  330. var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  331. var InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  332. var JavaScriptObfuscatorFacade =
  333. /*#__PURE__*/
  334. function () {
  335. function JavaScriptObfuscatorFacade() {
  336. (0, _classCallCheck2["default"])(this, JavaScriptObfuscatorFacade);
  337. }
  338. (0, _createClass2["default"])(JavaScriptObfuscatorFacade, null, [{
  339. key: "obfuscate",
  340. value: function obfuscate(sourceCode) {
  341. var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  342. var inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();
  343. inversifyContainerFacade.load(sourceCode, '', inputOptions);
  344. var javaScriptObfuscator = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);
  345. var obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);
  346. inversifyContainerFacade.unload();
  347. return obfuscatedCode;
  348. }
  349. }]);
  350. return JavaScriptObfuscatorFacade;
  351. }();
  352. exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;
  353. JavaScriptObfuscatorFacade.version = "0.19.4" || false;
  354. /***/ }),
  355. /***/ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts":
  356. /*!******************************************************************!*\
  357. !*** ./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts ***!
  358. \******************************************************************/
  359. /*! no static exports found */
  360. /***/ (function(module, exports, __webpack_require__) {
  361. "use strict";
  362. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  363. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  364. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  365. var StackTraceAnalyzer_1;
  366. Object.defineProperty(exports, "__esModule", {
  367. value: true
  368. });
  369. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  370. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  371. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  372. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  373. var CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts");
  374. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  375. var NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  376. var StackTraceAnalyzer = StackTraceAnalyzer_1 =
  377. /*#__PURE__*/
  378. function () {
  379. function StackTraceAnalyzer(calleeDataExtractorFactory) {
  380. (0, _classCallCheck2["default"])(this, StackTraceAnalyzer);
  381. this.calleeDataExtractorFactory = calleeDataExtractorFactory;
  382. }
  383. (0, _createClass2["default"])(StackTraceAnalyzer, [{
  384. key: "analyze",
  385. value: function analyze(astTree) {
  386. return this.analyzeRecursive(astTree.body);
  387. }
  388. }, {
  389. key: "analyzeRecursive",
  390. value: function analyzeRecursive(blockScopeBody) {
  391. var _this = this;
  392. var limitIndex = StackTraceAnalyzer_1.getLimitIndex(blockScopeBody.length);
  393. var stackTraceData = [];
  394. var blockScopeBodyLength = blockScopeBody.length;
  395. var _loop = function _loop(index) {
  396. if (index > limitIndex) {
  397. return "break";
  398. }
  399. var blockScopeBodyNode = blockScopeBody[index];
  400. estraverse.traverse(blockScopeBodyNode, {
  401. enter: function enter(node) {
  402. if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {
  403. return;
  404. }
  405. if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {
  406. return estraverse.VisitorOption.Skip;
  407. }
  408. _this.analyzeCallExpressionNode(stackTraceData, blockScopeBody, node);
  409. }
  410. });
  411. };
  412. for (var index = 0; index < blockScopeBodyLength; index++) {
  413. var _ret = _loop(index);
  414. if (_ret === "break") break;
  415. }
  416. return stackTraceData;
  417. }
  418. }, {
  419. key: "analyzeCallExpressionNode",
  420. value: function analyzeCallExpressionNode(stackTraceData, blockScopeBody, callExpressionNode) {
  421. var _this2 = this;
  422. StackTraceAnalyzer_1.calleeDataExtractorsList.forEach(function (calleeDataExtractorName) {
  423. var calleeData = _this2.calleeDataExtractorFactory(calleeDataExtractorName).extract(blockScopeBody, callExpressionNode.callee);
  424. if (!calleeData) {
  425. return;
  426. }
  427. stackTraceData.push(Object.assign(Object.assign({}, calleeData), {
  428. stackTrace: _this2.analyzeRecursive(calleeData.callee.body)
  429. }));
  430. });
  431. }
  432. }], [{
  433. key: "getLimitIndex",
  434. value: function getLimitIndex(blockScopeBodyLength) {
  435. var lastIndex = blockScopeBodyLength - 1;
  436. var limitThresholdActivationIndex = StackTraceAnalyzer_1.limitThresholdActivationLength - 1;
  437. var limitIndex = lastIndex;
  438. if (lastIndex > limitThresholdActivationIndex) {
  439. limitIndex = Math.round(limitThresholdActivationIndex + lastIndex * StackTraceAnalyzer_1.limitThreshold);
  440. if (limitIndex > lastIndex) {
  441. limitIndex = lastIndex;
  442. }
  443. }
  444. return limitIndex;
  445. }
  446. }]);
  447. return StackTraceAnalyzer;
  448. }();
  449. StackTraceAnalyzer.calleeDataExtractorsList = [CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor];
  450. StackTraceAnalyzer.limitThresholdActivationLength = 25;
  451. StackTraceAnalyzer.limitThreshold = 0.002;
  452. 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);
  453. exports.StackTraceAnalyzer = StackTraceAnalyzer;
  454. /***/ }),
  455. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts":
  456. /*!**************************************************************************************************!*\
  457. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***!
  458. \**************************************************************************************************/
  459. /*! no static exports found */
  460. /***/ (function(module, exports, __webpack_require__) {
  461. "use strict";
  462. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  463. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  464. Object.defineProperty(exports, "__esModule", {
  465. value: true
  466. });
  467. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  468. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  469. var AbstractCalleeDataExtractor = function AbstractCalleeDataExtractor() {
  470. (0, _classCallCheck2["default"])(this, AbstractCalleeDataExtractor);
  471. };
  472. AbstractCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], AbstractCalleeDataExtractor);
  473. exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;
  474. /***/ }),
  475. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts":
  476. /*!*************************************************************************************************************!*\
  477. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***!
  478. \*************************************************************************************************************/
  479. /*! no static exports found */
  480. /***/ (function(module, exports, __webpack_require__) {
  481. "use strict";
  482. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  483. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  484. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  485. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  486. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  487. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  488. Object.defineProperty(exports, "__esModule", {
  489. value: true
  490. });
  491. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  492. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  493. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  494. var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  495. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  496. var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  497. var FunctionDeclarationCalleeDataExtractor =
  498. /*#__PURE__*/
  499. function (_AbstractCalleeDataEx) {
  500. (0, _inherits2["default"])(FunctionDeclarationCalleeDataExtractor, _AbstractCalleeDataEx);
  501. function FunctionDeclarationCalleeDataExtractor() {
  502. (0, _classCallCheck2["default"])(this, FunctionDeclarationCalleeDataExtractor);
  503. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionDeclarationCalleeDataExtractor).apply(this, arguments));
  504. }
  505. (0, _createClass2["default"])(FunctionDeclarationCalleeDataExtractor, [{
  506. key: "extract",
  507. value: function extract(blockScopeBody, callee) {
  508. if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  509. return null;
  510. }
  511. var calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
  512. if (!calleeBlockStatement) {
  513. return null;
  514. }
  515. return {
  516. callee: calleeBlockStatement,
  517. name: callee.name
  518. };
  519. }
  520. }, {
  521. key: "getCalleeBlockStatement",
  522. value: function getCalleeBlockStatement(targetNode, name) {
  523. var calleeBlockStatement = null;
  524. estraverse.traverse(targetNode, {
  525. enter: function enter(node) {
  526. if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {
  527. calleeBlockStatement = node.body;
  528. return estraverse.VisitorOption.Break;
  529. }
  530. }
  531. });
  532. return calleeBlockStatement;
  533. }
  534. }]);
  535. return FunctionDeclarationCalleeDataExtractor;
  536. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  537. FunctionDeclarationCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionDeclarationCalleeDataExtractor);
  538. exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;
  539. /***/ }),
  540. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts":
  541. /*!************************************************************************************************************!*\
  542. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***!
  543. \************************************************************************************************************/
  544. /*! no static exports found */
  545. /***/ (function(module, exports, __webpack_require__) {
  546. "use strict";
  547. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  548. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  549. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  550. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  551. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  552. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  553. Object.defineProperty(exports, "__esModule", {
  554. value: true
  555. });
  556. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  557. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  558. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  559. var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  560. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  561. var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  562. var FunctionExpressionCalleeDataExtractor =
  563. /*#__PURE__*/
  564. function (_AbstractCalleeDataEx) {
  565. (0, _inherits2["default"])(FunctionExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
  566. function FunctionExpressionCalleeDataExtractor() {
  567. (0, _classCallCheck2["default"])(this, FunctionExpressionCalleeDataExtractor);
  568. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionExpressionCalleeDataExtractor).apply(this, arguments));
  569. }
  570. (0, _createClass2["default"])(FunctionExpressionCalleeDataExtractor, [{
  571. key: "extract",
  572. value: function extract(blockScopeBody, callee) {
  573. var calleeBlockStatement = null;
  574. if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  575. calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);
  576. }
  577. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {
  578. calleeBlockStatement = callee.body;
  579. }
  580. if (!calleeBlockStatement) {
  581. return null;
  582. }
  583. return {
  584. callee: calleeBlockStatement,
  585. name: callee.name || null
  586. };
  587. }
  588. }, {
  589. key: "getCalleeBlockStatement",
  590. value: function getCalleeBlockStatement(targetNode, name) {
  591. var calleeBlockStatement = null;
  592. estraverse.traverse(targetNode, {
  593. enter: function enter(node, parentNode) {
  594. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && parentNode && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && parentNode.id.name === name) {
  595. calleeBlockStatement = node.body;
  596. return estraverse.VisitorOption.Break;
  597. }
  598. }
  599. });
  600. return calleeBlockStatement;
  601. }
  602. }]);
  603. return FunctionExpressionCalleeDataExtractor;
  604. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  605. FunctionExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionExpressionCalleeDataExtractor);
  606. exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;
  607. /***/ }),
  608. /***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts":
  609. /*!**********************************************************************************************************!*\
  610. !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***!
  611. \**********************************************************************************************************/
  612. /*! no static exports found */
  613. /***/ (function(module, exports, __webpack_require__) {
  614. "use strict";
  615. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  616. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  617. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  618. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  619. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  620. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  621. var ObjectExpressionCalleeDataExtractor_1;
  622. Object.defineProperty(exports, "__esModule", {
  623. value: true
  624. });
  625. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  626. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  627. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  628. var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts");
  629. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  630. var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  631. var ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 =
  632. /*#__PURE__*/
  633. function (_AbstractCalleeDataEx) {
  634. (0, _inherits2["default"])(ObjectExpressionCalleeDataExtractor, _AbstractCalleeDataEx);
  635. function ObjectExpressionCalleeDataExtractor() {
  636. (0, _classCallCheck2["default"])(this, ObjectExpressionCalleeDataExtractor);
  637. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObjectExpressionCalleeDataExtractor).apply(this, arguments));
  638. }
  639. (0, _createClass2["default"])(ObjectExpressionCalleeDataExtractor, [{
  640. key: "extract",
  641. value: function extract(blockScopeBody, callee) {
  642. if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {
  643. return null;
  644. }
  645. var objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
  646. if (!objectMembersCallsChain.length) {
  647. return null;
  648. }
  649. var functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];
  650. var calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);
  651. if (!calleeBlockStatement) {
  652. return null;
  653. }
  654. return {
  655. callee: calleeBlockStatement,
  656. name: functionExpressionName
  657. };
  658. }
  659. }, {
  660. key: "createObjectMembersCallsChain",
  661. value: function createObjectMembersCallsChain(currentChain, memberExpression) {
  662. if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) {
  663. currentChain.unshift(memberExpression.property.name);
  664. } else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) {
  665. currentChain.unshift(memberExpression.property.value);
  666. } else {
  667. return currentChain;
  668. }
  669. if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {
  670. return this.createObjectMembersCallsChain(currentChain, memberExpression.object);
  671. } else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {
  672. currentChain.unshift(memberExpression.object.name);
  673. }
  674. return currentChain;
  675. }
  676. }, {
  677. key: "getCalleeBlockStatement",
  678. value: function getCalleeBlockStatement(targetNode, objectMembersCallsChain) {
  679. var _this = this;
  680. var objectName = objectMembersCallsChain.shift();
  681. if (!objectName) {
  682. return null;
  683. }
  684. var calleeBlockStatement = null;
  685. estraverse.traverse(targetNode, {
  686. enter: function enter(node) {
  687. if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && node.init && NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && node.id.name === objectName) {
  688. calleeBlockStatement = _this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);
  689. return estraverse.VisitorOption.Break;
  690. }
  691. }
  692. });
  693. return calleeBlockStatement;
  694. }
  695. }, {
  696. key: "findCalleeBlockStatement",
  697. value: function findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {
  698. var nextItemInCallsChain = objectMembersCallsChain.shift();
  699. if (!nextItemInCallsChain) {
  700. return null;
  701. }
  702. var _iteratorNormalCompletion = true;
  703. var _didIteratorError = false;
  704. var _iteratorError = undefined;
  705. try {
  706. for (var _iterator = objectExpressionProperties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  707. var propertyNode = _step.value;
  708. if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {
  709. continue;
  710. }
  711. if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) {
  712. return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);
  713. }
  714. if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) {
  715. return propertyNode.value.body;
  716. }
  717. }
  718. } catch (err) {
  719. _didIteratorError = true;
  720. _iteratorError = err;
  721. } finally {
  722. try {
  723. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  724. _iterator["return"]();
  725. }
  726. } finally {
  727. if (_didIteratorError) {
  728. throw _iteratorError;
  729. }
  730. }
  731. }
  732. return null;
  733. }
  734. }], [{
  735. key: "isValidTargetPropertyNode",
  736. value: function isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {
  737. if (!propertyNode.key) {
  738. return false;
  739. }
  740. var isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;
  741. var isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain;
  742. return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;
  743. }
  744. }]);
  745. return ObjectExpressionCalleeDataExtractor;
  746. }(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor);
  747. ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = tslib_1.__decorate([inversify_1.injectable()], ObjectExpressionCalleeDataExtractor);
  748. exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;
  749. /***/ }),
  750. /***/ "./src/container/InversifyContainerFacade.ts":
  751. /*!***************************************************!*\
  752. !*** ./src/container/InversifyContainerFacade.ts ***!
  753. \***************************************************/
  754. /*! no static exports found */
  755. /***/ (function(module, exports, __webpack_require__) {
  756. "use strict";
  757. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  758. var _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ "@babel/runtime/helpers/construct"));
  759. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  760. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  761. Object.defineProperty(exports, "__esModule", {
  762. value: true
  763. });
  764. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  765. var ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  766. var AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts");
  767. var ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts");
  768. var ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts");
  769. var CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts");
  770. var FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts");
  771. var GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts");
  772. var NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts");
  773. var ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts");
  774. var OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts");
  775. var PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts");
  776. var StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts");
  777. var UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts");
  778. var JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts");
  779. var Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts");
  780. var ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts");
  781. var ObfuscatedCode_1 = __webpack_require__(/*! ../source-code/ObfuscatedCode */ "./src/source-code/ObfuscatedCode.ts");
  782. var SourceCode_1 = __webpack_require__(/*! ../source-code/SourceCode */ "./src/source-code/SourceCode.ts");
  783. var TransformersRunner_1 = __webpack_require__(/*! ../node-transformers/TransformersRunner */ "./src/node-transformers/TransformersRunner.ts");
  784. var InversifyContainerFacade =
  785. /*#__PURE__*/
  786. function () {
  787. function InversifyContainerFacade() {
  788. (0, _classCallCheck2["default"])(this, InversifyContainerFacade);
  789. this.container = new inversify_1.Container();
  790. }
  791. (0, _createClass2["default"])(InversifyContainerFacade, [{
  792. key: "get",
  793. value: function get(serviceIdentifier) {
  794. return this.container.get(serviceIdentifier);
  795. }
  796. }, {
  797. key: "getNamed",
  798. value: function getNamed(serviceIdentifier, named) {
  799. return this.container.getNamed(serviceIdentifier, named);
  800. }
  801. }, {
  802. key: "load",
  803. value: function load(sourceCode, sourceMap, options) {
  804. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode).toDynamicValue(function () {
  805. return new SourceCode_1.SourceCode(sourceCode, sourceMap);
  806. }).inSingletonScope();
  807. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions).toDynamicValue(function () {
  808. return options;
  809. }).inSingletonScope();
  810. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger).to(Logger_1.Logger).inSingletonScope();
  811. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator).to(JavaScriptObfuscator_1.JavaScriptObfuscator).inSingletonScope();
  812. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner).to(TransformersRunner_1.TransformersRunner).inSingletonScope();
  813. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode).to(ObfuscatedCode_1.ObfuscatedCode);
  814. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory(function (context) {
  815. return function (obfuscatedCodeAsString, sourceMapAsString) {
  816. var obfuscatedCode = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode);
  817. obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);
  818. return obfuscatedCode;
  819. };
  820. });
  821. this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter).to(ObfuscationEventEmitter_1.ObfuscationEventEmitter).inSingletonScope();
  822. this.container.load(AnalyzersModule_1.analyzersModule);
  823. this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);
  824. this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);
  825. this.container.load(CustomNodesModule_1.customNodesModule);
  826. this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);
  827. this.container.load(GeneratorsModule_1.generatorsModule);
  828. this.container.load(NodeTransformersModule_1.nodeTransformersModule);
  829. this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule);
  830. this.container.load(OptionsModule_1.optionsModule);
  831. this.container.load(PreparingTransformersModule_1.preparingTransformersModule);
  832. this.container.load(StoragesModule_1.storagesModule);
  833. this.container.load(UtilsModule_1.utilsModule);
  834. }
  835. }, {
  836. key: "unload",
  837. value: function unload() {
  838. this.container.unbindAll();
  839. }
  840. }], [{
  841. key: "getFactory",
  842. value: function getFactory(serviceIdentifier) {
  843. return function (context) {
  844. return function (bindingName) {
  845. return context.container.getNamed(serviceIdentifier, bindingName);
  846. };
  847. };
  848. }
  849. }, {
  850. key: "getCacheFactory",
  851. value: function getCacheFactory(serviceIdentifier) {
  852. return function (context) {
  853. var cache = new Map();
  854. return function (bindingName) {
  855. if (cache.has(bindingName)) {
  856. return cache.get(bindingName);
  857. }
  858. var object = context.container.getNamed(serviceIdentifier, bindingName);
  859. cache.set(bindingName, object);
  860. return object;
  861. };
  862. };
  863. }
  864. }, {
  865. key: "getConstructorFactory",
  866. value: function getConstructorFactory(serviceIdentifier) {
  867. for (var _len = arguments.length, dependencies = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  868. dependencies[_key - 1] = arguments[_key];
  869. }
  870. return function (context) {
  871. var cache = new Map();
  872. var cachedDependencies = [];
  873. return function (bindingName) {
  874. dependencies.forEach(function (dependency, index) {
  875. if (!cachedDependencies[index]) {
  876. cachedDependencies[index] = context.container.get(dependency);
  877. }
  878. });
  879. if (cache.has(bindingName)) {
  880. return (0, _construct2["default"])(cache.get(bindingName), cachedDependencies);
  881. }
  882. var constructor = context.container.getNamed(serviceIdentifier, bindingName);
  883. cache.set(bindingName, constructor);
  884. return (0, _construct2["default"])(constructor, cachedDependencies);
  885. };
  886. };
  887. }
  888. }]);
  889. return InversifyContainerFacade;
  890. }();
  891. exports.InversifyContainerFacade = InversifyContainerFacade;
  892. /***/ }),
  893. /***/ "./src/container/ServiceIdentifiers.ts":
  894. /*!*********************************************!*\
  895. !*** ./src/container/ServiceIdentifiers.ts ***!
  896. \*********************************************/
  897. /*! no static exports found */
  898. /***/ (function(module, exports, __webpack_require__) {
  899. "use strict";
  900. Object.defineProperty(exports, "__esModule", {
  901. value: true
  902. });
  903. var ServiceIdentifiers;
  904. (function (ServiceIdentifiers) {
  905. ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory<ICalleeDataExtractor>";
  906. ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory<IControlFlowCustomNode>";
  907. ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory<IControlFlowReplacer>";
  908. ServiceIdentifiers["Factory__ICustomNode"] = "Factory<ICustomNode>";
  909. ServiceIdentifiers["Factory__ICustomNodeGroup"] = "Factory<ICustomNodeGroup>";
  910. ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory<IDeadCodeInjectionCustomNode>";
  911. ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory<IIdentifierNamesGenerator>";
  912. ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory<IIdentifierObfuscatingReplacer>";
  913. ServiceIdentifiers["Factory__INodeGuard"] = "Factory<INodeGuard>";
  914. ServiceIdentifiers["Factory__INodeTransformer"] = "Factory<INodeTransformer[]>";
  915. ServiceIdentifiers["Factory__IObfuscatedCode"] = "Factory<IObfuscatedCode>";
  916. ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory<IObfuscatingReplacer>";
  917. ServiceIdentifiers["Factory__IPropertiesExtractor"] = "Factory<IPropertiesExtractor>";
  918. ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory<TControlFlowStorage>";
  919. ServiceIdentifiers["IArrayUtils"] = "IArrayUtils";
  920. ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor";
  921. ServiceIdentifiers["ICryptUtils"] = "ICryptUtils";
  922. ServiceIdentifiers["ICustomNode"] = "ICustomNode";
  923. ServiceIdentifiers["ICustomNodeGroup"] = "ICustomNodeGroup";
  924. ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer";
  925. ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder";
  926. ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator";
  927. ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer";
  928. ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator";
  929. ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter";
  930. ServiceIdentifiers["ILogger"] = "ILogger";
  931. ServiceIdentifiers["INodeGuard"] = "INodeGuard";
  932. ServiceIdentifiers["INodeTransformer"] = "INodeTransformer";
  933. ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder";
  934. ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter";
  935. ServiceIdentifiers["IObfuscatedCode"] = "IObfuscatedCode";
  936. ServiceIdentifiers["IOptions"] = "IOptions";
  937. ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer";
  938. ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer";
  939. ServiceIdentifiers["IPropertiesExtractor"] = "IPropertiesExtractor";
  940. ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator";
  941. ServiceIdentifiers["ISourceCode"] = "ISourceCode";
  942. ServiceIdentifiers["ISourceMapCorrector"] = "ISourceMapCorrector";
  943. ServiceIdentifiers["IStackTraceAnalyzer"] = "IStackTraceAnalyzer";
  944. ServiceIdentifiers["ITransformersRunner"] = "ITransformersRunner";
  945. ServiceIdentifiers["Newable__ICustomNode"] = "Newable<ICustomNode>";
  946. ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable<TControlFlowStorage>";
  947. ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage";
  948. ServiceIdentifiers["TInputOptions"] = "TInputOptions";
  949. ServiceIdentifiers["TStringArrayStorage"] = "TStringArrayStorage";
  950. })(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));
  951. /***/ }),
  952. /***/ "./src/container/modules/analyzers/AnalyzersModule.ts":
  953. /*!************************************************************!*\
  954. !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***!
  955. \************************************************************/
  956. /*! no static exports found */
  957. /***/ (function(module, exports, __webpack_require__) {
  958. "use strict";
  959. Object.defineProperty(exports, "__esModule", {
  960. value: true
  961. });
  962. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  963. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  964. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  965. var CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts");
  966. var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts");
  967. var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts");
  968. var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts");
  969. var StackTraceAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/StackTraceAnalyzer */ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts");
  970. exports.analyzersModule = new inversify_1.ContainerModule(function (bind) {
  971. bind(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer).to(StackTraceAnalyzer_1.StackTraceAnalyzer).inSingletonScope();
  972. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);
  973. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);
  974. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);
  975. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));
  976. });
  977. /***/ }),
  978. /***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts":
  979. /*!*****************************************************************!*\
  980. !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***!
  981. \*****************************************************************/
  982. /*! no static exports found */
  983. /***/ (function(module, exports, __webpack_require__) {
  984. "use strict";
  985. Object.defineProperty(exports, "__esModule", {
  986. value: true
  987. });
  988. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  989. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  990. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  991. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  992. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  993. var CustomNodeGroup_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts");
  994. var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
  995. var ConsoleOutputCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup */ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts");
  996. var DebugProtectionCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup */ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts");
  997. var DomainLockCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup */ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts");
  998. var SelfDefendingCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup */ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts");
  999. var StringArrayCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup */ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts");
  1000. var BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts");
  1001. var BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts");
  1002. var BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts");
  1003. var CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts");
  1004. var CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts");
  1005. var ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts");
  1006. var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode */ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts");
  1007. var DebugProtectionFunctionCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts");
  1008. var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts");
  1009. var DebugProtectionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts");
  1010. var DomainLockNode_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/DomainLockNode */ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts");
  1011. var ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts");
  1012. var LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts");
  1013. var NodeCallsControllerFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode */ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts");
  1014. var SelfDefendingUnicodeNode_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode */ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts");
  1015. var StringArrayCallsWrapper_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallsWrapper */ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts");
  1016. var StringArrayNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayNode */ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts");
  1017. var StringArrayRotateFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayRotateFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts");
  1018. var StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts");
  1019. var StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts");
  1020. exports.customNodesModule = new inversify_1.ContainerModule(function (bind) {
  1021. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode).whenTargetNamed(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode);
  1022. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionCallNode_1.DebugProtectionFunctionCallNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode);
  1023. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionIntervalNode_1.DebugProtectionFunctionIntervalNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode);
  1024. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionNode_1.DebugProtectionFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionNode);
  1025. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DomainLockNode_1.DomainLockNode).whenTargetNamed(CustomNode_1.CustomNode.DomainLockNode);
  1026. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(NodeCallsControllerFunctionNode_1.NodeCallsControllerFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  1027. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(SelfDefendingUnicodeNode_1.SelfDefendingUnicodeNode).whenTargetNamed(CustomNode_1.CustomNode.SelfDefendingUnicodeNode);
  1028. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayCallsWrapper_1.StringArrayCallsWrapper).whenTargetNamed(CustomNode_1.CustomNode.StringArrayCallsWrapper);
  1029. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayNode_1.StringArrayNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayNode);
  1030. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayRotateFunctionNode_1.StringArrayRotateFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayRotateFunctionNode);
  1031. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
  1032. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
  1033. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
  1034. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
  1035. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
  1036. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
  1037. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
  1038. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralNode_1.StringLiteralNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
  1039. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
  1040. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode).whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
  1041. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(ConsoleOutputCustomNodeGroup_1.ConsoleOutputCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup);
  1042. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DebugProtectionCustomNodeGroup_1.DebugProtectionCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup);
  1043. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DomainLockCustomNodeGroup_1.DomainLockCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup);
  1044. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(SelfDefendingCustomNodeGroup_1.SelfDefendingCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup);
  1045. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(StringArrayCustomNodeGroup_1.StringArrayCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup);
  1046. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode));
  1047. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1048. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));
  1049. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup));
  1050. });
  1051. /***/ }),
  1052. /***/ "./src/container/modules/generators/GeneratorsModule.ts":
  1053. /*!**************************************************************!*\
  1054. !*** ./src/container/modules/generators/GeneratorsModule.ts ***!
  1055. \**************************************************************/
  1056. /*! no static exports found */
  1057. /***/ (function(module, exports, __webpack_require__) {
  1058. "use strict";
  1059. Object.defineProperty(exports, "__esModule", {
  1060. value: true
  1061. });
  1062. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1063. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1064. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  1065. var DictionaryIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts");
  1066. var HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts");
  1067. var MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts");
  1068. exports.generatorsModule = new inversify_1.ContainerModule(function (bind) {
  1069. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
  1070. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
  1071. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
  1072. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function (context) {
  1073. var cachedIdentifierNamesGenerator = null;
  1074. return function (options) {
  1075. if (cachedIdentifierNamesGenerator) {
  1076. return cachedIdentifierNamesGenerator;
  1077. }
  1078. var identifierNamesGenerator;
  1079. switch (options.identifierNamesGenerator) {
  1080. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:
  1081. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
  1082. break;
  1083. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:
  1084. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
  1085. break;
  1086. case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:
  1087. default:
  1088. identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
  1089. }
  1090. cachedIdentifierNamesGenerator = identifierNamesGenerator;
  1091. return identifierNamesGenerator;
  1092. };
  1093. });
  1094. });
  1095. /***/ }),
  1096. /***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts":
  1097. /*!**********************************************************************************!*\
  1098. !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***!
  1099. \**********************************************************************************/
  1100. /*! no static exports found */
  1101. /***/ (function(module, exports, __webpack_require__) {
  1102. "use strict";
  1103. Object.defineProperty(exports, "__esModule", {
  1104. value: true
  1105. });
  1106. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1107. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1108. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1109. var ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
  1110. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1111. var BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts");
  1112. var BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts");
  1113. var CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts");
  1114. var DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts");
  1115. var FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts");
  1116. var LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts");
  1117. var StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts");
  1118. exports.controlFlowTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1119. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);
  1120. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);
  1121. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);
  1122. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);
  1123. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);
  1124. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);
  1125. bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);
  1126. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));
  1127. });
  1128. /***/ }),
  1129. /***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts":
  1130. /*!*********************************************************************************!*\
  1131. !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***!
  1132. \*********************************************************************************/
  1133. /*! no static exports found */
  1134. /***/ (function(module, exports, __webpack_require__) {
  1135. "use strict";
  1136. Object.defineProperty(exports, "__esModule", {
  1137. value: true
  1138. });
  1139. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1140. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1141. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1142. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1143. var PropertiesExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts");
  1144. var AssignmentExpressionPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts");
  1145. var MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts");
  1146. var MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts");
  1147. var ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts");
  1148. var ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts");
  1149. var SplitStringTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/SplitStringTransformer */ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts");
  1150. var TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts");
  1151. var VariableDeclaratorPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts");
  1152. exports.convertingTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1153. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);
  1154. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);
  1155. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);
  1156. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionTransformer_1.ObjectExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);
  1157. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(SplitStringTransformer_1.SplitStringTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer);
  1158. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);
  1159. bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(AssignmentExpressionPropertiesExtractor_1.AssignmentExpressionPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor);
  1160. bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(VariableDeclaratorPropertiesExtractor_1.VariableDeclaratorPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor);
  1161. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor));
  1162. });
  1163. /***/ }),
  1164. /***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts":
  1165. /*!*********************************************************************************!*\
  1166. !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***!
  1167. \*********************************************************************************/
  1168. /*! no static exports found */
  1169. /***/ (function(module, exports, __webpack_require__) {
  1170. "use strict";
  1171. Object.defineProperty(exports, "__esModule", {
  1172. value: true
  1173. });
  1174. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1175. exports.finalizingTransformersModule = new inversify_1.ContainerModule(function (bind) {});
  1176. /***/ }),
  1177. /***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts":
  1178. /*!***************************************************************************!*\
  1179. !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***!
  1180. \***************************************************************************/
  1181. /*! no static exports found */
  1182. /***/ (function(module, exports, __webpack_require__) {
  1183. "use strict";
  1184. Object.defineProperty(exports, "__esModule", {
  1185. value: true
  1186. });
  1187. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1188. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1189. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1190. exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1191. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));
  1192. });
  1193. /***/ }),
  1194. /***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts":
  1195. /*!**********************************************************************************!*\
  1196. !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***!
  1197. \**********************************************************************************/
  1198. /*! no static exports found */
  1199. /***/ (function(module, exports, __webpack_require__) {
  1200. "use strict";
  1201. Object.defineProperty(exports, "__esModule", {
  1202. value: true
  1203. });
  1204. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1205. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1206. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1207. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  1208. var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
  1209. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1210. var BaseIdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts");
  1211. var BooleanLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts");
  1212. var CatchClauseTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/CatchClauseTransformer */ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts");
  1213. var ClassDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts");
  1214. var FunctionDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts");
  1215. var FunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts");
  1216. var ImportDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ImportDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts");
  1217. var LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts");
  1218. var LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts");
  1219. var NumberLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts");
  1220. var StringLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts");
  1221. var VariableDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts");
  1222. exports.obfuscatingTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1223. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseTransformer_1.CatchClauseTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CatchClauseTransformer);
  1224. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ClassDeclarationTransformer_1.ClassDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer);
  1225. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationTransformer_1.FunctionDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer);
  1226. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionTransformer_1.FunctionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionTransformer);
  1227. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ImportDeclarationTransformer_1.ImportDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer);
  1228. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementTransformer_1.LabeledStatementTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);
  1229. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralTransformer_1.LiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer);
  1230. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationTransformer_1.VariableDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer);
  1231. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer);
  1232. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer);
  1233. bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer);
  1234. bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer).whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  1235. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer));
  1236. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer));
  1237. });
  1238. /***/ }),
  1239. /***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts":
  1240. /*!********************************************************************************!*\
  1241. !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***!
  1242. \********************************************************************************/
  1243. /*! no static exports found */
  1244. /***/ (function(module, exports, __webpack_require__) {
  1245. "use strict";
  1246. Object.defineProperty(exports, "__esModule", {
  1247. value: true
  1248. });
  1249. var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts");
  1250. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1251. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1252. var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  1253. var ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
  1254. var BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts");
  1255. var CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CommentsTransformer */ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts");
  1256. var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
  1257. var CustomNodesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomNodesTransformer */ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts");
  1258. var EvaCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts");
  1259. var MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts");
  1260. var ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts");
  1261. var ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts");
  1262. var VariablePreserveTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/VariablePreserveTransformer */ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts");
  1263. exports.preparingTransformersModule = new inversify_1.ContainerModule(function (bind) {
  1264. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CommentsTransformer_1.CommentsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);
  1265. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CustomNodesTransformer_1.CustomNodesTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomNodesTransformer);
  1266. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(EvaCallExpressionTransformer_1.EvalCallExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);
  1267. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MetadataTransformer_1.MetadataTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);
  1268. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);
  1269. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ParentificationTransformer_1.ParentificationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);
  1270. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard);
  1271. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard);
  1272. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));
  1273. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariablePreserveTransformer_1.VariablePreserveTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);
  1274. });
  1275. /***/ }),
  1276. /***/ "./src/container/modules/options/OptionsModule.ts":
  1277. /*!********************************************************!*\
  1278. !*** ./src/container/modules/options/OptionsModule.ts ***!
  1279. \********************************************************/
  1280. /*! no static exports found */
  1281. /***/ (function(module, exports, __webpack_require__) {
  1282. "use strict";
  1283. Object.defineProperty(exports, "__esModule", {
  1284. value: true
  1285. });
  1286. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1287. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1288. var Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts");
  1289. var OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts");
  1290. exports.optionsModule = new inversify_1.ContainerModule(function (bind) {
  1291. bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions).to(Options_1.Options).inSingletonScope();
  1292. bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer).to(OptionsNormalizer_1.OptionsNormalizer).inSingletonScope();
  1293. });
  1294. /***/ }),
  1295. /***/ "./src/container/modules/storages/StoragesModule.ts":
  1296. /*!**********************************************************!*\
  1297. !*** ./src/container/modules/storages/StoragesModule.ts ***!
  1298. \**********************************************************/
  1299. /*! no static exports found */
  1300. /***/ (function(module, exports, __webpack_require__) {
  1301. "use strict";
  1302. Object.defineProperty(exports, "__esModule", {
  1303. value: true
  1304. });
  1305. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1306. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1307. var ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/control-flow/ControlFlowStorage */ "./src/storages/control-flow/ControlFlowStorage.ts");
  1308. var CustomNodeGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-node-group/CustomNodeGroupStorage */ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts");
  1309. var StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts");
  1310. exports.storagesModule = new inversify_1.ContainerModule(function (bind) {
  1311. bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage).to(CustomNodeGroupStorage_1.CustomNodeGroupStorage).inSingletonScope();
  1312. bind(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage).to(StringArrayStorage_1.StringArrayStorage).inSingletonScope();
  1313. bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(ControlFlowStorage_1.ControlFlowStorage);
  1314. bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function (context) {
  1315. return function () {
  1316. var constructor = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);
  1317. var randomGenerator = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);
  1318. var options = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);
  1319. var storage = new constructor(randomGenerator, options);
  1320. storage.initialize();
  1321. return storage;
  1322. };
  1323. });
  1324. });
  1325. /***/ }),
  1326. /***/ "./src/container/modules/utils/UtilsModule.ts":
  1327. /*!****************************************************!*\
  1328. !*** ./src/container/modules/utils/UtilsModule.ts ***!
  1329. \****************************************************/
  1330. /*! no static exports found */
  1331. /***/ (function(module, exports, __webpack_require__) {
  1332. "use strict";
  1333. Object.defineProperty(exports, "__esModule", {
  1334. value: true
  1335. });
  1336. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1337. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1338. var ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts");
  1339. var CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts");
  1340. var EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts");
  1341. var LevelledTopologicalSorter_1 = __webpack_require__(/*! ../../../utils/LevelledTopologicalSorter */ "./src/utils/LevelledTopologicalSorter.ts");
  1342. var NodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../utils/NodeTransformerNamesGroupsBuilder */ "./src/utils/NodeTransformerNamesGroupsBuilder.ts");
  1343. var RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts");
  1344. exports.utilsModule = new inversify_1.ContainerModule(function (bind) {
  1345. bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils).to(ArrayUtils_1.ArrayUtils).inSingletonScope();
  1346. bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator).to(RandomGenerator_1.RandomGenerator).inSingletonScope();
  1347. bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils).to(CryptUtils_1.CryptUtils).inSingletonScope();
  1348. bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder).to(EscapeSequenceEncoder_1.EscapeSequenceEncoder).inSingletonScope();
  1349. bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter).to(LevelledTopologicalSorter_1.LevelledTopologicalSorter);
  1350. bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder).inSingletonScope();
  1351. });
  1352. /***/ }),
  1353. /***/ "./src/custom-nodes/AbstractCustomNode.ts":
  1354. /*!************************************************!*\
  1355. !*** ./src/custom-nodes/AbstractCustomNode.ts ***!
  1356. \************************************************/
  1357. /*! no static exports found */
  1358. /***/ (function(module, exports, __webpack_require__) {
  1359. "use strict";
  1360. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1361. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1362. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1363. var AbstractCustomNode_1;
  1364. Object.defineProperty(exports, "__esModule", {
  1365. value: true
  1366. });
  1367. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1368. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1369. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1370. var GlobalVariableTemplate1_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate1 */ "./src/templates/GlobalVariableTemplate1.ts");
  1371. var GlobalVariableTemplate2_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate2 */ "./src/templates/GlobalVariableTemplate2.ts");
  1372. var AbstractCustomNode = AbstractCustomNode_1 =
  1373. /*#__PURE__*/
  1374. function () {
  1375. function AbstractCustomNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1376. (0, _classCallCheck2["default"])(this, AbstractCustomNode);
  1377. this.cachedNode = null;
  1378. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  1379. this.randomGenerator = randomGenerator;
  1380. this.options = options;
  1381. }
  1382. (0, _createClass2["default"])(AbstractCustomNode, [{
  1383. key: "getNode",
  1384. value: function getNode() {
  1385. if (!this.cachedNode) {
  1386. this.cachedNode = this.getNodeStructure();
  1387. }
  1388. return this.cachedNode;
  1389. }
  1390. }, {
  1391. key: "getGlobalVariableTemplate",
  1392. value: function getGlobalVariableTemplate() {
  1393. return this.randomGenerator.getRandomGenerator().pickone(AbstractCustomNode_1.globalVariableTemplateFunctions);
  1394. }
  1395. }]);
  1396. return AbstractCustomNode;
  1397. }();
  1398. AbstractCustomNode.globalVariableTemplateFunctions = [GlobalVariableTemplate1_1.GlobalVariableTemplate1(), GlobalVariableTemplate2_1.GlobalVariableTemplate2()];
  1399. AbstractCustomNode = AbstractCustomNode_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNode);
  1400. exports.AbstractCustomNode = AbstractCustomNode;
  1401. /***/ }),
  1402. /***/ "./src/custom-nodes/AbstractCustomNodeGroup.ts":
  1403. /*!*****************************************************!*\
  1404. !*** ./src/custom-nodes/AbstractCustomNodeGroup.ts ***!
  1405. \*****************************************************/
  1406. /*! no static exports found */
  1407. /***/ (function(module, exports, __webpack_require__) {
  1408. "use strict";
  1409. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1410. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1411. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1412. Object.defineProperty(exports, "__esModule", {
  1413. value: true
  1414. });
  1415. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1416. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1417. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1418. var AbstractCustomNodeGroup =
  1419. /*#__PURE__*/
  1420. function () {
  1421. function AbstractCustomNodeGroup(identifierNamesGeneratorFactory, randomGenerator, options) {
  1422. (0, _classCallCheck2["default"])(this, AbstractCustomNodeGroup);
  1423. this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  1424. this.randomGenerator = randomGenerator;
  1425. this.options = options;
  1426. }
  1427. (0, _createClass2["default"])(AbstractCustomNodeGroup, [{
  1428. key: "getAppendEvent",
  1429. value: function getAppendEvent() {
  1430. return this.appendEvent;
  1431. }
  1432. }, {
  1433. key: "getCustomNodes",
  1434. value: function getCustomNodes() {
  1435. return this.customNodes;
  1436. }
  1437. }, {
  1438. key: "appendCustomNodeIfExist",
  1439. value: function appendCustomNodeIfExist(customNodeName, callback) {
  1440. var customNode = this.customNodes.get(customNodeName);
  1441. if (!customNode) {
  1442. return;
  1443. }
  1444. callback(customNode);
  1445. }
  1446. }, {
  1447. key: "getRandomStackTraceIndex",
  1448. value: function getRandomStackTraceIndex(stackTraceLength) {
  1449. return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(stackTraceLength - 1)));
  1450. }
  1451. }]);
  1452. return AbstractCustomNodeGroup;
  1453. }();
  1454. AbstractCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNodeGroup);
  1455. exports.AbstractCustomNodeGroup = AbstractCustomNodeGroup;
  1456. /***/ }),
  1457. /***/ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts":
  1458. /*!*************************************************************************************!*\
  1459. !*** ./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts ***!
  1460. \*************************************************************************************/
  1461. /*! no static exports found */
  1462. /***/ (function(module, exports, __webpack_require__) {
  1463. "use strict";
  1464. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1465. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1466. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1467. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1468. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1469. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1470. Object.defineProperty(exports, "__esModule", {
  1471. value: true
  1472. });
  1473. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1474. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1475. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1476. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  1477. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  1478. var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ../../templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate */ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts");
  1479. var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
  1480. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1481. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1482. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1483. var ConsoleOutputDisableExpressionNode =
  1484. /*#__PURE__*/
  1485. function (_AbstractCustomNode_) {
  1486. (0, _inherits2["default"])(ConsoleOutputDisableExpressionNode, _AbstractCustomNode_);
  1487. function ConsoleOutputDisableExpressionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1488. (0, _classCallCheck2["default"])(this, ConsoleOutputDisableExpressionNode);
  1489. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ConsoleOutputDisableExpressionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1490. }
  1491. (0, _createClass2["default"])(ConsoleOutputDisableExpressionNode, [{
  1492. key: "initialize",
  1493. value: function initialize(callsControllerFunctionName) {
  1494. this.callsControllerFunctionName = callsControllerFunctionName;
  1495. }
  1496. }, {
  1497. key: "getNodeStructure",
  1498. value: function getNodeStructure() {
  1499. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  1500. }
  1501. }, {
  1502. key: "getTemplate",
  1503. value: function getTemplate() {
  1504. var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  1505. return string_template_1["default"](ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), {
  1506. consoleLogDisableFunctionName: this.identifierNamesGenerator.generate(),
  1507. globalVariableTemplate: globalVariableTemplate,
  1508. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  1509. });
  1510. }
  1511. }]);
  1512. return ConsoleOutputDisableExpressionNode;
  1513. }(AbstractCustomNode_1.AbstractCustomNode);
  1514. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ConsoleOutputDisableExpressionNode.prototype, "callsControllerFunctionName", void 0);
  1515. ConsoleOutputDisableExpressionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ConsoleOutputDisableExpressionNode);
  1516. exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode;
  1517. /***/ }),
  1518. /***/ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts":
  1519. /*!*************************************************************************************!*\
  1520. !*** ./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts ***!
  1521. \*************************************************************************************/
  1522. /*! no static exports found */
  1523. /***/ (function(module, exports, __webpack_require__) {
  1524. "use strict";
  1525. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1526. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1527. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1528. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1529. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1530. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1531. Object.defineProperty(exports, "__esModule", {
  1532. value: true
  1533. });
  1534. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1535. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1536. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1537. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1538. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  1539. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  1540. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  1541. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  1542. var ConsoleOutputCustomNodeGroup =
  1543. /*#__PURE__*/
  1544. function (_AbstractCustomNodeGr) {
  1545. (0, _inherits2["default"])(ConsoleOutputCustomNodeGroup, _AbstractCustomNodeGr);
  1546. function ConsoleOutputCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  1547. var _this;
  1548. (0, _classCallCheck2["default"])(this, ConsoleOutputCustomNodeGroup);
  1549. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ConsoleOutputCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1550. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
  1551. _this.customNodeFactory = customNodeFactory;
  1552. return _this;
  1553. }
  1554. (0, _createClass2["default"])(ConsoleOutputCustomNodeGroup, [{
  1555. key: "appendCustomNodes",
  1556. value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
  1557. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  1558. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, function (customNode) {
  1559. NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
  1560. });
  1561. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  1562. var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
  1563. NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
  1564. });
  1565. }
  1566. }, {
  1567. key: "initialize",
  1568. value: function initialize() {
  1569. this.customNodes = new Map();
  1570. if (!this.options.disableConsoleOutput) {
  1571. return;
  1572. }
  1573. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  1574. var consoleOutputDisableExpressionNode = this.customNodeFactory(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode);
  1575. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  1576. consoleOutputDisableExpressionNode.initialize(callsControllerFunctionName);
  1577. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  1578. this.customNodes.set(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, consoleOutputDisableExpressionNode);
  1579. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  1580. }
  1581. }]);
  1582. return ConsoleOutputCustomNodeGroup;
  1583. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  1584. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], ConsoleOutputCustomNodeGroup.prototype, "customNodes", void 0);
  1585. ConsoleOutputCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], ConsoleOutputCustomNodeGroup);
  1586. exports.ConsoleOutputCustomNodeGroup = ConsoleOutputCustomNodeGroup;
  1587. /***/ }),
  1588. /***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts":
  1589. /*!****************************************************************************************!*\
  1590. !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***!
  1591. \****************************************************************************************/
  1592. /*! no static exports found */
  1593. /***/ (function(module, exports, __webpack_require__) {
  1594. "use strict";
  1595. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1596. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1597. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1598. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1599. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1600. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1601. Object.defineProperty(exports, "__esModule", {
  1602. value: true
  1603. });
  1604. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1605. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1606. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1607. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1608. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1609. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1610. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1611. var BinaryExpressionFunctionNode =
  1612. /*#__PURE__*/
  1613. function (_AbstractCustomNode_) {
  1614. (0, _inherits2["default"])(BinaryExpressionFunctionNode, _AbstractCustomNode_);
  1615. function BinaryExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1616. (0, _classCallCheck2["default"])(this, BinaryExpressionFunctionNode);
  1617. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BinaryExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1618. }
  1619. (0, _createClass2["default"])(BinaryExpressionFunctionNode, [{
  1620. key: "initialize",
  1621. value: function initialize(operator) {
  1622. this.operator = operator;
  1623. }
  1624. }, {
  1625. key: "getNodeStructure",
  1626. value: function getNodeStructure() {
  1627. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))])));
  1628. NodeUtils_1.NodeUtils.parentizeAst(structure);
  1629. return [structure];
  1630. }
  1631. }]);
  1632. return BinaryExpressionFunctionNode;
  1633. }(AbstractCustomNode_1.AbstractCustomNode);
  1634. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], BinaryExpressionFunctionNode.prototype, "operator", void 0);
  1635. BinaryExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionFunctionNode);
  1636. exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;
  1637. /***/ }),
  1638. /***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts":
  1639. /*!***************************************************************************************************!*\
  1640. !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***!
  1641. \***************************************************************************************************/
  1642. /*! no static exports found */
  1643. /***/ (function(module, exports, __webpack_require__) {
  1644. "use strict";
  1645. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1646. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1647. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1648. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1649. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1650. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1651. Object.defineProperty(exports, "__esModule", {
  1652. value: true
  1653. });
  1654. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1655. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1656. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1657. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1658. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1659. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1660. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  1661. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1662. var BlockStatementControlFlowFlatteningNode =
  1663. /*#__PURE__*/
  1664. function (_AbstractCustomNode_) {
  1665. (0, _inherits2["default"])(BlockStatementControlFlowFlatteningNode, _AbstractCustomNode_);
  1666. function BlockStatementControlFlowFlatteningNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1667. (0, _classCallCheck2["default"])(this, BlockStatementControlFlowFlatteningNode);
  1668. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BlockStatementControlFlowFlatteningNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1669. }
  1670. (0, _createClass2["default"])(BlockStatementControlFlowFlatteningNode, [{
  1671. key: "initialize",
  1672. value: function initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {
  1673. this.blockStatementBody = blockStatementBody;
  1674. this.shuffledKeys = shuffledKeys;
  1675. this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;
  1676. }
  1677. }, {
  1678. key: "getNodeStructure",
  1679. value: function getNodeStructure() {
  1680. var _this = this;
  1681. var controllerIdentifierName = this.randomGenerator.getRandomString(6);
  1682. var indexIdentifierName = this.randomGenerator.getRandomString(6);
  1683. var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join('|')), NodeFactory_1.NodeFactory.identifierNode('split')), [NodeFactory_1.NodeFactory.literalNode('|')])), NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))]), NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map(function (key, index) {
  1684. var statement = _this.blockStatementBody[key];
  1685. var consequent = [statement];
  1686. if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {
  1687. consequent.push(NodeFactory_1.NodeFactory.continueStatement());
  1688. }
  1689. return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);
  1690. })), NodeFactory_1.NodeFactory.breakStatement()]))]);
  1691. NodeUtils_1.NodeUtils.parentizeAst(structure);
  1692. return [structure];
  1693. }
  1694. }]);
  1695. return BlockStatementControlFlowFlatteningNode;
  1696. }(AbstractCustomNode_1.AbstractCustomNode);
  1697. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0);
  1698. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0);
  1699. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0);
  1700. BlockStatementControlFlowFlatteningNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementControlFlowFlatteningNode);
  1701. exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;
  1702. /***/ }),
  1703. /***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts":
  1704. /*!**************************************************************************************!*\
  1705. !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***!
  1706. \**************************************************************************************/
  1707. /*! no static exports found */
  1708. /***/ (function(module, exports, __webpack_require__) {
  1709. "use strict";
  1710. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1711. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1712. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1713. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1714. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1715. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1716. Object.defineProperty(exports, "__esModule", {
  1717. value: true
  1718. });
  1719. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1720. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1721. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1722. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1723. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1724. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1725. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1726. var CallExpressionFunctionNode =
  1727. /*#__PURE__*/
  1728. function (_AbstractCustomNode_) {
  1729. (0, _inherits2["default"])(CallExpressionFunctionNode, _AbstractCustomNode_);
  1730. function CallExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1731. (0, _classCallCheck2["default"])(this, CallExpressionFunctionNode);
  1732. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CallExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1733. }
  1734. (0, _createClass2["default"])(CallExpressionFunctionNode, [{
  1735. key: "initialize",
  1736. value: function initialize(expressionArguments) {
  1737. this.expressionArguments = expressionArguments;
  1738. }
  1739. }, {
  1740. key: "getNodeStructure",
  1741. value: function getNodeStructure() {
  1742. var calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');
  1743. var params = [];
  1744. var argumentsLength = this.expressionArguments.length;
  1745. for (var i = 0; i < argumentsLength; i++) {
  1746. params.push(NodeFactory_1.NodeFactory.identifierNode("param".concat(i + 1)));
  1747. }
  1748. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([calleeIdentifier].concat(params), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))])));
  1749. NodeUtils_1.NodeUtils.parentizeAst(structure);
  1750. return [structure];
  1751. }
  1752. }]);
  1753. return CallExpressionFunctionNode;
  1754. }(AbstractCustomNode_1.AbstractCustomNode);
  1755. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionFunctionNode.prototype, "expressionArguments", void 0);
  1756. CallExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionFunctionNode);
  1757. exports.CallExpressionFunctionNode = CallExpressionFunctionNode;
  1758. /***/ }),
  1759. /***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts":
  1760. /*!*****************************************************************************************!*\
  1761. !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***!
  1762. \*****************************************************************************************/
  1763. /*! no static exports found */
  1764. /***/ (function(module, exports, __webpack_require__) {
  1765. "use strict";
  1766. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1767. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1768. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1769. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1770. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1771. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1772. Object.defineProperty(exports, "__esModule", {
  1773. value: true
  1774. });
  1775. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1776. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1777. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1778. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1779. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1780. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1781. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1782. var LogicalExpressionFunctionNode =
  1783. /*#__PURE__*/
  1784. function (_AbstractCustomNode_) {
  1785. (0, _inherits2["default"])(LogicalExpressionFunctionNode, _AbstractCustomNode_);
  1786. function LogicalExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1787. (0, _classCallCheck2["default"])(this, LogicalExpressionFunctionNode);
  1788. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LogicalExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1789. }
  1790. (0, _createClass2["default"])(LogicalExpressionFunctionNode, [{
  1791. key: "initialize",
  1792. value: function initialize(operator) {
  1793. this.operator = operator;
  1794. }
  1795. }, {
  1796. key: "getNodeStructure",
  1797. value: function getNodeStructure() {
  1798. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))])));
  1799. NodeUtils_1.NodeUtils.parentizeAst(structure);
  1800. return [structure];
  1801. }
  1802. }]);
  1803. return LogicalExpressionFunctionNode;
  1804. }(AbstractCustomNode_1.AbstractCustomNode);
  1805. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], LogicalExpressionFunctionNode.prototype, "operator", void 0);
  1806. LogicalExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionFunctionNode);
  1807. exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;
  1808. /***/ }),
  1809. /***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts":
  1810. /*!*****************************************************************************!*\
  1811. !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***!
  1812. \*****************************************************************************/
  1813. /*! no static exports found */
  1814. /***/ (function(module, exports, __webpack_require__) {
  1815. "use strict";
  1816. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1817. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1818. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1819. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1820. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1821. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1822. Object.defineProperty(exports, "__esModule", {
  1823. value: true
  1824. });
  1825. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1826. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1827. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1828. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1829. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1830. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1831. var StringLiteralNode =
  1832. /*#__PURE__*/
  1833. function (_AbstractCustomNode_) {
  1834. (0, _inherits2["default"])(StringLiteralNode, _AbstractCustomNode_);
  1835. function StringLiteralNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1836. (0, _classCallCheck2["default"])(this, StringLiteralNode);
  1837. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1838. }
  1839. (0, _createClass2["default"])(StringLiteralNode, [{
  1840. key: "initialize",
  1841. value: function initialize(literalValue) {
  1842. this.literalValue = literalValue;
  1843. }
  1844. }, {
  1845. key: "getNodeStructure",
  1846. value: function getNodeStructure() {
  1847. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));
  1848. return [structure];
  1849. }
  1850. }]);
  1851. return StringLiteralNode;
  1852. }(AbstractCustomNode_1.AbstractCustomNode);
  1853. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralNode.prototype, "literalValue", void 0);
  1854. StringLiteralNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralNode);
  1855. exports.StringLiteralNode = StringLiteralNode;
  1856. /***/ }),
  1857. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts":
  1858. /*!*******************************************************************************************************************************!*\
  1859. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***!
  1860. \*******************************************************************************************************************************/
  1861. /*! no static exports found */
  1862. /***/ (function(module, exports, __webpack_require__) {
  1863. "use strict";
  1864. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1865. var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
  1866. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1867. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1868. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1869. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1870. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1871. Object.defineProperty(exports, "__esModule", {
  1872. value: true
  1873. });
  1874. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1875. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1876. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1877. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1878. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1879. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1880. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1881. var CallExpressionControlFlowStorageCallNode =
  1882. /*#__PURE__*/
  1883. function (_AbstractCustomNode_) {
  1884. (0, _inherits2["default"])(CallExpressionControlFlowStorageCallNode, _AbstractCustomNode_);
  1885. function CallExpressionControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1886. (0, _classCallCheck2["default"])(this, CallExpressionControlFlowStorageCallNode);
  1887. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CallExpressionControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1888. }
  1889. (0, _createClass2["default"])(CallExpressionControlFlowStorageCallNode, [{
  1890. key: "initialize",
  1891. value: function initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {
  1892. this.controlFlowStorageName = controlFlowStorageName;
  1893. this.controlFlowStorageKey = controlFlowStorageKey;
  1894. this.callee = callee;
  1895. this.expressionArguments = expressionArguments;
  1896. }
  1897. }, {
  1898. key: "getNodeStructure",
  1899. value: function getNodeStructure() {
  1900. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [this.callee].concat((0, _toConsumableArray2["default"])(this.expressionArguments))));
  1901. NodeUtils_1.NodeUtils.parentizeAst(structure);
  1902. return [structure];
  1903. }
  1904. }]);
  1905. return CallExpressionControlFlowStorageCallNode;
  1906. }(AbstractCustomNode_1.AbstractCustomNode);
  1907. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0);
  1908. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  1909. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  1910. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0);
  1911. CallExpressionControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowStorageCallNode);
  1912. exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;
  1913. /***/ }),
  1914. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts":
  1915. /*!*************************************************************************************************************!*\
  1916. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***!
  1917. \*************************************************************************************************************/
  1918. /*! no static exports found */
  1919. /***/ (function(module, exports, __webpack_require__) {
  1920. "use strict";
  1921. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1922. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  1923. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1924. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1925. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1926. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1927. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1928. Object.defineProperty(exports, "__esModule", {
  1929. value: true
  1930. });
  1931. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1932. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1933. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1934. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1935. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1936. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1937. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  1938. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1939. var ControlFlowStorageNode =
  1940. /*#__PURE__*/
  1941. function (_AbstractCustomNode_) {
  1942. (0, _inherits2["default"])(ControlFlowStorageNode, _AbstractCustomNode_);
  1943. function ControlFlowStorageNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  1944. (0, _classCallCheck2["default"])(this, ControlFlowStorageNode);
  1945. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ControlFlowStorageNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  1946. }
  1947. (0, _createClass2["default"])(ControlFlowStorageNode, [{
  1948. key: "initialize",
  1949. value: function initialize(controlFlowStorage) {
  1950. this.controlFlowStorage = controlFlowStorage;
  1951. }
  1952. }, {
  1953. key: "getNodeStructure",
  1954. value: function getNodeStructure() {
  1955. var propertyNodes = Array.from(this.controlFlowStorage.getStorage()).map(function (_ref) {
  1956. var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
  1957. key = _ref2[0],
  1958. value = _ref2[1];
  1959. var node = value.getNode()[0];
  1960. if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {
  1961. throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');
  1962. }
  1963. return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);
  1964. });
  1965. var structure = NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))]);
  1966. structure = NodeUtils_1.NodeUtils.parentizeAst(structure);
  1967. return [structure];
  1968. }
  1969. }]);
  1970. return ControlFlowStorageNode;
  1971. }(AbstractCustomNode_1.AbstractCustomNode);
  1972. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0);
  1973. ControlFlowStorageNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ControlFlowStorageNode);
  1974. exports.ControlFlowStorageNode = ControlFlowStorageNode;
  1975. /***/ }),
  1976. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts":
  1977. /*!***************************************************************************************************************************************!*\
  1978. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***!
  1979. \***************************************************************************************************************************************/
  1980. /*! no static exports found */
  1981. /***/ (function(module, exports, __webpack_require__) {
  1982. "use strict";
  1983. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  1984. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  1985. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  1986. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  1987. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  1988. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  1989. Object.defineProperty(exports, "__esModule", {
  1990. value: true
  1991. });
  1992. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  1993. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  1994. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  1995. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  1996. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  1997. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  1998. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  1999. var ExpressionWithOperatorControlFlowStorageCallNode =
  2000. /*#__PURE__*/
  2001. function (_AbstractCustomNode_) {
  2002. (0, _inherits2["default"])(ExpressionWithOperatorControlFlowStorageCallNode, _AbstractCustomNode_);
  2003. function ExpressionWithOperatorControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2004. (0, _classCallCheck2["default"])(this, ExpressionWithOperatorControlFlowStorageCallNode);
  2005. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ExpressionWithOperatorControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2006. }
  2007. (0, _createClass2["default"])(ExpressionWithOperatorControlFlowStorageCallNode, [{
  2008. key: "initialize",
  2009. value: function initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {
  2010. this.controlFlowStorageName = controlFlowStorageName;
  2011. this.controlFlowStorageKey = controlFlowStorageKey;
  2012. this.leftValue = leftValue;
  2013. this.rightValue = rightValue;
  2014. }
  2015. }, {
  2016. key: "getNodeStructure",
  2017. value: function getNodeStructure() {
  2018. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [this.leftValue, this.rightValue]));
  2019. NodeUtils_1.NodeUtils.parentizeAst(structure);
  2020. return [structure];
  2021. }
  2022. }]);
  2023. return ExpressionWithOperatorControlFlowStorageCallNode;
  2024. }(AbstractCustomNode_1.AbstractCustomNode);
  2025. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  2026. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  2027. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "leftValue", void 0);
  2028. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "rightValue", void 0);
  2029. ExpressionWithOperatorControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowStorageCallNode);
  2030. exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;
  2031. /***/ }),
  2032. /***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts":
  2033. /*!******************************************************************************************************************************!*\
  2034. !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***!
  2035. \******************************************************************************************************************************/
  2036. /*! no static exports found */
  2037. /***/ (function(module, exports, __webpack_require__) {
  2038. "use strict";
  2039. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2040. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2041. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2042. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2043. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2044. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2045. Object.defineProperty(exports, "__esModule", {
  2046. value: true
  2047. });
  2048. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2049. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2050. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2051. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2052. var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2053. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2054. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2055. var StringLiteralControlFlowStorageCallNode =
  2056. /*#__PURE__*/
  2057. function (_AbstractCustomNode_) {
  2058. (0, _inherits2["default"])(StringLiteralControlFlowStorageCallNode, _AbstractCustomNode_);
  2059. function StringLiteralControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2060. (0, _classCallCheck2["default"])(this, StringLiteralControlFlowStorageCallNode);
  2061. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2062. }
  2063. (0, _createClass2["default"])(StringLiteralControlFlowStorageCallNode, [{
  2064. key: "initialize",
  2065. value: function initialize(controlFlowStorageName, controlFlowStorageKey) {
  2066. this.controlFlowStorageName = controlFlowStorageName;
  2067. this.controlFlowStorageKey = controlFlowStorageKey;
  2068. }
  2069. }, {
  2070. key: "getNodeStructure",
  2071. value: function getNodeStructure() {
  2072. var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));
  2073. NodeUtils_1.NodeUtils.parentizeAst(structure);
  2074. return [structure];
  2075. }
  2076. }]);
  2077. return StringLiteralControlFlowStorageCallNode;
  2078. }(AbstractCustomNode_1.AbstractCustomNode);
  2079. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0);
  2080. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0);
  2081. StringLiteralControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowStorageCallNode);
  2082. exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;
  2083. /***/ }),
  2084. /***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts":
  2085. /*!*******************************************************************************************!*\
  2086. !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***!
  2087. \*******************************************************************************************/
  2088. /*! no static exports found */
  2089. /***/ (function(module, exports, __webpack_require__) {
  2090. "use strict";
  2091. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2092. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  2093. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2094. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2095. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2096. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2097. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2098. Object.defineProperty(exports, "__esModule", {
  2099. value: true
  2100. });
  2101. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2102. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2103. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2104. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2105. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2106. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  2107. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2108. var BlockStatementDeadCodeInjectionNode =
  2109. /*#__PURE__*/
  2110. function (_AbstractCustomNode_) {
  2111. (0, _inherits2["default"])(BlockStatementDeadCodeInjectionNode, _AbstractCustomNode_);
  2112. function BlockStatementDeadCodeInjectionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2113. (0, _classCallCheck2["default"])(this, BlockStatementDeadCodeInjectionNode);
  2114. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BlockStatementDeadCodeInjectionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2115. }
  2116. (0, _createClass2["default"])(BlockStatementDeadCodeInjectionNode, [{
  2117. key: "initialize",
  2118. value: function initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {
  2119. this.blockStatementNode = blockStatementNode;
  2120. this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;
  2121. }
  2122. }, {
  2123. key: "getNodeStructure",
  2124. value: function getNodeStructure() {
  2125. var random1 = this.randomGenerator.getMathRandom() > 0.5;
  2126. var random2 = this.randomGenerator.getMathRandom() > 0.5;
  2127. var operator = random1 ? '===' : '!==';
  2128. var leftString = this.randomGenerator.getRandomString(5);
  2129. var rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);
  2130. var _ref = random1 === random2 ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode],
  2131. _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
  2132. consequent = _ref2[0],
  2133. alternate = _ref2[1];
  2134. var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)]);
  2135. NodeUtils_1.NodeUtils.parentizeAst(structure);
  2136. return [structure];
  2137. }
  2138. }]);
  2139. return BlockStatementDeadCodeInjectionNode;
  2140. }(AbstractCustomNode_1.AbstractCustomNode);
  2141. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "blockStatementNode", void 0);
  2142. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "deadCodeInjectionRootAstHostNode", void 0);
  2143. BlockStatementDeadCodeInjectionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementDeadCodeInjectionNode);
  2144. exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;
  2145. /***/ }),
  2146. /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts":
  2147. /*!************************************************************************************!*\
  2148. !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts ***!
  2149. \************************************************************************************/
  2150. /*! no static exports found */
  2151. /***/ (function(module, exports, __webpack_require__) {
  2152. "use strict";
  2153. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2154. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2155. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2156. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2157. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2158. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2159. Object.defineProperty(exports, "__esModule", {
  2160. value: true
  2161. });
  2162. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2163. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2164. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2165. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2166. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2167. var DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts");
  2168. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2169. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2170. var DebugProtectionFunctionCallNode =
  2171. /*#__PURE__*/
  2172. function (_AbstractCustomNode_) {
  2173. (0, _inherits2["default"])(DebugProtectionFunctionCallNode, _AbstractCustomNode_);
  2174. function DebugProtectionFunctionCallNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2175. (0, _classCallCheck2["default"])(this, DebugProtectionFunctionCallNode);
  2176. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionFunctionCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2177. }
  2178. (0, _createClass2["default"])(DebugProtectionFunctionCallNode, [{
  2179. key: "initialize",
  2180. value: function initialize(debugProtectionFunctionName, callsControllerFunctionName) {
  2181. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2182. this.callsControllerFunctionName = callsControllerFunctionName;
  2183. }
  2184. }, {
  2185. key: "getNodeStructure",
  2186. value: function getNodeStructure() {
  2187. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2188. }
  2189. }, {
  2190. key: "getTemplate",
  2191. value: function getTemplate() {
  2192. return string_template_1["default"](DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {
  2193. debugProtectionFunctionName: this.debugProtectionFunctionName,
  2194. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2195. });
  2196. }
  2197. }]);
  2198. return DebugProtectionFunctionCallNode;
  2199. }(AbstractCustomNode_1.AbstractCustomNode);
  2200. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "callsControllerFunctionName", void 0);
  2201. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "debugProtectionFunctionName", void 0);
  2202. DebugProtectionFunctionCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionCallNode);
  2203. exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode;
  2204. /***/ }),
  2205. /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts":
  2206. /*!****************************************************************************************!*\
  2207. !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts ***!
  2208. \****************************************************************************************/
  2209. /*! no static exports found */
  2210. /***/ (function(module, exports, __webpack_require__) {
  2211. "use strict";
  2212. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2213. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2214. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2215. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2216. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2217. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2218. Object.defineProperty(exports, "__esModule", {
  2219. value: true
  2220. });
  2221. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2222. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2223. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2224. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2225. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2226. var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts");
  2227. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2228. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2229. var DebugProtectionFunctionIntervalNode =
  2230. /*#__PURE__*/
  2231. function (_AbstractCustomNode_) {
  2232. (0, _inherits2["default"])(DebugProtectionFunctionIntervalNode, _AbstractCustomNode_);
  2233. function DebugProtectionFunctionIntervalNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2234. (0, _classCallCheck2["default"])(this, DebugProtectionFunctionIntervalNode);
  2235. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionFunctionIntervalNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2236. }
  2237. (0, _createClass2["default"])(DebugProtectionFunctionIntervalNode, [{
  2238. key: "initialize",
  2239. value: function initialize(debugProtectionFunctionName) {
  2240. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2241. }
  2242. }, {
  2243. key: "getNodeStructure",
  2244. value: function getNodeStructure() {
  2245. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2246. }
  2247. }, {
  2248. key: "getTemplate",
  2249. value: function getTemplate() {
  2250. return string_template_1["default"](DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {
  2251. debugProtectionFunctionName: this.debugProtectionFunctionName
  2252. });
  2253. }
  2254. }]);
  2255. return DebugProtectionFunctionIntervalNode;
  2256. }(AbstractCustomNode_1.AbstractCustomNode);
  2257. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionIntervalNode.prototype, "debugProtectionFunctionName", void 0);
  2258. DebugProtectionFunctionIntervalNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionIntervalNode);
  2259. exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode;
  2260. /***/ }),
  2261. /***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts":
  2262. /*!********************************************************************************!*\
  2263. !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts ***!
  2264. \********************************************************************************/
  2265. /*! no static exports found */
  2266. /***/ (function(module, exports, __webpack_require__) {
  2267. "use strict";
  2268. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2269. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2270. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2271. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2272. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2273. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2274. Object.defineProperty(exports, "__esModule", {
  2275. value: true
  2276. });
  2277. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2278. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2279. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2280. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2281. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  2282. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2283. var DebuggerTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts");
  2284. var DebuggerTemplateNoEval_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts");
  2285. var DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts");
  2286. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2287. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2288. var DebugProtectionFunctionNode =
  2289. /*#__PURE__*/
  2290. function (_AbstractCustomNode_) {
  2291. (0, _inherits2["default"])(DebugProtectionFunctionNode, _AbstractCustomNode_);
  2292. function DebugProtectionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2293. (0, _classCallCheck2["default"])(this, DebugProtectionFunctionNode);
  2294. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2295. }
  2296. (0, _createClass2["default"])(DebugProtectionFunctionNode, [{
  2297. key: "initialize",
  2298. value: function initialize(debugProtectionFunctionName) {
  2299. this.debugProtectionFunctionName = debugProtectionFunctionName;
  2300. }
  2301. }, {
  2302. key: "getNodeStructure",
  2303. value: function getNodeStructure() {
  2304. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2305. }
  2306. }, {
  2307. key: "getTemplate",
  2308. value: function getTemplate() {
  2309. var debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? DebuggerTemplate_1.DebuggerTemplate() : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();
  2310. return string_template_1["default"](DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {
  2311. debuggerTemplate: debuggerTemplate,
  2312. debugProtectionFunctionName: this.debugProtectionFunctionName
  2313. });
  2314. }
  2315. }]);
  2316. return DebugProtectionFunctionNode;
  2317. }(AbstractCustomNode_1.AbstractCustomNode);
  2318. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionNode.prototype, "debugProtectionFunctionName", void 0);
  2319. DebugProtectionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionNode);
  2320. exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode;
  2321. /***/ }),
  2322. /***/ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts":
  2323. /*!*****************************************************************************************!*\
  2324. !*** ./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts ***!
  2325. \*****************************************************************************************/
  2326. /*! no static exports found */
  2327. /***/ (function(module, exports, __webpack_require__) {
  2328. "use strict";
  2329. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2330. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2331. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2332. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2333. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2334. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2335. Object.defineProperty(exports, "__esModule", {
  2336. value: true
  2337. });
  2338. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2339. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2340. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2341. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2342. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  2343. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  2344. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  2345. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  2346. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  2347. var DebugProtectionCustomNodeGroup =
  2348. /*#__PURE__*/
  2349. function (_AbstractCustomNodeGr) {
  2350. (0, _inherits2["default"])(DebugProtectionCustomNodeGroup, _AbstractCustomNodeGr);
  2351. function DebugProtectionCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  2352. var _this;
  2353. (0, _classCallCheck2["default"])(this, DebugProtectionCustomNodeGroup);
  2354. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DebugProtectionCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2355. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
  2356. _this.customNodeFactory = customNodeFactory;
  2357. return _this;
  2358. }
  2359. (0, _createClass2["default"])(DebugProtectionCustomNodeGroup, [{
  2360. key: "appendCustomNodes",
  2361. value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
  2362. var _this2 = this;
  2363. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  2364. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, function (customNode) {
  2365. NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
  2366. });
  2367. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionNode, function (customNode) {
  2368. NodeAppender_1.NodeAppender.append(nodeWithStatements, customNode.getNode());
  2369. });
  2370. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, function (customNode) {
  2371. var programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements) ? nodeWithStatements.consequent.length : nodeWithStatements.body.length;
  2372. var randomIndex = _this2.randomGenerator.getRandomInteger(0, programBodyLength);
  2373. NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customNode.getNode(), randomIndex);
  2374. });
  2375. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  2376. var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
  2377. NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
  2378. });
  2379. }
  2380. }, {
  2381. key: "initialize",
  2382. value: function initialize() {
  2383. this.customNodes = new Map();
  2384. if (!this.options.debugProtection) {
  2385. return;
  2386. }
  2387. var debugProtectionFunctionName = this.identifierNamesGenerator.generate();
  2388. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  2389. var debugProtectionFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionNode);
  2390. var debugProtectionFunctionCallNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode);
  2391. var debugProtectionFunctionIntervalNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode);
  2392. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  2393. debugProtectionFunctionNode.initialize(debugProtectionFunctionName);
  2394. debugProtectionFunctionCallNode.initialize(debugProtectionFunctionName, callsControllerFunctionName);
  2395. debugProtectionFunctionIntervalNode.initialize(debugProtectionFunctionName);
  2396. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2397. this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionNode, debugProtectionFunctionNode);
  2398. this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, debugProtectionFunctionCallNode);
  2399. if (this.options.debugProtectionInterval) {
  2400. this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, debugProtectionFunctionIntervalNode);
  2401. }
  2402. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2403. }
  2404. }]);
  2405. return DebugProtectionCustomNodeGroup;
  2406. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2407. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], DebugProtectionCustomNodeGroup.prototype, "customNodes", void 0);
  2408. DebugProtectionCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DebugProtectionCustomNodeGroup);
  2409. exports.DebugProtectionCustomNodeGroup = DebugProtectionCustomNodeGroup;
  2410. /***/ }),
  2411. /***/ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts":
  2412. /*!**************************************************************!*\
  2413. !*** ./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts ***!
  2414. \**************************************************************/
  2415. /*! no static exports found */
  2416. /***/ (function(module, exports, __webpack_require__) {
  2417. "use strict";
  2418. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2419. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  2420. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2421. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2422. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2423. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2424. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2425. Object.defineProperty(exports, "__esModule", {
  2426. value: true
  2427. });
  2428. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2429. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2430. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2431. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2432. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  2433. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2434. var DomainLockNodeTemplate_1 = __webpack_require__(/*! ../../templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate */ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts");
  2435. var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
  2436. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2437. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2438. var DomainLockNode =
  2439. /*#__PURE__*/
  2440. function (_AbstractCustomNode_) {
  2441. (0, _inherits2["default"])(DomainLockNode, _AbstractCustomNode_);
  2442. function DomainLockNode(identifierNamesGeneratorFactory, randomGenerator, cryptUtils, options) {
  2443. var _this;
  2444. (0, _classCallCheck2["default"])(this, DomainLockNode);
  2445. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DomainLockNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2446. _this.cryptUtils = cryptUtils;
  2447. return _this;
  2448. }
  2449. (0, _createClass2["default"])(DomainLockNode, [{
  2450. key: "initialize",
  2451. value: function initialize(callsControllerFunctionName) {
  2452. this.callsControllerFunctionName = callsControllerFunctionName;
  2453. }
  2454. }, {
  2455. key: "getNodeStructure",
  2456. value: function getNodeStructure() {
  2457. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2458. }
  2459. }, {
  2460. key: "getTemplate",
  2461. value: function getTemplate() {
  2462. var domainsString = this.options.domainLock.join(';');
  2463. var _this$cryptUtils$hide = this.cryptUtils.hideString(domainsString, domainsString.length * 3),
  2464. _this$cryptUtils$hide2 = (0, _slicedToArray2["default"])(_this$cryptUtils$hide, 2),
  2465. hiddenDomainsString = _this$cryptUtils$hide2[0],
  2466. diff = _this$cryptUtils$hide2[1];
  2467. var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  2468. return string_template_1["default"](DomainLockNodeTemplate_1.DomainLockNodeTemplate(), {
  2469. domainLockFunctionName: this.identifierNamesGenerator.generate(),
  2470. diff: diff,
  2471. domains: hiddenDomainsString,
  2472. globalVariableTemplate: globalVariableTemplate,
  2473. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2474. });
  2475. }
  2476. }]);
  2477. return DomainLockNode;
  2478. }(AbstractCustomNode_1.AbstractCustomNode);
  2479. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DomainLockNode.prototype, "callsControllerFunctionName", void 0);
  2480. DomainLockNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DomainLockNode);
  2481. exports.DomainLockNode = DomainLockNode;
  2482. /***/ }),
  2483. /***/ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts":
  2484. /*!*******************************************************************************!*\
  2485. !*** ./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts ***!
  2486. \*******************************************************************************/
  2487. /*! no static exports found */
  2488. /***/ (function(module, exports, __webpack_require__) {
  2489. "use strict";
  2490. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2491. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2492. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2493. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2494. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2495. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2496. Object.defineProperty(exports, "__esModule", {
  2497. value: true
  2498. });
  2499. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2500. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2501. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2502. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2503. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  2504. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  2505. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  2506. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  2507. var DomainLockCustomNodeGroup =
  2508. /*#__PURE__*/
  2509. function (_AbstractCustomNodeGr) {
  2510. (0, _inherits2["default"])(DomainLockCustomNodeGroup, _AbstractCustomNodeGr);
  2511. function DomainLockCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  2512. var _this;
  2513. (0, _classCallCheck2["default"])(this, DomainLockCustomNodeGroup);
  2514. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DomainLockCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2515. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;
  2516. _this.customNodeFactory = customNodeFactory;
  2517. return _this;
  2518. }
  2519. (0, _createClass2["default"])(DomainLockCustomNodeGroup, [{
  2520. key: "appendCustomNodes",
  2521. value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
  2522. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  2523. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DomainLockNode, function (customNode) {
  2524. NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
  2525. });
  2526. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  2527. var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
  2528. NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
  2529. });
  2530. }
  2531. }, {
  2532. key: "initialize",
  2533. value: function initialize() {
  2534. this.customNodes = new Map();
  2535. if (!this.options.domainLock.length) {
  2536. return;
  2537. }
  2538. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  2539. var domainLockNode = this.customNodeFactory(CustomNode_1.CustomNode.DomainLockNode);
  2540. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  2541. domainLockNode.initialize(callsControllerFunctionName);
  2542. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2543. this.customNodes.set(CustomNode_1.CustomNode.DomainLockNode, domainLockNode);
  2544. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2545. }
  2546. }]);
  2547. return DomainLockCustomNodeGroup;
  2548. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2549. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], DomainLockCustomNodeGroup.prototype, "customNodes", void 0);
  2550. DomainLockCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DomainLockCustomNodeGroup);
  2551. exports.DomainLockCustomNodeGroup = DomainLockCustomNodeGroup;
  2552. /***/ }),
  2553. /***/ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts":
  2554. /*!*****************************************************************************************!*\
  2555. !*** ./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts ***!
  2556. \*****************************************************************************************/
  2557. /*! no static exports found */
  2558. /***/ (function(module, exports, __webpack_require__) {
  2559. "use strict";
  2560. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2561. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2562. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2563. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2564. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2565. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2566. Object.defineProperty(exports, "__esModule", {
  2567. value: true
  2568. });
  2569. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2570. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2571. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2572. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2573. var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  2574. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2575. var SingleNodeCallControllerTemplate_1 = __webpack_require__(/*! ../../templates/SingleNodeCallControllerTemplate */ "./src/templates/SingleNodeCallControllerTemplate.ts");
  2576. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  2577. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2578. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  2579. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2580. var NodeCallsControllerFunctionNode =
  2581. /*#__PURE__*/
  2582. function (_AbstractCustomNode_) {
  2583. (0, _inherits2["default"])(NodeCallsControllerFunctionNode, _AbstractCustomNode_);
  2584. function NodeCallsControllerFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2585. (0, _classCallCheck2["default"])(this, NodeCallsControllerFunctionNode);
  2586. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(NodeCallsControllerFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2587. }
  2588. (0, _createClass2["default"])(NodeCallsControllerFunctionNode, [{
  2589. key: "initialize",
  2590. value: function initialize(appendEvent, callsControllerFunctionName) {
  2591. this.appendEvent = appendEvent;
  2592. this.callsControllerFunctionName = callsControllerFunctionName;
  2593. }
  2594. }, {
  2595. key: "getNodeStructure",
  2596. value: function getNodeStructure() {
  2597. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2598. }
  2599. }, {
  2600. key: "getTemplate",
  2601. value: function getTemplate() {
  2602. if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {
  2603. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
  2604. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2605. }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
  2606. identifierNamesGenerator: this.options.identifierNamesGenerator,
  2607. identifiersDictionary: this.options.identifiersDictionary,
  2608. seed: this.options.seed
  2609. })).getObfuscatedCode();
  2610. }
  2611. return string_template_1["default"](SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), {
  2612. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2613. });
  2614. }
  2615. }]);
  2616. return NodeCallsControllerFunctionNode;
  2617. }(AbstractCustomNode_1.AbstractCustomNode);
  2618. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "callsControllerFunctionName", void 0);
  2619. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "appendEvent", void 0);
  2620. NodeCallsControllerFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], NodeCallsControllerFunctionNode);
  2621. exports.NodeCallsControllerFunctionNode = NodeCallsControllerFunctionNode;
  2622. /***/ }),
  2623. /***/ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts":
  2624. /*!***************************************************************************!*\
  2625. !*** ./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts ***!
  2626. \***************************************************************************/
  2627. /*! no static exports found */
  2628. /***/ (function(module, exports, __webpack_require__) {
  2629. "use strict";
  2630. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2631. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2632. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2633. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2634. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2635. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2636. Object.defineProperty(exports, "__esModule", {
  2637. value: true
  2638. });
  2639. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2640. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2641. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2642. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2643. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2644. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  2645. var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate */ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts");
  2646. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2647. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  2648. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2649. var SelfDefendingUnicodeNode =
  2650. /*#__PURE__*/
  2651. function (_AbstractCustomNode_) {
  2652. (0, _inherits2["default"])(SelfDefendingUnicodeNode, _AbstractCustomNode_);
  2653. function SelfDefendingUnicodeNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
  2654. var _this;
  2655. (0, _classCallCheck2["default"])(this, SelfDefendingUnicodeNode);
  2656. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SelfDefendingUnicodeNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2657. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  2658. return _this;
  2659. }
  2660. (0, _createClass2["default"])(SelfDefendingUnicodeNode, [{
  2661. key: "initialize",
  2662. value: function initialize(callsControllerFunctionName) {
  2663. this.callsControllerFunctionName = callsControllerFunctionName;
  2664. }
  2665. }, {
  2666. key: "getNodeStructure",
  2667. value: function getNodeStructure() {
  2668. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2669. }
  2670. }, {
  2671. key: "getTemplate",
  2672. value: function getTemplate() {
  2673. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
  2674. selfDefendingFunctionName: this.identifierNamesGenerator.generate(),
  2675. singleNodeCallControllerFunctionName: this.callsControllerFunctionName
  2676. }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
  2677. identifierNamesGenerator: this.options.identifierNamesGenerator,
  2678. identifiersDictionary: this.options.identifiersDictionary,
  2679. seed: this.options.seed,
  2680. unicodeEscapeSequence: true
  2681. })).getObfuscatedCode();
  2682. }
  2683. }]);
  2684. return SelfDefendingUnicodeNode;
  2685. }(AbstractCustomNode_1.AbstractCustomNode);
  2686. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], SelfDefendingUnicodeNode.prototype, "callsControllerFunctionName", void 0);
  2687. SelfDefendingUnicodeNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], SelfDefendingUnicodeNode);
  2688. exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode;
  2689. /***/ }),
  2690. /***/ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts":
  2691. /*!*************************************************************************************!*\
  2692. !*** ./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts ***!
  2693. \*************************************************************************************/
  2694. /*! no static exports found */
  2695. /***/ (function(module, exports, __webpack_require__) {
  2696. "use strict";
  2697. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2698. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2699. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2700. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2701. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2702. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2703. Object.defineProperty(exports, "__esModule", {
  2704. value: true
  2705. });
  2706. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2707. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2708. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2709. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2710. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  2711. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  2712. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  2713. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  2714. var SelfDefendingCustomNodeGroup =
  2715. /*#__PURE__*/
  2716. function (_AbstractCustomNodeGr) {
  2717. (0, _inherits2["default"])(SelfDefendingCustomNodeGroup, _AbstractCustomNodeGr);
  2718. function SelfDefendingCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) {
  2719. var _this;
  2720. (0, _classCallCheck2["default"])(this, SelfDefendingCustomNodeGroup);
  2721. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SelfDefendingCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2722. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
  2723. _this.customNodeFactory = customNodeFactory;
  2724. return _this;
  2725. }
  2726. (0, _createClass2["default"])(SelfDefendingCustomNodeGroup, [{
  2727. key: "appendCustomNodes",
  2728. value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
  2729. var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length);
  2730. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, function (customNode) {
  2731. NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, nodeWithStatements, customNode.getNode(), randomStackTraceIndex);
  2732. });
  2733. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) {
  2734. var targetNodeWithStatements = stackTraceData.length ? NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1) : nodeWithStatements;
  2735. NodeAppender_1.NodeAppender.prepend(targetNodeWithStatements, customNode.getNode());
  2736. });
  2737. }
  2738. }, {
  2739. key: "initialize",
  2740. value: function initialize() {
  2741. this.customNodes = new Map();
  2742. if (!this.options.selfDefending) {
  2743. return;
  2744. }
  2745. var callsControllerFunctionName = this.identifierNamesGenerator.generate();
  2746. var selfDefendingUnicodeNode = this.customNodeFactory(CustomNode_1.CustomNode.SelfDefendingUnicodeNode);
  2747. var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode);
  2748. selfDefendingUnicodeNode.initialize(callsControllerFunctionName);
  2749. nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName);
  2750. this.customNodes.set(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, selfDefendingUnicodeNode);
  2751. this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode);
  2752. }
  2753. }]);
  2754. return SelfDefendingCustomNodeGroup;
  2755. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  2756. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], SelfDefendingCustomNodeGroup.prototype, "customNodes", void 0);
  2757. SelfDefendingCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], SelfDefendingCustomNodeGroup);
  2758. exports.SelfDefendingCustomNodeGroup = SelfDefendingCustomNodeGroup;
  2759. /***/ }),
  2760. /***/ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts":
  2761. /*!************************************************************************!*\
  2762. !*** ./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts ***!
  2763. \************************************************************************/
  2764. /*! no static exports found */
  2765. /***/ (function(module, exports, __webpack_require__) {
  2766. "use strict";
  2767. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2768. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2769. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2770. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2771. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2772. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2773. Object.defineProperty(exports, "__esModule", {
  2774. value: true
  2775. });
  2776. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2777. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2778. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2779. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2780. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  2781. var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  2782. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2783. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  2784. var AtobTemplate_1 = __webpack_require__(/*! ../../templates/AtobTemplate */ "./src/templates/AtobTemplate.ts");
  2785. var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts");
  2786. var Rc4Template_1 = __webpack_require__(/*! ../../templates/Rc4Template */ "./src/templates/Rc4Template.ts");
  2787. var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts");
  2788. var StringArrayBase64DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts");
  2789. var StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts");
  2790. var StringArrayRC4DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts");
  2791. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2792. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  2793. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2794. var StringArrayCallsWrapper =
  2795. /*#__PURE__*/
  2796. function (_AbstractCustomNode_) {
  2797. (0, _inherits2["default"])(StringArrayCallsWrapper, _AbstractCustomNode_);
  2798. function StringArrayCallsWrapper(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
  2799. var _this;
  2800. (0, _classCallCheck2["default"])(this, StringArrayCallsWrapper);
  2801. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayCallsWrapper).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2802. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  2803. return _this;
  2804. }
  2805. (0, _createClass2["default"])(StringArrayCallsWrapper, [{
  2806. key: "initialize",
  2807. value: function initialize(stringArrayName, stringArrayCallsWrapperName) {
  2808. this.stringArrayName = stringArrayName;
  2809. this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
  2810. }
  2811. }, {
  2812. key: "getNodeStructure",
  2813. value: function getNodeStructure() {
  2814. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2815. }
  2816. }, {
  2817. key: "getTemplate",
  2818. value: function getTemplate() {
  2819. var decodeNodeTemplate = this.getDecodeStringArrayTemplate();
  2820. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {
  2821. decodeNodeTemplate: decodeNodeTemplate,
  2822. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  2823. stringArrayName: this.stringArrayName
  2824. }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
  2825. identifierNamesGenerator: this.options.identifierNamesGenerator,
  2826. identifiersDictionary: this.options.identifiersDictionary,
  2827. seed: this.options.seed
  2828. })).getObfuscatedCode();
  2829. }
  2830. }, {
  2831. key: "getDecodeStringArrayTemplate",
  2832. value: function getDecodeStringArrayTemplate() {
  2833. var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();
  2834. var atobPolyfill = string_template_1["default"](AtobTemplate_1.AtobTemplate(), {
  2835. globalVariableTemplate: globalVariableTemplate
  2836. });
  2837. var decodeStringArrayTemplate = '';
  2838. var selfDefendingCode = '';
  2839. if (this.options.selfDefending) {
  2840. selfDefendingCode = string_template_1["default"](SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {
  2841. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
  2842. stringArrayName: this.stringArrayName
  2843. });
  2844. }
  2845. switch (this.options.stringArrayEncoding) {
  2846. case StringArrayEncoding_1.StringArrayEncoding.Rc4:
  2847. decodeStringArrayTemplate = string_template_1["default"](StringArrayRC4DecodeNodeTemplate_1.StringArrayRc4DecodeNodeTemplate(this.randomGenerator), {
  2848. atobPolyfill: atobPolyfill,
  2849. rc4Polyfill: Rc4Template_1.Rc4Template(),
  2850. selfDefendingCode: selfDefendingCode,
  2851. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  2852. });
  2853. break;
  2854. case StringArrayEncoding_1.StringArrayEncoding.Base64:
  2855. decodeStringArrayTemplate = string_template_1["default"](StringArrayBase64DecodeNodeTemplate_1.StringArrayBase64DecodeNodeTemplate(this.randomGenerator), {
  2856. atobPolyfill: atobPolyfill,
  2857. selfDefendingCode: selfDefendingCode,
  2858. stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
  2859. });
  2860. }
  2861. return decodeStringArrayTemplate;
  2862. }
  2863. }]);
  2864. return StringArrayCallsWrapper;
  2865. }(AbstractCustomNode_1.AbstractCustomNode);
  2866. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayName", void 0);
  2867. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayCallsWrapperName", void 0);
  2868. StringArrayCallsWrapper = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayCallsWrapper);
  2869. exports.StringArrayCallsWrapper = StringArrayCallsWrapper;
  2870. /***/ }),
  2871. /***/ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts":
  2872. /*!****************************************************************!*\
  2873. !*** ./src/custom-nodes/string-array-nodes/StringArrayNode.ts ***!
  2874. \****************************************************************/
  2875. /*! no static exports found */
  2876. /***/ (function(module, exports, __webpack_require__) {
  2877. "use strict";
  2878. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2879. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2880. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2881. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2882. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2883. var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
  2884. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2885. Object.defineProperty(exports, "__esModule", {
  2886. value: true
  2887. });
  2888. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2889. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2890. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2891. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2892. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2893. var StringArrayTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-node/StringArrayTemplate */ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts");
  2894. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2895. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2896. var StringArrayNode =
  2897. /*#__PURE__*/
  2898. function (_AbstractCustomNode_) {
  2899. (0, _inherits2["default"])(StringArrayNode, _AbstractCustomNode_);
  2900. function StringArrayNode(identifierNamesGeneratorFactory, randomGenerator, options) {
  2901. (0, _classCallCheck2["default"])(this, StringArrayNode);
  2902. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2903. }
  2904. (0, _createClass2["default"])(StringArrayNode, [{
  2905. key: "initialize",
  2906. value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) {
  2907. this.stringArrayStorage = stringArrayStorage;
  2908. this.stringArrayName = stringArrayName;
  2909. this.stringArrayRotateValue = stringArrayRotateValue;
  2910. }
  2911. }, {
  2912. key: "getNode",
  2913. value: function getNode() {
  2914. this.stringArrayStorage.rotateArray(this.stringArrayRotateValue);
  2915. return (0, _get2["default"])((0, _getPrototypeOf2["default"])(StringArrayNode.prototype), "getNode", this).call(this);
  2916. }
  2917. }, {
  2918. key: "getNodeStructure",
  2919. value: function getNodeStructure() {
  2920. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2921. }
  2922. }, {
  2923. key: "getTemplate",
  2924. value: function getTemplate() {
  2925. return string_template_1["default"](StringArrayTemplate_1.StringArrayTemplate(), {
  2926. stringArrayName: this.stringArrayName,
  2927. stringArray: this.stringArrayStorage.toString()
  2928. });
  2929. }
  2930. }]);
  2931. return StringArrayNode;
  2932. }(AbstractCustomNode_1.AbstractCustomNode);
  2933. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayNode.prototype, "stringArrayStorage", void 0);
  2934. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayNode.prototype, "stringArrayName", void 0);
  2935. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayNode.prototype, "stringArrayRotateValue", void 0);
  2936. StringArrayNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringArrayNode);
  2937. exports.StringArrayNode = StringArrayNode;
  2938. /***/ }),
  2939. /***/ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts":
  2940. /*!******************************************************************************!*\
  2941. !*** ./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts ***!
  2942. \******************************************************************************/
  2943. /*! no static exports found */
  2944. /***/ (function(module, exports, __webpack_require__) {
  2945. "use strict";
  2946. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  2947. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  2948. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  2949. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  2950. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  2951. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  2952. Object.defineProperty(exports, "__esModule", {
  2953. value: true
  2954. });
  2955. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  2956. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  2957. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  2958. var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template"));
  2959. var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  2960. var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts");
  2961. var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts");
  2962. var StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts");
  2963. var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts");
  2964. var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts");
  2965. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  2966. var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  2967. var StringArrayRotateFunctionNode =
  2968. /*#__PURE__*/
  2969. function (_AbstractCustomNode_) {
  2970. (0, _inherits2["default"])(StringArrayRotateFunctionNode, _AbstractCustomNode_);
  2971. function StringArrayRotateFunctionNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) {
  2972. var _this;
  2973. (0, _classCallCheck2["default"])(this, StringArrayRotateFunctionNode);
  2974. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayRotateFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  2975. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  2976. return _this;
  2977. }
  2978. (0, _createClass2["default"])(StringArrayRotateFunctionNode, [{
  2979. key: "initialize",
  2980. value: function initialize(stringArrayName, stringArrayRotateValue) {
  2981. this.stringArrayName = stringArrayName;
  2982. this.stringArrayRotateValue = stringArrayRotateValue;
  2983. }
  2984. }, {
  2985. key: "getNodeStructure",
  2986. value: function getNodeStructure() {
  2987. return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate());
  2988. }
  2989. }, {
  2990. key: "getTemplate",
  2991. value: function getTemplate() {
  2992. var timesName = this.identifierNamesGenerator.generate();
  2993. var whileFunctionName = this.identifierNamesGenerator.generate();
  2994. var code = '';
  2995. if (this.options.selfDefending) {
  2996. code = string_template_1["default"](SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {
  2997. timesName: timesName,
  2998. whileFunctionName: whileFunctionName
  2999. });
  3000. } else {
  3001. code = "".concat(whileFunctionName, "(++").concat(timesName, ")");
  3002. }
  3003. return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1["default"](StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {
  3004. code: code,
  3005. timesName: timesName,
  3006. stringArrayName: this.stringArrayName,
  3007. stringArrayRotateValue: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotateValue),
  3008. whileFunctionName: whileFunctionName
  3009. }), Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), {
  3010. identifierNamesGenerator: this.options.identifierNamesGenerator,
  3011. identifiersDictionary: this.options.identifiersDictionary,
  3012. seed: this.options.seed
  3013. })).getObfuscatedCode();
  3014. }
  3015. }]);
  3016. return StringArrayRotateFunctionNode;
  3017. }(AbstractCustomNode_1.AbstractCustomNode);
  3018. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayRotateFunctionNode.prototype, "stringArrayName", void 0);
  3019. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayRotateFunctionNode.prototype, "stringArrayRotateValue", void 0);
  3020. StringArrayRotateFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayRotateFunctionNode);
  3021. exports.StringArrayRotateFunctionNode = StringArrayRotateFunctionNode;
  3022. /***/ }),
  3023. /***/ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts":
  3024. /*!*********************************************************************************!*\
  3025. !*** ./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts ***!
  3026. \*********************************************************************************/
  3027. /*! no static exports found */
  3028. /***/ (function(module, exports, __webpack_require__) {
  3029. "use strict";
  3030. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  3031. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  3032. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  3033. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  3034. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  3035. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  3036. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  3037. Object.defineProperty(exports, "__esModule", {
  3038. value: true
  3039. });
  3040. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3041. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3042. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3043. var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts");
  3044. var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts");
  3045. var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  3046. var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts");
  3047. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  3048. var StringArrayCustomNodeGroup =
  3049. /*#__PURE__*/
  3050. function (_AbstractCustomNodeGr) {
  3051. (0, _inherits2["default"])(StringArrayCustomNodeGroup, _AbstractCustomNodeGr);
  3052. function StringArrayCustomNodeGroup(customNodeFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {
  3053. var _this;
  3054. (0, _classCallCheck2["default"])(this, StringArrayCustomNodeGroup);
  3055. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options));
  3056. _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;
  3057. _this.customNodeFactory = customNodeFactory;
  3058. _this.stringArrayStorage = stringArrayStorage;
  3059. return _this;
  3060. }
  3061. (0, _createClass2["default"])(StringArrayCustomNodeGroup, [{
  3062. key: "appendCustomNodes",
  3063. value: function appendCustomNodes(nodeWithStatements, stackTraceData) {
  3064. if (!this.stringArrayStorage.getLength()) {
  3065. return;
  3066. }
  3067. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayNode, function (customNode) {
  3068. NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customNode.getNode());
  3069. });
  3070. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayCallsWrapper, function (customNode) {
  3071. NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customNode.getNode(), 1);
  3072. });
  3073. this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, function (customNode) {
  3074. NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customNode.getNode(), 1);
  3075. });
  3076. }
  3077. }, {
  3078. key: "initialize",
  3079. value: function initialize() {
  3080. this.customNodes = new Map();
  3081. if (!this.options.stringArray) {
  3082. return;
  3083. }
  3084. var stringArrayNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayNode);
  3085. var stringArrayCallsWrapper = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayCallsWrapper);
  3086. var stringArrayRotateFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayRotateFunctionNode);
  3087. var stringArrayStorageId = this.stringArrayStorage.getStorageId();
  3088. var _stringArrayStorageId = stringArrayStorageId.split('|'),
  3089. _stringArrayStorageId2 = (0, _slicedToArray2["default"])(_stringArrayStorageId, 2),
  3090. stringArrayName = _stringArrayStorageId2[0],
  3091. stringArrayCallsWrapperName = _stringArrayStorageId2[1];
  3092. var stringArrayRotateValue;
  3093. if (this.options.rotateStringArray) {
  3094. stringArrayRotateValue = this.randomGenerator.getRandomInteger(100, 500);
  3095. } else {
  3096. stringArrayRotateValue = 0;
  3097. }
  3098. stringArrayNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue);
  3099. stringArrayCallsWrapper.initialize(stringArrayName, stringArrayCallsWrapperName);
  3100. stringArrayRotateFunctionNode.initialize(stringArrayName, stringArrayRotateValue);
  3101. this.customNodes.set(CustomNode_1.CustomNode.StringArrayNode, stringArrayNode);
  3102. this.customNodes.set(CustomNode_1.CustomNode.StringArrayCallsWrapper, stringArrayCallsWrapper);
  3103. if (this.options.rotateStringArray) {
  3104. this.customNodes.set(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, stringArrayRotateFunctionNode);
  3105. }
  3106. }
  3107. }]);
  3108. return StringArrayCustomNodeGroup;
  3109. }(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup);
  3110. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], StringArrayCustomNodeGroup.prototype, "customNodes", void 0);
  3111. StringArrayCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Function, Object, Object])], StringArrayCustomNodeGroup);
  3112. exports.StringArrayCustomNodeGroup = StringArrayCustomNodeGroup;
  3113. /***/ }),
  3114. /***/ "./src/decorators/Initializable.ts":
  3115. /*!*****************************************!*\
  3116. !*** ./src/decorators/Initializable.ts ***!
  3117. \*****************************************/
  3118. /*! no static exports found */
  3119. /***/ (function(module, exports, __webpack_require__) {
  3120. "use strict";
  3121. Object.defineProperty(exports, "__esModule", {
  3122. value: true
  3123. });
  3124. var defaultDescriptor = {
  3125. configurable: true,
  3126. enumerable: true
  3127. };
  3128. var initializedTargetMetadataKey = '_initialized';
  3129. var initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';
  3130. var wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';
  3131. var constructorMethodName = 'constructor';
  3132. function initializable() {
  3133. var initializeMethodName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initialize';
  3134. var decoratorName = Object.keys(this)[0];
  3135. return function (target, propertyKey) {
  3136. var initializeMethod = target[initializeMethodName];
  3137. if (!initializeMethod || typeof initializeMethod !== 'function') {
  3138. throw new Error("`".concat(initializeMethodName, "` method with initialization logic not ") + "found. `@".concat(decoratorName, "` decorator requires `").concat(initializeMethodName, "` method"));
  3139. }
  3140. initializeTargetMetadata(initializedTargetMetadataKey, false, target);
  3141. initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);
  3142. initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);
  3143. wrapTargetMethodsInInitializedCheck(target, initializeMethodName);
  3144. wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);
  3145. return wrapInitializableProperty(target, propertyKey);
  3146. };
  3147. }
  3148. exports.initializable = initializable;
  3149. function initializeTargetMetadata(metadataKey, metadataValue, target) {
  3150. var hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);
  3151. if (!hasInitializedMetadata) {
  3152. Reflect.defineMetadata(metadataKey, metadataValue, target);
  3153. }
  3154. }
  3155. function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {
  3156. var ownPropertyNames = Object.getOwnPropertyNames(target);
  3157. var prohibitedPropertyNames = [initializeMethodName, constructorMethodName];
  3158. ownPropertyNames.forEach(function (propertyName) {
  3159. var initializablePropertiesSet = Reflect.getMetadata(initializablePropertiesSetMetadataKey, target);
  3160. var wrappedMethodsSet = Reflect.getMetadata(wrappedMethodsSetMetadataKey, target);
  3161. var isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) || initializablePropertiesSet.has(propertyName) || wrappedMethodsSet.has(propertyName);
  3162. if (isProhibitedPropertyName) {
  3163. return;
  3164. }
  3165. var targetProperty = target[propertyName];
  3166. if (typeof targetProperty !== 'function') {
  3167. return;
  3168. }
  3169. var methodDescriptor = Object.getOwnPropertyDescriptor(target, propertyName) || defaultDescriptor;
  3170. var originalMethod = methodDescriptor.value;
  3171. Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), {
  3172. value: function value() {
  3173. if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {
  3174. throw new Error("Class should be initialized with `".concat(initializeMethodName, "()` method"));
  3175. }
  3176. return originalMethod.apply(this, arguments);
  3177. }
  3178. }));
  3179. wrappedMethodsSet.add(propertyName);
  3180. });
  3181. }
  3182. function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {
  3183. var methodDescriptor = Object.getOwnPropertyDescriptor(target, initializeMethodName) || defaultDescriptor;
  3184. var originalMethod = methodDescriptor.value;
  3185. Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), {
  3186. value: function value() {
  3187. Reflect.defineMetadata(initializedTargetMetadataKey, true, this);
  3188. var result = originalMethod.apply(this, arguments);
  3189. if (this[propertyKey]) {}
  3190. return result;
  3191. }
  3192. }));
  3193. }
  3194. function wrapInitializableProperty(target, propertyKey) {
  3195. var initializablePropertiesSet = Reflect.getMetadata(initializablePropertiesSetMetadataKey, target);
  3196. initializablePropertiesSet.add(propertyKey);
  3197. var initializablePropertyMetadataKey = "_".concat(propertyKey.toString());
  3198. var propertyDescriptor = Object.getOwnPropertyDescriptor(target, initializablePropertyMetadataKey) || defaultDescriptor;
  3199. Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), {
  3200. get: function get() {
  3201. if (this[initializablePropertyMetadataKey] === undefined) {
  3202. throw new Error("Property `".concat(propertyKey.toString(), "` is not initialized! Initialize it first!"));
  3203. }
  3204. return this[initializablePropertyMetadataKey];
  3205. },
  3206. set: function set(newVal) {
  3207. this[initializablePropertyMetadataKey] = newVal;
  3208. }
  3209. }));
  3210. return propertyDescriptor;
  3211. }
  3212. /***/ }),
  3213. /***/ "./src/enums/ObfuscationTarget.ts":
  3214. /*!****************************************!*\
  3215. !*** ./src/enums/ObfuscationTarget.ts ***!
  3216. \****************************************/
  3217. /*! no static exports found */
  3218. /***/ (function(module, exports, __webpack_require__) {
  3219. "use strict";
  3220. Object.defineProperty(exports, "__esModule", {
  3221. value: true
  3222. });
  3223. var ObfuscationTarget;
  3224. (function (ObfuscationTarget) {
  3225. ObfuscationTarget["Browser"] = "browser";
  3226. ObfuscationTarget["BrowserNoEval"] = "browser-no-eval";
  3227. ObfuscationTarget["Node"] = "node";
  3228. })(ObfuscationTarget = exports.ObfuscationTarget || (exports.ObfuscationTarget = {}));
  3229. /***/ }),
  3230. /***/ "./src/enums/StringArrayEncoding.ts":
  3231. /*!******************************************!*\
  3232. !*** ./src/enums/StringArrayEncoding.ts ***!
  3233. \******************************************/
  3234. /*! no static exports found */
  3235. /***/ (function(module, exports, __webpack_require__) {
  3236. "use strict";
  3237. Object.defineProperty(exports, "__esModule", {
  3238. value: true
  3239. });
  3240. var StringArrayEncoding;
  3241. (function (StringArrayEncoding) {
  3242. StringArrayEncoding["Base64"] = "base64";
  3243. StringArrayEncoding["Rc4"] = "rc4";
  3244. })(StringArrayEncoding = exports.StringArrayEncoding || (exports.StringArrayEncoding = {}));
  3245. /***/ }),
  3246. /***/ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts":
  3247. /*!*************************************************************************!*\
  3248. !*** ./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts ***!
  3249. \*************************************************************************/
  3250. /*! no static exports found */
  3251. /***/ (function(module, exports, __webpack_require__) {
  3252. "use strict";
  3253. Object.defineProperty(exports, "__esModule", {
  3254. value: true
  3255. });
  3256. var CalleeDataExtractor;
  3257. (function (CalleeDataExtractor) {
  3258. CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor";
  3259. CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor";
  3260. CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor";
  3261. })(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));
  3262. /***/ }),
  3263. /***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts":
  3264. /*!*********************************************************!*\
  3265. !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***!
  3266. \*********************************************************/
  3267. /*! no static exports found */
  3268. /***/ (function(module, exports, __webpack_require__) {
  3269. "use strict";
  3270. Object.defineProperty(exports, "__esModule", {
  3271. value: true
  3272. });
  3273. var ControlFlowCustomNode;
  3274. (function (ControlFlowCustomNode) {
  3275. ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode";
  3276. ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode";
  3277. ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode";
  3278. ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode";
  3279. ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode";
  3280. ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode";
  3281. ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode";
  3282. ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode";
  3283. ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode";
  3284. })(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));
  3285. /***/ }),
  3286. /***/ "./src/enums/custom-nodes/CustomNode.ts":
  3287. /*!**********************************************!*\
  3288. !*** ./src/enums/custom-nodes/CustomNode.ts ***!
  3289. \**********************************************/
  3290. /*! no static exports found */
  3291. /***/ (function(module, exports, __webpack_require__) {
  3292. "use strict";
  3293. Object.defineProperty(exports, "__esModule", {
  3294. value: true
  3295. });
  3296. var CustomNode;
  3297. (function (CustomNode) {
  3298. CustomNode["ConsoleOutputDisableExpressionNode"] = "ConsoleOutputDisableExpressionNode";
  3299. CustomNode["DebugProtectionFunctionCallNode"] = "DebugProtectionFunctionCallNode";
  3300. CustomNode["DebugProtectionFunctionIntervalNode"] = "DebugProtectionFunctionIntervalNode";
  3301. CustomNode["DebugProtectionFunctionNode"] = "DebugProtectionFunctionNode";
  3302. CustomNode["DomainLockNode"] = "DomainLockNode";
  3303. CustomNode["NodeCallsControllerFunctionNode"] = "NodeCallsControllerFunctionNode";
  3304. CustomNode["SelfDefendingUnicodeNode"] = "SelfDefendingUnicodeNode";
  3305. CustomNode["StringArrayCallsWrapper"] = "StringArrayCallsWrapper";
  3306. CustomNode["StringArrayNode"] = "StringArrayNode";
  3307. CustomNode["StringArrayRotateFunctionNode"] = "StringArrayRotateFunctionNode";
  3308. })(CustomNode = exports.CustomNode || (exports.CustomNode = {}));
  3309. /***/ }),
  3310. /***/ "./src/enums/custom-nodes/CustomNodeGroup.ts":
  3311. /*!***************************************************!*\
  3312. !*** ./src/enums/custom-nodes/CustomNodeGroup.ts ***!
  3313. \***************************************************/
  3314. /*! no static exports found */
  3315. /***/ (function(module, exports, __webpack_require__) {
  3316. "use strict";
  3317. Object.defineProperty(exports, "__esModule", {
  3318. value: true
  3319. });
  3320. var CustomNodeGroup;
  3321. (function (CustomNodeGroup) {
  3322. CustomNodeGroup["ConsoleOutputCustomNodeGroup"] = "ConsoleOutputCustomNodeGroup";
  3323. CustomNodeGroup["DebugProtectionCustomNodeGroup"] = "DebugProtectionCustomNodeGroup";
  3324. CustomNodeGroup["DomainLockCustomNodeGroup"] = "DomainLockCustomNodeGroup";
  3325. CustomNodeGroup["SelfDefendingCustomNodeGroup"] = "SelfDefendingCustomNodeGroup";
  3326. CustomNodeGroup["StringArrayCustomNodeGroup"] = "StringArrayCustomNodeGroup";
  3327. })(CustomNodeGroup = exports.CustomNodeGroup || (exports.CustomNodeGroup = {}));
  3328. /***/ }),
  3329. /***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts":
  3330. /*!***************************************************************!*\
  3331. !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***!
  3332. \***************************************************************/
  3333. /*! no static exports found */
  3334. /***/ (function(module, exports, __webpack_require__) {
  3335. "use strict";
  3336. Object.defineProperty(exports, "__esModule", {
  3337. value: true
  3338. });
  3339. var DeadCodeInjectionCustomNode;
  3340. (function (DeadCodeInjectionCustomNode) {
  3341. DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode";
  3342. })(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));
  3343. /***/ }),
  3344. /***/ "./src/enums/event-emitters/ObfuscationEvent.ts":
  3345. /*!******************************************************!*\
  3346. !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***!
  3347. \******************************************************/
  3348. /*! no static exports found */
  3349. /***/ (function(module, exports, __webpack_require__) {
  3350. "use strict";
  3351. Object.defineProperty(exports, "__esModule", {
  3352. value: true
  3353. });
  3354. var ObfuscationEvent;
  3355. (function (ObfuscationEvent) {
  3356. ObfuscationEvent["AfterObfuscation"] = "afterObfuscation";
  3357. ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation";
  3358. })(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {}));
  3359. /***/ }),
  3360. /***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts":
  3361. /*!**************************************************************************************!*\
  3362. !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***!
  3363. \**************************************************************************************/
  3364. /*! no static exports found */
  3365. /***/ (function(module, exports, __webpack_require__) {
  3366. "use strict";
  3367. Object.defineProperty(exports, "__esModule", {
  3368. value: true
  3369. });
  3370. var IdentifierNamesGenerator;
  3371. (function (IdentifierNamesGenerator) {
  3372. IdentifierNamesGenerator["DictionaryIdentifierNamesGenerator"] = "dictionary";
  3373. IdentifierNamesGenerator["HexadecimalIdentifierNamesGenerator"] = "hexadecimal";
  3374. IdentifierNamesGenerator["MangledIdentifierNamesGenerator"] = "mangled";
  3375. })(IdentifierNamesGenerator = exports.IdentifierNamesGenerator || (exports.IdentifierNamesGenerator = {}));
  3376. /***/ }),
  3377. /***/ "./src/enums/logger/LoggingMessage.ts":
  3378. /*!********************************************!*\
  3379. !*** ./src/enums/logger/LoggingMessage.ts ***!
  3380. \********************************************/
  3381. /*! no static exports found */
  3382. /***/ (function(module, exports, __webpack_require__) {
  3383. "use strict";
  3384. Object.defineProperty(exports, "__esModule", {
  3385. value: true
  3386. });
  3387. var LoggingMessage;
  3388. (function (LoggingMessage) {
  3389. LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled...";
  3390. LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec.";
  3391. LoggingMessage["ObfuscationStarted"] = "Obfuscation started...";
  3392. LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s...";
  3393. LoggingMessage["TransformationStage"] = "Transformation stage: %s...";
  3394. LoggingMessage["Version"] = "Version: %s";
  3395. })(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));
  3396. /***/ }),
  3397. /***/ "./src/enums/logger/LoggingPrefix.ts":
  3398. /*!*******************************************!*\
  3399. !*** ./src/enums/logger/LoggingPrefix.ts ***!
  3400. \*******************************************/
  3401. /*! no static exports found */
  3402. /***/ (function(module, exports, __webpack_require__) {
  3403. "use strict";
  3404. Object.defineProperty(exports, "__esModule", {
  3405. value: true
  3406. });
  3407. var LoggingPrefix;
  3408. (function (LoggingPrefix) {
  3409. LoggingPrefix["Base"] = "[javascript-obfuscator]";
  3410. LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]";
  3411. })(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));
  3412. /***/ }),
  3413. /***/ "./src/enums/node-transformers/NodeTransformer.ts":
  3414. /*!********************************************************!*\
  3415. !*** ./src/enums/node-transformers/NodeTransformer.ts ***!
  3416. \********************************************************/
  3417. /*! no static exports found */
  3418. /***/ (function(module, exports, __webpack_require__) {
  3419. "use strict";
  3420. Object.defineProperty(exports, "__esModule", {
  3421. value: true
  3422. });
  3423. var NodeTransformer;
  3424. (function (NodeTransformer) {
  3425. NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer";
  3426. NodeTransformer["ClassDeclarationTransformer"] = "ClassDeclarationTransformer";
  3427. NodeTransformer["CommentsTransformer"] = "CommentsTransformer";
  3428. NodeTransformer["CustomNodesTransformer"] = "CustomNodesTransformer";
  3429. NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer";
  3430. NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer";
  3431. NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer";
  3432. NodeTransformer["CatchClauseTransformer"] = "CatchClauseTransformer";
  3433. NodeTransformer["FunctionDeclarationTransformer"] = "FunctionDeclarationTransformer";
  3434. NodeTransformer["FunctionTransformer"] = "FunctionTransformer";
  3435. NodeTransformer["ImportDeclarationTransformer"] = "ImportDeclarationTransformer";
  3436. NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer";
  3437. NodeTransformer["LiteralTransformer"] = "LiteralTransformer";
  3438. NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer";
  3439. NodeTransformer["MetadataTransformer"] = "MetadataTransformer";
  3440. NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer";
  3441. NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer";
  3442. NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer";
  3443. NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer";
  3444. NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer";
  3445. NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer";
  3446. NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer";
  3447. NodeTransformer["VariableDeclarationTransformer"] = "VariableDeclarationTransformer";
  3448. NodeTransformer["VariablePreserveTransformer"] = "VariablePreserveTransformer";
  3449. })(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));
  3450. /***/ }),
  3451. /***/ "./src/enums/node-transformers/TransformationStage.ts":
  3452. /*!************************************************************!*\
  3453. !*** ./src/enums/node-transformers/TransformationStage.ts ***!
  3454. \************************************************************/
  3455. /*! no static exports found */
  3456. /***/ (function(module, exports, __webpack_require__) {
  3457. "use strict";
  3458. Object.defineProperty(exports, "__esModule", {
  3459. value: true
  3460. });
  3461. var TransformationStage;
  3462. (function (TransformationStage) {
  3463. TransformationStage["Initializing"] = "Initializing";
  3464. TransformationStage["Preparing"] = "Preparing";
  3465. TransformationStage["DeadCodeInjection"] = "DeadCodeInjection";
  3466. TransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening";
  3467. TransformationStage["Converting"] = "Converting";
  3468. TransformationStage["Obfuscating"] = "Obfuscating";
  3469. TransformationStage["Finalizing"] = "Finalizing";
  3470. })(TransformationStage = exports.TransformationStage || (exports.TransformationStage = {}));
  3471. /***/ }),
  3472. /***/ "./src/enums/node-transformers/VisitorDirection.ts":
  3473. /*!*********************************************************!*\
  3474. !*** ./src/enums/node-transformers/VisitorDirection.ts ***!
  3475. \*********************************************************/
  3476. /*! no static exports found */
  3477. /***/ (function(module, exports, __webpack_require__) {
  3478. "use strict";
  3479. Object.defineProperty(exports, "__esModule", {
  3480. value: true
  3481. });
  3482. var VisitorDirection;
  3483. (function (VisitorDirection) {
  3484. VisitorDirection["Enter"] = "enter";
  3485. VisitorDirection["Leave"] = "leave";
  3486. })(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));
  3487. /***/ }),
  3488. /***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts":
  3489. /*!**********************************************************************************************************!*\
  3490. !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts ***!
  3491. \**********************************************************************************************************/
  3492. /*! no static exports found */
  3493. /***/ (function(module, exports, __webpack_require__) {
  3494. "use strict";
  3495. Object.defineProperty(exports, "__esModule", {
  3496. value: true
  3497. });
  3498. var PropertiesExtractor;
  3499. (function (PropertiesExtractor) {
  3500. PropertiesExtractor["AssignmentExpressionPropertiesExtractor"] = "AssignmentExpressionPropertiesExtractor";
  3501. PropertiesExtractor["VariableDeclaratorPropertiesExtractor"] = "VariableDeclaratorPropertiesExtractor";
  3502. })(PropertiesExtractor = exports.PropertiesExtractor || (exports.PropertiesExtractor = {}));
  3503. /***/ }),
  3504. /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts":
  3505. /*!***********************************************************************************************************!*\
  3506. !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***!
  3507. \***********************************************************************************************************/
  3508. /*! no static exports found */
  3509. /***/ (function(module, exports, __webpack_require__) {
  3510. "use strict";
  3511. Object.defineProperty(exports, "__esModule", {
  3512. value: true
  3513. });
  3514. var ControlFlowReplacer;
  3515. (function (ControlFlowReplacer) {
  3516. ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer";
  3517. ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer";
  3518. ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer";
  3519. ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer";
  3520. })(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));
  3521. /***/ }),
  3522. /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts":
  3523. /*!*********************************************************************************************************************!*\
  3524. !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***!
  3525. \*********************************************************************************************************************/
  3526. /*! no static exports found */
  3527. /***/ (function(module, exports, __webpack_require__) {
  3528. "use strict";
  3529. Object.defineProperty(exports, "__esModule", {
  3530. value: true
  3531. });
  3532. var IdentifierObfuscatingReplacer;
  3533. (function (IdentifierObfuscatingReplacer) {
  3534. IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer";
  3535. })(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {}));
  3536. /***/ }),
  3537. /***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts":
  3538. /*!******************************************************************************************************************!*\
  3539. !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***!
  3540. \******************************************************************************************************************/
  3541. /*! no static exports found */
  3542. /***/ (function(module, exports, __webpack_require__) {
  3543. "use strict";
  3544. Object.defineProperty(exports, "__esModule", {
  3545. value: true
  3546. });
  3547. var LiteralObfuscatingReplacer;
  3548. (function (LiteralObfuscatingReplacer) {
  3549. LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer";
  3550. LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer";
  3551. LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer";
  3552. })(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {}));
  3553. /***/ }),
  3554. /***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts":
  3555. /*!***************************************************************************************************!*\
  3556. !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***!
  3557. \***************************************************************************************************/
  3558. /*! no static exports found */
  3559. /***/ (function(module, exports, __webpack_require__) {
  3560. "use strict";
  3561. Object.defineProperty(exports, "__esModule", {
  3562. value: true
  3563. });
  3564. var ObfuscatingGuard;
  3565. (function (ObfuscatingGuard) {
  3566. ObfuscatingGuard["BlackListNodeGuard"] = "BlackListNodeGuard";
  3567. ObfuscatingGuard["ConditionalCommentNodeGuard"] = "ConditionalCommentNodeGuard";
  3568. })(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));
  3569. /***/ }),
  3570. /***/ "./src/enums/node/NodeType.ts":
  3571. /*!************************************!*\
  3572. !*** ./src/enums/node/NodeType.ts ***!
  3573. \************************************/
  3574. /*! no static exports found */
  3575. /***/ (function(module, exports, __webpack_require__) {
  3576. "use strict";
  3577. Object.defineProperty(exports, "__esModule", {
  3578. value: true
  3579. });
  3580. var NodeType;
  3581. (function (NodeType) {
  3582. NodeType["ArrayExpression"] = "ArrayExpression";
  3583. NodeType["ArrayPattern"] = "ArrayPattern";
  3584. NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression";
  3585. NodeType["AssignmentExpression"] = "AssignmentExpression";
  3586. NodeType["AssignmentPattern"] = "AssignmentPattern";
  3587. NodeType["AwaitExpression"] = "AwaitExpression";
  3588. NodeType["BinaryExpression"] = "BinaryExpression";
  3589. NodeType["BlockStatement"] = "BlockStatement";
  3590. NodeType["BreakStatement"] = "BreakStatement";
  3591. NodeType["CallExpression"] = "CallExpression";
  3592. NodeType["CatchClause"] = "CatchClause";
  3593. NodeType["ClassDeclaration"] = "ClassDeclaration";
  3594. NodeType["ContinueStatement"] = "ContinueStatement";
  3595. NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration";
  3596. NodeType["ExpressionStatement"] = "ExpressionStatement";
  3597. NodeType["FunctionDeclaration"] = "FunctionDeclaration";
  3598. NodeType["FunctionExpression"] = "FunctionExpression";
  3599. NodeType["Identifier"] = "Identifier";
  3600. NodeType["IfStatement"] = "IfStatement";
  3601. NodeType["ImportDeclaration"] = "ImportDeclaration";
  3602. NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier";
  3603. NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier";
  3604. NodeType["ImportSpecifier"] = "ImportSpecifier";
  3605. NodeType["LabeledStatement"] = "LabeledStatement";
  3606. NodeType["Literal"] = "Literal";
  3607. NodeType["LogicalExpression"] = "LogicalExpression";
  3608. NodeType["MemberExpression"] = "MemberExpression";
  3609. NodeType["MethodDefinition"] = "MethodDefinition";
  3610. NodeType["ObjectExpression"] = "ObjectExpression";
  3611. NodeType["ObjectPattern"] = "ObjectPattern";
  3612. NodeType["Program"] = "Program";
  3613. NodeType["Property"] = "Property";
  3614. NodeType["RestElement"] = "RestElement";
  3615. NodeType["ReturnStatement"] = "ReturnStatement";
  3616. NodeType["Super"] = "Super";
  3617. NodeType["SwitchCase"] = "SwitchCase";
  3618. NodeType["SwitchStatement"] = "SwitchStatement";
  3619. NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression";
  3620. NodeType["TemplateLiteral"] = "TemplateLiteral";
  3621. NodeType["TryStatement"] = "TryStatement";
  3622. NodeType["UnaryExpression"] = "UnaryExpression";
  3623. NodeType["UpdateExpression"] = "UpdateExpression";
  3624. NodeType["VariableDeclaration"] = "VariableDeclaration";
  3625. NodeType["VariableDeclarator"] = "VariableDeclarator";
  3626. NodeType["WhileStatement"] = "WhileStatement";
  3627. })(NodeType = exports.NodeType || (exports.NodeType = {}));
  3628. /***/ }),
  3629. /***/ "./src/enums/source-map/SourceMapMode.ts":
  3630. /*!***********************************************!*\
  3631. !*** ./src/enums/source-map/SourceMapMode.ts ***!
  3632. \***********************************************/
  3633. /*! no static exports found */
  3634. /***/ (function(module, exports, __webpack_require__) {
  3635. "use strict";
  3636. Object.defineProperty(exports, "__esModule", {
  3637. value: true
  3638. });
  3639. var SourceMapMode;
  3640. (function (SourceMapMode) {
  3641. SourceMapMode["Inline"] = "inline";
  3642. SourceMapMode["Separate"] = "separate";
  3643. })(SourceMapMode = exports.SourceMapMode || (exports.SourceMapMode = {}));
  3644. /***/ }),
  3645. /***/ "./src/event-emitters/ObfuscationEventEmitter.ts":
  3646. /*!*******************************************************!*\
  3647. !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***!
  3648. \*******************************************************/
  3649. /*! no static exports found */
  3650. /***/ (function(module, exports, __webpack_require__) {
  3651. "use strict";
  3652. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  3653. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  3654. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  3655. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  3656. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  3657. Object.defineProperty(exports, "__esModule", {
  3658. value: true
  3659. });
  3660. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3661. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3662. var eventemitter3_1 = tslib_1.__importDefault(__webpack_require__(/*! eventemitter3 */ "eventemitter3"));
  3663. inversify_1.decorate(inversify_1.injectable(), eventemitter3_1["default"]);
  3664. var ObfuscationEventEmitter =
  3665. /*#__PURE__*/
  3666. function (_eventemitter3_1$defa) {
  3667. (0, _inherits2["default"])(ObfuscationEventEmitter, _eventemitter3_1$defa);
  3668. function ObfuscationEventEmitter() {
  3669. (0, _classCallCheck2["default"])(this, ObfuscationEventEmitter);
  3670. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObfuscationEventEmitter).apply(this, arguments));
  3671. }
  3672. return ObfuscationEventEmitter;
  3673. }(eventemitter3_1["default"]);
  3674. ObfuscationEventEmitter = tslib_1.__decorate([inversify_1.injectable()], ObfuscationEventEmitter);
  3675. exports.ObfuscationEventEmitter = ObfuscationEventEmitter;
  3676. /***/ }),
  3677. /***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts":
  3678. /*!****************************************************************************************!*\
  3679. !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***!
  3680. \****************************************************************************************/
  3681. /*! no static exports found */
  3682. /***/ (function(module, exports, __webpack_require__) {
  3683. "use strict";
  3684. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  3685. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  3686. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  3687. Object.defineProperty(exports, "__esModule", {
  3688. value: true
  3689. });
  3690. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3691. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3692. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3693. var AbstractIdentifierNamesGenerator =
  3694. /*#__PURE__*/
  3695. function () {
  3696. function AbstractIdentifierNamesGenerator(randomGenerator, options) {
  3697. (0, _classCallCheck2["default"])(this, AbstractIdentifierNamesGenerator);
  3698. this.preservedNames = [];
  3699. this.randomGenerator = randomGenerator;
  3700. this.options = options;
  3701. }
  3702. (0, _createClass2["default"])(AbstractIdentifierNamesGenerator, [{
  3703. key: "preserveName",
  3704. value: function preserveName(name) {
  3705. this.preservedNames.push(name);
  3706. }
  3707. }, {
  3708. key: "isValidIdentifierName",
  3709. value: function isValidIdentifierName(name) {
  3710. return this.notReservedName(name) && !this.preservedNames.includes(name);
  3711. }
  3712. }, {
  3713. key: "notReservedName",
  3714. value: function notReservedName(name) {
  3715. return this.options.reservedNames.length ? !this.options.reservedNames.some(function (reservedName) {
  3716. return new RegExp(reservedName, 'g').exec(name) !== null;
  3717. }) : true;
  3718. }
  3719. }]);
  3720. return AbstractIdentifierNamesGenerator;
  3721. }();
  3722. AbstractIdentifierNamesGenerator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractIdentifierNamesGenerator);
  3723. exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;
  3724. /***/ }),
  3725. /***/ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts":
  3726. /*!******************************************************************************************!*\
  3727. !*** ./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts ***!
  3728. \******************************************************************************************/
  3729. /*! no static exports found */
  3730. /***/ (function(module, exports, __webpack_require__) {
  3731. "use strict";
  3732. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  3733. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  3734. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  3735. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  3736. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  3737. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  3738. var DictionaryIdentifierNamesGenerator_1;
  3739. Object.defineProperty(exports, "__esModule", {
  3740. value: true
  3741. });
  3742. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3743. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3744. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3745. var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  3746. var DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 =
  3747. /*#__PURE__*/
  3748. function (_AbstractIdentifierNa) {
  3749. (0, _inherits2["default"])(DictionaryIdentifierNamesGenerator, _AbstractIdentifierNa);
  3750. function DictionaryIdentifierNamesGenerator(randomGenerator, options, arrayUtils) {
  3751. var _this;
  3752. (0, _classCallCheck2["default"])(this, DictionaryIdentifierNamesGenerator);
  3753. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DictionaryIdentifierNamesGenerator).call(this, randomGenerator, options));
  3754. _this.identifierNames = [];
  3755. _this.arrayUtils = arrayUtils;
  3756. _this.identifierNames = _this.getInitialIdentifierNames(_this.options.identifiersDictionary);
  3757. _this.identifiersIterator = _this.identifierNames.values();
  3758. return _this;
  3759. }
  3760. (0, _createClass2["default"])(DictionaryIdentifierNamesGenerator, [{
  3761. key: "generate",
  3762. value: function generate() {
  3763. if (!this.identifierNames.length) {
  3764. throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');
  3765. }
  3766. var iteratorResult = this.identifiersIterator.next();
  3767. if (!iteratorResult.done) {
  3768. return iteratorResult.value;
  3769. }
  3770. this.identifierNames = this.getIncrementedIdentifierNames(this.identifierNames);
  3771. this.identifiersIterator = this.identifierNames.values();
  3772. return this.generate();
  3773. }
  3774. }, {
  3775. key: "generateWithPrefix",
  3776. value: function generateWithPrefix() {
  3777. var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : '';
  3778. var identifierName = this.generate();
  3779. return "".concat(prefix).concat(identifierName).replace('__', '_');
  3780. }
  3781. }, {
  3782. key: "getInitialIdentifierNames",
  3783. value: function getInitialIdentifierNames(identifierNames) {
  3784. var formattedIdentifierNames = identifierNames.map(function (identifierName) {
  3785. return identifierName.toLowerCase();
  3786. });
  3787. return this.arrayUtils.shuffle(formattedIdentifierNames);
  3788. }
  3789. }, {
  3790. key: "getIncrementedIdentifierNames",
  3791. value: function getIncrementedIdentifierNames(identifierNames) {
  3792. var formattedIdentifierNames = [];
  3793. var _iteratorNormalCompletion = true;
  3794. var _didIteratorError = false;
  3795. var _iteratorError = undefined;
  3796. try {
  3797. for (var _iterator = identifierNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  3798. var identifierName = _step.value;
  3799. var newIdentifierName = DictionaryIdentifierNamesGenerator_1.incrementIdentifierName(identifierName);
  3800. if (newIdentifierName) {
  3801. formattedIdentifierNames.push(newIdentifierName);
  3802. }
  3803. }
  3804. } catch (err) {
  3805. _didIteratorError = true;
  3806. _iteratorError = err;
  3807. } finally {
  3808. try {
  3809. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  3810. _iterator["return"]();
  3811. }
  3812. } finally {
  3813. if (_didIteratorError) {
  3814. throw _iteratorError;
  3815. }
  3816. }
  3817. }
  3818. return this.arrayUtils.shuffle(formattedIdentifierNames);
  3819. }
  3820. }], [{
  3821. key: "incrementIdentifierName",
  3822. value: function incrementIdentifierName(identifierName) {
  3823. var newIdentifierName = '';
  3824. var isSuccess = false;
  3825. var _iteratorNormalCompletion2 = true;
  3826. var _didIteratorError2 = false;
  3827. var _iteratorError2 = undefined;
  3828. try {
  3829. for (var _iterator2 = identifierName[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  3830. var character = _step2.value;
  3831. if (!isSuccess && character === character.toUpperCase()) {
  3832. newIdentifierName += character.toLowerCase();
  3833. } else if (!isSuccess && character === character.toLowerCase()) {
  3834. newIdentifierName += character.toUpperCase();
  3835. isSuccess = true;
  3836. } else {
  3837. newIdentifierName += character;
  3838. }
  3839. }
  3840. } catch (err) {
  3841. _didIteratorError2 = true;
  3842. _iteratorError2 = err;
  3843. } finally {
  3844. try {
  3845. if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  3846. _iterator2["return"]();
  3847. }
  3848. } finally {
  3849. if (_didIteratorError2) {
  3850. throw _iteratorError2;
  3851. }
  3852. }
  3853. }
  3854. if (isSuccess) {
  3855. return newIdentifierName;
  3856. }
  3857. return null;
  3858. }
  3859. }]);
  3860. return DictionaryIdentifierNamesGenerator;
  3861. }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
  3862. DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object])], DictionaryIdentifierNamesGenerator);
  3863. exports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator;
  3864. /***/ }),
  3865. /***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts":
  3866. /*!*******************************************************************************************!*\
  3867. !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***!
  3868. \*******************************************************************************************/
  3869. /*! no static exports found */
  3870. /***/ (function(module, exports, __webpack_require__) {
  3871. "use strict";
  3872. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  3873. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  3874. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  3875. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  3876. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  3877. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  3878. var HexadecimalIdentifierNamesGenerator_1;
  3879. Object.defineProperty(exports, "__esModule", {
  3880. value: true
  3881. });
  3882. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3883. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3884. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3885. var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  3886. var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  3887. var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  3888. var HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 =
  3889. /*#__PURE__*/
  3890. function (_AbstractIdentifierNa) {
  3891. (0, _inherits2["default"])(HexadecimalIdentifierNamesGenerator, _AbstractIdentifierNa);
  3892. function HexadecimalIdentifierNamesGenerator(randomGenerator, options) {
  3893. var _this;
  3894. (0, _classCallCheck2["default"])(this, HexadecimalIdentifierNamesGenerator);
  3895. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(HexadecimalIdentifierNamesGenerator).call(this, randomGenerator, options));
  3896. _this.randomVariableNameSet = new Set();
  3897. return _this;
  3898. }
  3899. (0, _createClass2["default"])(HexadecimalIdentifierNamesGenerator, [{
  3900. key: "generate",
  3901. value: function generate(nameLength) {
  3902. var rangeMinInteger = 10000;
  3903. var rangeMaxInteger = 99999999;
  3904. var randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);
  3905. var hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);
  3906. var prefixLength = Utils_1.Utils.hexadecimalPrefix.length + 1;
  3907. var baseNameLength = nameLength ? nameLength - prefixLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength;
  3908. var baseIdentifierName = hexadecimalNumber.substr(0, baseNameLength);
  3909. var identifierName = "_".concat(Utils_1.Utils.hexadecimalPrefix).concat(baseIdentifierName);
  3910. if (this.randomVariableNameSet.has(identifierName)) {
  3911. return this.generate(nameLength);
  3912. }
  3913. this.randomVariableNameSet.add(identifierName);
  3914. return identifierName;
  3915. }
  3916. }, {
  3917. key: "generateWithPrefix",
  3918. value: function generateWithPrefix(nameLength) {
  3919. var identifierName = this.generate(nameLength);
  3920. return "".concat(this.options.identifiersPrefix).concat(identifierName).replace('__', '_');
  3921. }
  3922. }]);
  3923. return HexadecimalIdentifierNamesGenerator;
  3924. }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
  3925. HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;
  3926. HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], HexadecimalIdentifierNamesGenerator);
  3927. exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;
  3928. /***/ }),
  3929. /***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts":
  3930. /*!***************************************************************************************!*\
  3931. !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***!
  3932. \***************************************************************************************/
  3933. /*! no static exports found */
  3934. /***/ (function(module, exports, __webpack_require__) {
  3935. "use strict";
  3936. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  3937. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  3938. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  3939. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  3940. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  3941. var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
  3942. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  3943. var MangledIdentifierNamesGenerator_1;
  3944. Object.defineProperty(exports, "__esModule", {
  3945. value: true
  3946. });
  3947. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  3948. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  3949. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  3950. var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts");
  3951. var MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 =
  3952. /*#__PURE__*/
  3953. function (_AbstractIdentifierNa) {
  3954. (0, _inherits2["default"])(MangledIdentifierNamesGenerator, _AbstractIdentifierNa);
  3955. function MangledIdentifierNamesGenerator(randomGenerator, options) {
  3956. var _this;
  3957. (0, _classCallCheck2["default"])(this, MangledIdentifierNamesGenerator);
  3958. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MangledIdentifierNamesGenerator).call(this, randomGenerator, options));
  3959. _this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;
  3960. return _this;
  3961. }
  3962. (0, _createClass2["default"])(MangledIdentifierNamesGenerator, [{
  3963. key: "generate",
  3964. value: function generate(nameLength) {
  3965. var identifierName = this.generateNewMangledName(this.previousMangledName);
  3966. this.previousMangledName = identifierName;
  3967. return identifierName;
  3968. }
  3969. }, {
  3970. key: "generateWithPrefix",
  3971. value: function generateWithPrefix(nameLength) {
  3972. var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : '';
  3973. var identifierName = this.generate(nameLength);
  3974. return "".concat(prefix).concat(identifierName);
  3975. }
  3976. }, {
  3977. key: "isValidIdentifierName",
  3978. value: function isValidIdentifierName(mangledName) {
  3979. return (0, _get2["default"])((0, _getPrototypeOf2["default"])(MangledIdentifierNamesGenerator.prototype), "isValidIdentifierName", this).call(this, mangledName) && !MangledIdentifierNamesGenerator_1.reservedNames.includes(mangledName);
  3980. }
  3981. }, {
  3982. key: "generateNewMangledName",
  3983. value: function generateNewMangledName(previousMangledName) {
  3984. var generateNewMangledName = function generateNewMangledName(name) {
  3985. var nameSequence = MangledIdentifierNamesGenerator_1.nameSequence;
  3986. var nameLength = name.length;
  3987. var zeroSequence = function zeroSequence(num) {
  3988. return '0'.repeat(num);
  3989. };
  3990. var index = nameLength - 1;
  3991. do {
  3992. var character = name.charAt(index);
  3993. var indexInSequence = nameSequence.indexOf(character);
  3994. var lastNameSequenceIndex = nameSequence.length - 1;
  3995. if (indexInSequence !== lastNameSequenceIndex) {
  3996. var previousNamePart = name.substring(0, index);
  3997. var nextCharacter = nameSequence[indexInSequence + 1];
  3998. var zeroSequenceLength = nameLength - (index + 1);
  3999. var zeroSequenceCharacters = zeroSequence(zeroSequenceLength);
  4000. return previousNamePart + nextCharacter + zeroSequenceCharacters;
  4001. }
  4002. --index;
  4003. } while (index >= 0);
  4004. return "a".concat(zeroSequence(nameLength));
  4005. };
  4006. var newMangledName = generateNewMangledName(previousMangledName);
  4007. if (!this.isValidIdentifierName(newMangledName)) {
  4008. newMangledName = this.generateNewMangledName(newMangledName);
  4009. }
  4010. return newMangledName;
  4011. }
  4012. }]);
  4013. return MangledIdentifierNamesGenerator;
  4014. }(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator);
  4015. MangledIdentifierNamesGenerator.initMangledNameCharacter = '9';
  4016. MangledIdentifierNamesGenerator.nameSequence = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
  4017. MangledIdentifierNamesGenerator.reservedNames = ['byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', 'var', 'void', 'with'];
  4018. MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MangledIdentifierNamesGenerator);
  4019. exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;
  4020. /***/ }),
  4021. /***/ "./src/logger/Logger.ts":
  4022. /*!******************************!*\
  4023. !*** ./src/logger/Logger.ts ***!
  4024. \******************************/
  4025. /*! no static exports found */
  4026. /***/ (function(module, exports, __webpack_require__) {
  4027. "use strict";
  4028. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4029. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4030. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4031. var Logger_1;
  4032. Object.defineProperty(exports, "__esModule", {
  4033. value: true
  4034. });
  4035. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4036. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4037. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4038. var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk"));
  4039. var LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts");
  4040. var Logger = Logger_1 =
  4041. /*#__PURE__*/
  4042. function () {
  4043. function Logger(options) {
  4044. (0, _classCallCheck2["default"])(this, Logger);
  4045. this.options = options;
  4046. }
  4047. (0, _createClass2["default"])(Logger, [{
  4048. key: "info",
  4049. value: function info(loggingMessage, value) {
  4050. if (!this.options.log) {
  4051. return;
  4052. }
  4053. Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  4054. }
  4055. }, {
  4056. key: "success",
  4057. value: function success(loggingMessage, value) {
  4058. if (!this.options.log) {
  4059. return;
  4060. }
  4061. Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  4062. }
  4063. }, {
  4064. key: "warn",
  4065. value: function warn(loggingMessage, value) {
  4066. if (!this.options.log) {
  4067. return;
  4068. }
  4069. Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);
  4070. }
  4071. }], [{
  4072. key: "log",
  4073. value: function log(loggingLevelColor, loggingPrefix, loggingMessage, value) {
  4074. var processedMessage = loggingLevelColor("\n".concat(loggingPrefix, " ").concat(loggingMessage));
  4075. console.log(processedMessage, value || '');
  4076. }
  4077. }]);
  4078. return Logger;
  4079. }();
  4080. Logger.colorInfo = chalk_1["default"].cyan;
  4081. Logger.colorSuccess = chalk_1["default"].green;
  4082. Logger.colorWarn = chalk_1["default"].yellow;
  4083. Logger = Logger_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], Logger);
  4084. exports.Logger = Logger;
  4085. /***/ }),
  4086. /***/ "./src/node-transformers/AbstractNodeTransformer.ts":
  4087. /*!**********************************************************!*\
  4088. !*** ./src/node-transformers/AbstractNodeTransformer.ts ***!
  4089. \**********************************************************/
  4090. /*! no static exports found */
  4091. /***/ (function(module, exports, __webpack_require__) {
  4092. "use strict";
  4093. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4094. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4095. Object.defineProperty(exports, "__esModule", {
  4096. value: true
  4097. });
  4098. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4099. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4100. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4101. var AbstractNodeTransformer = function AbstractNodeTransformer(randomGenerator, options) {
  4102. (0, _classCallCheck2["default"])(this, AbstractNodeTransformer);
  4103. this.randomGenerator = randomGenerator;
  4104. this.options = options;
  4105. };
  4106. AbstractNodeTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractNodeTransformer);
  4107. exports.AbstractNodeTransformer = AbstractNodeTransformer;
  4108. /***/ }),
  4109. /***/ "./src/node-transformers/TransformersRunner.ts":
  4110. /*!*****************************************************!*\
  4111. !*** ./src/node-transformers/TransformersRunner.ts ***!
  4112. \*****************************************************/
  4113. /*! no static exports found */
  4114. /***/ (function(module, exports, __webpack_require__) {
  4115. "use strict";
  4116. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4117. var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty"));
  4118. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  4119. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4120. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4121. Object.defineProperty(exports, "__esModule", {
  4122. value: true
  4123. });
  4124. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4125. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4126. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4127. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  4128. var VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts");
  4129. var NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4130. var NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  4131. var TransformersRunner =
  4132. /*#__PURE__*/
  4133. function () {
  4134. function TransformersRunner(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {
  4135. (0, _classCallCheck2["default"])(this, TransformersRunner);
  4136. this.cachedNodeTransformersData = new Map();
  4137. this.nodeTransformerFactory = nodeTransformerFactory;
  4138. this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;
  4139. }
  4140. (0, _createClass2["default"])(TransformersRunner, [{
  4141. key: "transform",
  4142. value: function transform(astTree, nodeTransformerNames, transformationStage) {
  4143. if (!nodeTransformerNames.length) {
  4144. return astTree;
  4145. }
  4146. var normalizedNodeTransformers;
  4147. var nodeTransformerNamesGroups;
  4148. if (!this.cachedNodeTransformersData.has(nodeTransformerNames)) {
  4149. normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames);
  4150. nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);
  4151. this.cachedNodeTransformersData.set(nodeTransformerNames, [normalizedNodeTransformers, nodeTransformerNamesGroups]);
  4152. } else {
  4153. var _this$cachedNodeTrans = this.cachedNodeTransformersData.get(nodeTransformerNames);
  4154. var _this$cachedNodeTrans2 = (0, _slicedToArray2["default"])(_this$cachedNodeTrans, 2);
  4155. normalizedNodeTransformers = _this$cachedNodeTrans2[0];
  4156. nodeTransformerNamesGroups = _this$cachedNodeTrans2[1];
  4157. }
  4158. var _iteratorNormalCompletion = true;
  4159. var _didIteratorError = false;
  4160. var _iteratorError = undefined;
  4161. try {
  4162. for (var _iterator = nodeTransformerNamesGroups[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  4163. var nodeTransformerNamesGroup = _step.value;
  4164. var enterVisitors = [];
  4165. var leaveVisitors = [];
  4166. var _iteratorNormalCompletion2 = true;
  4167. var _didIteratorError2 = false;
  4168. var _iteratorError2 = undefined;
  4169. try {
  4170. for (var _iterator2 = nodeTransformerNamesGroup[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  4171. var nodeTransformerName = _step2.value;
  4172. var nodeTransformer = normalizedNodeTransformers[nodeTransformerName];
  4173. var visitor = nodeTransformer.getVisitor(transformationStage);
  4174. if (!visitor) {
  4175. continue;
  4176. }
  4177. if (visitor.enter) {
  4178. enterVisitors.push({
  4179. enter: visitor.enter
  4180. });
  4181. }
  4182. if (visitor.leave) {
  4183. leaveVisitors.push({
  4184. leave: visitor.leave
  4185. });
  4186. }
  4187. }
  4188. } catch (err) {
  4189. _didIteratorError2 = true;
  4190. _iteratorError2 = err;
  4191. } finally {
  4192. try {
  4193. if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  4194. _iterator2["return"]();
  4195. }
  4196. } finally {
  4197. if (_didIteratorError2) {
  4198. throw _iteratorError2;
  4199. }
  4200. }
  4201. }
  4202. if (!enterVisitors.length && !leaveVisitors.length) {
  4203. continue;
  4204. }
  4205. estraverse.replace(astTree, {
  4206. enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),
  4207. leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)
  4208. });
  4209. }
  4210. } catch (err) {
  4211. _didIteratorError = true;
  4212. _iteratorError = err;
  4213. } finally {
  4214. try {
  4215. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  4216. _iterator["return"]();
  4217. }
  4218. } finally {
  4219. if (_didIteratorError) {
  4220. throw _iteratorError;
  4221. }
  4222. }
  4223. }
  4224. return astTree;
  4225. }
  4226. }, {
  4227. key: "buildNormalizedNodeTransformers",
  4228. value: function buildNormalizedNodeTransformers(nodeTransformerNames) {
  4229. var _this = this;
  4230. return nodeTransformerNames.reduce(function (acc, nodeTransformerName) {
  4231. return Object.assign(Object.assign({}, acc), (0, _defineProperty2["default"])({}, nodeTransformerName, _this.nodeTransformerFactory(nodeTransformerName)));
  4232. }, {});
  4233. }
  4234. }, {
  4235. key: "mergeVisitorsForDirection",
  4236. value: function mergeVisitorsForDirection(visitors, direction) {
  4237. var visitorsLength = visitors.length;
  4238. if (!visitorsLength) {
  4239. return function (node, parentNode) {
  4240. return node;
  4241. };
  4242. }
  4243. return function (node, parentNode) {
  4244. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  4245. return estraverse.VisitorOption.Skip;
  4246. }
  4247. for (var i = 0; i < visitorsLength; i++) {
  4248. var visitorFunction = visitors[i][direction];
  4249. if (!visitorFunction) {
  4250. continue;
  4251. }
  4252. var visitorResult = visitorFunction(node, parentNode);
  4253. if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {
  4254. continue;
  4255. }
  4256. node = visitorResult;
  4257. }
  4258. return node;
  4259. };
  4260. }
  4261. }]);
  4262. return TransformersRunner;
  4263. }();
  4264. TransformersRunner = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)), tslib_1.__metadata("design:paramtypes", [Function, Object])], TransformersRunner);
  4265. exports.TransformersRunner = TransformersRunner;
  4266. /***/ }),
  4267. /***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts":
  4268. /*!*************************************************************************************************!*\
  4269. !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***!
  4270. \*************************************************************************************************/
  4271. /*! no static exports found */
  4272. /***/ (function(module, exports, __webpack_require__) {
  4273. "use strict";
  4274. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4275. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4276. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4277. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4278. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4279. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4280. var BlockStatementControlFlowTransformer_1;
  4281. Object.defineProperty(exports, "__esModule", {
  4282. value: true
  4283. });
  4284. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4285. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4286. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4287. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  4288. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4289. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  4290. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  4291. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4292. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4293. var BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 =
  4294. /*#__PURE__*/
  4295. function (_AbstractNodeTransfor) {
  4296. (0, _inherits2["default"])(BlockStatementControlFlowTransformer, _AbstractNodeTransfor);
  4297. function BlockStatementControlFlowTransformer(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {
  4298. var _this;
  4299. (0, _classCallCheck2["default"])(this, BlockStatementControlFlowTransformer);
  4300. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BlockStatementControlFlowTransformer).call(this, randomGenerator, options));
  4301. _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  4302. _this.arrayUtils = arrayUtils;
  4303. return _this;
  4304. }
  4305. (0, _createClass2["default"])(BlockStatementControlFlowTransformer, [{
  4306. key: "getVisitor",
  4307. value: function getVisitor(transformationStage) {
  4308. var _this2 = this;
  4309. switch (transformationStage) {
  4310. case TransformationStage_1.TransformationStage.ControlFlowFlattening:
  4311. return {
  4312. leave: function leave(node, parentNode) {
  4313. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  4314. return _this2.transformNode(node, parentNode);
  4315. }
  4316. }
  4317. };
  4318. default:
  4319. return null;
  4320. }
  4321. }
  4322. }, {
  4323. key: "transformNode",
  4324. value: function transformNode(blockStatementNode, parentNode) {
  4325. if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {
  4326. return blockStatementNode;
  4327. }
  4328. var blockStatementBody = blockStatementNode.body;
  4329. var originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);
  4330. var shuffledKeys = this.arrayUtils.shuffle(originalKeys);
  4331. var originalKeysIndexesInShuffledArray = originalKeys.map(function (key) {
  4332. return shuffledKeys.indexOf(key);
  4333. });
  4334. var blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
  4335. blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);
  4336. var newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];
  4337. NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
  4338. return newBlockStatementNode;
  4339. }
  4340. }], [{
  4341. key: "isProhibitedStatementNode",
  4342. value: function isProhibitedStatementNode(node) {
  4343. var isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node) || NodeGuards_1.NodeGuards.isContinueStatementNode(node);
  4344. var isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) && (node.kind === 'const' || node.kind === 'let');
  4345. var isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);
  4346. return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || isBreakOrContinueStatement || isVariableDeclarationWithLetOrConstKind || isClassDeclaration;
  4347. }
  4348. }, {
  4349. key: "canTransformBlockStatementNode",
  4350. value: function canTransformBlockStatementNode(blockStatementNode) {
  4351. var canTransform = true;
  4352. estraverse.traverse(blockStatementNode, {
  4353. enter: function enter(node) {
  4354. if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {
  4355. return estraverse.VisitorOption.Skip;
  4356. }
  4357. if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) {
  4358. canTransform = false;
  4359. }
  4360. }
  4361. });
  4362. if (blockStatementNode.body.length <= 4) {
  4363. canTransform = false;
  4364. }
  4365. return canTransform;
  4366. }
  4367. }]);
  4368. return BlockStatementControlFlowTransformer;
  4369. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4370. BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], BlockStatementControlFlowTransformer);
  4371. exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;
  4372. /***/ }),
  4373. /***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts":
  4374. /*!*******************************************************************************************!*\
  4375. !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***!
  4376. \*******************************************************************************************/
  4377. /*! no static exports found */
  4378. /***/ (function(module, exports, __webpack_require__) {
  4379. "use strict";
  4380. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4381. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4382. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4383. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4384. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4385. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4386. var FunctionControlFlowTransformer_1;
  4387. Object.defineProperty(exports, "__esModule", {
  4388. value: true
  4389. });
  4390. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4391. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4392. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4393. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  4394. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4395. var ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts");
  4396. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  4397. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  4398. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  4399. var NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  4400. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4401. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  4402. var NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  4403. var FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 =
  4404. /*#__PURE__*/
  4405. function (_AbstractNodeTransfor) {
  4406. (0, _inherits2["default"])(FunctionControlFlowTransformer, _AbstractNodeTransfor);
  4407. function FunctionControlFlowTransformer(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {
  4408. var _this;
  4409. (0, _classCallCheck2["default"])(this, FunctionControlFlowTransformer);
  4410. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionControlFlowTransformer).call(this, randomGenerator, options));
  4411. _this.controlFlowData = new Map();
  4412. _this.visitedFunctionNodes = new Set();
  4413. _this.hostNodesWithControlFlowNode = new Set();
  4414. _this.controlFlowStorageFactory = controlFlowStorageFactory;
  4415. _this.controlFlowReplacerFactory = controlFlowReplacerFactory;
  4416. _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  4417. return _this;
  4418. }
  4419. (0, _createClass2["default"])(FunctionControlFlowTransformer, [{
  4420. key: "getVisitor",
  4421. value: function getVisitor(transformationStage) {
  4422. var _this2 = this;
  4423. switch (transformationStage) {
  4424. case TransformationStage_1.TransformationStage.ControlFlowFlattening:
  4425. return {
  4426. leave: function leave(node, parentNode) {
  4427. if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {
  4428. return _this2.transformNode(node, parentNode);
  4429. }
  4430. }
  4431. };
  4432. default:
  4433. return null;
  4434. }
  4435. }
  4436. }, {
  4437. key: "transformNode",
  4438. value: function transformNode(functionNode, parentNode) {
  4439. this.visitedFunctionNodes.add(functionNode);
  4440. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {
  4441. return functionNode;
  4442. }
  4443. var hostNode = this.getHostNode(functionNode.body);
  4444. var controlFlowStorage = this.getControlFlowStorage(hostNode);
  4445. this.controlFlowData.set(hostNode, controlFlowStorage);
  4446. this.transformFunctionBody(functionNode.body, controlFlowStorage);
  4447. if (!controlFlowStorage.getLength()) {
  4448. return functionNode;
  4449. }
  4450. var controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);
  4451. controlFlowStorageCustomNode.initialize(controlFlowStorage);
  4452. NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());
  4453. this.hostNodesWithControlFlowNode.add(hostNode);
  4454. return functionNode;
  4455. }
  4456. }, {
  4457. key: "getControlFlowStorage",
  4458. value: function getControlFlowStorage(hostNode) {
  4459. var controlFlowStorage = this.controlFlowStorageFactory();
  4460. if (this.controlFlowData.has(hostNode)) {
  4461. if (this.hostNodesWithControlFlowNode.has(hostNode)) {
  4462. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) {
  4463. hostNode.consequent.shift();
  4464. } else {
  4465. hostNode.body.shift();
  4466. }
  4467. }
  4468. var hostControlFlowStorage = this.controlFlowData.get(hostNode);
  4469. controlFlowStorage.mergeWith(hostControlFlowStorage, true);
  4470. }
  4471. return controlFlowStorage;
  4472. }
  4473. }, {
  4474. key: "getHostNode",
  4475. value: function getHostNode(functionNodeBody) {
  4476. var blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);
  4477. if (blockScopesOfNode.length === 1) {
  4478. return functionNodeBody;
  4479. } else {
  4480. blockScopesOfNode.pop();
  4481. }
  4482. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {
  4483. blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);
  4484. }
  4485. if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {
  4486. blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;
  4487. }
  4488. return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);
  4489. }
  4490. }, {
  4491. key: "isVisitedFunctionNode",
  4492. value: function isVisitedFunctionNode(node) {
  4493. return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);
  4494. }
  4495. }, {
  4496. key: "transformFunctionBody",
  4497. value: function transformFunctionBody(functionNodeBody, controlFlowStorage) {
  4498. var _this3 = this;
  4499. estraverse.replace(functionNodeBody, {
  4500. enter: function enter(node, parentNode) {
  4501. if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {
  4502. return estraverse.VisitorOption.Skip;
  4503. }
  4504. if (_this3.isVisitedFunctionNode(node) || !parentNode) {
  4505. return estraverse.VisitorOption.Skip;
  4506. }
  4507. if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {
  4508. return node;
  4509. }
  4510. if (_this3.randomGenerator.getMathRandom() > _this3.options.controlFlowFlatteningThreshold) {
  4511. return node;
  4512. }
  4513. var controlFlowReplacerName = FunctionControlFlowTransformer_1.controlFlowReplacersMap.get(node.type);
  4514. if (controlFlowReplacerName === undefined) {
  4515. return node;
  4516. }
  4517. return Object.assign(Object.assign({}, _this3.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), {
  4518. parentNode: parentNode
  4519. });
  4520. }
  4521. });
  4522. }
  4523. }]);
  4524. return FunctionControlFlowTransformer;
  4525. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4526. FunctionControlFlowTransformer.controlFlowReplacersMap = new Map([[NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer], [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer], [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer], [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]]);
  4527. FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;
  4528. FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;
  4529. FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Function, Object, Object])], FunctionControlFlowTransformer);
  4530. exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;
  4531. /***/ }),
  4532. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts":
  4533. /*!***************************************************************************************************************!*\
  4534. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***!
  4535. \***************************************************************************************************************/
  4536. /*! no static exports found */
  4537. /***/ (function(module, exports, __webpack_require__) {
  4538. "use strict";
  4539. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4540. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4541. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4542. var AbstractControlFlowReplacer_1;
  4543. Object.defineProperty(exports, "__esModule", {
  4544. value: true
  4545. });
  4546. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4547. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4548. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4549. var AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 =
  4550. /*#__PURE__*/
  4551. function () {
  4552. function AbstractControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4553. (0, _classCallCheck2["default"])(this, AbstractControlFlowReplacer);
  4554. this.replacerDataByControlFlowStorageId = new Map();
  4555. this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
  4556. this.randomGenerator = randomGenerator;
  4557. this.options = options;
  4558. }
  4559. (0, _createClass2["default"])(AbstractControlFlowReplacer, [{
  4560. key: "insertCustomNodeToControlFlowStorage",
  4561. value: function insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {
  4562. var _this = this;
  4563. var controlFlowStorageId = controlFlowStorage.getStorageId();
  4564. var storageKeysById = AbstractControlFlowReplacer_1.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);
  4565. var storageKeysForCurrentId = storageKeysById.get(replacerId);
  4566. if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && storageKeysForCurrentId && storageKeysForCurrentId.length) {
  4567. return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);
  4568. }
  4569. var generateStorageKey = function generateStorageKey(length) {
  4570. var key = _this.randomGenerator.getRandomString(length);
  4571. if (controlFlowStorage.getStorage().has(key)) {
  4572. return generateStorageKey(length);
  4573. }
  4574. return key;
  4575. };
  4576. var storageKey = generateStorageKey(5);
  4577. storageKeysById.set(replacerId, [storageKey]);
  4578. this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);
  4579. controlFlowStorage.set(storageKey, customNode);
  4580. return storageKey;
  4581. }
  4582. }], [{
  4583. key: "getStorageKeysByIdForCurrentStorage",
  4584. value: function getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {
  4585. var storageKeysById;
  4586. if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {
  4587. storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);
  4588. } else {
  4589. storageKeysById = new Map();
  4590. }
  4591. return storageKeysById;
  4592. }
  4593. }]);
  4594. return AbstractControlFlowReplacer;
  4595. }();
  4596. AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractControlFlowReplacer);
  4597. exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;
  4598. /***/ }),
  4599. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts":
  4600. /*!***********************************************************************************************************************!*\
  4601. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***!
  4602. \***********************************************************************************************************************/
  4603. /*! no static exports found */
  4604. /***/ (function(module, exports, __webpack_require__) {
  4605. "use strict";
  4606. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4607. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4608. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4609. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4610. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4611. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4612. var BinaryExpressionControlFlowReplacer_1;
  4613. Object.defineProperty(exports, "__esModule", {
  4614. value: true
  4615. });
  4616. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4617. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4618. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4619. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4620. var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
  4621. var BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 =
  4622. /*#__PURE__*/
  4623. function (_ExpressionWithOperat) {
  4624. (0, _inherits2["default"])(BinaryExpressionControlFlowReplacer, _ExpressionWithOperat);
  4625. function BinaryExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4626. (0, _classCallCheck2["default"])(this, BinaryExpressionControlFlowReplacer);
  4627. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BinaryExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  4628. }
  4629. (0, _createClass2["default"])(BinaryExpressionControlFlowReplacer, [{
  4630. key: "replace",
  4631. value: function replace(binaryExpressionNode, parentNode, controlFlowStorage) {
  4632. var replacerId = binaryExpressionNode.operator;
  4633. var binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);
  4634. binaryExpressionFunctionCustomNode.initialize(replacerId);
  4635. var storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, replacerId, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  4636. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);
  4637. }
  4638. }]);
  4639. return BinaryExpressionControlFlowReplacer;
  4640. }(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer);
  4641. BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  4642. BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionControlFlowReplacer);
  4643. exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;
  4644. /***/ }),
  4645. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts":
  4646. /*!*********************************************************************************************************************!*\
  4647. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***!
  4648. \*********************************************************************************************************************/
  4649. /*! no static exports found */
  4650. /***/ (function(module, exports, __webpack_require__) {
  4651. "use strict";
  4652. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4653. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4654. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4655. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4656. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4657. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4658. var CallExpressionControlFlowReplacer_1;
  4659. Object.defineProperty(exports, "__esModule", {
  4660. value: true
  4661. });
  4662. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4663. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4664. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4665. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4666. var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  4667. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4668. var CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 =
  4669. /*#__PURE__*/
  4670. function (_AbstractControlFlowR) {
  4671. (0, _inherits2["default"])(CallExpressionControlFlowReplacer, _AbstractControlFlowR);
  4672. function CallExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4673. (0, _classCallCheck2["default"])(this, CallExpressionControlFlowReplacer);
  4674. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CallExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  4675. }
  4676. (0, _createClass2["default"])(CallExpressionControlFlowReplacer, [{
  4677. key: "replace",
  4678. value: function replace(callExpressionNode, parentNode, controlFlowStorage) {
  4679. var callee = callExpressionNode.callee;
  4680. if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {
  4681. return callExpressionNode;
  4682. }
  4683. var replacerId = String(callExpressionNode.arguments.length);
  4684. var callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);
  4685. var expressionArguments = callExpressionNode.arguments;
  4686. callExpressionFunctionCustomNode.initialize(expressionArguments);
  4687. var storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  4688. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);
  4689. }
  4690. }, {
  4691. key: "getControlFlowStorageCallNode",
  4692. value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {
  4693. var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
  4694. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);
  4695. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  4696. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  4697. throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  4698. }
  4699. return statementNode.expression;
  4700. }
  4701. }]);
  4702. return CallExpressionControlFlowReplacer;
  4703. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  4704. CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  4705. CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowReplacer);
  4706. exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;
  4707. /***/ }),
  4708. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts":
  4709. /*!*****************************************************************************************************************************!*\
  4710. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***!
  4711. \*****************************************************************************************************************************/
  4712. /*! no static exports found */
  4713. /***/ (function(module, exports, __webpack_require__) {
  4714. "use strict";
  4715. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4716. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4717. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4718. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4719. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4720. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4721. Object.defineProperty(exports, "__esModule", {
  4722. value: true
  4723. });
  4724. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4725. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4726. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4727. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4728. var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  4729. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4730. var ExpressionWithOperatorControlFlowReplacer =
  4731. /*#__PURE__*/
  4732. function (_AbstractControlFlowR) {
  4733. (0, _inherits2["default"])(ExpressionWithOperatorControlFlowReplacer, _AbstractControlFlowR);
  4734. function ExpressionWithOperatorControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4735. (0, _classCallCheck2["default"])(this, ExpressionWithOperatorControlFlowReplacer);
  4736. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ExpressionWithOperatorControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  4737. }
  4738. (0, _createClass2["default"])(ExpressionWithOperatorControlFlowReplacer, [{
  4739. key: "getControlFlowStorageCallNode",
  4740. value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {
  4741. var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
  4742. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);
  4743. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  4744. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  4745. throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  4746. }
  4747. return statementNode.expression;
  4748. }
  4749. }]);
  4750. return ExpressionWithOperatorControlFlowReplacer;
  4751. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  4752. ExpressionWithOperatorControlFlowReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowReplacer);
  4753. exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;
  4754. /***/ }),
  4755. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts":
  4756. /*!************************************************************************************************************************!*\
  4757. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***!
  4758. \************************************************************************************************************************/
  4759. /*! no static exports found */
  4760. /***/ (function(module, exports, __webpack_require__) {
  4761. "use strict";
  4762. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4763. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4764. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4765. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4766. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4767. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4768. var LogicalExpressionControlFlowReplacer_1;
  4769. Object.defineProperty(exports, "__esModule", {
  4770. value: true
  4771. });
  4772. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4773. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4774. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4775. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4776. var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts");
  4777. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4778. var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  4779. var LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 =
  4780. /*#__PURE__*/
  4781. function (_ExpressionWithOperat) {
  4782. (0, _inherits2["default"])(LogicalExpressionControlFlowReplacer, _ExpressionWithOperat);
  4783. function LogicalExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4784. (0, _classCallCheck2["default"])(this, LogicalExpressionControlFlowReplacer);
  4785. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LogicalExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  4786. }
  4787. (0, _createClass2["default"])(LogicalExpressionControlFlowReplacer, [{
  4788. key: "replace",
  4789. value: function replace(logicalExpressionNode, parentNode, controlFlowStorage) {
  4790. if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {
  4791. return logicalExpressionNode;
  4792. }
  4793. var replacerId = logicalExpressionNode.operator;
  4794. var logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);
  4795. logicalExpressionFunctionCustomNode.initialize(replacerId);
  4796. var storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, replacerId, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);
  4797. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);
  4798. }
  4799. }, {
  4800. key: "checkForProhibitedExpressions",
  4801. value: function checkForProhibitedExpressions(leftExpression, rightExpression) {
  4802. return [leftExpression, rightExpression].some(function (expressionNode) {
  4803. var nodeForCheck;
  4804. if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {
  4805. nodeForCheck = expressionNode;
  4806. } else {
  4807. nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);
  4808. }
  4809. return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);
  4810. });
  4811. }
  4812. }]);
  4813. return LogicalExpressionControlFlowReplacer;
  4814. }(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer);
  4815. LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;
  4816. LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionControlFlowReplacer);
  4817. exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;
  4818. /***/ }),
  4819. /***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts":
  4820. /*!********************************************************************************************************************!*\
  4821. !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***!
  4822. \********************************************************************************************************************/
  4823. /*! no static exports found */
  4824. /***/ (function(module, exports, __webpack_require__) {
  4825. "use strict";
  4826. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4827. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4828. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4829. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4830. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4831. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4832. var StringLiteralControlFlowReplacer_1;
  4833. Object.defineProperty(exports, "__esModule", {
  4834. value: true
  4835. });
  4836. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4837. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4838. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4839. var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts");
  4840. var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts");
  4841. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4842. var StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 =
  4843. /*#__PURE__*/
  4844. function (_AbstractControlFlowR) {
  4845. (0, _inherits2["default"])(StringLiteralControlFlowReplacer, _AbstractControlFlowR);
  4846. function StringLiteralControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) {
  4847. (0, _classCallCheck2["default"])(this, StringLiteralControlFlowReplacer);
  4848. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options));
  4849. }
  4850. (0, _createClass2["default"])(StringLiteralControlFlowReplacer, [{
  4851. key: "replace",
  4852. value: function replace(literalNode, parentNode, controlFlowStorage) {
  4853. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
  4854. return literalNode;
  4855. }
  4856. if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) {
  4857. return literalNode;
  4858. }
  4859. var replacerId = String(literalNode.value);
  4860. var literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);
  4861. literalFunctionCustomNode.initialize(literalNode.value);
  4862. var storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);
  4863. return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);
  4864. }
  4865. }, {
  4866. key: "getControlFlowStorageCallNode",
  4867. value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {
  4868. var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
  4869. controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);
  4870. var statementNode = controlFlowStorageCallCustomNode.getNode()[0];
  4871. if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {
  4872. throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");
  4873. }
  4874. return statementNode.expression;
  4875. }
  4876. }]);
  4877. return StringLiteralControlFlowReplacer;
  4878. }(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer);
  4879. StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;
  4880. StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowReplacer);
  4881. exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;
  4882. /***/ }),
  4883. /***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts":
  4884. /*!**************************************************************************************!*\
  4885. !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***!
  4886. \**************************************************************************************/
  4887. /*! no static exports found */
  4888. /***/ (function(module, exports, __webpack_require__) {
  4889. "use strict";
  4890. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4891. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4892. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4893. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4894. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4895. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4896. Object.defineProperty(exports, "__esModule", {
  4897. value: true
  4898. });
  4899. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4900. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4901. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4902. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  4903. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  4904. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  4905. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4906. var MemberExpressionTransformer =
  4907. /*#__PURE__*/
  4908. function (_AbstractNodeTransfor) {
  4909. (0, _inherits2["default"])(MemberExpressionTransformer, _AbstractNodeTransfor);
  4910. function MemberExpressionTransformer(randomGenerator, options) {
  4911. (0, _classCallCheck2["default"])(this, MemberExpressionTransformer);
  4912. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MemberExpressionTransformer).call(this, randomGenerator, options));
  4913. }
  4914. (0, _createClass2["default"])(MemberExpressionTransformer, [{
  4915. key: "getVisitor",
  4916. value: function getVisitor(transformationStage) {
  4917. var _this = this;
  4918. switch (transformationStage) {
  4919. case TransformationStage_1.TransformationStage.Converting:
  4920. return {
  4921. enter: function enter(node, parentNode) {
  4922. if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {
  4923. return _this.transformNode(node, parentNode);
  4924. }
  4925. }
  4926. };
  4927. default:
  4928. return null;
  4929. }
  4930. }
  4931. }, {
  4932. key: "transformNode",
  4933. value: function transformNode(memberExpressionNode, parentNode) {
  4934. if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {
  4935. if (memberExpressionNode.computed) {
  4936. return memberExpressionNode;
  4937. }
  4938. memberExpressionNode.computed = true;
  4939. memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);
  4940. }
  4941. return memberExpressionNode;
  4942. }
  4943. }]);
  4944. return MemberExpressionTransformer;
  4945. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  4946. MemberExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MemberExpressionTransformer);
  4947. exports.MemberExpressionTransformer = MemberExpressionTransformer;
  4948. /***/ }),
  4949. /***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts":
  4950. /*!**************************************************************************************!*\
  4951. !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***!
  4952. \**************************************************************************************/
  4953. /*! no static exports found */
  4954. /***/ (function(module, exports, __webpack_require__) {
  4955. "use strict";
  4956. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  4957. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  4958. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  4959. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  4960. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  4961. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  4962. var MethodDefinitionTransformer_1;
  4963. Object.defineProperty(exports, "__esModule", {
  4964. value: true
  4965. });
  4966. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  4967. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  4968. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  4969. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  4970. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  4971. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  4972. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  4973. var MethodDefinitionTransformer = MethodDefinitionTransformer_1 =
  4974. /*#__PURE__*/
  4975. function (_AbstractNodeTransfor) {
  4976. (0, _inherits2["default"])(MethodDefinitionTransformer, _AbstractNodeTransfor);
  4977. function MethodDefinitionTransformer(randomGenerator, options) {
  4978. (0, _classCallCheck2["default"])(this, MethodDefinitionTransformer);
  4979. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MethodDefinitionTransformer).call(this, randomGenerator, options));
  4980. }
  4981. (0, _createClass2["default"])(MethodDefinitionTransformer, [{
  4982. key: "getVisitor",
  4983. value: function getVisitor(transformationStage) {
  4984. var _this = this;
  4985. switch (transformationStage) {
  4986. case TransformationStage_1.TransformationStage.Converting:
  4987. return {
  4988. enter: function enter(node, parentNode) {
  4989. if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {
  4990. return _this.transformNode(node, parentNode);
  4991. }
  4992. }
  4993. };
  4994. default:
  4995. return null;
  4996. }
  4997. }
  4998. }, {
  4999. key: "transformNode",
  5000. value: function transformNode(methodDefinitionNode, parentNode) {
  5001. if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) {
  5002. methodDefinitionNode.computed = true;
  5003. methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(methodDefinitionNode.key.name);
  5004. }
  5005. return methodDefinitionNode;
  5006. }
  5007. }]);
  5008. return MethodDefinitionTransformer;
  5009. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5010. MethodDefinitionTransformer.ignoredNames = ['constructor'];
  5011. MethodDefinitionTransformer = MethodDefinitionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MethodDefinitionTransformer);
  5012. exports.MethodDefinitionTransformer = MethodDefinitionTransformer;
  5013. /***/ }),
  5014. /***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts":
  5015. /*!******************************************************************************************!*\
  5016. !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***!
  5017. \******************************************************************************************/
  5018. /*! no static exports found */
  5019. /***/ (function(module, exports, __webpack_require__) {
  5020. "use strict";
  5021. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5022. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5023. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5024. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5025. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5026. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5027. var ObjectExpressionKeysTransformer_1;
  5028. Object.defineProperty(exports, "__esModule", {
  5029. value: true
  5030. });
  5031. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5032. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5033. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5034. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  5035. var PropertiesExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts");
  5036. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5037. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5038. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5039. var ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 =
  5040. /*#__PURE__*/
  5041. function (_AbstractNodeTransfor) {
  5042. (0, _inherits2["default"])(ObjectExpressionKeysTransformer, _AbstractNodeTransfor);
  5043. function ObjectExpressionKeysTransformer(propertiesExtractorFactory, randomGenerator, options) {
  5044. var _this;
  5045. (0, _classCallCheck2["default"])(this, ObjectExpressionKeysTransformer);
  5046. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObjectExpressionKeysTransformer).call(this, randomGenerator, options));
  5047. _this.propertiesExtractorFactory = propertiesExtractorFactory;
  5048. return _this;
  5049. }
  5050. (0, _createClass2["default"])(ObjectExpressionKeysTransformer, [{
  5051. key: "getVisitor",
  5052. value: function getVisitor(transformationStage) {
  5053. var _this2 = this;
  5054. if (transformationStage !== TransformationStage_1.TransformationStage.Converting) {
  5055. return null;
  5056. }
  5057. return {
  5058. enter: function enter(node, parentNode) {
  5059. if (_this2.options.transformObjectKeys && parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
  5060. return _this2.transformNode(node, parentNode);
  5061. }
  5062. }
  5063. };
  5064. }
  5065. }, {
  5066. key: "transformNode",
  5067. value: function transformNode(objectExpressionNode, parentNode) {
  5068. if (!objectExpressionNode.properties.length) {
  5069. return objectExpressionNode;
  5070. }
  5071. var propertiesExtractorName = ObjectExpressionKeysTransformer_1.propertiesExtractorsMap.get(parentNode.type);
  5072. if (!propertiesExtractorName) {
  5073. return objectExpressionNode;
  5074. }
  5075. var propertiesExtractor = this.propertiesExtractorFactory(propertiesExtractorName);
  5076. return propertiesExtractor.extract(objectExpressionNode, parentNode);
  5077. }
  5078. }]);
  5079. return ObjectExpressionKeysTransformer;
  5080. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5081. ObjectExpressionKeysTransformer.propertiesExtractorsMap = new Map([[NodeType_1.NodeType.AssignmentExpression, PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor], [NodeType_1.NodeType.VariableDeclarator, PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]);
  5082. ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObjectExpressionKeysTransformer);
  5083. exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;
  5084. /***/ }),
  5085. /***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts":
  5086. /*!**************************************************************************************!*\
  5087. !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***!
  5088. \**************************************************************************************/
  5089. /*! no static exports found */
  5090. /***/ (function(module, exports, __webpack_require__) {
  5091. "use strict";
  5092. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5093. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5094. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5095. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5096. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5097. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5098. Object.defineProperty(exports, "__esModule", {
  5099. value: true
  5100. });
  5101. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5102. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5103. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5104. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5105. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5106. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5107. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5108. var ObjectExpressionTransformer =
  5109. /*#__PURE__*/
  5110. function (_AbstractNodeTransfor) {
  5111. (0, _inherits2["default"])(ObjectExpressionTransformer, _AbstractNodeTransfor);
  5112. function ObjectExpressionTransformer(escapeSequenceEncoder, randomGenerator, options) {
  5113. var _this;
  5114. (0, _classCallCheck2["default"])(this, ObjectExpressionTransformer);
  5115. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObjectExpressionTransformer).call(this, randomGenerator, options));
  5116. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  5117. return _this;
  5118. }
  5119. (0, _createClass2["default"])(ObjectExpressionTransformer, [{
  5120. key: "getVisitor",
  5121. value: function getVisitor(transformationStage) {
  5122. var _this2 = this;
  5123. switch (transformationStage) {
  5124. case TransformationStage_1.TransformationStage.Converting:
  5125. return {
  5126. enter: function enter(node, parentNode) {
  5127. if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {
  5128. return _this2.transformNode(node, parentNode);
  5129. }
  5130. }
  5131. };
  5132. default:
  5133. return null;
  5134. }
  5135. }
  5136. }, {
  5137. key: "transformNode",
  5138. value: function transformNode(objectExpressionNode, parentNode) {
  5139. var _this3 = this;
  5140. objectExpressionNode.properties.forEach(function (property) {
  5141. if (!property.key) {
  5142. return;
  5143. }
  5144. if (property.computed) {
  5145. _this3.transformComputedProperty(property);
  5146. } else {
  5147. _this3.transformBaseProperty(property);
  5148. }
  5149. });
  5150. return objectExpressionNode;
  5151. }
  5152. }, {
  5153. key: "transformComputedProperty",
  5154. value: function transformComputedProperty(property) {
  5155. if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {
  5156. return;
  5157. }
  5158. property.key = NodeFactory_1.NodeFactory.literalNode(this.getPropertyKeyValue(property.key.value));
  5159. }
  5160. }, {
  5161. key: "transformBaseProperty",
  5162. value: function transformBaseProperty(property) {
  5163. if (property.shorthand) {
  5164. property.shorthand = false;
  5165. }
  5166. if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {
  5167. return;
  5168. }
  5169. property.key = NodeFactory_1.NodeFactory.literalNode(this.getPropertyKeyValue(property.key.name));
  5170. }
  5171. }, {
  5172. key: "getPropertyKeyValue",
  5173. value: function getPropertyKeyValue(inputValue) {
  5174. return this.options.unicodeEscapeSequence ? this.escapeSequenceEncoder.encode(inputValue, true) : inputValue;
  5175. }
  5176. }]);
  5177. return ObjectExpressionTransformer;
  5178. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5179. ObjectExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object])], ObjectExpressionTransformer);
  5180. exports.ObjectExpressionTransformer = ObjectExpressionTransformer;
  5181. /***/ }),
  5182. /***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts":
  5183. /*!*********************************************************************************!*\
  5184. !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***!
  5185. \*********************************************************************************/
  5186. /*! no static exports found */
  5187. /***/ (function(module, exports, __webpack_require__) {
  5188. "use strict";
  5189. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5190. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5191. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5192. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5193. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5194. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5195. var SplitStringTransformer_1;
  5196. Object.defineProperty(exports, "__esModule", {
  5197. value: true
  5198. });
  5199. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5200. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5201. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5202. var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  5203. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5204. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5205. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5206. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5207. var SplitStringTransformer = SplitStringTransformer_1 =
  5208. /*#__PURE__*/
  5209. function (_AbstractNodeTransfor) {
  5210. (0, _inherits2["default"])(SplitStringTransformer, _AbstractNodeTransfor);
  5211. function SplitStringTransformer(randomGenerator, options) {
  5212. var _this;
  5213. (0, _classCallCheck2["default"])(this, SplitStringTransformer);
  5214. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SplitStringTransformer).call(this, randomGenerator, options));
  5215. _this.runAfter = [NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer];
  5216. return _this;
  5217. }
  5218. (0, _createClass2["default"])(SplitStringTransformer, [{
  5219. key: "getVisitor",
  5220. value: function getVisitor(transformationStage) {
  5221. var _this2 = this;
  5222. switch (transformationStage) {
  5223. case TransformationStage_1.TransformationStage.Converting:
  5224. return {
  5225. enter: function enter(node, parentNode) {
  5226. if (!_this2.options.splitStrings) {
  5227. return;
  5228. }
  5229. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  5230. return _this2.transformNode(node, parentNode);
  5231. }
  5232. }
  5233. };
  5234. default:
  5235. return null;
  5236. }
  5237. }
  5238. }, {
  5239. key: "transformNode",
  5240. value: function transformNode(literalNode, parentNode) {
  5241. if (typeof literalNode.value !== 'string') {
  5242. return literalNode;
  5243. }
  5244. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {
  5245. return literalNode;
  5246. }
  5247. if (this.options.splitStringsChunkLength >= literalNode.value.length) {
  5248. return literalNode;
  5249. }
  5250. var stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, this.options.splitStringsChunkLength);
  5251. return this.transformStringChunksToBinaryExpressionNode(stringChunks);
  5252. }
  5253. }, {
  5254. key: "transformStringChunksToBinaryExpressionNode",
  5255. value: function transformStringChunksToBinaryExpressionNode(chunks) {
  5256. var lastChunk = chunks.pop();
  5257. if (lastChunk === undefined) {
  5258. throw new Error('Last chunk value should not be empty');
  5259. }
  5260. var lastChunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(lastChunk);
  5261. if (chunks.length === 0) {
  5262. return lastChunkLiteralNode;
  5263. }
  5264. return NodeFactory_1.NodeFactory.binaryExpressionNode('+', this.transformStringChunksToBinaryExpressionNode(chunks), lastChunkLiteralNode);
  5265. }
  5266. }], [{
  5267. key: "chunkString",
  5268. value: function chunkString(string, chunkSize) {
  5269. var chunksCount = Math.ceil(string.length / chunkSize);
  5270. var chunks = [];
  5271. var nextChunkStartIndex = 0;
  5272. for (var chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {
  5273. chunks[chunkIndex] = string.substr(nextChunkStartIndex, chunkSize);
  5274. }
  5275. return chunks;
  5276. }
  5277. }]);
  5278. return SplitStringTransformer;
  5279. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5280. SplitStringTransformer = SplitStringTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], SplitStringTransformer);
  5281. exports.SplitStringTransformer = SplitStringTransformer;
  5282. /***/ }),
  5283. /***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts":
  5284. /*!*************************************************************************************!*\
  5285. !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***!
  5286. \*************************************************************************************/
  5287. /*! no static exports found */
  5288. /***/ (function(module, exports, __webpack_require__) {
  5289. "use strict";
  5290. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5291. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5292. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5293. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5294. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5295. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5296. var TemplateLiteralTransformer_1;
  5297. Object.defineProperty(exports, "__esModule", {
  5298. value: true
  5299. });
  5300. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5301. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5302. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5303. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5304. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5305. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5306. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5307. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5308. var TemplateLiteralTransformer = TemplateLiteralTransformer_1 =
  5309. /*#__PURE__*/
  5310. function (_AbstractNodeTransfor) {
  5311. (0, _inherits2["default"])(TemplateLiteralTransformer, _AbstractNodeTransfor);
  5312. function TemplateLiteralTransformer(randomGenerator, options) {
  5313. (0, _classCallCheck2["default"])(this, TemplateLiteralTransformer);
  5314. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(TemplateLiteralTransformer).call(this, randomGenerator, options));
  5315. }
  5316. (0, _createClass2["default"])(TemplateLiteralTransformer, [{
  5317. key: "getVisitor",
  5318. value: function getVisitor(transformationStage) {
  5319. var _this = this;
  5320. switch (transformationStage) {
  5321. case TransformationStage_1.TransformationStage.Converting:
  5322. return {
  5323. enter: function enter(node, parentNode) {
  5324. if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) {
  5325. return _this.transformNode(node, parentNode);
  5326. }
  5327. }
  5328. };
  5329. default:
  5330. return null;
  5331. }
  5332. }
  5333. }, {
  5334. key: "transformNode",
  5335. value: function transformNode(templateLiteralNode, parentNode) {
  5336. var templateLiteralExpressions = templateLiteralNode.expressions;
  5337. var nodes = [];
  5338. templateLiteralNode.quasis.forEach(function (templateElement) {
  5339. nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));
  5340. var expression = templateLiteralExpressions.shift();
  5341. if (!expression) {
  5342. return;
  5343. }
  5344. nodes.push(expression);
  5345. });
  5346. nodes = nodes.filter(function (node) {
  5347. return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');
  5348. });
  5349. if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {
  5350. nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));
  5351. }
  5352. var transformedNode;
  5353. if (nodes.length > 1) {
  5354. var root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());
  5355. nodes.forEach(function (node) {
  5356. root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);
  5357. });
  5358. transformedNode = root;
  5359. } else {
  5360. transformedNode = nodes[0];
  5361. }
  5362. NodeUtils_1.NodeUtils.parentizeAst(transformedNode);
  5363. return transformedNode;
  5364. }
  5365. }], [{
  5366. key: "isLiteralNodeWithStringValue",
  5367. value: function isLiteralNodeWithStringValue(node) {
  5368. return node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';
  5369. }
  5370. }, {
  5371. key: "isValidTemplateLiteralNode",
  5372. value: function isValidTemplateLiteralNode(node, parentNode) {
  5373. return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode);
  5374. }
  5375. }]);
  5376. return TemplateLiteralTransformer;
  5377. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5378. TemplateLiteralTransformer = TemplateLiteralTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], TemplateLiteralTransformer);
  5379. exports.TemplateLiteralTransformer = TemplateLiteralTransformer;
  5380. /***/ }),
  5381. /***/ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts":
  5382. /*!************************************************************************************************************!*\
  5383. !*** ./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts ***!
  5384. \************************************************************************************************************/
  5385. /*! no static exports found */
  5386. /***/ (function(module, exports, __webpack_require__) {
  5387. "use strict";
  5388. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5389. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  5390. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5391. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5392. var AbstractPropertiesExtractor_1;
  5393. Object.defineProperty(exports, "__esModule", {
  5394. value: true
  5395. });
  5396. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5397. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5398. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5399. var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts");
  5400. var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5401. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5402. var NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  5403. var AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 =
  5404. /*#__PURE__*/
  5405. function () {
  5406. function AbstractPropertiesExtractor(randomGenerator, options) {
  5407. (0, _classCallCheck2["default"])(this, AbstractPropertiesExtractor);
  5408. this.cachedHostNodesWithStatementsMap = new Map();
  5409. this.cachedHostStatementsMap = new Map();
  5410. this.randomGenerator = randomGenerator;
  5411. this.options = options;
  5412. }
  5413. (0, _createClass2["default"])(AbstractPropertiesExtractor, [{
  5414. key: "extractPropertiesToExpressionStatements",
  5415. value: function extractPropertiesToExpressionStatements(properties, memberExpressionHostNode) {
  5416. var propertiesLength = properties.length;
  5417. var expressionStatements = [];
  5418. var removablePropertyIds = [];
  5419. for (var i = 0; i < propertiesLength; i++) {
  5420. var property = properties[i];
  5421. var propertyValue = property.value;
  5422. if (AbstractPropertiesExtractor_1.isProhibitedPattern(propertyValue)) {
  5423. continue;
  5424. }
  5425. var propertyKeyName = AbstractPropertiesExtractor_1.getPropertyNodeKeyName(property);
  5426. if (!propertyKeyName) {
  5427. continue;
  5428. }
  5429. var shouldCreateLiteralNode = !property.computed || property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key);
  5430. var memberExpressionProperty = shouldCreateLiteralNode ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);
  5431. var memberExpressionNode = NodeFactory_1.NodeFactory.memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);
  5432. var expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));
  5433. if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {
  5434. this.transformObjectExpressionNode(property.value, memberExpressionNode);
  5435. }
  5436. expressionStatements.push(expressionStatementNode);
  5437. removablePropertyIds.push(i);
  5438. }
  5439. return [expressionStatements, removablePropertyIds];
  5440. }
  5441. }, {
  5442. key: "filterExtractedObjectExpressionProperties",
  5443. value: function filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {
  5444. objectExpressionNode.properties = objectExpressionNode.properties.filter(function (property, index) {
  5445. return !removablePropertyIds.includes(index);
  5446. });
  5447. }
  5448. }, {
  5449. key: "transformObjectExpressionNode",
  5450. value: function transformObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) {
  5451. var properties = objectExpressionNode.properties;
  5452. var _this$extractProperti = this.extractPropertiesToExpressionStatements(properties, memberExpressionHostNode),
  5453. _this$extractProperti2 = (0, _slicedToArray2["default"])(_this$extractProperti, 2),
  5454. expressionStatements = _this$extractProperti2[0],
  5455. removablePropertyIds = _this$extractProperti2[1];
  5456. var hostStatement = this.getHostStatement(objectExpressionNode);
  5457. var hostNodeWithStatements = this.getHostNodeWithStatements(objectExpressionNode, hostStatement);
  5458. this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);
  5459. NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);
  5460. return objectExpressionNode;
  5461. }
  5462. }, {
  5463. key: "getHostNodeWithStatements",
  5464. value: function getHostNodeWithStatements(objectExpressionNode, hostStatement) {
  5465. if (this.cachedHostNodesWithStatementsMap.has(objectExpressionNode)) {
  5466. return this.cachedHostNodesWithStatementsMap.get(objectExpressionNode);
  5467. }
  5468. var nodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);
  5469. this.cachedHostNodesWithStatementsMap.set(objectExpressionNode, nodeWithStatements);
  5470. return nodeWithStatements;
  5471. }
  5472. }, {
  5473. key: "getHostStatement",
  5474. value: function getHostStatement(objectExpressionNode) {
  5475. if (this.cachedHostStatementsMap.has(objectExpressionNode)) {
  5476. return this.cachedHostStatementsMap.get(objectExpressionNode);
  5477. }
  5478. var hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
  5479. this.cachedHostStatementsMap.set(objectExpressionNode, hostStatement);
  5480. return hostStatement;
  5481. }
  5482. }], [{
  5483. key: "getPropertyNodeKeyName",
  5484. value: function getPropertyNodeKeyName(propertyNode) {
  5485. if (!propertyNode.key) {
  5486. return null;
  5487. }
  5488. var propertyKeyNode = propertyNode.key;
  5489. if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) && typeof propertyKeyNode.value === 'string') {
  5490. return propertyKeyNode.value;
  5491. }
  5492. if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {
  5493. return propertyKeyNode.name;
  5494. }
  5495. return null;
  5496. }
  5497. }, {
  5498. key: "isProhibitedHostParent",
  5499. value: function isProhibitedHostParent(node) {
  5500. return NodeGuards_1.NodeGuards.isMemberExpressionNode(node);
  5501. }
  5502. }, {
  5503. key: "isProhibitedPattern",
  5504. value: function isProhibitedPattern(node) {
  5505. return !node || NodeGuards_1.NodeGuards.isObjectPatternNode(node) || NodeGuards_1.NodeGuards.isArrayPatternNode(node) || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) || NodeGuards_1.NodeGuards.isRestElementNode(node);
  5506. }
  5507. }]);
  5508. return AbstractPropertiesExtractor;
  5509. }();
  5510. AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractPropertiesExtractor);
  5511. exports.AbstractPropertiesExtractor = AbstractPropertiesExtractor;
  5512. /***/ }),
  5513. /***/ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts":
  5514. /*!************************************************************************************************************************!*\
  5515. !*** ./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts ***!
  5516. \************************************************************************************************************************/
  5517. /*! no static exports found */
  5518. /***/ (function(module, exports, __webpack_require__) {
  5519. "use strict";
  5520. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5521. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5522. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5523. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5524. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5525. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5526. Object.defineProperty(exports, "__esModule", {
  5527. value: true
  5528. });
  5529. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5530. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5531. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5532. var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts");
  5533. var AssignmentExpressionPropertiesExtractor =
  5534. /*#__PURE__*/
  5535. function (_AbstractPropertiesEx) {
  5536. (0, _inherits2["default"])(AssignmentExpressionPropertiesExtractor, _AbstractPropertiesEx);
  5537. function AssignmentExpressionPropertiesExtractor(randomGenerator, options) {
  5538. (0, _classCallCheck2["default"])(this, AssignmentExpressionPropertiesExtractor);
  5539. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AssignmentExpressionPropertiesExtractor).call(this, randomGenerator, options));
  5540. }
  5541. (0, _createClass2["default"])(AssignmentExpressionPropertiesExtractor, [{
  5542. key: "extract",
  5543. value: function extract(objectExpressionNode, hostNode) {
  5544. var hostParentNode = hostNode.parentNode;
  5545. var leftNode = hostNode.left;
  5546. if (AbstractPropertiesExtractor_1.AbstractPropertiesExtractor.isProhibitedPattern(leftNode)) {
  5547. return objectExpressionNode;
  5548. }
  5549. if (hostParentNode && AbstractPropertiesExtractor_1.AbstractPropertiesExtractor.isProhibitedHostParent(hostParentNode)) {
  5550. return objectExpressionNode;
  5551. }
  5552. return this.transformObjectExpressionNode(objectExpressionNode, leftNode);
  5553. }
  5554. }]);
  5555. return AssignmentExpressionPropertiesExtractor;
  5556. }(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor);
  5557. AssignmentExpressionPropertiesExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AssignmentExpressionPropertiesExtractor);
  5558. exports.AssignmentExpressionPropertiesExtractor = AssignmentExpressionPropertiesExtractor;
  5559. /***/ }),
  5560. /***/ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts":
  5561. /*!**********************************************************************************************************************!*\
  5562. !*** ./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts ***!
  5563. \**********************************************************************************************************************/
  5564. /*! no static exports found */
  5565. /***/ (function(module, exports, __webpack_require__) {
  5566. "use strict";
  5567. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5568. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5569. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5570. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5571. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5572. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5573. Object.defineProperty(exports, "__esModule", {
  5574. value: true
  5575. });
  5576. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5577. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5578. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5579. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5580. var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts");
  5581. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5582. var VariableDeclaratorPropertiesExtractor =
  5583. /*#__PURE__*/
  5584. function (_AbstractPropertiesEx) {
  5585. (0, _inherits2["default"])(VariableDeclaratorPropertiesExtractor, _AbstractPropertiesEx);
  5586. function VariableDeclaratorPropertiesExtractor(randomGenerator, options) {
  5587. (0, _classCallCheck2["default"])(this, VariableDeclaratorPropertiesExtractor);
  5588. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(VariableDeclaratorPropertiesExtractor).call(this, randomGenerator, options));
  5589. }
  5590. (0, _createClass2["default"])(VariableDeclaratorPropertiesExtractor, [{
  5591. key: "extract",
  5592. value: function extract(objectExpressionNode, hostNode) {
  5593. if (!NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id) || this.isProhibitedObjectExpressionNode(objectExpressionNode, hostNode.id)) {
  5594. return objectExpressionNode;
  5595. }
  5596. return this.transformObjectExpressionNode(objectExpressionNode, hostNode.id);
  5597. }
  5598. }, {
  5599. key: "getHostVariableDeclaratorNode",
  5600. value: function getHostVariableDeclaratorNode(objectExpressionNode) {
  5601. var parentNode = objectExpressionNode.parentNode;
  5602. if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)) {
  5603. throw new Error('Cannot get `VariableDeclarator` node for `ObjectExpression` node');
  5604. }
  5605. return parentNode;
  5606. }
  5607. }, {
  5608. key: "getHostVariableDeclarationNode",
  5609. value: function getHostVariableDeclarationNode(variableDeclaratorNode) {
  5610. var parentNode = variableDeclaratorNode.parentNode;
  5611. if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode)) {
  5612. throw new Error('Cannot get `VariableDeclaration` node for `VariableDeclarator` node');
  5613. }
  5614. return parentNode;
  5615. }
  5616. }, {
  5617. key: "isProhibitedObjectExpressionNode",
  5618. value: function isProhibitedObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) {
  5619. var hostVariableDeclarator = this.getHostVariableDeclaratorNode(objectExpressionNode);
  5620. var hostVariableDeclaration = this.getHostVariableDeclarationNode(hostVariableDeclarator);
  5621. var declarations = hostVariableDeclaration.declarations;
  5622. var indexOfDeclarator = declarations.indexOf(hostVariableDeclarator);
  5623. var isLastDeclarator = indexOfDeclarator === declarations.length - 1;
  5624. if (isLastDeclarator) {
  5625. return false;
  5626. }
  5627. var declaratorsAfterCurrentDeclarator = declarations.slice(indexOfDeclarator);
  5628. var isProhibitedObjectExpressionNode = false;
  5629. declaratorsAfterCurrentDeclarator.forEach(function (variableDeclarator) {
  5630. estraverse.traverse(variableDeclarator, {
  5631. enter: function enter(node) {
  5632. if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.object) && node.object.name === memberExpressionHostNode.name) {
  5633. isProhibitedObjectExpressionNode = true;
  5634. return estraverse.VisitorOption.Break;
  5635. }
  5636. return node;
  5637. }
  5638. });
  5639. });
  5640. return isProhibitedObjectExpressionNode;
  5641. }
  5642. }]);
  5643. return VariableDeclaratorPropertiesExtractor;
  5644. }(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor);
  5645. VariableDeclaratorPropertiesExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], VariableDeclaratorPropertiesExtractor);
  5646. exports.VariableDeclaratorPropertiesExtractor = VariableDeclaratorPropertiesExtractor;
  5647. /***/ }),
  5648. /***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts":
  5649. /*!************************************************************************************************!*\
  5650. !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***!
  5651. \************************************************************************************************/
  5652. /*! no static exports found */
  5653. /***/ (function(module, exports, __webpack_require__) {
  5654. "use strict";
  5655. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5656. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5657. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5658. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5659. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5660. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5661. var DeadCodeInjectionTransformer_1;
  5662. Object.defineProperty(exports, "__esModule", {
  5663. value: true
  5664. });
  5665. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5666. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5667. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5668. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5669. var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts");
  5670. var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts");
  5671. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  5672. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5673. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5674. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  5675. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5676. var NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts");
  5677. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  5678. var DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 =
  5679. /*#__PURE__*/
  5680. function (_AbstractNodeTransfor) {
  5681. (0, _inherits2["default"])(DeadCodeInjectionTransformer, _AbstractNodeTransfor);
  5682. function DeadCodeInjectionTransformer(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {
  5683. var _this;
  5684. (0, _classCallCheck2["default"])(this, DeadCodeInjectionTransformer);
  5685. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DeadCodeInjectionTransformer).call(this, randomGenerator, options));
  5686. _this.deadCodeInjectionRootAstHostNodeSet = new Set();
  5687. _this.collectedBlockStatements = [];
  5688. _this.collectedBlockStatementsTotalLength = 0;
  5689. _this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;
  5690. _this.transformersRunner = transformersRunner;
  5691. return _this;
  5692. }
  5693. (0, _createClass2["default"])(DeadCodeInjectionTransformer, [{
  5694. key: "getVisitor",
  5695. value: function getVisitor(transformationStage) {
  5696. var _this2 = this;
  5697. switch (transformationStage) {
  5698. case TransformationStage_1.TransformationStage.DeadCodeInjection:
  5699. return {
  5700. enter: function enter(node, parentNode) {
  5701. if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {
  5702. _this2.analyzeNode(node, parentNode);
  5703. return node;
  5704. }
  5705. },
  5706. leave: function leave(node, parentNode) {
  5707. if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  5708. return _this2.transformNode(node, parentNode);
  5709. }
  5710. }
  5711. };
  5712. case TransformationStage_1.TransformationStage.Finalizing:
  5713. if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
  5714. return null;
  5715. }
  5716. return {
  5717. enter: function enter(node, parentNode) {
  5718. if (parentNode && _this2.isDeadCodeInjectionRootAstHostNode(node)) {
  5719. return _this2.restoreNode(node, parentNode);
  5720. }
  5721. }
  5722. };
  5723. default:
  5724. return null;
  5725. }
  5726. }
  5727. }, {
  5728. key: "analyzeNode",
  5729. value: function analyzeNode(programNode, parentNode) {
  5730. var _this3 = this;
  5731. estraverse.traverse(programNode, {
  5732. enter: function enter(node) {
  5733. if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  5734. return;
  5735. }
  5736. var clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);
  5737. if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {
  5738. return;
  5739. }
  5740. var transformedBlockStatementNode = _this3.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);
  5741. _this3.collectedBlockStatements.push(transformedBlockStatementNode);
  5742. }
  5743. });
  5744. this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;
  5745. }
  5746. }, {
  5747. key: "transformNode",
  5748. value: function transformNode(blockStatementNode, parentNode) {
  5749. var canBreakTraverse = !this.collectedBlockStatements.length || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;
  5750. if (canBreakTraverse) {
  5751. return estraverse.VisitorOption.Break;
  5752. }
  5753. if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {
  5754. return blockStatementNode;
  5755. }
  5756. var minInteger = 0;
  5757. var maxInteger = this.collectedBlockStatements.length - 1;
  5758. var randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);
  5759. var randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];
  5760. var isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;
  5761. if (isDuplicateBlockStatementNodes) {
  5762. return blockStatementNode;
  5763. }
  5764. return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);
  5765. }
  5766. }, {
  5767. key: "restoreNode",
  5768. value: function restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {
  5769. var hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];
  5770. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {
  5771. throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');
  5772. }
  5773. return hostNodeFirstStatement.body;
  5774. }
  5775. }, {
  5776. key: "isDeadCodeInjectionRootAstHostNode",
  5777. value: function isDeadCodeInjectionRootAstHostNode(node) {
  5778. return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);
  5779. }
  5780. }, {
  5781. key: "makeClonedBlockStatementNodeUnique",
  5782. value: function makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {
  5783. var hostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode);
  5784. NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);
  5785. NodeUtils_1.NodeUtils.parentizeNode(clonedBlockStatementNode, hostNode);
  5786. return this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, TransformationStage_1.TransformationStage.Obfuscating).body;
  5787. }
  5788. }, {
  5789. key: "replaceBlockStatementNode",
  5790. value: function replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {
  5791. var deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)]);
  5792. this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);
  5793. var blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
  5794. blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);
  5795. var newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];
  5796. NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
  5797. return newBlockStatementNode;
  5798. }
  5799. }], [{
  5800. key: "isProhibitedNodeInsideCollectedBlockStatement",
  5801. value: function isProhibitedNodeInsideCollectedBlockStatement(targetNode) {
  5802. return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) || NodeGuards_1.NodeGuards.isSuperNode(targetNode);
  5803. }
  5804. }, {
  5805. key: "isScopeHoistingFunctionDeclaration",
  5806. value: function isScopeHoistingFunctionDeclaration(targetNode) {
  5807. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {
  5808. return false;
  5809. }
  5810. var scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);
  5811. var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
  5812. var indexInScope = scopeBody.indexOf(targetNode);
  5813. if (indexInScope === 0) {
  5814. return false;
  5815. }
  5816. var slicedBody = scopeBody.slice(0, indexInScope);
  5817. var hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);
  5818. var functionDeclarationName = targetNode.id.name;
  5819. var isScopeHoistedFunctionDeclaration = false;
  5820. estraverse.traverse(hostBlockStatementNode, {
  5821. enter: function enter(node) {
  5822. if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {
  5823. isScopeHoistedFunctionDeclaration = true;
  5824. return estraverse.VisitorOption.Break;
  5825. }
  5826. }
  5827. });
  5828. return isScopeHoistedFunctionDeclaration;
  5829. }
  5830. }, {
  5831. key: "isValidCollectedBlockStatementNode",
  5832. value: function isValidCollectedBlockStatementNode(blockStatementNode) {
  5833. if (!blockStatementNode.body.length) {
  5834. return false;
  5835. }
  5836. var nestedBlockStatementsCount = 0;
  5837. var isValidBlockStatementNode = true;
  5838. estraverse.traverse(blockStatementNode, {
  5839. enter: function enter(node) {
  5840. if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {
  5841. nestedBlockStatementsCount++;
  5842. }
  5843. if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
  5844. isValidBlockStatementNode = false;
  5845. return estraverse.VisitorOption.Break;
  5846. }
  5847. }
  5848. });
  5849. return isValidBlockStatementNode;
  5850. }
  5851. }, {
  5852. key: "isValidWrappedBlockStatementNode",
  5853. value: function isValidWrappedBlockStatementNode(blockStatementNode) {
  5854. if (!blockStatementNode.body.length) {
  5855. return false;
  5856. }
  5857. var isValidBlockStatementNode = true;
  5858. estraverse.traverse(blockStatementNode, {
  5859. enter: function enter(node) {
  5860. if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {
  5861. isValidBlockStatementNode = false;
  5862. return estraverse.VisitorOption.Break;
  5863. }
  5864. }
  5865. });
  5866. if (!isValidBlockStatementNode) {
  5867. return false;
  5868. }
  5869. var parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockStatementNode);
  5870. return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;
  5871. }
  5872. }]);
  5873. return DeadCodeInjectionTransformer;
  5874. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5875. DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';
  5876. DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;
  5877. DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;
  5878. DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer];
  5879. DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DeadCodeInjectionTransformer);
  5880. exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;
  5881. /***/ }),
  5882. /***/ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts":
  5883. /*!**********************************************************************************!*\
  5884. !*** ./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts ***!
  5885. \**********************************************************************************/
  5886. /*! no static exports found */
  5887. /***/ (function(module, exports, __webpack_require__) {
  5888. "use strict";
  5889. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5890. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5891. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5892. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5893. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5894. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5895. Object.defineProperty(exports, "__esModule", {
  5896. value: true
  5897. });
  5898. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5899. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5900. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5901. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5902. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  5903. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  5904. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  5905. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  5906. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  5907. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  5908. var CatchClauseTransformer =
  5909. /*#__PURE__*/
  5910. function (_AbstractNodeTransfor) {
  5911. (0, _inherits2["default"])(CatchClauseTransformer, _AbstractNodeTransfor);
  5912. function CatchClauseTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  5913. var _this;
  5914. (0, _classCallCheck2["default"])(this, CatchClauseTransformer);
  5915. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CatchClauseTransformer).call(this, randomGenerator, options));
  5916. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  5917. return _this;
  5918. }
  5919. (0, _createClass2["default"])(CatchClauseTransformer, [{
  5920. key: "getVisitor",
  5921. value: function getVisitor(transformationStage) {
  5922. var _this2 = this;
  5923. switch (transformationStage) {
  5924. case TransformationStage_1.TransformationStage.Obfuscating:
  5925. return {
  5926. enter: function enter(node, parentNode) {
  5927. if (parentNode && NodeGuards_1.NodeGuards.isCatchClauseNode(node)) {
  5928. return _this2.transformNode(node, parentNode);
  5929. }
  5930. }
  5931. };
  5932. default:
  5933. return null;
  5934. }
  5935. }
  5936. }, {
  5937. key: "transformNode",
  5938. value: function transformNode(catchClauseNode, parentNode) {
  5939. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(catchClauseNode);
  5940. if (!lexicalScopeNode) {
  5941. return catchClauseNode;
  5942. }
  5943. this.storeCatchClauseParam(catchClauseNode, lexicalScopeNode);
  5944. this.replaceCatchClauseParam(catchClauseNode, lexicalScopeNode);
  5945. return catchClauseNode;
  5946. }
  5947. }, {
  5948. key: "storeCatchClauseParam",
  5949. value: function storeCatchClauseParam(catchClauseNode, lexicalScopeNode) {
  5950. if (NodeGuards_1.NodeGuards.isIdentifierNode(catchClauseNode.param)) {
  5951. this.identifierObfuscatingReplacer.storeLocalName(catchClauseNode.param.name, lexicalScopeNode);
  5952. }
  5953. }
  5954. }, {
  5955. key: "replaceCatchClauseParam",
  5956. value: function replaceCatchClauseParam(catchClauseNode, lexicalScopeNode) {
  5957. var _this3 = this;
  5958. estraverse.replace(catchClauseNode, {
  5959. enter: function enter(node, parentNode) {
  5960. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode)) {
  5961. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  5962. var newIdentifierName = newIdentifier.name;
  5963. if (node.name !== newIdentifierName) {
  5964. node.name = newIdentifierName;
  5965. NodeMetadata_1.NodeMetadata.set(node, {
  5966. renamedIdentifier: true
  5967. });
  5968. }
  5969. }
  5970. }
  5971. });
  5972. }
  5973. }]);
  5974. return CatchClauseTransformer;
  5975. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  5976. CatchClauseTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CatchClauseTransformer);
  5977. exports.CatchClauseTransformer = CatchClauseTransformer;
  5978. /***/ }),
  5979. /***/ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts":
  5980. /*!***************************************************************************************!*\
  5981. !*** ./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts ***!
  5982. \***************************************************************************************/
  5983. /*! no static exports found */
  5984. /***/ (function(module, exports, __webpack_require__) {
  5985. "use strict";
  5986. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  5987. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  5988. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  5989. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  5990. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  5991. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  5992. Object.defineProperty(exports, "__esModule", {
  5993. value: true
  5994. });
  5995. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  5996. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  5997. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  5998. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  5999. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6000. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  6001. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6002. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6003. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6004. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6005. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6006. var ClassDeclarationTransformer =
  6007. /*#__PURE__*/
  6008. function (_AbstractNodeTransfor) {
  6009. (0, _inherits2["default"])(ClassDeclarationTransformer, _AbstractNodeTransfor);
  6010. function ClassDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6011. var _this;
  6012. (0, _classCallCheck2["default"])(this, ClassDeclarationTransformer);
  6013. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ClassDeclarationTransformer).call(this, randomGenerator, options));
  6014. _this.replaceableIdentifiers = new Map();
  6015. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6016. return _this;
  6017. }
  6018. (0, _createClass2["default"])(ClassDeclarationTransformer, [{
  6019. key: "getVisitor",
  6020. value: function getVisitor(transformationStage) {
  6021. var _this2 = this;
  6022. switch (transformationStage) {
  6023. case TransformationStage_1.TransformationStage.Obfuscating:
  6024. return {
  6025. enter: function enter(node, parentNode) {
  6026. if (parentNode && NodeGuards_1.NodeGuards.isClassDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
  6027. return _this2.transformNode(node, parentNode);
  6028. }
  6029. }
  6030. };
  6031. default:
  6032. return null;
  6033. }
  6034. }
  6035. }, {
  6036. key: "transformNode",
  6037. value: function transformNode(classDeclarationNode, parentNode) {
  6038. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(classDeclarationNode);
  6039. if (!lexicalScopeNode) {
  6040. return classDeclarationNode;
  6041. }
  6042. var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
  6043. if (!this.options.renameGlobals && isGlobalDeclaration) {
  6044. return classDeclarationNode;
  6045. }
  6046. this.storeClassName(classDeclarationNode, lexicalScopeNode, isGlobalDeclaration);
  6047. if (this.replaceableIdentifiers.has(lexicalScopeNode)) {
  6048. this.replaceScopeCachedIdentifiers(classDeclarationNode, lexicalScopeNode);
  6049. } else {
  6050. this.replaceScopeIdentifiers(lexicalScopeNode);
  6051. }
  6052. return classDeclarationNode;
  6053. }
  6054. }, {
  6055. key: "storeClassName",
  6056. value: function storeClassName(classDeclarationNode, lexicalScopeNode, isGlobalDeclaration) {
  6057. if (isGlobalDeclaration) {
  6058. this.identifierObfuscatingReplacer.storeGlobalName(classDeclarationNode.id.name, lexicalScopeNode);
  6059. } else {
  6060. this.identifierObfuscatingReplacer.storeLocalName(classDeclarationNode.id.name, lexicalScopeNode);
  6061. }
  6062. }
  6063. }, {
  6064. key: "replaceScopeCachedIdentifiers",
  6065. value: function replaceScopeCachedIdentifiers(classDeclarationNode, lexicalScopeNode) {
  6066. var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(lexicalScopeNode);
  6067. var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(classDeclarationNode.id.name);
  6068. if (!cachedReplaceableIdentifiers) {
  6069. return;
  6070. }
  6071. var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
  6072. for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
  6073. var replaceableIdentifier = cachedReplaceableIdentifiers[i];
  6074. var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
  6075. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6076. NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
  6077. renamedIdentifier: true
  6078. });
  6079. }
  6080. }
  6081. }, {
  6082. key: "replaceScopeIdentifiers",
  6083. value: function replaceScopeIdentifiers(lexicalScopeNode) {
  6084. var _this3 = this;
  6085. var storedReplaceableIdentifiersNamesMap = new Map();
  6086. estraverse.replace(lexicalScopeNode, {
  6087. enter: function enter(node, parentNode) {
  6088. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6089. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  6090. var newIdentifierName = newIdentifier.name;
  6091. if (node.name !== newIdentifierName) {
  6092. node.name = newIdentifierName;
  6093. NodeMetadata_1.NodeMetadata.set(node, {
  6094. renamedIdentifier: true
  6095. });
  6096. } else {
  6097. var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
  6098. storedReplaceableIdentifiers.push(node);
  6099. storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
  6100. }
  6101. }
  6102. }
  6103. });
  6104. this.replaceableIdentifiers.set(lexicalScopeNode, storedReplaceableIdentifiersNamesMap);
  6105. }
  6106. }]);
  6107. return ClassDeclarationTransformer;
  6108. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6109. ClassDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ClassDeclarationTransformer);
  6110. exports.ClassDeclarationTransformer = ClassDeclarationTransformer;
  6111. /***/ }),
  6112. /***/ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts":
  6113. /*!******************************************************************************************!*\
  6114. !*** ./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts ***!
  6115. \******************************************************************************************/
  6116. /*! no static exports found */
  6117. /***/ (function(module, exports, __webpack_require__) {
  6118. "use strict";
  6119. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6120. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6121. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6122. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6123. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6124. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6125. Object.defineProperty(exports, "__esModule", {
  6126. value: true
  6127. });
  6128. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6129. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6130. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6131. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6132. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6133. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  6134. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6135. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6136. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6137. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6138. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6139. var FunctionDeclarationTransformer =
  6140. /*#__PURE__*/
  6141. function (_AbstractNodeTransfor) {
  6142. (0, _inherits2["default"])(FunctionDeclarationTransformer, _AbstractNodeTransfor);
  6143. function FunctionDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6144. var _this;
  6145. (0, _classCallCheck2["default"])(this, FunctionDeclarationTransformer);
  6146. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionDeclarationTransformer).call(this, randomGenerator, options));
  6147. _this.replaceableIdentifiers = new Map();
  6148. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6149. return _this;
  6150. }
  6151. (0, _createClass2["default"])(FunctionDeclarationTransformer, [{
  6152. key: "getVisitor",
  6153. value: function getVisitor(transformationStage) {
  6154. var _this2 = this;
  6155. switch (transformationStage) {
  6156. case TransformationStage_1.TransformationStage.Obfuscating:
  6157. return {
  6158. enter: function enter(node, parentNode) {
  6159. if (parentNode && NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
  6160. return _this2.transformNode(node, parentNode);
  6161. }
  6162. }
  6163. };
  6164. default:
  6165. return null;
  6166. }
  6167. }
  6168. }, {
  6169. key: "transformNode",
  6170. value: function transformNode(functionDeclarationNode, parentNode) {
  6171. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(parentNode);
  6172. if (!lexicalScopeNode) {
  6173. return functionDeclarationNode;
  6174. }
  6175. var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
  6176. if (!this.options.renameGlobals && isGlobalDeclaration) {
  6177. return functionDeclarationNode;
  6178. }
  6179. this.storeFunctionName(functionDeclarationNode, lexicalScopeNode, isGlobalDeclaration);
  6180. if (this.replaceableIdentifiers.has(lexicalScopeNode)) {
  6181. this.replaceScopeCachedIdentifiers(functionDeclarationNode, lexicalScopeNode);
  6182. } else {
  6183. this.replaceScopeIdentifiers(lexicalScopeNode);
  6184. }
  6185. return functionDeclarationNode;
  6186. }
  6187. }, {
  6188. key: "storeFunctionName",
  6189. value: function storeFunctionName(functionDeclarationNode, lexicalScopeNode, isGlobalDeclaration) {
  6190. if (isGlobalDeclaration) {
  6191. this.identifierObfuscatingReplacer.storeGlobalName(functionDeclarationNode.id.name, lexicalScopeNode);
  6192. } else {
  6193. this.identifierObfuscatingReplacer.storeLocalName(functionDeclarationNode.id.name, lexicalScopeNode);
  6194. }
  6195. }
  6196. }, {
  6197. key: "replaceScopeCachedIdentifiers",
  6198. value: function replaceScopeCachedIdentifiers(functionDeclarationNode, lexicalScopeNode) {
  6199. var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(lexicalScopeNode);
  6200. var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(functionDeclarationNode.id.name);
  6201. if (!cachedReplaceableIdentifiers) {
  6202. return;
  6203. }
  6204. var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
  6205. for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
  6206. var replaceableIdentifier = cachedReplaceableIdentifiers[i];
  6207. var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
  6208. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6209. NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
  6210. renamedIdentifier: true
  6211. });
  6212. }
  6213. }
  6214. }, {
  6215. key: "replaceScopeIdentifiers",
  6216. value: function replaceScopeIdentifiers(lexicalScopeNode) {
  6217. var _this3 = this;
  6218. var storedReplaceableIdentifiersNamesMap = new Map();
  6219. estraverse.replace(lexicalScopeNode, {
  6220. enter: function enter(node, parentNode) {
  6221. if (parentNode && parentNode !== lexicalScopeNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6222. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  6223. var newIdentifierName = newIdentifier.name;
  6224. if (node.name !== newIdentifierName) {
  6225. node.name = newIdentifierName;
  6226. NodeMetadata_1.NodeMetadata.set(node, {
  6227. renamedIdentifier: true
  6228. });
  6229. } else {
  6230. var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
  6231. storedReplaceableIdentifiers.push(node);
  6232. storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
  6233. }
  6234. }
  6235. }
  6236. });
  6237. this.replaceableIdentifiers.set(lexicalScopeNode, storedReplaceableIdentifiersNamesMap);
  6238. }
  6239. }]);
  6240. return FunctionDeclarationTransformer;
  6241. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6242. FunctionDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionDeclarationTransformer);
  6243. exports.FunctionDeclarationTransformer = FunctionDeclarationTransformer;
  6244. /***/ }),
  6245. /***/ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts":
  6246. /*!*******************************************************************************!*\
  6247. !*** ./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts ***!
  6248. \*******************************************************************************/
  6249. /*! no static exports found */
  6250. /***/ (function(module, exports, __webpack_require__) {
  6251. "use strict";
  6252. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6253. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6254. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6255. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6256. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6257. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6258. var FunctionTransformer_1;
  6259. Object.defineProperty(exports, "__esModule", {
  6260. value: true
  6261. });
  6262. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6263. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6264. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6265. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6266. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6267. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6268. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6269. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6270. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6271. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6272. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  6273. var FunctionTransformer = FunctionTransformer_1 =
  6274. /*#__PURE__*/
  6275. function (_AbstractNodeTransfor) {
  6276. (0, _inherits2["default"])(FunctionTransformer, _AbstractNodeTransfor);
  6277. function FunctionTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6278. var _this;
  6279. (0, _classCallCheck2["default"])(this, FunctionTransformer);
  6280. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionTransformer).call(this, randomGenerator, options));
  6281. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6282. return _this;
  6283. }
  6284. (0, _createClass2["default"])(FunctionTransformer, [{
  6285. key: "getVisitor",
  6286. value: function getVisitor(transformationStage) {
  6287. var _this2 = this;
  6288. switch (transformationStage) {
  6289. case TransformationStage_1.TransformationStage.Obfuscating:
  6290. return {
  6291. enter: function enter(node, parentNode) {
  6292. if (parentNode && NodeGuards_1.NodeGuards.isFunctionNode(node)) {
  6293. return _this2.transformNode(node, parentNode);
  6294. }
  6295. }
  6296. };
  6297. default:
  6298. return null;
  6299. }
  6300. }
  6301. }, {
  6302. key: "transformNode",
  6303. value: function transformNode(functionNode, parentNode) {
  6304. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(functionNode);
  6305. if (!lexicalScopeNode) {
  6306. return functionNode;
  6307. }
  6308. this.storeFunctionParams(functionNode, lexicalScopeNode);
  6309. this.replaceFunctionParams(functionNode, lexicalScopeNode);
  6310. return functionNode;
  6311. }
  6312. }, {
  6313. key: "isGlobalFunctionDeclarationIdentifier",
  6314. value: function isGlobalFunctionDeclarationIdentifier(node, parentNode) {
  6315. if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode) || parentNode.id !== node) {
  6316. return false;
  6317. }
  6318. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(parentNode)[1];
  6319. if (!lexicalScopeNode) {
  6320. return false;
  6321. }
  6322. var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
  6323. return !this.options.renameGlobals && isGlobalDeclaration;
  6324. }
  6325. }, {
  6326. key: "storeFunctionParams",
  6327. value: function storeFunctionParams(functionNode, lexicalScopeNode) {
  6328. var _this3 = this;
  6329. var visitor = {
  6330. enter: function enter(node, parentNode) {
  6331. if (FunctionTransformer_1.isProhibitedIdentifierOfPropertyNode(node, parentNode)) {
  6332. return;
  6333. }
  6334. if (NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.left)) {
  6335. _this3.identifierObfuscatingReplacer.storeLocalName(node.left.name, lexicalScopeNode);
  6336. return estraverse.VisitorOption.Skip;
  6337. }
  6338. if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  6339. _this3.identifierObfuscatingReplacer.storeLocalName(node.name, lexicalScopeNode);
  6340. }
  6341. }
  6342. };
  6343. functionNode.params.forEach(function (paramsNode) {
  6344. estraverse.traverse(paramsNode, visitor);
  6345. });
  6346. }
  6347. }, {
  6348. key: "replaceFunctionParams",
  6349. value: function replaceFunctionParams(functionNode, lexicalScopeNode) {
  6350. var _this4 = this;
  6351. var ignoredIdentifierNamesSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
  6352. var visitor = {
  6353. enter: function enter(node, parentNode) {
  6354. if (NodeGuards_1.NodeGuards.isFunctionNode(node) && node !== functionNode) {
  6355. _this4.replaceFunctionParams(node, lexicalScopeNode, new Set(ignoredIdentifierNamesSet));
  6356. return estraverse.VisitorOption.Skip;
  6357. }
  6358. if (FunctionTransformer_1.isProhibitedIdentifierOfShorthandPropertyNode(node)) {
  6359. ignoredIdentifierNamesSet.add(node.key.name);
  6360. return;
  6361. }
  6362. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node) && !ignoredIdentifierNamesSet.has(node.name)) {
  6363. if (_this4.isGlobalFunctionDeclarationIdentifier(node, parentNode)) {
  6364. return;
  6365. }
  6366. var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  6367. var newIdentifierName = newIdentifier.name;
  6368. if (node.name !== newIdentifierName) {
  6369. node.name = newIdentifierName;
  6370. NodeMetadata_1.NodeMetadata.set(node, {
  6371. renamedIdentifier: true
  6372. });
  6373. }
  6374. }
  6375. }
  6376. };
  6377. estraverse.replace(functionNode, visitor);
  6378. }
  6379. }], [{
  6380. key: "isProhibitedIdentifierOfPropertyNode",
  6381. value: function isProhibitedIdentifierOfPropertyNode(node, parentNode) {
  6382. return NodeGuards_1.NodeGuards.isIdentifierNode(node) && !!parentNode && NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === node;
  6383. }
  6384. }, {
  6385. key: "isProhibitedIdentifierOfShorthandPropertyNode",
  6386. value: function isProhibitedIdentifierOfShorthandPropertyNode(node) {
  6387. return NodeGuards_1.NodeGuards.isPropertyNode(node) && node.shorthand && NodeGuards_1.NodeGuards.isIdentifierNode(node.key);
  6388. }
  6389. }]);
  6390. return FunctionTransformer;
  6391. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6392. FunctionTransformer = FunctionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionTransformer);
  6393. exports.FunctionTransformer = FunctionTransformer;
  6394. /***/ }),
  6395. /***/ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts":
  6396. /*!****************************************************************************************!*\
  6397. !*** ./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts ***!
  6398. \****************************************************************************************/
  6399. /*! no static exports found */
  6400. /***/ (function(module, exports, __webpack_require__) {
  6401. "use strict";
  6402. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6403. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6404. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6405. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6406. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6407. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6408. var ImportDeclarationTransformer_1;
  6409. Object.defineProperty(exports, "__esModule", {
  6410. value: true
  6411. });
  6412. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6413. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6414. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6415. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6416. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6417. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6418. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6419. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6420. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6421. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6422. var ImportDeclarationTransformer = ImportDeclarationTransformer_1 =
  6423. /*#__PURE__*/
  6424. function (_AbstractNodeTransfor) {
  6425. (0, _inherits2["default"])(ImportDeclarationTransformer, _AbstractNodeTransfor);
  6426. function ImportDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6427. var _this;
  6428. (0, _classCallCheck2["default"])(this, ImportDeclarationTransformer);
  6429. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ImportDeclarationTransformer).call(this, randomGenerator, options));
  6430. _this.replaceableIdentifiers = new Map();
  6431. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6432. return _this;
  6433. }
  6434. (0, _createClass2["default"])(ImportDeclarationTransformer, [{
  6435. key: "getVisitor",
  6436. value: function getVisitor(transformationStage) {
  6437. var _this2 = this;
  6438. switch (transformationStage) {
  6439. case TransformationStage_1.TransformationStage.Obfuscating:
  6440. return {
  6441. enter: function enter(node, parentNode) {
  6442. if (parentNode && NodeGuards_1.NodeGuards.isImportDeclarationNode(node)) {
  6443. return _this2.transformNode(node, parentNode);
  6444. }
  6445. }
  6446. };
  6447. default:
  6448. return null;
  6449. }
  6450. }
  6451. }, {
  6452. key: "transformNode",
  6453. value: function transformNode(importDeclarationNode, parentNode) {
  6454. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(importDeclarationNode);
  6455. if (!lexicalScopeNode) {
  6456. return importDeclarationNode;
  6457. }
  6458. this.storeImportSpecifierNames(importDeclarationNode, lexicalScopeNode);
  6459. if (this.replaceableIdentifiers.has(lexicalScopeNode)) {
  6460. this.replaceScopeCachedIdentifiers(lexicalScopeNode);
  6461. } else {
  6462. this.replaceScopeIdentifiers(lexicalScopeNode);
  6463. }
  6464. return importDeclarationNode;
  6465. }
  6466. }, {
  6467. key: "storeImportSpecifierNames",
  6468. value: function storeImportSpecifierNames(importDeclarationNode, lexicalScopeNode) {
  6469. var _this3 = this;
  6470. importDeclarationNode.specifiers.forEach(function (importSpecifierNode) {
  6471. if (ImportDeclarationTransformer_1.isProhibitedImportSpecifierNode(importSpecifierNode)) {
  6472. return;
  6473. }
  6474. _this3.identifierObfuscatingReplacer.storeGlobalName(importSpecifierNode.local.name, lexicalScopeNode);
  6475. });
  6476. }
  6477. }, {
  6478. key: "replaceScopeCachedIdentifiers",
  6479. value: function replaceScopeCachedIdentifiers(lexicalScopeNode) {
  6480. var _this4 = this;
  6481. var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(lexicalScopeNode);
  6482. cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) {
  6483. var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
  6484. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6485. NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
  6486. renamedIdentifier: true
  6487. });
  6488. });
  6489. }
  6490. }, {
  6491. key: "replaceScopeIdentifiers",
  6492. value: function replaceScopeIdentifiers(lexicalScopeNode) {
  6493. var _this5 = this;
  6494. var storedReplaceableIdentifiers = [];
  6495. estraverse.replace(lexicalScopeNode, {
  6496. enter: function enter(node, parentNode) {
  6497. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6498. var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  6499. var newIdentifierName = newIdentifier.name;
  6500. if (node.name !== newIdentifierName) {
  6501. node.name = newIdentifierName;
  6502. NodeMetadata_1.NodeMetadata.set(node, {
  6503. renamedIdentifier: true
  6504. });
  6505. } else {
  6506. storedReplaceableIdentifiers.push(node);
  6507. }
  6508. }
  6509. }
  6510. });
  6511. this.replaceableIdentifiers.set(lexicalScopeNode, storedReplaceableIdentifiers);
  6512. }
  6513. }], [{
  6514. key: "isProhibitedImportSpecifierNode",
  6515. value: function isProhibitedImportSpecifierNode(importSpecifierNode) {
  6516. return NodeGuards_1.NodeGuards.isImportSpecifierNode(importSpecifierNode) && importSpecifierNode.imported.name === importSpecifierNode.local.name;
  6517. }
  6518. }]);
  6519. return ImportDeclarationTransformer;
  6520. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6521. ImportDeclarationTransformer = ImportDeclarationTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ImportDeclarationTransformer);
  6522. exports.ImportDeclarationTransformer = ImportDeclarationTransformer;
  6523. /***/ }),
  6524. /***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts":
  6525. /*!***************************************************************************************!*\
  6526. !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***!
  6527. \***************************************************************************************/
  6528. /*! no static exports found */
  6529. /***/ (function(module, exports, __webpack_require__) {
  6530. "use strict";
  6531. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6532. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6533. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6534. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6535. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6536. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6537. Object.defineProperty(exports, "__esModule", {
  6538. value: true
  6539. });
  6540. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6541. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6542. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6543. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6544. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6545. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6546. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6547. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6548. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6549. var LabeledStatementTransformer =
  6550. /*#__PURE__*/
  6551. function (_AbstractNodeTransfor) {
  6552. (0, _inherits2["default"])(LabeledStatementTransformer, _AbstractNodeTransfor);
  6553. function LabeledStatementTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6554. var _this;
  6555. (0, _classCallCheck2["default"])(this, LabeledStatementTransformer);
  6556. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LabeledStatementTransformer).call(this, randomGenerator, options));
  6557. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6558. return _this;
  6559. }
  6560. (0, _createClass2["default"])(LabeledStatementTransformer, [{
  6561. key: "getVisitor",
  6562. value: function getVisitor(transformationStage) {
  6563. var _this2 = this;
  6564. switch (transformationStage) {
  6565. case TransformationStage_1.TransformationStage.Obfuscating:
  6566. return {
  6567. enter: function enter(node, parentNode) {
  6568. if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {
  6569. return _this2.transformNode(node, parentNode);
  6570. }
  6571. }
  6572. };
  6573. default:
  6574. return null;
  6575. }
  6576. }
  6577. }, {
  6578. key: "transformNode",
  6579. value: function transformNode(labeledStatementNode, parentNode) {
  6580. var lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);
  6581. if (!lexicalScopeNode) {
  6582. return labeledStatementNode;
  6583. }
  6584. this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);
  6585. this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);
  6586. return labeledStatementNode;
  6587. }
  6588. }, {
  6589. key: "storeLabeledStatementName",
  6590. value: function storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
  6591. this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label.name, lexicalScopeNode);
  6592. }
  6593. }, {
  6594. key: "replaceLabeledStatementName",
  6595. value: function replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {
  6596. var _this3 = this;
  6597. estraverse.replace(labeledStatementNode, {
  6598. enter: function enter(node, parentNode) {
  6599. if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {
  6600. var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  6601. node.name = newIdentifier.name;
  6602. }
  6603. }
  6604. });
  6605. }
  6606. }]);
  6607. return LabeledStatementTransformer;
  6608. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6609. LabeledStatementTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LabeledStatementTransformer);
  6610. exports.LabeledStatementTransformer = LabeledStatementTransformer;
  6611. /***/ }),
  6612. /***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts":
  6613. /*!******************************************************************************!*\
  6614. !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***!
  6615. \******************************************************************************/
  6616. /*! no static exports found */
  6617. /***/ (function(module, exports, __webpack_require__) {
  6618. "use strict";
  6619. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6620. var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof"));
  6621. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6622. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6623. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6624. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6625. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6626. Object.defineProperty(exports, "__esModule", {
  6627. value: true
  6628. });
  6629. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6630. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6631. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6632. var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts");
  6633. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6634. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6635. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6636. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6637. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  6638. var LiteralTransformer =
  6639. /*#__PURE__*/
  6640. function (_AbstractNodeTransfor) {
  6641. (0, _inherits2["default"])(LiteralTransformer, _AbstractNodeTransfor);
  6642. function LiteralTransformer(literalObfuscatingReplacerFactory, randomGenerator, options) {
  6643. var _this;
  6644. (0, _classCallCheck2["default"])(this, LiteralTransformer);
  6645. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LiteralTransformer).call(this, randomGenerator, options));
  6646. _this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory;
  6647. return _this;
  6648. }
  6649. (0, _createClass2["default"])(LiteralTransformer, [{
  6650. key: "getVisitor",
  6651. value: function getVisitor(transformationStage) {
  6652. var _this2 = this;
  6653. switch (transformationStage) {
  6654. case TransformationStage_1.TransformationStage.Obfuscating:
  6655. return {
  6656. enter: function enter(node, parentNode) {
  6657. if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {
  6658. return _this2.transformNode(node, parentNode);
  6659. }
  6660. }
  6661. };
  6662. default:
  6663. return null;
  6664. }
  6665. }
  6666. }, {
  6667. key: "transformNode",
  6668. value: function transformNode(literalNode, parentNode) {
  6669. if (this.isProhibitedNode(literalNode, parentNode)) {
  6670. return literalNode;
  6671. }
  6672. var newLiteralNode;
  6673. switch ((0, _typeof2["default"])(literalNode.value)) {
  6674. case 'boolean':
  6675. newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode.value);
  6676. break;
  6677. case 'number':
  6678. newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode.value);
  6679. break;
  6680. case 'string':
  6681. newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode.value);
  6682. break;
  6683. default:
  6684. newLiteralNode = literalNode;
  6685. }
  6686. NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);
  6687. return newLiteralNode;
  6688. }
  6689. }, {
  6690. key: "isProhibitedNode",
  6691. value: function isProhibitedNode(literalNode, parentNode) {
  6692. if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
  6693. return true;
  6694. }
  6695. if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {
  6696. return true;
  6697. }
  6698. return false;
  6699. }
  6700. }]);
  6701. return LiteralTransformer;
  6702. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6703. LiteralTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LiteralTransformer);
  6704. exports.LiteralTransformer = LiteralTransformer;
  6705. /***/ }),
  6706. /***/ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts":
  6707. /*!******************************************************************************************!*\
  6708. !*** ./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts ***!
  6709. \******************************************************************************************/
  6710. /*! no static exports found */
  6711. /***/ (function(module, exports, __webpack_require__) {
  6712. "use strict";
  6713. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6714. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6715. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6716. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6717. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6718. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6719. Object.defineProperty(exports, "__esModule", {
  6720. value: true
  6721. });
  6722. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6723. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6724. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6725. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  6726. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  6727. var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  6728. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  6729. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  6730. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  6731. var NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts");
  6732. var NodeBlockLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeBlockLexicalScopeUtils */ "./src/node/NodeBlockLexicalScopeUtils.ts");
  6733. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  6734. var VariableDeclarationTransformer =
  6735. /*#__PURE__*/
  6736. function (_AbstractNodeTransfor) {
  6737. (0, _inherits2["default"])(VariableDeclarationTransformer, _AbstractNodeTransfor);
  6738. function VariableDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  6739. var _this;
  6740. (0, _classCallCheck2["default"])(this, VariableDeclarationTransformer);
  6741. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(VariableDeclarationTransformer).call(this, randomGenerator, options));
  6742. _this.replaceableIdentifiers = new Map();
  6743. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  6744. return _this;
  6745. }
  6746. (0, _createClass2["default"])(VariableDeclarationTransformer, [{
  6747. key: "getVisitor",
  6748. value: function getVisitor(transformationStage) {
  6749. var _this2 = this;
  6750. switch (transformationStage) {
  6751. case TransformationStage_1.TransformationStage.Obfuscating:
  6752. return {
  6753. enter: function enter(node, parentNode) {
  6754. if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {
  6755. return _this2.transformNode(node, parentNode);
  6756. }
  6757. }
  6758. };
  6759. default:
  6760. return null;
  6761. }
  6762. }
  6763. }, {
  6764. key: "transformNode",
  6765. value: function transformNode(variableDeclarationNode, parentNode) {
  6766. var lexicalScopeNode = variableDeclarationNode.kind === 'var' ? NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(variableDeclarationNode) : NodeBlockLexicalScopeUtils_1.NodeBlockLexicalScopeUtils.getLexicalScope(variableDeclarationNode);
  6767. if (!lexicalScopeNode) {
  6768. return variableDeclarationNode;
  6769. }
  6770. var isGlobalDeclaration = lexicalScopeNode.type === NodeType_1.NodeType.Program;
  6771. if (!this.options.renameGlobals && isGlobalDeclaration) {
  6772. return variableDeclarationNode;
  6773. }
  6774. var scopeNode = variableDeclarationNode.kind === 'var' ? lexicalScopeNode : parentNode;
  6775. this.storeVariableNames(variableDeclarationNode, lexicalScopeNode, isGlobalDeclaration);
  6776. if (this.replaceableIdentifiers.has(scopeNode)) {
  6777. this.replaceScopeCachedIdentifiers(variableDeclarationNode, lexicalScopeNode, scopeNode);
  6778. } else {
  6779. this.replaceScopeIdentifiers(scopeNode, lexicalScopeNode);
  6780. }
  6781. return variableDeclarationNode;
  6782. }
  6783. }, {
  6784. key: "storeVariableNames",
  6785. value: function storeVariableNames(variableDeclarationNode, lexicalScopeNode, isGlobalDeclaration) {
  6786. var _this3 = this;
  6787. this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) {
  6788. if (isGlobalDeclaration) {
  6789. _this3.identifierObfuscatingReplacer.storeGlobalName(identifierNode.name, lexicalScopeNode);
  6790. } else {
  6791. _this3.identifierObfuscatingReplacer.storeLocalName(identifierNode.name, lexicalScopeNode);
  6792. }
  6793. });
  6794. }
  6795. }, {
  6796. key: "replaceScopeCachedIdentifiers",
  6797. value: function replaceScopeCachedIdentifiers(variableDeclarationNode, lexicalScopeNode, scopeNode) {
  6798. var _this4 = this;
  6799. var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(scopeNode);
  6800. var identifierNames = [];
  6801. this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) {
  6802. identifierNames.push(identifierNode.name);
  6803. });
  6804. identifierNames.forEach(function (identifierName) {
  6805. var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(identifierName);
  6806. if (!cachedReplaceableIdentifiers) {
  6807. return;
  6808. }
  6809. var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length;
  6810. for (var i = 0; i < cachedReplaceableIdentifierLength; i++) {
  6811. var replaceableIdentifier = cachedReplaceableIdentifiers[i];
  6812. if (identifierName !== replaceableIdentifier.name) {
  6813. continue;
  6814. }
  6815. var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, lexicalScopeNode);
  6816. replaceableIdentifier.name = newReplaceableIdentifier.name;
  6817. NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, {
  6818. renamedIdentifier: true
  6819. });
  6820. }
  6821. });
  6822. }
  6823. }, {
  6824. key: "replaceScopeIdentifiers",
  6825. value: function replaceScopeIdentifiers(scopeNode, lexicalScopeNode) {
  6826. var _this5 = this;
  6827. var storedReplaceableIdentifiersNamesMap = new Map();
  6828. estraverse.replace(scopeNode, {
  6829. enter: function enter(node, parentNode) {
  6830. if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) {
  6831. var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, lexicalScopeNode);
  6832. var newIdentifierName = newIdentifier.name;
  6833. if (node.name !== newIdentifierName) {
  6834. node.name = newIdentifierName;
  6835. NodeMetadata_1.NodeMetadata.set(node, {
  6836. renamedIdentifier: true
  6837. });
  6838. } else {
  6839. var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || [];
  6840. storedReplaceableIdentifiers.push(node);
  6841. storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers);
  6842. }
  6843. }
  6844. }
  6845. });
  6846. this.replaceableIdentifiers.set(scopeNode, storedReplaceableIdentifiersNamesMap);
  6847. }
  6848. }, {
  6849. key: "traverseDeclarationIdentifiers",
  6850. value: function traverseDeclarationIdentifiers(variableDeclarationNode, callback) {
  6851. variableDeclarationNode.declarations.forEach(function (declarationNode) {
  6852. estraverse.traverse(declarationNode.id, {
  6853. enter: function enter(node) {
  6854. if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {
  6855. return estraverse.VisitorOption.Skip;
  6856. }
  6857. if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  6858. callback(node);
  6859. }
  6860. }
  6861. });
  6862. });
  6863. }
  6864. }]);
  6865. return VariableDeclarationTransformer;
  6866. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  6867. VariableDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], VariableDeclarationTransformer);
  6868. exports.VariableDeclarationTransformer = VariableDeclarationTransformer;
  6869. /***/ }),
  6870. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts":
  6871. /*!*************************************************************************************************************!*\
  6872. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***!
  6873. \*************************************************************************************************************/
  6874. /*! no static exports found */
  6875. /***/ (function(module, exports, __webpack_require__) {
  6876. "use strict";
  6877. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6878. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6879. Object.defineProperty(exports, "__esModule", {
  6880. value: true
  6881. });
  6882. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6883. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6884. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6885. var AbstractObfuscatingReplacer = function AbstractObfuscatingReplacer(options) {
  6886. (0, _classCallCheck2["default"])(this, AbstractObfuscatingReplacer);
  6887. this.options = options;
  6888. };
  6889. AbstractObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractObfuscatingReplacer);
  6890. exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer;
  6891. /***/ }),
  6892. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts":
  6893. /*!****************************************************************************************************************************************************!*\
  6894. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***!
  6895. \****************************************************************************************************************************************************/
  6896. /*! no static exports found */
  6897. /***/ (function(module, exports, __webpack_require__) {
  6898. "use strict";
  6899. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6900. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6901. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6902. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6903. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6904. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6905. Object.defineProperty(exports, "__esModule", {
  6906. value: true
  6907. });
  6908. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  6909. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  6910. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  6911. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  6912. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  6913. var BaseIdentifierObfuscatingReplacer =
  6914. /*#__PURE__*/
  6915. function (_AbstractObfuscatingR) {
  6916. (0, _inherits2["default"])(BaseIdentifierObfuscatingReplacer, _AbstractObfuscatingR);
  6917. function BaseIdentifierObfuscatingReplacer(identifierNamesGeneratorFactory, options) {
  6918. var _this;
  6919. (0, _classCallCheck2["default"])(this, BaseIdentifierObfuscatingReplacer);
  6920. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BaseIdentifierObfuscatingReplacer).call(this, options));
  6921. _this.blockScopesMap = new Map();
  6922. _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  6923. return _this;
  6924. }
  6925. (0, _createClass2["default"])(BaseIdentifierObfuscatingReplacer, [{
  6926. key: "replace",
  6927. value: function replace(nodeValue, lexicalScopeNode) {
  6928. if (this.blockScopesMap.has(lexicalScopeNode)) {
  6929. var namesMap = this.blockScopesMap.get(lexicalScopeNode);
  6930. if (namesMap.has(nodeValue)) {
  6931. nodeValue = namesMap.get(nodeValue);
  6932. }
  6933. }
  6934. return NodeFactory_1.NodeFactory.identifierNode(nodeValue);
  6935. }
  6936. }, {
  6937. key: "storeGlobalName",
  6938. value: function storeGlobalName(nodeName, lexicalScopeNode) {
  6939. if (this.isReservedName(nodeName)) {
  6940. return;
  6941. }
  6942. var identifierName = this.identifierNamesGenerator.generateWithPrefix();
  6943. if (!this.blockScopesMap.has(lexicalScopeNode)) {
  6944. this.blockScopesMap.set(lexicalScopeNode, new Map());
  6945. }
  6946. var namesMap = this.blockScopesMap.get(lexicalScopeNode);
  6947. namesMap.set(nodeName, identifierName);
  6948. }
  6949. }, {
  6950. key: "storeLocalName",
  6951. value: function storeLocalName(nodeName, lexicalScopeNode) {
  6952. if (this.isReservedName(nodeName)) {
  6953. return;
  6954. }
  6955. var identifierName = this.identifierNamesGenerator.generate();
  6956. if (!this.blockScopesMap.has(lexicalScopeNode)) {
  6957. this.blockScopesMap.set(lexicalScopeNode, new Map());
  6958. }
  6959. var namesMap = this.blockScopesMap.get(lexicalScopeNode);
  6960. namesMap.set(nodeName, identifierName);
  6961. }
  6962. }, {
  6963. key: "preserveName",
  6964. value: function preserveName(name) {
  6965. this.identifierNamesGenerator.preserveName(name);
  6966. }
  6967. }, {
  6968. key: "isReservedName",
  6969. value: function isReservedName(name) {
  6970. if (!this.options.reservedNames.length) {
  6971. return false;
  6972. }
  6973. return this.options.reservedNames.some(function (reservedName) {
  6974. return new RegExp(reservedName, 'g').exec(name) !== null;
  6975. });
  6976. }
  6977. }]);
  6978. return BaseIdentifierObfuscatingReplacer;
  6979. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  6980. BaseIdentifierObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], BaseIdentifierObfuscatingReplacer);
  6981. exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer;
  6982. /***/ }),
  6983. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts":
  6984. /*!*************************************************************************************************************************************************!*\
  6985. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***!
  6986. \*************************************************************************************************************************************************/
  6987. /*! no static exports found */
  6988. /***/ (function(module, exports, __webpack_require__) {
  6989. "use strict";
  6990. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  6991. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  6992. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  6993. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  6994. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  6995. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  6996. var BooleanLiteralObfuscatingReplacer_1;
  6997. Object.defineProperty(exports, "__esModule", {
  6998. value: true
  6999. });
  7000. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7001. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7002. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7003. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  7004. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  7005. var BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 =
  7006. /*#__PURE__*/
  7007. function (_AbstractObfuscatingR) {
  7008. (0, _inherits2["default"])(BooleanLiteralObfuscatingReplacer, _AbstractObfuscatingR);
  7009. function BooleanLiteralObfuscatingReplacer(options) {
  7010. (0, _classCallCheck2["default"])(this, BooleanLiteralObfuscatingReplacer);
  7011. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(BooleanLiteralObfuscatingReplacer).call(this, options));
  7012. }
  7013. (0, _createClass2["default"])(BooleanLiteralObfuscatingReplacer, [{
  7014. key: "replace",
  7015. value: function replace(nodeValue) {
  7016. return nodeValue ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode();
  7017. }
  7018. }], [{
  7019. key: "getTrueUnaryExpressionNode",
  7020. value: function getTrueUnaryExpressionNode() {
  7021. return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode());
  7022. }
  7023. }, {
  7024. key: "getFalseUnaryExpressionNode",
  7025. value: function getFalseUnaryExpressionNode() {
  7026. return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());
  7027. }
  7028. }]);
  7029. return BooleanLiteralObfuscatingReplacer;
  7030. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  7031. BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], BooleanLiteralObfuscatingReplacer);
  7032. exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer;
  7033. /***/ }),
  7034. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts":
  7035. /*!************************************************************************************************************************************************!*\
  7036. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***!
  7037. \************************************************************************************************************************************************/
  7038. /*! no static exports found */
  7039. /***/ (function(module, exports, __webpack_require__) {
  7040. "use strict";
  7041. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7042. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7043. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7044. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7045. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7046. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7047. Object.defineProperty(exports, "__esModule", {
  7048. value: true
  7049. });
  7050. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7051. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7052. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7053. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  7054. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  7055. var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  7056. var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts");
  7057. var NumberLiteralObfuscatingReplacer =
  7058. /*#__PURE__*/
  7059. function (_AbstractObfuscatingR) {
  7060. (0, _inherits2["default"])(NumberLiteralObfuscatingReplacer, _AbstractObfuscatingR);
  7061. function NumberLiteralObfuscatingReplacer(options) {
  7062. var _this;
  7063. (0, _classCallCheck2["default"])(this, NumberLiteralObfuscatingReplacer);
  7064. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(NumberLiteralObfuscatingReplacer).call(this, options));
  7065. _this.numberLiteralCache = new Map();
  7066. return _this;
  7067. }
  7068. (0, _createClass2["default"])(NumberLiteralObfuscatingReplacer, [{
  7069. key: "replace",
  7070. value: function replace(nodeValue) {
  7071. var rawValue;
  7072. if (this.numberLiteralCache.has(nodeValue)) {
  7073. rawValue = this.numberLiteralCache.get(nodeValue);
  7074. } else {
  7075. if (!NumberUtils_1.NumberUtils.isCeil(nodeValue)) {
  7076. rawValue = String(nodeValue);
  7077. } else {
  7078. rawValue = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(NumberUtils_1.NumberUtils.toHex(nodeValue));
  7079. }
  7080. this.numberLiteralCache.set(nodeValue, rawValue);
  7081. }
  7082. return NodeFactory_1.NodeFactory.literalNode(nodeValue, rawValue);
  7083. }
  7084. }]);
  7085. return NumberLiteralObfuscatingReplacer;
  7086. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  7087. NumberLiteralObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], NumberLiteralObfuscatingReplacer);
  7088. exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer;
  7089. /***/ }),
  7090. /***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts":
  7091. /*!************************************************************************************************************************************************!*\
  7092. !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***!
  7093. \************************************************************************************************************************************************/
  7094. /*! no static exports found */
  7095. /***/ (function(module, exports, __webpack_require__) {
  7096. "use strict";
  7097. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7098. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7099. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7100. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7101. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7102. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7103. var StringLiteralObfuscatingReplacer_1;
  7104. Object.defineProperty(exports, "__esModule", {
  7105. value: true
  7106. });
  7107. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7108. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7109. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7110. var StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  7111. var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts");
  7112. var NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7113. var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  7114. var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts");
  7115. var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts");
  7116. var StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 =
  7117. /*#__PURE__*/
  7118. function (_AbstractObfuscatingR) {
  7119. (0, _inherits2["default"])(StringLiteralObfuscatingReplacer, _AbstractObfuscatingR);
  7120. function StringLiteralObfuscatingReplacer(stringArrayStorage, escapeSequenceEncoder, randomGenerator, cryptUtils, options) {
  7121. var _this;
  7122. (0, _classCallCheck2["default"])(this, StringLiteralObfuscatingReplacer);
  7123. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringLiteralObfuscatingReplacer).call(this, options));
  7124. _this.nodesCache = new Map();
  7125. _this.stringLiteralHexadecimalIndexCache = new Map();
  7126. _this.stringArrayStorage = stringArrayStorage;
  7127. _this.escapeSequenceEncoder = escapeSequenceEncoder;
  7128. _this.randomGenerator = randomGenerator;
  7129. _this.cryptUtils = cryptUtils;
  7130. _this.rc4Keys = _this.randomGenerator.getRandomGenerator().n(function () {
  7131. return _this.randomGenerator.getRandomGenerator().string({
  7132. length: StringLiteralObfuscatingReplacer_1.rc4KeyLength
  7133. });
  7134. }, StringLiteralObfuscatingReplacer_1.rc4KeysCount);
  7135. return _this;
  7136. }
  7137. (0, _createClass2["default"])(StringLiteralObfuscatingReplacer, [{
  7138. key: "replace",
  7139. value: function replace(nodeValue) {
  7140. if (this.isReservedString(nodeValue)) {
  7141. return this.replaceWithReservedLiteralNode(nodeValue);
  7142. }
  7143. var useStringArray = this.canUseStringArray(nodeValue);
  7144. var cacheKey = "".concat(nodeValue, "-").concat(String(useStringArray));
  7145. var useCacheValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4;
  7146. if (useCacheValue) {
  7147. return this.nodesCache.get(cacheKey);
  7148. }
  7149. var resultNode = useStringArray ? this.replaceWithStringArrayCallNode(nodeValue) : this.replaceWithLiteralNode(nodeValue);
  7150. this.nodesCache.set(cacheKey, resultNode);
  7151. return resultNode;
  7152. }
  7153. }, {
  7154. key: "canUseStringArray",
  7155. value: function canUseStringArray(nodeValue) {
  7156. return this.options.stringArray && nodeValue.length >= StringLiteralObfuscatingReplacer_1.minimumLengthForStringArray && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;
  7157. }
  7158. }, {
  7159. key: "getStringArrayHexadecimalIndex",
  7160. value: function getStringArrayHexadecimalIndex(value, stringArrayStorageLength) {
  7161. if (this.stringLiteralHexadecimalIndexCache.has(value)) {
  7162. return {
  7163. fromCache: true,
  7164. index: this.stringLiteralHexadecimalIndexCache.get(value)
  7165. };
  7166. }
  7167. var hexadecimalRawIndex = NumberUtils_1.NumberUtils.toHex(stringArrayStorageLength);
  7168. var hexadecimalIndex = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(hexadecimalRawIndex);
  7169. this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex);
  7170. return {
  7171. fromCache: false,
  7172. index: hexadecimalIndex
  7173. };
  7174. }
  7175. }, {
  7176. key: "getEncodedValue",
  7177. value: function getEncodedValue(value) {
  7178. var encodedValue;
  7179. var key = null;
  7180. switch (this.options.stringArrayEncoding) {
  7181. case StringArrayEncoding_1.StringArrayEncoding.Rc4:
  7182. key = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);
  7183. encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, key));
  7184. break;
  7185. case StringArrayEncoding_1.StringArrayEncoding.Base64:
  7186. encodedValue = this.cryptUtils.btoa(value);
  7187. break;
  7188. default:
  7189. encodedValue = value;
  7190. }
  7191. return {
  7192. encodedValue: encodedValue,
  7193. key: key
  7194. };
  7195. }
  7196. }, {
  7197. key: "replaceWithLiteralNode",
  7198. value: function replaceWithLiteralNode(value) {
  7199. return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, this.options.unicodeEscapeSequence));
  7200. }
  7201. }, {
  7202. key: "replaceWithReservedLiteralNode",
  7203. value: function replaceWithReservedLiteralNode(value) {
  7204. return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, false));
  7205. }
  7206. }, {
  7207. key: "replaceWithStringArrayCallNode",
  7208. value: function replaceWithStringArrayCallNode(value) {
  7209. var _this$getEncodedValue = this.getEncodedValue(value),
  7210. encodedValue = _this$getEncodedValue.encodedValue,
  7211. key = _this$getEncodedValue.key;
  7212. var escapedValue = this.escapeSequenceEncoder.encode(encodedValue, this.options.unicodeEscapeSequence);
  7213. var stringArrayStorageLength = this.stringArrayStorage.getLength();
  7214. var stringArrayStorageCallsWrapperName = this.stringArrayStorage.getStorageId().split('|')[1];
  7215. var _this$getStringArrayH = this.getStringArrayHexadecimalIndex(escapedValue, stringArrayStorageLength),
  7216. fromCache = _this$getStringArrayH.fromCache,
  7217. index = _this$getStringArrayH.index;
  7218. if (!fromCache) {
  7219. this.stringArrayStorage.set(stringArrayStorageLength, escapedValue);
  7220. }
  7221. var callExpressionArgs = [StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(index)];
  7222. if (key) {
  7223. callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(key, this.options.unicodeEscapeSequence)));
  7224. }
  7225. var stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(stringArrayStorageCallsWrapperName);
  7226. NodeMetadata_1.NodeMetadata.set(stringArrayIdentifierNode, {
  7227. renamedIdentifier: true
  7228. });
  7229. return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs);
  7230. }
  7231. }, {
  7232. key: "isReservedString",
  7233. value: function isReservedString(value) {
  7234. if (!this.options.reservedStrings.length) {
  7235. return false;
  7236. }
  7237. return this.options.reservedStrings.some(function (reservedString) {
  7238. return new RegExp(reservedString, 'g').exec(value) !== null;
  7239. });
  7240. }
  7241. }], [{
  7242. key: "getHexadecimalLiteralNode",
  7243. value: function getHexadecimalLiteralNode(hexadecimalIndex) {
  7244. var hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);
  7245. NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, {
  7246. replacedLiteral: true
  7247. });
  7248. return hexadecimalLiteralNode;
  7249. }
  7250. }, {
  7251. key: "getRc4KeyLiteralNode",
  7252. value: function getRc4KeyLiteralNode(literalValue) {
  7253. var rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue);
  7254. NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, {
  7255. replacedLiteral: true
  7256. });
  7257. return rc4KeyLiteralNode;
  7258. }
  7259. }]);
  7260. return StringLiteralObfuscatingReplacer;
  7261. }(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer);
  7262. StringLiteralObfuscatingReplacer.minimumLengthForStringArray = 3;
  7263. StringLiteralObfuscatingReplacer.rc4KeyLength = 4;
  7264. StringLiteralObfuscatingReplacer.rc4KeysCount = 50;
  7265. StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], StringLiteralObfuscatingReplacer);
  7266. exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer;
  7267. /***/ }),
  7268. /***/ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts":
  7269. /*!*****************************************************************************!*\
  7270. !*** ./src/node-transformers/preparing-transformers/CommentsTransformer.ts ***!
  7271. \*****************************************************************************/
  7272. /*! no static exports found */
  7273. /***/ (function(module, exports, __webpack_require__) {
  7274. "use strict";
  7275. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7276. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7277. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7278. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7279. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7280. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7281. var CommentsTransformer_1;
  7282. Object.defineProperty(exports, "__esModule", {
  7283. value: true
  7284. });
  7285. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7286. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7287. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7288. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  7289. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7290. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7291. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7292. var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ./obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts");
  7293. var CommentsTransformer = CommentsTransformer_1 =
  7294. /*#__PURE__*/
  7295. function (_AbstractNodeTransfor) {
  7296. (0, _inherits2["default"])(CommentsTransformer, _AbstractNodeTransfor);
  7297. function CommentsTransformer(randomGenerator, options) {
  7298. (0, _classCallCheck2["default"])(this, CommentsTransformer);
  7299. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CommentsTransformer).call(this, randomGenerator, options));
  7300. }
  7301. (0, _createClass2["default"])(CommentsTransformer, [{
  7302. key: "getVisitor",
  7303. value: function getVisitor(transformationStage) {
  7304. var _this = this;
  7305. switch (transformationStage) {
  7306. case TransformationStage_1.TransformationStage.Initializing:
  7307. return {
  7308. leave: function leave(node) {
  7309. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  7310. return _this.transformNode(node);
  7311. }
  7312. }
  7313. };
  7314. default:
  7315. return null;
  7316. }
  7317. }
  7318. }, {
  7319. key: "transformNode",
  7320. value: function transformNode(programNode) {
  7321. if (programNode.comments) {
  7322. var comments = this.transformComments(programNode.comments);
  7323. estraverse.traverse(programNode, {
  7324. enter: function enter(node) {
  7325. if (comments.length === 0) {
  7326. return;
  7327. }
  7328. var commentIdx = comments.findIndex(function (comment) {
  7329. return comment.range && node.range && comment.range[0] < node.range[0];
  7330. });
  7331. if (commentIdx === -1) {
  7332. return;
  7333. }
  7334. node.leadingComments = comments.splice(commentIdx, comments.length - commentIdx).reverse();
  7335. }
  7336. });
  7337. if (comments.length > 0) {
  7338. programNode.trailingComments = comments.reverse();
  7339. }
  7340. }
  7341. return programNode;
  7342. }
  7343. }, {
  7344. key: "transformComments",
  7345. value: function transformComments(comments) {
  7346. return comments.filter(function (comment) {
  7347. return CommentsTransformer_1.preservedWords.some(function (preservedWord) {
  7348. return comment.value.includes(preservedWord);
  7349. }) || ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment);
  7350. }).reverse();
  7351. }
  7352. }]);
  7353. return CommentsTransformer;
  7354. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7355. CommentsTransformer.preservedWords = ['@license', '@preserve'];
  7356. CommentsTransformer = CommentsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], CommentsTransformer);
  7357. exports.CommentsTransformer = CommentsTransformer;
  7358. /***/ }),
  7359. /***/ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts":
  7360. /*!********************************************************************************!*\
  7361. !*** ./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts ***!
  7362. \********************************************************************************/
  7363. /*! no static exports found */
  7364. /***/ (function(module, exports, __webpack_require__) {
  7365. "use strict";
  7366. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7367. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7368. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7369. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7370. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7371. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7372. Object.defineProperty(exports, "__esModule", {
  7373. value: true
  7374. });
  7375. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7376. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7377. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7378. var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts");
  7379. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7380. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7381. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7382. var CustomNodesTransformer =
  7383. /*#__PURE__*/
  7384. function (_AbstractNodeTransfor) {
  7385. (0, _inherits2["default"])(CustomNodesTransformer, _AbstractNodeTransfor);
  7386. function CustomNodesTransformer(stackTraceAnalyzer, obfuscationEventEmitter, customNodeGroupStorage, randomGenerator, options) {
  7387. var _this;
  7388. (0, _classCallCheck2["default"])(this, CustomNodesTransformer);
  7389. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CustomNodesTransformer).call(this, randomGenerator, options));
  7390. _this.stackTraceData = [];
  7391. _this.stackTraceAnalyzer = stackTraceAnalyzer;
  7392. _this.obfuscationEventEmitter = obfuscationEventEmitter;
  7393. _this.customNodeGroupStorage = customNodeGroupStorage;
  7394. return _this;
  7395. }
  7396. (0, _createClass2["default"])(CustomNodesTransformer, [{
  7397. key: "getVisitor",
  7398. value: function getVisitor(transformationStage) {
  7399. var _this2 = this;
  7400. switch (transformationStage) {
  7401. case TransformationStage_1.TransformationStage.Preparing:
  7402. return {
  7403. leave: function leave(node, parentNode) {
  7404. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  7405. _this2.analyzeNode(node, parentNode);
  7406. _this2.appendCustomNodesBeforeObfuscation(node, parentNode);
  7407. return _this2.transformNode(node, parentNode);
  7408. }
  7409. }
  7410. };
  7411. case TransformationStage_1.TransformationStage.Finalizing:
  7412. return {
  7413. leave: function leave(node, parentNode) {
  7414. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  7415. _this2.appendCustomNodesAfterObfuscation(node, parentNode);
  7416. }
  7417. }
  7418. };
  7419. default:
  7420. return null;
  7421. }
  7422. }
  7423. }, {
  7424. key: "analyzeNode",
  7425. value: function analyzeNode(node, parentNode) {
  7426. this.stackTraceData = this.stackTraceAnalyzer.analyze(node);
  7427. }
  7428. }, {
  7429. key: "transformNode",
  7430. value: function transformNode(node, parentNode) {
  7431. return node;
  7432. }
  7433. }, {
  7434. key: "appendCustomNodesBeforeObfuscation",
  7435. value: function appendCustomNodesBeforeObfuscation(node, parentNode) {
  7436. var _this3 = this;
  7437. this.customNodeGroupStorage.getStorage().forEach(function (customNodeGroup) {
  7438. customNodeGroup.initialize();
  7439. _this3.obfuscationEventEmitter.once(customNodeGroup.getAppendEvent(), customNodeGroup.appendCustomNodes.bind(customNodeGroup));
  7440. });
  7441. this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.stackTraceData);
  7442. }
  7443. }, {
  7444. key: "appendCustomNodesAfterObfuscation",
  7445. value: function appendCustomNodesAfterObfuscation(node, parentNode) {
  7446. this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.stackTraceData);
  7447. }
  7448. }]);
  7449. return CustomNodesTransformer;
  7450. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7451. CustomNodesTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], CustomNodesTransformer);
  7452. exports.CustomNodesTransformer = CustomNodesTransformer;
  7453. /***/ }),
  7454. /***/ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts":
  7455. /*!**************************************************************************************!*\
  7456. !*** ./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts ***!
  7457. \**************************************************************************************/
  7458. /*! no static exports found */
  7459. /***/ (function(module, exports, __webpack_require__) {
  7460. "use strict";
  7461. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7462. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7463. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7464. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7465. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7466. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7467. var EvalCallExpressionTransformer_1;
  7468. Object.defineProperty(exports, "__esModule", {
  7469. value: true
  7470. });
  7471. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7472. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7473. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7474. var js_string_escape_1 = tslib_1.__importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape"));
  7475. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7476. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7477. var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts");
  7478. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7479. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  7480. var EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 =
  7481. /*#__PURE__*/
  7482. function (_AbstractNodeTransfor) {
  7483. (0, _inherits2["default"])(EvalCallExpressionTransformer, _AbstractNodeTransfor);
  7484. function EvalCallExpressionTransformer(randomGenerator, options) {
  7485. var _this;
  7486. (0, _classCallCheck2["default"])(this, EvalCallExpressionTransformer);
  7487. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(EvalCallExpressionTransformer).call(this, randomGenerator, options));
  7488. _this.evalRootAstHostNodeSet = new Set();
  7489. return _this;
  7490. }
  7491. (0, _createClass2["default"])(EvalCallExpressionTransformer, [{
  7492. key: "getVisitor",
  7493. value: function getVisitor(transformationStage) {
  7494. var _this2 = this;
  7495. switch (transformationStage) {
  7496. case TransformationStage_1.TransformationStage.Preparing:
  7497. return {
  7498. enter: function enter(node, parentNode) {
  7499. if (parentNode && NodeGuards_1.NodeGuards.isCallExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) && node.callee.name === 'eval') {
  7500. return _this2.transformNode(node, parentNode);
  7501. }
  7502. }
  7503. };
  7504. case TransformationStage_1.TransformationStage.Finalizing:
  7505. if (!this.evalRootAstHostNodeSet.size) {
  7506. return null;
  7507. }
  7508. return {
  7509. leave: function leave(node, parentNode) {
  7510. if (parentNode && _this2.isEvalRootAstHostNode(node)) {
  7511. return _this2.restoreNode(node, parentNode);
  7512. }
  7513. }
  7514. };
  7515. default:
  7516. return null;
  7517. }
  7518. }
  7519. }, {
  7520. key: "transformNode",
  7521. value: function transformNode(callExpressionNode, parentNode) {
  7522. var callExpressionFirstArgument = callExpressionNode.arguments[0];
  7523. if (!callExpressionFirstArgument) {
  7524. return callExpressionNode;
  7525. }
  7526. var evalString = EvalCallExpressionTransformer_1.extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);
  7527. if (!evalString) {
  7528. return callExpressionNode;
  7529. }
  7530. var ast;
  7531. try {
  7532. ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);
  7533. } catch (_a) {
  7534. return callExpressionNode;
  7535. }
  7536. var evalRootAstHostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));
  7537. this.evalRootAstHostNodeSet.add(evalRootAstHostNode);
  7538. return evalRootAstHostNode;
  7539. }
  7540. }, {
  7541. key: "restoreNode",
  7542. value: function restoreNode(evalRootAstHostNode, parentNode) {
  7543. var targetAst = evalRootAstHostNode.body.body;
  7544. var obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);
  7545. return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [NodeFactory_1.NodeFactory.literalNode(js_string_escape_1["default"](obfuscatedCode))]);
  7546. }
  7547. }, {
  7548. key: "isEvalRootAstHostNode",
  7549. value: function isEvalRootAstHostNode(node) {
  7550. return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);
  7551. }
  7552. }], [{
  7553. key: "extractEvalStringFromCallExpressionArgument",
  7554. value: function extractEvalStringFromCallExpressionArgument(node) {
  7555. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  7556. return EvalCallExpressionTransformer_1.extractEvalStringFromLiteralNode(node);
  7557. }
  7558. if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {
  7559. return EvalCallExpressionTransformer_1.extractEvalStringFromTemplateLiteralNode(node);
  7560. }
  7561. return null;
  7562. }
  7563. }, {
  7564. key: "extractEvalStringFromLiteralNode",
  7565. value: function extractEvalStringFromLiteralNode(node) {
  7566. return typeof node.value === 'string' ? node.value : null;
  7567. }
  7568. }, {
  7569. key: "extractEvalStringFromTemplateLiteralNode",
  7570. value: function extractEvalStringFromTemplateLiteralNode(node) {
  7571. var quasis = node.quasis;
  7572. var allowedQuasisLength = 1;
  7573. if (quasis.length !== allowedQuasisLength || node.expressions.length) {
  7574. return null;
  7575. }
  7576. return quasis[0].value.cooked;
  7577. }
  7578. }]);
  7579. return EvalCallExpressionTransformer;
  7580. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7581. EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], EvalCallExpressionTransformer);
  7582. exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;
  7583. /***/ }),
  7584. /***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts":
  7585. /*!*****************************************************************************!*\
  7586. !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***!
  7587. \*****************************************************************************/
  7588. /*! no static exports found */
  7589. /***/ (function(module, exports, __webpack_require__) {
  7590. "use strict";
  7591. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7592. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7593. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7594. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7595. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7596. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7597. Object.defineProperty(exports, "__esModule", {
  7598. value: true
  7599. });
  7600. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7601. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7602. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7603. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7604. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7605. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7606. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7607. var MetadataTransformer =
  7608. /*#__PURE__*/
  7609. function (_AbstractNodeTransfor) {
  7610. (0, _inherits2["default"])(MetadataTransformer, _AbstractNodeTransfor);
  7611. function MetadataTransformer(randomGenerator, options) {
  7612. (0, _classCallCheck2["default"])(this, MetadataTransformer);
  7613. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MetadataTransformer).call(this, randomGenerator, options));
  7614. }
  7615. (0, _createClass2["default"])(MetadataTransformer, [{
  7616. key: "getVisitor",
  7617. value: function getVisitor(transformationStage) {
  7618. var _this = this;
  7619. switch (transformationStage) {
  7620. case TransformationStage_1.TransformationStage.Preparing:
  7621. return {
  7622. enter: function enter(node, parentNode) {
  7623. return _this.transformNode(node, parentNode);
  7624. }
  7625. };
  7626. default:
  7627. return null;
  7628. }
  7629. }
  7630. }, {
  7631. key: "transformNode",
  7632. value: function transformNode(node, parentNode) {
  7633. NodeMetadata_1.NodeMetadata.set(node, {
  7634. ignoredNode: false
  7635. });
  7636. if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {
  7637. NodeMetadata_1.NodeMetadata.set(node, {
  7638. renamedIdentifier: false
  7639. });
  7640. }
  7641. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  7642. NodeMetadata_1.NodeMetadata.set(node, {
  7643. replacedLiteral: false
  7644. });
  7645. }
  7646. return node;
  7647. }
  7648. }]);
  7649. return MetadataTransformer;
  7650. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7651. MetadataTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MetadataTransformer);
  7652. exports.MetadataTransformer = MetadataTransformer;
  7653. /***/ }),
  7654. /***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts":
  7655. /*!**************************************************************************************!*\
  7656. !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***!
  7657. \**************************************************************************************/
  7658. /*! no static exports found */
  7659. /***/ (function(module, exports, __webpack_require__) {
  7660. "use strict";
  7661. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7662. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7663. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7664. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7665. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7666. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7667. var ObfuscatingGuardsTransformer_1;
  7668. Object.defineProperty(exports, "__esModule", {
  7669. value: true
  7670. });
  7671. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7672. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7673. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7674. var ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts");
  7675. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7676. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7677. var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts");
  7678. var ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 =
  7679. /*#__PURE__*/
  7680. function (_AbstractNodeTransfor) {
  7681. (0, _inherits2["default"])(ObfuscatingGuardsTransformer, _AbstractNodeTransfor);
  7682. function ObfuscatingGuardsTransformer(obfuscatingGuardFactory, randomGenerator, options) {
  7683. var _this;
  7684. (0, _classCallCheck2["default"])(this, ObfuscatingGuardsTransformer);
  7685. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ObfuscatingGuardsTransformer).call(this, randomGenerator, options));
  7686. _this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);
  7687. return _this;
  7688. }
  7689. (0, _createClass2["default"])(ObfuscatingGuardsTransformer, [{
  7690. key: "getVisitor",
  7691. value: function getVisitor(transformationStage) {
  7692. var _this2 = this;
  7693. switch (transformationStage) {
  7694. case TransformationStage_1.TransformationStage.Preparing:
  7695. return {
  7696. enter: function enter(node, parentNode) {
  7697. return _this2.transformNode(node, parentNode);
  7698. }
  7699. };
  7700. default:
  7701. return null;
  7702. }
  7703. }
  7704. }, {
  7705. key: "transformNode",
  7706. value: function transformNode(node, parentNode) {
  7707. var obfuscationAllowed = this.obfuscatingGuards.every(function (nodeGuard) {
  7708. return nodeGuard.check(node);
  7709. });
  7710. NodeMetadata_1.NodeMetadata.set(node, {
  7711. ignoredNode: !obfuscationAllowed
  7712. });
  7713. return node;
  7714. }
  7715. }]);
  7716. return ObfuscatingGuardsTransformer;
  7717. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7718. ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard, ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard];
  7719. ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObfuscatingGuardsTransformer);
  7720. exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;
  7721. /***/ }),
  7722. /***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts":
  7723. /*!************************************************************************************!*\
  7724. !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***!
  7725. \************************************************************************************/
  7726. /*! no static exports found */
  7727. /***/ (function(module, exports, __webpack_require__) {
  7728. "use strict";
  7729. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7730. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7731. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7732. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7733. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7734. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7735. Object.defineProperty(exports, "__esModule", {
  7736. value: true
  7737. });
  7738. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7739. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7740. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7741. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7742. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7743. var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts");
  7744. var ParentificationTransformer =
  7745. /*#__PURE__*/
  7746. function (_AbstractNodeTransfor) {
  7747. (0, _inherits2["default"])(ParentificationTransformer, _AbstractNodeTransfor);
  7748. function ParentificationTransformer(randomGenerator, options) {
  7749. (0, _classCallCheck2["default"])(this, ParentificationTransformer);
  7750. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ParentificationTransformer).call(this, randomGenerator, options));
  7751. }
  7752. (0, _createClass2["default"])(ParentificationTransformer, [{
  7753. key: "getVisitor",
  7754. value: function getVisitor(transformationStage) {
  7755. var _this = this;
  7756. switch (transformationStage) {
  7757. case TransformationStage_1.TransformationStage.Preparing:
  7758. return {
  7759. enter: function enter(node, parentNode) {
  7760. return _this.transformNode(node, parentNode);
  7761. }
  7762. };
  7763. default:
  7764. return null;
  7765. }
  7766. }
  7767. }, {
  7768. key: "transformNode",
  7769. value: function transformNode(node, parentNode) {
  7770. return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);
  7771. }
  7772. }]);
  7773. return ParentificationTransformer;
  7774. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7775. ParentificationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ParentificationTransformer);
  7776. exports.ParentificationTransformer = ParentificationTransformer;
  7777. /***/ }),
  7778. /***/ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts":
  7779. /*!*************************************************************************************!*\
  7780. !*** ./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts ***!
  7781. \*************************************************************************************/
  7782. /*! no static exports found */
  7783. /***/ (function(module, exports, __webpack_require__) {
  7784. "use strict";
  7785. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7786. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7787. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7788. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  7789. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  7790. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  7791. Object.defineProperty(exports, "__esModule", {
  7792. value: true
  7793. });
  7794. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7795. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7796. var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts");
  7797. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  7798. var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts");
  7799. var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts");
  7800. var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7801. var VariablePreserveTransformer =
  7802. /*#__PURE__*/
  7803. function (_AbstractNodeTransfor) {
  7804. (0, _inherits2["default"])(VariablePreserveTransformer, _AbstractNodeTransfor);
  7805. function VariablePreserveTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) {
  7806. var _this;
  7807. (0, _classCallCheck2["default"])(this, VariablePreserveTransformer);
  7808. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(VariablePreserveTransformer).call(this, randomGenerator, options));
  7809. _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  7810. return _this;
  7811. }
  7812. (0, _createClass2["default"])(VariablePreserveTransformer, [{
  7813. key: "getVisitor",
  7814. value: function getVisitor(transformationStage) {
  7815. var _this2 = this;
  7816. switch (transformationStage) {
  7817. case TransformationStage_1.TransformationStage.Preparing:
  7818. return {
  7819. enter: function enter(node, parentNode) {
  7820. if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && parentNode && (NodeGuards_1.NodeGuards.parentNodeIsPropertyNode(node, parentNode) || NodeGuards_1.NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode) || NodeGuards_1.NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode) || NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode))) {
  7821. return _this2.transformNode(node, parentNode);
  7822. }
  7823. }
  7824. };
  7825. default:
  7826. return null;
  7827. }
  7828. }
  7829. }, {
  7830. key: "transformNode",
  7831. value: function transformNode(node, parentNode) {
  7832. this.identifierObfuscatingReplacer.preserveName(node.name);
  7833. return node;
  7834. }
  7835. }]);
  7836. return VariablePreserveTransformer;
  7837. }(AbstractNodeTransformer_1.AbstractNodeTransformer);
  7838. VariablePreserveTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], VariablePreserveTransformer);
  7839. exports.VariablePreserveTransformer = VariablePreserveTransformer;
  7840. /***/ }),
  7841. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts":
  7842. /*!******************************************************************************************************!*\
  7843. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***!
  7844. \******************************************************************************************************/
  7845. /*! no static exports found */
  7846. /***/ (function(module, exports, __webpack_require__) {
  7847. "use strict";
  7848. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7849. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7850. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7851. var BlackListObfuscatingGuard_1;
  7852. Object.defineProperty(exports, "__esModule", {
  7853. value: true
  7854. });
  7855. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7856. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7857. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7858. var BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 =
  7859. /*#__PURE__*/
  7860. function () {
  7861. function BlackListObfuscatingGuard() {
  7862. (0, _classCallCheck2["default"])(this, BlackListObfuscatingGuard);
  7863. this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;
  7864. }
  7865. (0, _createClass2["default"])(BlackListObfuscatingGuard, [{
  7866. key: "check",
  7867. value: function check(node) {
  7868. for (var i = 0; i < this.blackListGuardsLength; i++) {
  7869. if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {
  7870. return false;
  7871. }
  7872. }
  7873. return true;
  7874. }
  7875. }]);
  7876. return BlackListObfuscatingGuard;
  7877. }();
  7878. BlackListObfuscatingGuard.blackListGuards = [NodeGuards_1.NodeGuards.isUseStrictOperator];
  7879. BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], BlackListObfuscatingGuard);
  7880. exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;
  7881. /***/ }),
  7882. /***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts":
  7883. /*!***************************************************************************************************************!*\
  7884. !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***!
  7885. \***************************************************************************************************************/
  7886. /*! no static exports found */
  7887. /***/ (function(module, exports, __webpack_require__) {
  7888. "use strict";
  7889. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7890. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7891. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7892. var ConditionalCommentObfuscatingGuard_1;
  7893. Object.defineProperty(exports, "__esModule", {
  7894. value: true
  7895. });
  7896. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  7897. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  7898. var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts");
  7899. var ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 =
  7900. /*#__PURE__*/
  7901. function () {
  7902. function ConditionalCommentObfuscatingGuard() {
  7903. (0, _classCallCheck2["default"])(this, ConditionalCommentObfuscatingGuard);
  7904. this.obfuscationAllowedForCurrentNode = true;
  7905. this.obfuscationAllowedForNextNode = null;
  7906. }
  7907. (0, _createClass2["default"])(ConditionalCommentObfuscatingGuard, [{
  7908. key: "check",
  7909. value: function check(node) {
  7910. if (this.obfuscationAllowedForNextNode) {
  7911. this.obfuscationAllowedForCurrentNode = this.obfuscationAllowedForNextNode;
  7912. this.obfuscationAllowedForNextNode = null;
  7913. }
  7914. if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) {
  7915. return this.obfuscationAllowedForCurrentNode;
  7916. }
  7917. var leadingComments = node.leadingComments;
  7918. var trailingComments = node.trailingComments;
  7919. if (leadingComments) {
  7920. this.obfuscationAllowedForCurrentNode = this.checkComments(leadingComments);
  7921. }
  7922. if (trailingComments) {
  7923. this.obfuscationAllowedForNextNode = this.checkComments(trailingComments);
  7924. }
  7925. return this.obfuscationAllowedForCurrentNode;
  7926. }
  7927. }, {
  7928. key: "checkComments",
  7929. value: function checkComments(comments) {
  7930. var commentsLength = comments.length;
  7931. var obfuscationAllowed = this.obfuscationAllowedForCurrentNode;
  7932. for (var i = 0; i < commentsLength; i++) {
  7933. var comment = comments[i];
  7934. if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {
  7935. obfuscationAllowed = true;
  7936. continue;
  7937. }
  7938. if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {
  7939. obfuscationAllowed = false;
  7940. }
  7941. }
  7942. return obfuscationAllowed;
  7943. }
  7944. }], [{
  7945. key: "isConditionalComment",
  7946. value: function isConditionalComment(comment) {
  7947. return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) || ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);
  7948. }
  7949. }]);
  7950. return ConditionalCommentObfuscatingGuard;
  7951. }();
  7952. ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');
  7953. ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');
  7954. ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable()], ConditionalCommentObfuscatingGuard);
  7955. exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;
  7956. /***/ }),
  7957. /***/ "./src/node/NodeAppender.ts":
  7958. /*!**********************************!*\
  7959. !*** ./src/node/NodeAppender.ts ***!
  7960. \**********************************/
  7961. /*! no static exports found */
  7962. /***/ (function(module, exports, __webpack_require__) {
  7963. "use strict";
  7964. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  7965. var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
  7966. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  7967. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  7968. Object.defineProperty(exports, "__esModule", {
  7969. value: true
  7970. });
  7971. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  7972. var NodeAppender =
  7973. /*#__PURE__*/
  7974. function () {
  7975. function NodeAppender() {
  7976. (0, _classCallCheck2["default"])(this, NodeAppender);
  7977. }
  7978. (0, _createClass2["default"])(NodeAppender, null, [{
  7979. key: "append",
  7980. value: function append(nodeWithStatements, statements) {
  7981. statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
  7982. NodeAppender.setScopeStatements(nodeWithStatements, [].concat((0, _toConsumableArray2["default"])(NodeAppender.getScopeStatements(nodeWithStatements)), (0, _toConsumableArray2["default"])(statements)));
  7983. }
  7984. }, {
  7985. key: "appendToOptimalBlockScope",
  7986. value: function appendToOptimalBlockScope(stackTraceData, nodeWithStatements, bodyStatements) {
  7987. var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  7988. var targetBlockScope = stackTraceData.length ? NodeAppender.getOptimalBlockScope(stackTraceData, index) : nodeWithStatements;
  7989. NodeAppender.prepend(targetBlockScope, bodyStatements);
  7990. }
  7991. }, {
  7992. key: "getOptimalBlockScope",
  7993. value: function getOptimalBlockScope(stackTraceData, index) {
  7994. var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;
  7995. var firstCall = stackTraceData[index];
  7996. if (deep <= 0) {
  7997. throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');
  7998. }
  7999. if (deep > 1 && firstCall.stackTrace.length) {
  8000. return NodeAppender.getOptimalBlockScope(firstCall.stackTrace, 0, --deep);
  8001. } else {
  8002. return firstCall.callee;
  8003. }
  8004. }
  8005. }, {
  8006. key: "insertAfter",
  8007. value: function insertAfter(nodeWithStatements, statements, target) {
  8008. var indexInScopeStatement = NodeAppender.getScopeStatements(nodeWithStatements).indexOf(target);
  8009. NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);
  8010. }
  8011. }, {
  8012. key: "insertAtIndex",
  8013. value: function insertAtIndex(nodeWithStatements, statements, index) {
  8014. statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
  8015. NodeAppender.setScopeStatements(nodeWithStatements, [].concat((0, _toConsumableArray2["default"])(NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index)), (0, _toConsumableArray2["default"])(statements), (0, _toConsumableArray2["default"])(NodeAppender.getScopeStatements(nodeWithStatements).slice(index))));
  8016. }
  8017. }, {
  8018. key: "prepend",
  8019. value: function prepend(nodeWithStatements, statements) {
  8020. statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
  8021. NodeAppender.setScopeStatements(nodeWithStatements, [].concat((0, _toConsumableArray2["default"])(statements), (0, _toConsumableArray2["default"])(NodeAppender.getScopeStatements(nodeWithStatements))));
  8022. }
  8023. }, {
  8024. key: "getScopeStatements",
  8025. value: function getScopeStatements(nodeWithStatements) {
  8026. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
  8027. return nodeWithStatements.consequent;
  8028. }
  8029. return nodeWithStatements.body;
  8030. }
  8031. }, {
  8032. key: "parentizeScopeStatementsBeforeAppend",
  8033. value: function parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {
  8034. statements.forEach(function (statement) {
  8035. statement.parentNode = nodeWithStatements;
  8036. });
  8037. return statements;
  8038. }
  8039. }, {
  8040. key: "setScopeStatements",
  8041. value: function setScopeStatements(nodeWithStatements, statements) {
  8042. if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
  8043. nodeWithStatements.consequent = statements;
  8044. return;
  8045. }
  8046. nodeWithStatements.body = statements;
  8047. }
  8048. }]);
  8049. return NodeAppender;
  8050. }();
  8051. exports.NodeAppender = NodeAppender;
  8052. /***/ }),
  8053. /***/ "./src/node/NodeBlockLexicalScopeUtils.ts":
  8054. /*!************************************************!*\
  8055. !*** ./src/node/NodeBlockLexicalScopeUtils.ts ***!
  8056. \************************************************/
  8057. /*! no static exports found */
  8058. /***/ (function(module, exports, __webpack_require__) {
  8059. "use strict";
  8060. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8061. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8062. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8063. Object.defineProperty(exports, "__esModule", {
  8064. value: true
  8065. });
  8066. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  8067. var NodeBlockLexicalScopeUtils =
  8068. /*#__PURE__*/
  8069. function () {
  8070. function NodeBlockLexicalScopeUtils() {
  8071. (0, _classCallCheck2["default"])(this, NodeBlockLexicalScopeUtils);
  8072. }
  8073. (0, _createClass2["default"])(NodeBlockLexicalScopeUtils, null, [{
  8074. key: "getLexicalScope",
  8075. value: function getLexicalScope(node) {
  8076. return NodeBlockLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
  8077. }
  8078. }, {
  8079. key: "getLexicalScopes",
  8080. value: function getLexicalScopes(node) {
  8081. return NodeBlockLexicalScopeUtils.getLexicalScopesRecursive(node);
  8082. }
  8083. }, {
  8084. key: "getLexicalScopesRecursive",
  8085. value: function getLexicalScopesRecursive(node) {
  8086. var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
  8087. var nodesWithLexicalScope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
  8088. var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  8089. if (nodesWithLexicalScope.length >= maxSize) {
  8090. return nodesWithLexicalScope;
  8091. }
  8092. var parentNode = node.parentNode;
  8093. if (!parentNode) {
  8094. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8095. }
  8096. if (NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(node)) {
  8097. nodesWithLexicalScope.push(node);
  8098. }
  8099. if (node !== parentNode) {
  8100. return NodeBlockLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);
  8101. }
  8102. return nodesWithLexicalScope;
  8103. }
  8104. }]);
  8105. return NodeBlockLexicalScopeUtils;
  8106. }();
  8107. exports.NodeBlockLexicalScopeUtils = NodeBlockLexicalScopeUtils;
  8108. /***/ }),
  8109. /***/ "./src/node/NodeFactory.ts":
  8110. /*!*********************************!*\
  8111. !*** ./src/node/NodeFactory.ts ***!
  8112. \*********************************/
  8113. /*! no static exports found */
  8114. /***/ (function(module, exports, __webpack_require__) {
  8115. "use strict";
  8116. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8117. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8118. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8119. Object.defineProperty(exports, "__esModule", {
  8120. value: true
  8121. });
  8122. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  8123. var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
  8124. var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  8125. var NodeFactory =
  8126. /*#__PURE__*/
  8127. function () {
  8128. function NodeFactory() {
  8129. (0, _classCallCheck2["default"])(this, NodeFactory);
  8130. }
  8131. (0, _createClass2["default"])(NodeFactory, null, [{
  8132. key: "programNode",
  8133. value: function programNode() {
  8134. var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  8135. return {
  8136. type: NodeType_1.NodeType.Program,
  8137. body: body,
  8138. sourceType: 'script',
  8139. metadata: {
  8140. ignoredNode: false
  8141. }
  8142. };
  8143. }
  8144. }, {
  8145. key: "arrayExpressionNode",
  8146. value: function arrayExpressionNode() {
  8147. var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  8148. return {
  8149. type: NodeType_1.NodeType.ArrayExpression,
  8150. elements: elements,
  8151. metadata: {
  8152. ignoredNode: false
  8153. }
  8154. };
  8155. }
  8156. }, {
  8157. key: "assignmentExpressionNode",
  8158. value: function assignmentExpressionNode(operator, left, right) {
  8159. return {
  8160. type: NodeType_1.NodeType.AssignmentExpression,
  8161. operator: operator,
  8162. left: left,
  8163. right: right,
  8164. metadata: {
  8165. ignoredNode: false
  8166. }
  8167. };
  8168. }
  8169. }, {
  8170. key: "binaryExpressionNode",
  8171. value: function binaryExpressionNode(operator, left, right) {
  8172. return {
  8173. type: NodeType_1.NodeType.BinaryExpression,
  8174. operator: operator,
  8175. left: left,
  8176. right: right,
  8177. metadata: {
  8178. ignoredNode: false
  8179. }
  8180. };
  8181. }
  8182. }, {
  8183. key: "blockStatementNode",
  8184. value: function blockStatementNode() {
  8185. var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  8186. return {
  8187. type: NodeType_1.NodeType.BlockStatement,
  8188. body: body,
  8189. metadata: {
  8190. ignoredNode: false
  8191. }
  8192. };
  8193. }
  8194. }, {
  8195. key: "breakStatement",
  8196. value: function breakStatement(label) {
  8197. return {
  8198. type: NodeType_1.NodeType.BreakStatement,
  8199. label: label,
  8200. metadata: {
  8201. ignoredNode: false
  8202. }
  8203. };
  8204. }
  8205. }, {
  8206. key: "callExpressionNode",
  8207. value: function callExpressionNode(callee) {
  8208. var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  8209. return {
  8210. type: NodeType_1.NodeType.CallExpression,
  8211. callee: callee,
  8212. arguments: args,
  8213. metadata: {
  8214. ignoredNode: false
  8215. }
  8216. };
  8217. }
  8218. }, {
  8219. key: "continueStatement",
  8220. value: function continueStatement(label) {
  8221. return {
  8222. type: NodeType_1.NodeType.ContinueStatement,
  8223. label: label,
  8224. metadata: {
  8225. ignoredNode: false
  8226. }
  8227. };
  8228. }
  8229. }, {
  8230. key: "expressionStatementNode",
  8231. value: function expressionStatementNode(expression) {
  8232. return {
  8233. type: NodeType_1.NodeType.ExpressionStatement,
  8234. expression: expression,
  8235. metadata: {
  8236. ignoredNode: false
  8237. }
  8238. };
  8239. }
  8240. }, {
  8241. key: "functionDeclarationNode",
  8242. value: function functionDeclarationNode(functionName, params, body) {
  8243. return {
  8244. type: NodeType_1.NodeType.FunctionDeclaration,
  8245. id: NodeFactory.identifierNode(functionName),
  8246. params: params,
  8247. body: body,
  8248. generator: false,
  8249. metadata: {
  8250. ignoredNode: false
  8251. }
  8252. };
  8253. }
  8254. }, {
  8255. key: "functionExpressionNode",
  8256. value: function functionExpressionNode(params, body) {
  8257. return {
  8258. type: NodeType_1.NodeType.FunctionExpression,
  8259. params: params,
  8260. body: body,
  8261. generator: false,
  8262. metadata: {
  8263. ignoredNode: false
  8264. }
  8265. };
  8266. }
  8267. }, {
  8268. key: "ifStatementNode",
  8269. value: function ifStatementNode(test, consequent, alternate) {
  8270. return Object.assign(Object.assign({
  8271. type: NodeType_1.NodeType.IfStatement,
  8272. test: test,
  8273. consequent: consequent
  8274. }, alternate && {
  8275. alternate: alternate
  8276. }), {
  8277. metadata: {
  8278. ignoredNode: false
  8279. }
  8280. });
  8281. }
  8282. }, {
  8283. key: "identifierNode",
  8284. value: function identifierNode(name) {
  8285. return {
  8286. type: NodeType_1.NodeType.Identifier,
  8287. name: name,
  8288. metadata: {
  8289. ignoredNode: false
  8290. }
  8291. };
  8292. }
  8293. }, {
  8294. key: "literalNode",
  8295. value: function literalNode(value, raw) {
  8296. raw = raw !== undefined ? raw : "'".concat(value, "'");
  8297. return {
  8298. type: NodeType_1.NodeType.Literal,
  8299. value: value,
  8300. raw: raw,
  8301. 'x-verbatim-property': {
  8302. content: raw,
  8303. precedence: escodegen.Precedence.Primary
  8304. },
  8305. metadata: {
  8306. ignoredNode: false
  8307. }
  8308. };
  8309. }
  8310. }, {
  8311. key: "logicalExpressionNode",
  8312. value: function logicalExpressionNode(operator, left, right) {
  8313. return {
  8314. type: NodeType_1.NodeType.LogicalExpression,
  8315. operator: operator,
  8316. left: left,
  8317. right: right,
  8318. metadata: {
  8319. ignoredNode: false
  8320. }
  8321. };
  8322. }
  8323. }, {
  8324. key: "memberExpressionNode",
  8325. value: function memberExpressionNode(object, property) {
  8326. var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  8327. return {
  8328. type: NodeType_1.NodeType.MemberExpression,
  8329. computed: computed,
  8330. object: object,
  8331. property: property,
  8332. metadata: {
  8333. ignoredNode: false
  8334. }
  8335. };
  8336. }
  8337. }, {
  8338. key: "methodDefinitionNode",
  8339. value: function methodDefinitionNode(key, value, kind, computed) {
  8340. return {
  8341. type: NodeType_1.NodeType.MethodDefinition,
  8342. key: key,
  8343. value: value,
  8344. kind: kind,
  8345. computed: computed,
  8346. "static": false,
  8347. metadata: {
  8348. ignoredNode: false
  8349. }
  8350. };
  8351. }
  8352. }, {
  8353. key: "objectExpressionNode",
  8354. value: function objectExpressionNode(properties) {
  8355. return {
  8356. type: NodeType_1.NodeType.ObjectExpression,
  8357. properties: properties,
  8358. metadata: {
  8359. ignoredNode: false
  8360. }
  8361. };
  8362. }
  8363. }, {
  8364. key: "propertyNode",
  8365. value: function propertyNode(key, value) {
  8366. var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  8367. return {
  8368. type: NodeType_1.NodeType.Property,
  8369. key: key,
  8370. value: value,
  8371. kind: 'init',
  8372. method: false,
  8373. shorthand: false,
  8374. computed: computed,
  8375. metadata: {
  8376. ignoredNode: false
  8377. }
  8378. };
  8379. }
  8380. }, {
  8381. key: "returnStatementNode",
  8382. value: function returnStatementNode(argument) {
  8383. return {
  8384. type: NodeType_1.NodeType.ReturnStatement,
  8385. argument: argument,
  8386. metadata: {
  8387. ignoredNode: false
  8388. }
  8389. };
  8390. }
  8391. }, {
  8392. key: "switchStatementNode",
  8393. value: function switchStatementNode(discriminant, cases) {
  8394. return {
  8395. type: NodeType_1.NodeType.SwitchStatement,
  8396. discriminant: discriminant,
  8397. cases: cases,
  8398. metadata: {
  8399. ignoredNode: false
  8400. }
  8401. };
  8402. }
  8403. }, {
  8404. key: "switchCaseNode",
  8405. value: function switchCaseNode(test, consequent) {
  8406. return {
  8407. type: NodeType_1.NodeType.SwitchCase,
  8408. test: test,
  8409. consequent: consequent,
  8410. metadata: {
  8411. ignoredNode: false
  8412. }
  8413. };
  8414. }
  8415. }, {
  8416. key: "unaryExpressionNode",
  8417. value: function unaryExpressionNode(operator, argument) {
  8418. var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  8419. return {
  8420. type: NodeType_1.NodeType.UnaryExpression,
  8421. operator: operator,
  8422. argument: argument,
  8423. prefix: prefix,
  8424. metadata: {
  8425. ignoredNode: false
  8426. }
  8427. };
  8428. }
  8429. }, {
  8430. key: "updateExpressionNode",
  8431. value: function updateExpressionNode(operator, argumentExpr) {
  8432. return {
  8433. type: NodeType_1.NodeType.UpdateExpression,
  8434. operator: operator,
  8435. argument: argumentExpr,
  8436. prefix: false,
  8437. metadata: {
  8438. ignoredNode: false
  8439. }
  8440. };
  8441. }
  8442. }, {
  8443. key: "variableDeclarationNode",
  8444. value: function variableDeclarationNode() {
  8445. var declarations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  8446. var kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'var';
  8447. return {
  8448. type: NodeType_1.NodeType.VariableDeclaration,
  8449. declarations: declarations,
  8450. kind: kind,
  8451. metadata: {
  8452. ignoredNode: false
  8453. }
  8454. };
  8455. }
  8456. }, {
  8457. key: "variableDeclaratorNode",
  8458. value: function variableDeclaratorNode(id, init) {
  8459. return {
  8460. type: NodeType_1.NodeType.VariableDeclarator,
  8461. id: id,
  8462. init: init,
  8463. metadata: {
  8464. ignoredNode: false
  8465. }
  8466. };
  8467. }
  8468. }, {
  8469. key: "whileStatementNode",
  8470. value: function whileStatementNode(test, body) {
  8471. return {
  8472. type: NodeType_1.NodeType.WhileStatement,
  8473. test: test,
  8474. body: body,
  8475. metadata: {
  8476. ignoredNode: false
  8477. }
  8478. };
  8479. }
  8480. }]);
  8481. return NodeFactory;
  8482. }();
  8483. exports.NodeFactory = NodeFactory;
  8484. /***/ }),
  8485. /***/ "./src/node/NodeGuards.ts":
  8486. /*!********************************!*\
  8487. !*** ./src/node/NodeGuards.ts ***!
  8488. \********************************/
  8489. /*! no static exports found */
  8490. /***/ (function(module, exports, __webpack_require__) {
  8491. "use strict";
  8492. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8493. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8494. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8495. Object.defineProperty(exports, "__esModule", {
  8496. value: true
  8497. });
  8498. var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts");
  8499. var NodeGuards =
  8500. /*#__PURE__*/
  8501. function () {
  8502. function NodeGuards() {
  8503. (0, _classCallCheck2["default"])(this, NodeGuards);
  8504. }
  8505. (0, _createClass2["default"])(NodeGuards, null, [{
  8506. key: "isArrayPatternNode",
  8507. value: function isArrayPatternNode(node) {
  8508. return node.type === NodeType_1.NodeType.ArrayPattern;
  8509. }
  8510. }, {
  8511. key: "isArrowFunctionExpressionNode",
  8512. value: function isArrowFunctionExpressionNode(node) {
  8513. return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
  8514. }
  8515. }, {
  8516. key: "isAssignmentPatternNode",
  8517. value: function isAssignmentPatternNode(node) {
  8518. return node.type === NodeType_1.NodeType.AssignmentPattern;
  8519. }
  8520. }, {
  8521. key: "isAwaitExpressionNode",
  8522. value: function isAwaitExpressionNode(node) {
  8523. return node.type === NodeType_1.NodeType.AwaitExpression;
  8524. }
  8525. }, {
  8526. key: "isBlockStatementNode",
  8527. value: function isBlockStatementNode(node) {
  8528. return node.type === NodeType_1.NodeType.BlockStatement;
  8529. }
  8530. }, {
  8531. key: "isBreakStatementNode",
  8532. value: function isBreakStatementNode(node) {
  8533. return node.type === NodeType_1.NodeType.BreakStatement;
  8534. }
  8535. }, {
  8536. key: "isCallExpressionNode",
  8537. value: function isCallExpressionNode(node) {
  8538. return node.type === NodeType_1.NodeType.CallExpression;
  8539. }
  8540. }, {
  8541. key: "isCatchClauseNode",
  8542. value: function isCatchClauseNode(node) {
  8543. return node.type === NodeType_1.NodeType.CatchClause;
  8544. }
  8545. }, {
  8546. key: "isClassDeclarationNode",
  8547. value: function isClassDeclarationNode(node) {
  8548. return node.type === NodeType_1.NodeType.ClassDeclaration;
  8549. }
  8550. }, {
  8551. key: "isContinueStatementNode",
  8552. value: function isContinueStatementNode(node) {
  8553. return node.type === NodeType_1.NodeType.ContinueStatement;
  8554. }
  8555. }, {
  8556. key: "isExportNamedDeclarationNode",
  8557. value: function isExportNamedDeclarationNode(node) {
  8558. return node.type === NodeType_1.NodeType.ExportNamedDeclaration;
  8559. }
  8560. }, {
  8561. key: "isExpressionStatementNode",
  8562. value: function isExpressionStatementNode(node) {
  8563. return node.type === NodeType_1.NodeType.ExpressionStatement;
  8564. }
  8565. }, {
  8566. key: "isFunctionNode",
  8567. value: function isFunctionNode(node) {
  8568. return NodeGuards.isFunctionDeclarationNode(node) || NodeGuards.isFunctionExpressionNode(node) || NodeGuards.isArrowFunctionExpressionNode(node);
  8569. }
  8570. }, {
  8571. key: "isFunctionDeclarationNode",
  8572. value: function isFunctionDeclarationNode(node) {
  8573. return node.type === NodeType_1.NodeType.FunctionDeclaration;
  8574. }
  8575. }, {
  8576. key: "isFunctionExpressionNode",
  8577. value: function isFunctionExpressionNode(node) {
  8578. return node.type === NodeType_1.NodeType.FunctionExpression;
  8579. }
  8580. }, {
  8581. key: "isIdentifierNode",
  8582. value: function isIdentifierNode(node) {
  8583. return node.type === NodeType_1.NodeType.Identifier;
  8584. }
  8585. }, {
  8586. key: "isImportDeclarationNode",
  8587. value: function isImportDeclarationNode(node) {
  8588. return node.type === NodeType_1.NodeType.ImportDeclaration;
  8589. }
  8590. }, {
  8591. key: "isImportSpecifierNode",
  8592. value: function isImportSpecifierNode(node) {
  8593. return node.type === NodeType_1.NodeType.ImportSpecifier;
  8594. }
  8595. }, {
  8596. key: "isLabelIdentifierNode",
  8597. value: function isLabelIdentifierNode(node, parentNode) {
  8598. var parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;
  8599. var parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;
  8600. var parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;
  8601. return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
  8602. }
  8603. }, {
  8604. key: "isLabeledStatementNode",
  8605. value: function isLabeledStatementNode(node) {
  8606. return node.type === NodeType_1.NodeType.LabeledStatement;
  8607. }
  8608. }, {
  8609. key: "isLiteralNode",
  8610. value: function isLiteralNode(node) {
  8611. return node.type === NodeType_1.NodeType.Literal;
  8612. }
  8613. }, {
  8614. key: "isMemberExpressionNode",
  8615. value: function isMemberExpressionNode(node) {
  8616. return node.type === NodeType_1.NodeType.MemberExpression;
  8617. }
  8618. }, {
  8619. key: "isMethodDefinitionNode",
  8620. value: function isMethodDefinitionNode(node) {
  8621. return node.type === NodeType_1.NodeType.MethodDefinition;
  8622. }
  8623. }, {
  8624. key: "isNode",
  8625. value: function isNode(object) {
  8626. return object && !object.type !== undefined;
  8627. }
  8628. }, {
  8629. key: "isNodeWithLexicalScope",
  8630. value: function isNodeWithLexicalScope(node) {
  8631. return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);
  8632. }
  8633. }, {
  8634. key: "isNodeWithBlockLexicalScope",
  8635. value: function isNodeWithBlockLexicalScope(node) {
  8636. return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);
  8637. }
  8638. }, {
  8639. key: "isNodeWithLexicalScopeStatements",
  8640. value: function isNodeWithLexicalScopeStatements(node, parentNode) {
  8641. return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type);
  8642. }
  8643. }, {
  8644. key: "isNodeWithStatements",
  8645. value: function isNodeWithStatements(node) {
  8646. return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) || NodeGuards.isSwitchCaseNode(node);
  8647. }
  8648. }, {
  8649. key: "isNodeWithComments",
  8650. value: function isNodeWithComments(node) {
  8651. return Boolean(node.leadingComments) || Boolean(node.trailingComments);
  8652. }
  8653. }, {
  8654. key: "isObjectPatternNode",
  8655. value: function isObjectPatternNode(node) {
  8656. return node.type === NodeType_1.NodeType.ObjectPattern;
  8657. }
  8658. }, {
  8659. key: "isObjectExpressionNode",
  8660. value: function isObjectExpressionNode(node) {
  8661. return node.type === NodeType_1.NodeType.ObjectExpression;
  8662. }
  8663. }, {
  8664. key: "isProgramNode",
  8665. value: function isProgramNode(node) {
  8666. return node.type === NodeType_1.NodeType.Program;
  8667. }
  8668. }, {
  8669. key: "isPropertyNode",
  8670. value: function isPropertyNode(node) {
  8671. return node.type === NodeType_1.NodeType.Property;
  8672. }
  8673. }, {
  8674. key: "parentNodeIsPropertyNode",
  8675. value: function parentNodeIsPropertyNode(node, parentNode) {
  8676. return NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === node;
  8677. }
  8678. }, {
  8679. key: "parentNodeIsMemberExpressionNode",
  8680. value: function parentNodeIsMemberExpressionNode(node, parentNode) {
  8681. return NodeGuards.isMemberExpressionNode(parentNode) && !parentNode.computed && parentNode.property === node;
  8682. }
  8683. }, {
  8684. key: "parentNodeIsMethodDefinitionNode",
  8685. value: function parentNodeIsMethodDefinitionNode(node, parentNode) {
  8686. return NodeGuards.isMethodDefinitionNode(parentNode) && !parentNode.computed;
  8687. }
  8688. }, {
  8689. key: "isReplaceableIdentifierNode",
  8690. value: function isReplaceableIdentifierNode(node, parentNode) {
  8691. return NodeGuards.isIdentifierNode(node) && !NodeGuards.parentNodeIsPropertyNode(node, parentNode) && !NodeGuards.parentNodeIsMemberExpressionNode(node, parentNode) && !NodeGuards.parentNodeIsMethodDefinitionNode(node, parentNode) && !NodeGuards.isLabelIdentifierNode(node, parentNode);
  8692. }
  8693. }, {
  8694. key: "isRestElementNode",
  8695. value: function isRestElementNode(node) {
  8696. return node.type === NodeType_1.NodeType.RestElement;
  8697. }
  8698. }, {
  8699. key: "isReturnStatementNode",
  8700. value: function isReturnStatementNode(node) {
  8701. return node.type === NodeType_1.NodeType.ReturnStatement;
  8702. }
  8703. }, {
  8704. key: "isSuperNode",
  8705. value: function isSuperNode(node) {
  8706. return node.type === NodeType_1.NodeType.Super;
  8707. }
  8708. }, {
  8709. key: "isSwitchCaseNode",
  8710. value: function isSwitchCaseNode(node) {
  8711. return node.type === NodeType_1.NodeType.SwitchCase;
  8712. }
  8713. }, {
  8714. key: "isTaggedTemplateExpressionNode",
  8715. value: function isTaggedTemplateExpressionNode(node) {
  8716. return node.type === NodeType_1.NodeType.TaggedTemplateExpression;
  8717. }
  8718. }, {
  8719. key: "isTemplateLiteralNode",
  8720. value: function isTemplateLiteralNode(node) {
  8721. return node.type === NodeType_1.NodeType.TemplateLiteral;
  8722. }
  8723. }, {
  8724. key: "isUnaryExpressionNode",
  8725. value: function isUnaryExpressionNode(node) {
  8726. return node.type === NodeType_1.NodeType.UnaryExpression;
  8727. }
  8728. }, {
  8729. key: "isUseStrictOperator",
  8730. value: function isUseStrictOperator(node) {
  8731. return node.type === NodeType_1.NodeType.ExpressionStatement && node.directive === 'use strict';
  8732. }
  8733. }, {
  8734. key: "isVariableDeclarationNode",
  8735. value: function isVariableDeclarationNode(node) {
  8736. return node.type === NodeType_1.NodeType.VariableDeclaration;
  8737. }
  8738. }, {
  8739. key: "isVariableDeclaratorNode",
  8740. value: function isVariableDeclaratorNode(node) {
  8741. return node.type === NodeType_1.NodeType.VariableDeclarator;
  8742. }
  8743. }, {
  8744. key: "isWhileStatementNode",
  8745. value: function isWhileStatementNode(node) {
  8746. return node.type === NodeType_1.NodeType.WhileStatement;
  8747. }
  8748. }]);
  8749. return NodeGuards;
  8750. }();
  8751. exports.NodeGuards = NodeGuards;
  8752. NodeGuards.nodesWithLexicalStatements = [NodeType_1.NodeType.ArrowFunctionExpression, NodeType_1.NodeType.FunctionDeclaration, NodeType_1.NodeType.FunctionExpression, NodeType_1.NodeType.MethodDefinition];
  8753. /***/ }),
  8754. /***/ "./src/node/NodeLexicalScopeUtils.ts":
  8755. /*!*******************************************!*\
  8756. !*** ./src/node/NodeLexicalScopeUtils.ts ***!
  8757. \*******************************************/
  8758. /*! no static exports found */
  8759. /***/ (function(module, exports, __webpack_require__) {
  8760. "use strict";
  8761. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8762. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8763. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8764. Object.defineProperty(exports, "__esModule", {
  8765. value: true
  8766. });
  8767. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  8768. var NodeLexicalScopeUtils =
  8769. /*#__PURE__*/
  8770. function () {
  8771. function NodeLexicalScopeUtils() {
  8772. (0, _classCallCheck2["default"])(this, NodeLexicalScopeUtils);
  8773. }
  8774. (0, _createClass2["default"])(NodeLexicalScopeUtils, null, [{
  8775. key: "getLexicalScope",
  8776. value: function getLexicalScope(node) {
  8777. return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
  8778. }
  8779. }, {
  8780. key: "getLexicalScopes",
  8781. value: function getLexicalScopes(node) {
  8782. return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);
  8783. }
  8784. }, {
  8785. key: "getLexicalScopesRecursive",
  8786. value: function getLexicalScopesRecursive(node) {
  8787. var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
  8788. var nodesWithLexicalScope = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
  8789. var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  8790. if (nodesWithLexicalScope.length >= maxSize) {
  8791. return nodesWithLexicalScope;
  8792. }
  8793. var parentNode = node.parentNode;
  8794. if (!parentNode) {
  8795. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8796. }
  8797. if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) {
  8798. nodesWithLexicalScope.push(node);
  8799. }
  8800. if (node !== parentNode) {
  8801. return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);
  8802. }
  8803. return nodesWithLexicalScope;
  8804. }
  8805. }]);
  8806. return NodeLexicalScopeUtils;
  8807. }();
  8808. exports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;
  8809. /***/ }),
  8810. /***/ "./src/node/NodeMetadata.ts":
  8811. /*!**********************************!*\
  8812. !*** ./src/node/NodeMetadata.ts ***!
  8813. \**********************************/
  8814. /*! no static exports found */
  8815. /***/ (function(module, exports, __webpack_require__) {
  8816. "use strict";
  8817. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8818. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8819. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8820. Object.defineProperty(exports, "__esModule", {
  8821. value: true
  8822. });
  8823. var NodeMetadata =
  8824. /*#__PURE__*/
  8825. function () {
  8826. function NodeMetadata() {
  8827. (0, _classCallCheck2["default"])(this, NodeMetadata);
  8828. }
  8829. (0, _createClass2["default"])(NodeMetadata, null, [{
  8830. key: "set",
  8831. value: function set(node, metadata) {
  8832. node.metadata = Object.assign(node.metadata || {}, metadata);
  8833. }
  8834. }, {
  8835. key: "get",
  8836. value: function get(node, metadataKey) {
  8837. return node.metadata !== undefined ? node.metadata[metadataKey] : undefined;
  8838. }
  8839. }, {
  8840. key: "isIgnoredNode",
  8841. value: function isIgnoredNode(node) {
  8842. return NodeMetadata.get(node, 'ignoredNode') === true;
  8843. }
  8844. }, {
  8845. key: "isRenamedIdentifier",
  8846. value: function isRenamedIdentifier(identifierNode) {
  8847. return NodeMetadata.get(identifierNode, 'renamedIdentifier') === true;
  8848. }
  8849. }, {
  8850. key: "isReplacedLiteral",
  8851. value: function isReplacedLiteral(literalNode) {
  8852. return NodeMetadata.get(literalNode, 'replacedLiteral') === true;
  8853. }
  8854. }]);
  8855. return NodeMetadata;
  8856. }();
  8857. exports.NodeMetadata = NodeMetadata;
  8858. /***/ }),
  8859. /***/ "./src/node/NodeStatementUtils.ts":
  8860. /*!****************************************!*\
  8861. !*** ./src/node/NodeStatementUtils.ts ***!
  8862. \****************************************/
  8863. /*! no static exports found */
  8864. /***/ (function(module, exports, __webpack_require__) {
  8865. "use strict";
  8866. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8867. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8868. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8869. Object.defineProperty(exports, "__esModule", {
  8870. value: true
  8871. });
  8872. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  8873. var NodeStatementUtils =
  8874. /*#__PURE__*/
  8875. function () {
  8876. function NodeStatementUtils() {
  8877. (0, _classCallCheck2["default"])(this, NodeStatementUtils);
  8878. }
  8879. (0, _createClass2["default"])(NodeStatementUtils, null, [{
  8880. key: "getParentNodeWithStatements",
  8881. value: function getParentNodeWithStatements(node) {
  8882. return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];
  8883. }
  8884. }, {
  8885. key: "getParentNodesWithStatements",
  8886. value: function getParentNodesWithStatements(node) {
  8887. return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);
  8888. }
  8889. }, {
  8890. key: "getNextSiblingStatement",
  8891. value: function getNextSiblingStatement(statement) {
  8892. return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);
  8893. }
  8894. }, {
  8895. key: "getPreviousSiblingStatement",
  8896. value: function getPreviousSiblingStatement(statement) {
  8897. return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);
  8898. }
  8899. }, {
  8900. key: "getRootStatementOfNode",
  8901. value: function getRootStatementOfNode(node) {
  8902. if (NodeGuards_1.NodeGuards.isProgramNode(node)) {
  8903. throw new Error('Unable to find root statement for `Program` node');
  8904. }
  8905. var parentNode = node.parentNode;
  8906. if (!parentNode) {
  8907. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8908. }
  8909. if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
  8910. return NodeStatementUtils.getRootStatementOfNode(parentNode);
  8911. }
  8912. return node;
  8913. }
  8914. }, {
  8915. key: "getScopeOfNode",
  8916. value: function getScopeOfNode(node) {
  8917. var parentNode = node.parentNode;
  8918. if (!parentNode) {
  8919. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8920. }
  8921. if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {
  8922. return NodeStatementUtils.getScopeOfNode(parentNode);
  8923. }
  8924. return parentNode;
  8925. }
  8926. }, {
  8927. key: "getParentNodesWithStatementsRecursive",
  8928. value: function getParentNodesWithStatementsRecursive(node) {
  8929. var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
  8930. var nodesWithStatements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
  8931. var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
  8932. if (nodesWithStatements.length >= maxSize) {
  8933. return nodesWithStatements;
  8934. }
  8935. var parentNode = node.parentNode;
  8936. if (!parentNode) {
  8937. throw new ReferenceError('`parentNode` property of given node is `undefined`');
  8938. }
  8939. if (NodeGuards_1.NodeGuards.isProgramNode(node) || NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0) {
  8940. nodesWithStatements.push(node);
  8941. }
  8942. if (node !== parentNode) {
  8943. return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);
  8944. }
  8945. return nodesWithStatements;
  8946. }
  8947. }, {
  8948. key: "getSiblingStatementByOffset",
  8949. value: function getSiblingStatementByOffset(statement, offset) {
  8950. var scopeNode = NodeStatementUtils.getScopeOfNode(statement);
  8951. var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent;
  8952. var indexInScope = scopeBody.indexOf(statement);
  8953. return scopeBody[indexInScope + offset] || null;
  8954. }
  8955. }]);
  8956. return NodeStatementUtils;
  8957. }();
  8958. exports.NodeStatementUtils = NodeStatementUtils;
  8959. /***/ }),
  8960. /***/ "./src/node/NodeUtils.ts":
  8961. /*!*******************************!*\
  8962. !*** ./src/node/NodeUtils.ts ***!
  8963. \*******************************/
  8964. /*! no static exports found */
  8965. /***/ (function(module, exports, __webpack_require__) {
  8966. "use strict";
  8967. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  8968. var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof"));
  8969. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  8970. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  8971. Object.defineProperty(exports, "__esModule", {
  8972. value: true
  8973. });
  8974. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  8975. var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby"));
  8976. var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree"));
  8977. var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse"));
  8978. var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts");
  8979. var NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts");
  8980. var NodeUtils =
  8981. /*#__PURE__*/
  8982. function () {
  8983. function NodeUtils() {
  8984. (0, _classCallCheck2["default"])(this, NodeUtils);
  8985. }
  8986. (0, _createClass2["default"])(NodeUtils, null, [{
  8987. key: "addXVerbatimPropertyTo",
  8988. value: function addXVerbatimPropertyTo(literalNode) {
  8989. literalNode['x-verbatim-property'] = {
  8990. content: literalNode.raw,
  8991. precedence: escodegen.Precedence.Primary
  8992. };
  8993. return literalNode;
  8994. }
  8995. }, {
  8996. key: "clone",
  8997. value: function clone(astTree) {
  8998. return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));
  8999. }
  9000. }, {
  9001. key: "convertCodeToStructure",
  9002. value: function convertCodeToStructure(code) {
  9003. var structure = espree.parse(code, {
  9004. sourceType: 'script'
  9005. });
  9006. estraverse.replace(structure, {
  9007. enter: function enter(node, parentNode) {
  9008. NodeUtils.parentizeNode(node, parentNode);
  9009. if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {
  9010. NodeUtils.addXVerbatimPropertyTo(node);
  9011. }
  9012. NodeMetadata_1.NodeMetadata.set(node, {
  9013. ignoredNode: false
  9014. });
  9015. return node;
  9016. }
  9017. });
  9018. return structure.body;
  9019. }
  9020. }, {
  9021. key: "convertStructureToCode",
  9022. value: function convertStructureToCode(structure) {
  9023. return structure.reduce(function (code, node) {
  9024. return code + escodegen.generate(node, {
  9025. sourceMapWithCode: true
  9026. }).code;
  9027. }, '');
  9028. }
  9029. }, {
  9030. key: "getUnaryExpressionArgumentNode",
  9031. value: function getUnaryExpressionArgumentNode(unaryExpressionNode) {
  9032. if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {
  9033. return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);
  9034. }
  9035. return unaryExpressionNode.argument;
  9036. }
  9037. }, {
  9038. key: "parentizeAst",
  9039. value: function parentizeAst(astTree) {
  9040. estraverse.replace(astTree, {
  9041. enter: NodeUtils.parentizeNode
  9042. });
  9043. return astTree;
  9044. }
  9045. }, {
  9046. key: "parentizeNode",
  9047. value: function parentizeNode(node, parentNode) {
  9048. node.parentNode = parentNode || node;
  9049. return node;
  9050. }
  9051. }, {
  9052. key: "cloneRecursive",
  9053. value: function cloneRecursive(node) {
  9054. if (node === null) {
  9055. return node;
  9056. }
  9057. var copy = {};
  9058. var nodeKeys = Object.keys(node);
  9059. nodeKeys.forEach(function (property) {
  9060. if (property === 'parentNode') {
  9061. return;
  9062. }
  9063. var value = node[property];
  9064. var clonedValue;
  9065. if (value === null || value instanceof RegExp) {
  9066. clonedValue = value;
  9067. } else if (Array.isArray(value)) {
  9068. clonedValue = value.map(NodeUtils.cloneRecursive);
  9069. } else if ((0, _typeof2["default"])(value) === 'object') {
  9070. clonedValue = NodeUtils.cloneRecursive(value);
  9071. } else {
  9072. clonedValue = value;
  9073. }
  9074. copy[property] = clonedValue;
  9075. });
  9076. return copy;
  9077. }
  9078. }]);
  9079. return NodeUtils;
  9080. }();
  9081. exports.NodeUtils = NodeUtils;
  9082. /***/ }),
  9083. /***/ "./src/options/Options.ts":
  9084. /*!********************************!*\
  9085. !*** ./src/options/Options.ts ***!
  9086. \********************************/
  9087. /*! no static exports found */
  9088. /***/ (function(module, exports, __webpack_require__) {
  9089. "use strict";
  9090. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9091. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9092. var Options_1;
  9093. Object.defineProperty(exports, "__esModule", {
  9094. value: true
  9095. });
  9096. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9097. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9098. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9099. var class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator");
  9100. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  9101. var ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  9102. var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9103. var StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  9104. var Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts");
  9105. var ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts");
  9106. var Options = Options_1 = function Options(inputOptions, optionsNormalizer) {
  9107. (0, _classCallCheck2["default"])(this, Options);
  9108. Object.assign(this, Default_1.DEFAULT_PRESET, inputOptions);
  9109. var errors = class_validator_1.validateSync(this, Options_1.validatorOptions);
  9110. if (errors.length) {
  9111. throw new ReferenceError("Validation failed. errors:\n".concat(ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)));
  9112. }
  9113. Object.assign(this, optionsNormalizer.normalize(this));
  9114. };
  9115. Options.validatorOptions = {
  9116. validationError: {
  9117. target: false
  9118. }
  9119. };
  9120. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "compact", void 0);
  9121. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "controlFlowFlattening", void 0);
  9122. 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);
  9123. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "deadCodeInjection", void 0);
  9124. tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "deadCodeInjectionThreshold", void 0);
  9125. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtection", void 0);
  9126. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtectionInterval", void 0);
  9127. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "disableConsoleOutput", void 0);
  9128. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  9129. each: true
  9130. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "domainLock", void 0);
  9131. tslib_1.__decorate([class_validator_1.IsIn([IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]), tslib_1.__metadata("design:type", String)], Options.prototype, "identifierNamesGenerator", void 0);
  9132. tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "identifiersPrefix", void 0);
  9133. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  9134. each: true
  9135. }), class_validator_1.ValidateIf(function (options) {
  9136. return options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator;
  9137. }), class_validator_1.ArrayNotEmpty(), tslib_1.__metadata("design:type", Array)], Options.prototype, "identifiersDictionary", void 0);
  9138. tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "inputFileName", void 0);
  9139. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "log", void 0);
  9140. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "renameGlobals", void 0);
  9141. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  9142. each: true
  9143. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedNames", void 0);
  9144. tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({
  9145. each: true
  9146. }), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedStrings", void 0);
  9147. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "rotateStringArray", void 0);
  9148. tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "seed", void 0);
  9149. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "selfDefending", void 0);
  9150. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "sourceMap", void 0);
  9151. tslib_1.__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) {
  9152. return Boolean(options.sourceMapBaseUrl);
  9153. }), class_validator_1.IsUrl({
  9154. require_protocol: true,
  9155. require_tld: false,
  9156. require_valid_protocol: true
  9157. }), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapBaseUrl", void 0);
  9158. tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapFileName", void 0);
  9159. tslib_1.__decorate([class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapMode", void 0);
  9160. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "splitStrings", void 0);
  9161. tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.ValidateIf(function (options) {
  9162. return Boolean(options.splitStrings);
  9163. }), class_validator_1.Min(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "splitStringsChunkLength", void 0);
  9164. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "stringArray", void 0);
  9165. tslib_1.__decorate([class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]), tslib_1.__metadata("design:type", Object)], Options.prototype, "stringArrayEncoding", void 0);
  9166. 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);
  9167. tslib_1.__decorate([class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]), tslib_1.__metadata("design:type", String)], Options.prototype, "target", void 0);
  9168. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "transformObjectKeys", void 0);
  9169. tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "unicodeEscapeSequence", void 0);
  9170. Options = Options_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)), tslib_1.__metadata("design:paramtypes", [Object, Object])], Options);
  9171. exports.Options = Options;
  9172. /***/ }),
  9173. /***/ "./src/options/OptionsNormalizer.ts":
  9174. /*!******************************************!*\
  9175. !*** ./src/options/OptionsNormalizer.ts ***!
  9176. \******************************************/
  9177. /*! no static exports found */
  9178. /***/ (function(module, exports, __webpack_require__) {
  9179. "use strict";
  9180. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9181. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9182. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  9183. var OptionsNormalizer_1;
  9184. Object.defineProperty(exports, "__esModule", {
  9185. value: true
  9186. });
  9187. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9188. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9189. var ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts");
  9190. var DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts");
  9191. var DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts");
  9192. var DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts");
  9193. var InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts");
  9194. var SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts");
  9195. var SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts");
  9196. var SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts");
  9197. var SplitStringsChunkLengthRule_1 = __webpack_require__(/*! ./normalizer-rules/SplitStringsChunkLengthRule */ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts");
  9198. var StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts");
  9199. var StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts");
  9200. var StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts");
  9201. var OptionsNormalizer = OptionsNormalizer_1 =
  9202. /*#__PURE__*/
  9203. function () {
  9204. function OptionsNormalizer() {
  9205. (0, _classCallCheck2["default"])(this, OptionsNormalizer);
  9206. }
  9207. (0, _createClass2["default"])(OptionsNormalizer, [{
  9208. key: "normalize",
  9209. value: function normalize(options) {
  9210. var normalizedOptions = Object.assign({}, options);
  9211. var _iteratorNormalCompletion = true;
  9212. var _didIteratorError = false;
  9213. var _iteratorError = undefined;
  9214. try {
  9215. for (var _iterator = OptionsNormalizer_1.normalizerRules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  9216. var normalizerRule = _step.value;
  9217. normalizedOptions = normalizerRule(normalizedOptions);
  9218. }
  9219. } catch (err) {
  9220. _didIteratorError = true;
  9221. _iteratorError = err;
  9222. } finally {
  9223. try {
  9224. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  9225. _iterator["return"]();
  9226. }
  9227. } finally {
  9228. if (_didIteratorError) {
  9229. throw _iteratorError;
  9230. }
  9231. }
  9232. }
  9233. return normalizedOptions;
  9234. }
  9235. }]);
  9236. return OptionsNormalizer;
  9237. }();
  9238. OptionsNormalizer.normalizerRules = [ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule, DeadCodeInjectionRule_1.DeadCodeInjectionRule, DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule, DomainLockRule_1.DomainLockRule, InputFileNameRule_1.InputFileNameRule, SelfDefendingRule_1.SelfDefendingRule, SourceMapBaseUrlRule_1.SourceMapBaseUrlRule, SourceMapFileNameRule_1.SourceMapFileNameRule, SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule, StringArrayRule_1.StringArrayRule, StringArrayEncodingRule_1.StringArrayEncodingRule, StringArrayThresholdRule_1.StringArrayThresholdRule];
  9239. OptionsNormalizer = OptionsNormalizer_1 = tslib_1.__decorate([inversify_1.injectable()], OptionsNormalizer);
  9240. exports.OptionsNormalizer = OptionsNormalizer;
  9241. /***/ }),
  9242. /***/ "./src/options/ValidationErrorsFormatter.ts":
  9243. /*!**************************************************!*\
  9244. !*** ./src/options/ValidationErrorsFormatter.ts ***!
  9245. \**************************************************/
  9246. /*! no static exports found */
  9247. /***/ (function(module, exports, __webpack_require__) {
  9248. "use strict";
  9249. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9250. var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
  9251. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9252. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  9253. Object.defineProperty(exports, "__esModule", {
  9254. value: true
  9255. });
  9256. var ValidationErrorsFormatter =
  9257. /*#__PURE__*/
  9258. function () {
  9259. function ValidationErrorsFormatter() {
  9260. (0, _classCallCheck2["default"])(this, ValidationErrorsFormatter);
  9261. }
  9262. (0, _createClass2["default"])(ValidationErrorsFormatter, null, [{
  9263. key: "format",
  9264. value: function format(errors) {
  9265. return errors.reduce(function (errorMessages, error) {
  9266. return [].concat((0, _toConsumableArray2["default"])(errorMessages), [ValidationErrorsFormatter.formatWithNestedConstraints(error)]);
  9267. }, []).join('\n');
  9268. }
  9269. }, {
  9270. key: "formatWithNestedConstraints",
  9271. value: function formatWithNestedConstraints(error) {
  9272. var constraints = error.constraints;
  9273. var rootError = "`".concat(error.property, "` errors:\n");
  9274. var nestedErrors = Object.keys(constraints).map(function (constraint) {
  9275. return " - ".concat(constraints[constraint], "\n");
  9276. }).join();
  9277. return "".concat(rootError).concat(nestedErrors);
  9278. }
  9279. }]);
  9280. return ValidationErrorsFormatter;
  9281. }();
  9282. exports.ValidationErrorsFormatter = ValidationErrorsFormatter;
  9283. /***/ }),
  9284. /***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts":
  9285. /*!****************************************************************************!*\
  9286. !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***!
  9287. \****************************************************************************/
  9288. /*! no static exports found */
  9289. /***/ (function(module, exports, __webpack_require__) {
  9290. "use strict";
  9291. Object.defineProperty(exports, "__esModule", {
  9292. value: true
  9293. });
  9294. exports.ControlFlowFlatteningThresholdRule = function (options) {
  9295. if (options.controlFlowFlatteningThreshold === 0) {
  9296. options = Object.assign(Object.assign({}, options), {
  9297. controlFlowFlattening: false,
  9298. controlFlowFlatteningThreshold: 0
  9299. });
  9300. }
  9301. return options;
  9302. };
  9303. /***/ }),
  9304. /***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts":
  9305. /*!***************************************************************!*\
  9306. !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***!
  9307. \***************************************************************/
  9308. /*! no static exports found */
  9309. /***/ (function(module, exports, __webpack_require__) {
  9310. "use strict";
  9311. Object.defineProperty(exports, "__esModule", {
  9312. value: true
  9313. });
  9314. var Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts");
  9315. exports.DeadCodeInjectionRule = function (options) {
  9316. if (options.deadCodeInjection) {
  9317. options = Object.assign(Object.assign({}, options), {
  9318. deadCodeInjection: true,
  9319. stringArray: true
  9320. });
  9321. if (!options.stringArrayThreshold) {
  9322. options = Object.assign(Object.assign({}, options), {
  9323. stringArray: true,
  9324. stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold
  9325. });
  9326. }
  9327. }
  9328. return options;
  9329. };
  9330. /***/ }),
  9331. /***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts":
  9332. /*!************************************************************************!*\
  9333. !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***!
  9334. \************************************************************************/
  9335. /*! no static exports found */
  9336. /***/ (function(module, exports, __webpack_require__) {
  9337. "use strict";
  9338. Object.defineProperty(exports, "__esModule", {
  9339. value: true
  9340. });
  9341. exports.DeadCodeInjectionThresholdRule = function (options) {
  9342. if (options.deadCodeInjectionThreshold === 0) {
  9343. options = Object.assign(Object.assign({}, options), {
  9344. deadCodeInjection: false,
  9345. deadCodeInjectionThreshold: 0
  9346. });
  9347. }
  9348. return options;
  9349. };
  9350. /***/ }),
  9351. /***/ "./src/options/normalizer-rules/DomainLockRule.ts":
  9352. /*!********************************************************!*\
  9353. !*** ./src/options/normalizer-rules/DomainLockRule.ts ***!
  9354. \********************************************************/
  9355. /*! no static exports found */
  9356. /***/ (function(module, exports, __webpack_require__) {
  9357. "use strict";
  9358. Object.defineProperty(exports, "__esModule", {
  9359. value: true
  9360. });
  9361. var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts");
  9362. exports.DomainLockRule = function (options) {
  9363. if (options.domainLock.length) {
  9364. var normalizedDomains = [];
  9365. var _iteratorNormalCompletion = true;
  9366. var _didIteratorError = false;
  9367. var _iteratorError = undefined;
  9368. try {
  9369. for (var _iterator = options.domainLock[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  9370. var domain = _step.value;
  9371. normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));
  9372. }
  9373. } catch (err) {
  9374. _didIteratorError = true;
  9375. _iteratorError = err;
  9376. } finally {
  9377. try {
  9378. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  9379. _iterator["return"]();
  9380. }
  9381. } finally {
  9382. if (_didIteratorError) {
  9383. throw _iteratorError;
  9384. }
  9385. }
  9386. }
  9387. options = Object.assign(Object.assign({}, options), {
  9388. domainLock: normalizedDomains
  9389. });
  9390. }
  9391. return options;
  9392. };
  9393. /***/ }),
  9394. /***/ "./src/options/normalizer-rules/InputFileNameRule.ts":
  9395. /*!***********************************************************!*\
  9396. !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***!
  9397. \***********************************************************/
  9398. /*! no static exports found */
  9399. /***/ (function(module, exports, __webpack_require__) {
  9400. "use strict";
  9401. Object.defineProperty(exports, "__esModule", {
  9402. value: true
  9403. });
  9404. exports.InputFileNameRule = function (options) {
  9405. var _options = options,
  9406. inputFileName = _options.inputFileName;
  9407. if (inputFileName) {
  9408. inputFileName = inputFileName.replace(/^\/+/, '').split('.').slice(0, -1).join('.') || inputFileName;
  9409. options = Object.assign(Object.assign({}, options), {
  9410. inputFileName: "".concat(inputFileName, ".js")
  9411. });
  9412. }
  9413. return options;
  9414. };
  9415. /***/ }),
  9416. /***/ "./src/options/normalizer-rules/SelfDefendingRule.ts":
  9417. /*!***********************************************************!*\
  9418. !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***!
  9419. \***********************************************************/
  9420. /*! no static exports found */
  9421. /***/ (function(module, exports, __webpack_require__) {
  9422. "use strict";
  9423. Object.defineProperty(exports, "__esModule", {
  9424. value: true
  9425. });
  9426. exports.SelfDefendingRule = function (options) {
  9427. if (options.selfDefending) {
  9428. options = Object.assign(Object.assign({}, options), {
  9429. compact: true,
  9430. selfDefending: true
  9431. });
  9432. }
  9433. return options;
  9434. };
  9435. /***/ }),
  9436. /***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts":
  9437. /*!**************************************************************!*\
  9438. !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***!
  9439. \**************************************************************/
  9440. /*! no static exports found */
  9441. /***/ (function(module, exports, __webpack_require__) {
  9442. "use strict";
  9443. Object.defineProperty(exports, "__esModule", {
  9444. value: true
  9445. });
  9446. exports.SourceMapBaseUrlRule = function (options) {
  9447. var _options = options,
  9448. sourceMapBaseUrl = _options.sourceMapBaseUrl;
  9449. if (!options.sourceMapFileName) {
  9450. options = Object.assign(Object.assign({}, options), {
  9451. sourceMapBaseUrl: ''
  9452. });
  9453. return options;
  9454. }
  9455. if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
  9456. options = Object.assign(Object.assign({}, options), {
  9457. sourceMapBaseUrl: "".concat(sourceMapBaseUrl, "/")
  9458. });
  9459. }
  9460. return options;
  9461. };
  9462. /***/ }),
  9463. /***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts":
  9464. /*!***************************************************************!*\
  9465. !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***!
  9466. \***************************************************************/
  9467. /*! no static exports found */
  9468. /***/ (function(module, exports, __webpack_require__) {
  9469. "use strict";
  9470. Object.defineProperty(exports, "__esModule", {
  9471. value: true
  9472. });
  9473. exports.SourceMapFileNameRule = function (options) {
  9474. var _options = options,
  9475. sourceMapFileName = _options.sourceMapFileName;
  9476. if (sourceMapFileName) {
  9477. sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0];
  9478. options = Object.assign(Object.assign({}, options), {
  9479. sourceMapFileName: "".concat(sourceMapFileName, ".js.map")
  9480. });
  9481. }
  9482. return options;
  9483. };
  9484. /***/ }),
  9485. /***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts":
  9486. /*!*********************************************************************!*\
  9487. !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***!
  9488. \*********************************************************************/
  9489. /*! no static exports found */
  9490. /***/ (function(module, exports, __webpack_require__) {
  9491. "use strict";
  9492. Object.defineProperty(exports, "__esModule", {
  9493. value: true
  9494. });
  9495. exports.SplitStringsChunkLengthRule = function (options) {
  9496. if (options.splitStringsChunkLength === 0) {
  9497. options = Object.assign(Object.assign({}, options), {
  9498. splitStrings: false,
  9499. splitStringsChunkLength: 0
  9500. });
  9501. } else {
  9502. options = Object.assign(Object.assign({}, options), {
  9503. splitStringsChunkLength: Math.floor(options.splitStringsChunkLength)
  9504. });
  9505. }
  9506. return options;
  9507. };
  9508. /***/ }),
  9509. /***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts":
  9510. /*!*****************************************************************!*\
  9511. !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***!
  9512. \*****************************************************************/
  9513. /*! no static exports found */
  9514. /***/ (function(module, exports, __webpack_require__) {
  9515. "use strict";
  9516. Object.defineProperty(exports, "__esModule", {
  9517. value: true
  9518. });
  9519. var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts");
  9520. exports.StringArrayEncodingRule = function (options) {
  9521. if (options.stringArrayEncoding === true) {
  9522. options = Object.assign(Object.assign({}, options), {
  9523. stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64
  9524. });
  9525. }
  9526. return options;
  9527. };
  9528. /***/ }),
  9529. /***/ "./src/options/normalizer-rules/StringArrayRule.ts":
  9530. /*!*********************************************************!*\
  9531. !*** ./src/options/normalizer-rules/StringArrayRule.ts ***!
  9532. \*********************************************************/
  9533. /*! no static exports found */
  9534. /***/ (function(module, exports, __webpack_require__) {
  9535. "use strict";
  9536. Object.defineProperty(exports, "__esModule", {
  9537. value: true
  9538. });
  9539. exports.StringArrayRule = function (options) {
  9540. if (!options.stringArray) {
  9541. options = Object.assign(Object.assign({}, options), {
  9542. rotateStringArray: false,
  9543. stringArray: false,
  9544. stringArrayEncoding: false,
  9545. stringArrayThreshold: 0
  9546. });
  9547. }
  9548. return options;
  9549. };
  9550. /***/ }),
  9551. /***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts":
  9552. /*!******************************************************************!*\
  9553. !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***!
  9554. \******************************************************************/
  9555. /*! no static exports found */
  9556. /***/ (function(module, exports, __webpack_require__) {
  9557. "use strict";
  9558. Object.defineProperty(exports, "__esModule", {
  9559. value: true
  9560. });
  9561. exports.StringArrayThresholdRule = function (options) {
  9562. if (options.stringArrayThreshold === 0) {
  9563. options = Object.assign(Object.assign({}, options), {
  9564. rotateStringArray: false,
  9565. stringArray: false,
  9566. stringArrayEncoding: false,
  9567. stringArrayThreshold: 0
  9568. });
  9569. }
  9570. return options;
  9571. };
  9572. /***/ }),
  9573. /***/ "./src/options/presets/Default.ts":
  9574. /*!****************************************!*\
  9575. !*** ./src/options/presets/Default.ts ***!
  9576. \****************************************/
  9577. /*! no static exports found */
  9578. /***/ (function(module, exports, __webpack_require__) {
  9579. "use strict";
  9580. Object.defineProperty(exports, "__esModule", {
  9581. value: true
  9582. });
  9583. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  9584. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  9585. var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9586. exports.DEFAULT_PRESET = Object.freeze({
  9587. compact: true,
  9588. config: '',
  9589. controlFlowFlattening: false,
  9590. controlFlowFlatteningThreshold: 0.75,
  9591. deadCodeInjection: false,
  9592. deadCodeInjectionThreshold: 0.4,
  9593. debugProtection: false,
  9594. debugProtectionInterval: false,
  9595. disableConsoleOutput: false,
  9596. domainLock: [],
  9597. exclude: [],
  9598. identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  9599. identifiersPrefix: '',
  9600. identifiersDictionary: [],
  9601. inputFileName: '',
  9602. log: false,
  9603. renameGlobals: false,
  9604. reservedNames: [],
  9605. reservedStrings: [],
  9606. rotateStringArray: true,
  9607. seed: 0,
  9608. selfDefending: false,
  9609. sourceMap: false,
  9610. sourceMapBaseUrl: '',
  9611. sourceMapFileName: '',
  9612. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  9613. splitStrings: false,
  9614. splitStringsChunkLength: 10,
  9615. stringArray: true,
  9616. stringArrayEncoding: false,
  9617. stringArrayThreshold: 0.75,
  9618. target: ObfuscationTarget_1.ObfuscationTarget.Browser,
  9619. transformObjectKeys: false,
  9620. unicodeEscapeSequence: false
  9621. });
  9622. /***/ }),
  9623. /***/ "./src/options/presets/NoCustomNodes.ts":
  9624. /*!**********************************************!*\
  9625. !*** ./src/options/presets/NoCustomNodes.ts ***!
  9626. \**********************************************/
  9627. /*! no static exports found */
  9628. /***/ (function(module, exports, __webpack_require__) {
  9629. "use strict";
  9630. Object.defineProperty(exports, "__esModule", {
  9631. value: true
  9632. });
  9633. var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts");
  9634. var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts");
  9635. var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9636. exports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({
  9637. compact: true,
  9638. controlFlowFlattening: false,
  9639. controlFlowFlatteningThreshold: 0,
  9640. deadCodeInjection: false,
  9641. deadCodeInjectionThreshold: 0,
  9642. debugProtection: false,
  9643. debugProtectionInterval: false,
  9644. disableConsoleOutput: false,
  9645. domainLock: [],
  9646. exclude: [],
  9647. identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
  9648. identifiersPrefix: '',
  9649. identifiersDictionary: [],
  9650. inputFileName: '',
  9651. log: false,
  9652. renameGlobals: false,
  9653. reservedNames: [],
  9654. reservedStrings: [],
  9655. rotateStringArray: false,
  9656. seed: 0,
  9657. selfDefending: false,
  9658. sourceMap: false,
  9659. sourceMapBaseUrl: '',
  9660. sourceMapFileName: '',
  9661. sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,
  9662. splitStrings: false,
  9663. splitStringsChunkLength: 0,
  9664. stringArray: false,
  9665. stringArrayEncoding: false,
  9666. stringArrayThreshold: 0,
  9667. target: ObfuscationTarget_1.ObfuscationTarget.Browser,
  9668. transformObjectKeys: false,
  9669. unicodeEscapeSequence: false
  9670. });
  9671. /***/ }),
  9672. /***/ "./src/source-code/ObfuscatedCode.ts":
  9673. /*!*******************************************!*\
  9674. !*** ./src/source-code/ObfuscatedCode.ts ***!
  9675. \*******************************************/
  9676. /*! no static exports found */
  9677. /***/ (function(module, exports, __webpack_require__) {
  9678. "use strict";
  9679. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9680. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9681. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  9682. Object.defineProperty(exports, "__esModule", {
  9683. value: true
  9684. });
  9685. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9686. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9687. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9688. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  9689. var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts");
  9690. var ObfuscatedCode =
  9691. /*#__PURE__*/
  9692. function () {
  9693. function ObfuscatedCode(cryptUtils, options) {
  9694. (0, _classCallCheck2["default"])(this, ObfuscatedCode);
  9695. this.cryptUtils = cryptUtils;
  9696. this.options = options;
  9697. }
  9698. (0, _createClass2["default"])(ObfuscatedCode, [{
  9699. key: "initialize",
  9700. value: function initialize(obfuscatedCode, sourceMap) {
  9701. this.obfuscatedCode = obfuscatedCode;
  9702. this.sourceMap = sourceMap;
  9703. }
  9704. }, {
  9705. key: "getObfuscatedCode",
  9706. value: function getObfuscatedCode() {
  9707. return this.correctObfuscatedCode();
  9708. }
  9709. }, {
  9710. key: "getSourceMap",
  9711. value: function getSourceMap() {
  9712. return this.sourceMap;
  9713. }
  9714. }, {
  9715. key: "toString",
  9716. value: function toString() {
  9717. return this.obfuscatedCode;
  9718. }
  9719. }, {
  9720. key: "correctObfuscatedCode",
  9721. value: function correctObfuscatedCode() {
  9722. if (!this.sourceMap) {
  9723. return this.obfuscatedCode;
  9724. }
  9725. var sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
  9726. var sourceMappingUrl = '//# sourceMappingURL=';
  9727. switch (this.options.sourceMapMode) {
  9728. case SourceMapMode_1.SourceMapMode.Inline:
  9729. sourceMappingUrl += "data:application/json;base64,".concat(this.cryptUtils.btoa(this.sourceMap));
  9730. break;
  9731. case SourceMapMode_1.SourceMapMode.Separate:
  9732. default:
  9733. if (!sourceMapUrl) {
  9734. return this.obfuscatedCode;
  9735. }
  9736. sourceMappingUrl += sourceMapUrl;
  9737. }
  9738. return "".concat(this.obfuscatedCode, "\n").concat(sourceMappingUrl);
  9739. }
  9740. }]);
  9741. return ObfuscatedCode;
  9742. }();
  9743. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscatedCode.prototype, "obfuscatedCode", void 0);
  9744. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscatedCode.prototype, "sourceMap", void 0);
  9745. ObfuscatedCode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ObfuscatedCode);
  9746. exports.ObfuscatedCode = ObfuscatedCode;
  9747. /***/ }),
  9748. /***/ "./src/source-code/SourceCode.ts":
  9749. /*!***************************************!*\
  9750. !*** ./src/source-code/SourceCode.ts ***!
  9751. \***************************************/
  9752. /*! no static exports found */
  9753. /***/ (function(module, exports, __webpack_require__) {
  9754. "use strict";
  9755. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9756. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9757. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  9758. Object.defineProperty(exports, "__esModule", {
  9759. value: true
  9760. });
  9761. var SourceCode =
  9762. /*#__PURE__*/
  9763. function () {
  9764. function SourceCode(sourceCode, sourceMap) {
  9765. (0, _classCallCheck2["default"])(this, SourceCode);
  9766. this.sourceCode = sourceCode;
  9767. this.sourceMap = sourceMap;
  9768. }
  9769. (0, _createClass2["default"])(SourceCode, [{
  9770. key: "getSourceCode",
  9771. value: function getSourceCode() {
  9772. return this.sourceCode;
  9773. }
  9774. }, {
  9775. key: "getSourceMap",
  9776. value: function getSourceMap() {
  9777. return this.sourceMap;
  9778. }
  9779. }, {
  9780. key: "toString",
  9781. value: function toString() {
  9782. return this.sourceCode;
  9783. }
  9784. }]);
  9785. return SourceCode;
  9786. }();
  9787. exports.SourceCode = SourceCode;
  9788. /***/ }),
  9789. /***/ "./src/storages/ArrayStorage.ts":
  9790. /*!**************************************!*\
  9791. !*** ./src/storages/ArrayStorage.ts ***!
  9792. \**************************************/
  9793. /*! no static exports found */
  9794. /***/ (function(module, exports, __webpack_require__) {
  9795. "use strict";
  9796. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9797. var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
  9798. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9799. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  9800. Object.defineProperty(exports, "__esModule", {
  9801. value: true
  9802. });
  9803. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9804. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9805. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9806. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  9807. var ArrayStorage =
  9808. /*#__PURE__*/
  9809. function () {
  9810. function ArrayStorage(randomGenerator, options) {
  9811. (0, _classCallCheck2["default"])(this, ArrayStorage);
  9812. this.storageLength = 0;
  9813. this.randomGenerator = randomGenerator;
  9814. this.options = options;
  9815. }
  9816. (0, _createClass2["default"])(ArrayStorage, [{
  9817. key: "initialize",
  9818. value: function initialize() {
  9819. this.storage = [];
  9820. this.storageId = this.randomGenerator.getRandomString(6);
  9821. }
  9822. }, {
  9823. key: "get",
  9824. value: function get(key) {
  9825. var value = this.storage[key];
  9826. if (!value) {
  9827. throw new Error("No value found in array storage with key `".concat(key, "`"));
  9828. }
  9829. return value;
  9830. }
  9831. }, {
  9832. key: "getKeyOf",
  9833. value: function getKeyOf(value) {
  9834. var key = this.storage.indexOf(value);
  9835. return key >= 0 ? key : null;
  9836. }
  9837. }, {
  9838. key: "getLength",
  9839. value: function getLength() {
  9840. return this.storageLength;
  9841. }
  9842. }, {
  9843. key: "getStorage",
  9844. value: function getStorage() {
  9845. return this.storage;
  9846. }
  9847. }, {
  9848. key: "getStorageId",
  9849. value: function getStorageId() {
  9850. return this.storageId;
  9851. }
  9852. }, {
  9853. key: "mergeWith",
  9854. value: function mergeWith(storage) {
  9855. var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  9856. this.storage = [].concat((0, _toConsumableArray2["default"])(this.storage), (0, _toConsumableArray2["default"])(storage.getStorage()));
  9857. if (mergeId) {
  9858. this.storageId = storage.getStorageId();
  9859. }
  9860. }
  9861. }, {
  9862. key: "set",
  9863. value: function set(key, value) {
  9864. if (key === this.storageLength) {
  9865. this.storage.push(value);
  9866. } else {
  9867. this.storage.splice(key, 0, value);
  9868. }
  9869. this.storageLength++;
  9870. }
  9871. }]);
  9872. return ArrayStorage;
  9873. }();
  9874. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0);
  9875. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0);
  9876. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], ArrayStorage.prototype, "initialize", null);
  9877. ArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ArrayStorage);
  9878. exports.ArrayStorage = ArrayStorage;
  9879. /***/ }),
  9880. /***/ "./src/storages/MapStorage.ts":
  9881. /*!************************************!*\
  9882. !*** ./src/storages/MapStorage.ts ***!
  9883. \************************************/
  9884. /*! no static exports found */
  9885. /***/ (function(module, exports, __webpack_require__) {
  9886. "use strict";
  9887. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  9888. var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
  9889. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  9890. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  9891. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  9892. Object.defineProperty(exports, "__esModule", {
  9893. value: true
  9894. });
  9895. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  9896. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  9897. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  9898. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  9899. var MapStorage =
  9900. /*#__PURE__*/
  9901. function () {
  9902. function MapStorage(randomGenerator, options) {
  9903. (0, _classCallCheck2["default"])(this, MapStorage);
  9904. this.randomGenerator = randomGenerator;
  9905. this.options = options;
  9906. }
  9907. (0, _createClass2["default"])(MapStorage, [{
  9908. key: "initialize",
  9909. value: function initialize() {
  9910. this.storage = new Map();
  9911. this.storageId = this.randomGenerator.getRandomString(6);
  9912. }
  9913. }, {
  9914. key: "get",
  9915. value: function get(key) {
  9916. var value = this.storage.get(key);
  9917. if (!value) {
  9918. throw new Error("No value found in map storage with key `".concat(key, "`"));
  9919. }
  9920. return value;
  9921. }
  9922. }, {
  9923. key: "getKeyOf",
  9924. value: function getKeyOf(value) {
  9925. var _iteratorNormalCompletion = true;
  9926. var _didIteratorError = false;
  9927. var _iteratorError = undefined;
  9928. try {
  9929. for (var _iterator = this.storage[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  9930. var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
  9931. key = _step$value[0],
  9932. storageValue = _step$value[1];
  9933. if (value === storageValue) {
  9934. return key;
  9935. }
  9936. }
  9937. } catch (err) {
  9938. _didIteratorError = true;
  9939. _iteratorError = err;
  9940. } finally {
  9941. try {
  9942. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  9943. _iterator["return"]();
  9944. }
  9945. } finally {
  9946. if (_didIteratorError) {
  9947. throw _iteratorError;
  9948. }
  9949. }
  9950. }
  9951. return null;
  9952. }
  9953. }, {
  9954. key: "getLength",
  9955. value: function getLength() {
  9956. return this.storage.size;
  9957. }
  9958. }, {
  9959. key: "getStorage",
  9960. value: function getStorage() {
  9961. return this.storage;
  9962. }
  9963. }, {
  9964. key: "getStorageId",
  9965. value: function getStorageId() {
  9966. return this.storageId;
  9967. }
  9968. }, {
  9969. key: "has",
  9970. value: function has(key) {
  9971. return this.storage.has(key);
  9972. }
  9973. }, {
  9974. key: "mergeWith",
  9975. value: function mergeWith(storage) {
  9976. var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  9977. this.storage = new Map([].concat((0, _toConsumableArray2["default"])(this.storage), (0, _toConsumableArray2["default"])(storage.getStorage())));
  9978. if (mergeId) {
  9979. this.storageId = storage.getStorageId();
  9980. }
  9981. }
  9982. }, {
  9983. key: "set",
  9984. value: function set(key, value) {
  9985. this.storage.set(key, value);
  9986. }
  9987. }]);
  9988. return MapStorage;
  9989. }();
  9990. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], MapStorage.prototype, "storageId", void 0);
  9991. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Map)], MapStorage.prototype, "storage", void 0);
  9992. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], MapStorage.prototype, "initialize", null);
  9993. MapStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MapStorage);
  9994. exports.MapStorage = MapStorage;
  9995. /***/ }),
  9996. /***/ "./src/storages/control-flow/ControlFlowStorage.ts":
  9997. /*!*********************************************************!*\
  9998. !*** ./src/storages/control-flow/ControlFlowStorage.ts ***!
  9999. \*********************************************************/
  10000. /*! no static exports found */
  10001. /***/ (function(module, exports, __webpack_require__) {
  10002. "use strict";
  10003. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10004. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10005. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  10006. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  10007. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  10008. Object.defineProperty(exports, "__esModule", {
  10009. value: true
  10010. });
  10011. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10012. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10013. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10014. var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  10015. var ControlFlowStorage =
  10016. /*#__PURE__*/
  10017. function (_MapStorage_1$MapStor) {
  10018. (0, _inherits2["default"])(ControlFlowStorage, _MapStorage_1$MapStor);
  10019. function ControlFlowStorage(randomGenerator, options) {
  10020. (0, _classCallCheck2["default"])(this, ControlFlowStorage);
  10021. return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ControlFlowStorage).call(this, randomGenerator, options));
  10022. }
  10023. return ControlFlowStorage;
  10024. }(MapStorage_1.MapStorage);
  10025. ControlFlowStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ControlFlowStorage);
  10026. exports.ControlFlowStorage = ControlFlowStorage;
  10027. /***/ }),
  10028. /***/ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts":
  10029. /*!******************************************************************!*\
  10030. !*** ./src/storages/custom-node-group/CustomNodeGroupStorage.ts ***!
  10031. \******************************************************************/
  10032. /*! no static exports found */
  10033. /***/ (function(module, exports, __webpack_require__) {
  10034. "use strict";
  10035. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10036. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10037. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10038. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  10039. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  10040. var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
  10041. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  10042. var CustomNodeGroupStorage_1;
  10043. Object.defineProperty(exports, "__esModule", {
  10044. value: true
  10045. });
  10046. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10047. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10048. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10049. var CustomNodeGroup_1 = __webpack_require__(/*! ../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts");
  10050. var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts");
  10051. var CustomNodeGroupStorage = CustomNodeGroupStorage_1 =
  10052. /*#__PURE__*/
  10053. function (_MapStorage_1$MapStor) {
  10054. (0, _inherits2["default"])(CustomNodeGroupStorage, _MapStorage_1$MapStor);
  10055. function CustomNodeGroupStorage(customNodeGroupFactory, randomGenerator, options) {
  10056. var _this;
  10057. (0, _classCallCheck2["default"])(this, CustomNodeGroupStorage);
  10058. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CustomNodeGroupStorage).call(this, randomGenerator, options));
  10059. _this.customNodeGroupFactory = customNodeGroupFactory;
  10060. return _this;
  10061. }
  10062. (0, _createClass2["default"])(CustomNodeGroupStorage, [{
  10063. key: "initialize",
  10064. value: function initialize() {
  10065. var _this2 = this;
  10066. (0, _get2["default"])((0, _getPrototypeOf2["default"])(CustomNodeGroupStorage.prototype), "initialize", this).call(this);
  10067. CustomNodeGroupStorage_1.customNodeGroupsList.forEach(function (customNodeGroupName) {
  10068. var customNodeGroup = _this2.customNodeGroupFactory(customNodeGroupName);
  10069. if (!customNodeGroup) {
  10070. return;
  10071. }
  10072. _this2.storage.set(customNodeGroupName, customNodeGroup);
  10073. });
  10074. }
  10075. }]);
  10076. return CustomNodeGroupStorage;
  10077. }(MapStorage_1.MapStorage);
  10078. CustomNodeGroupStorage.customNodeGroupsList = [CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup];
  10079. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], CustomNodeGroupStorage.prototype, "initialize", null);
  10080. CustomNodeGroupStorage = CustomNodeGroupStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CustomNodeGroupStorage);
  10081. exports.CustomNodeGroupStorage = CustomNodeGroupStorage;
  10082. /***/ }),
  10083. /***/ "./src/storages/string-array/StringArrayStorage.ts":
  10084. /*!*********************************************************!*\
  10085. !*** ./src/storages/string-array/StringArrayStorage.ts ***!
  10086. \*********************************************************/
  10087. /*! no static exports found */
  10088. /***/ (function(module, exports, __webpack_require__) {
  10089. "use strict";
  10090. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10091. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10092. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10093. var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn"));
  10094. var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf"));
  10095. var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get"));
  10096. var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits"));
  10097. var StringArrayStorage_1;
  10098. Object.defineProperty(exports, "__esModule", {
  10099. value: true
  10100. });
  10101. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10102. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10103. var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10104. var ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts");
  10105. var StringArrayStorage = StringArrayStorage_1 =
  10106. /*#__PURE__*/
  10107. function (_ArrayStorage_1$Array) {
  10108. (0, _inherits2["default"])(StringArrayStorage, _ArrayStorage_1$Array);
  10109. function StringArrayStorage(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options) {
  10110. var _this;
  10111. (0, _classCallCheck2["default"])(this, StringArrayStorage);
  10112. _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StringArrayStorage).call(this, randomGenerator, options));
  10113. _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
  10114. _this.arrayUtils = arrayUtils;
  10115. return _this;
  10116. }
  10117. (0, _createClass2["default"])(StringArrayStorage, [{
  10118. key: "initialize",
  10119. value: function initialize() {
  10120. (0, _get2["default"])((0, _getPrototypeOf2["default"])(StringArrayStorage.prototype), "initialize", this).call(this);
  10121. if (!this.options.stringArray) {
  10122. return;
  10123. }
  10124. var baseStringArrayName = this.identifierNamesGenerator.generate(StringArrayStorage_1.stringArrayNameLength);
  10125. var baseStringArrayCallsWrapperName = this.identifierNamesGenerator.generate(StringArrayStorage_1.stringArrayNameLength);
  10126. var stringArrayName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayName);
  10127. var stringArrayCallsWrapperName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayCallsWrapperName);
  10128. this.storageId = "".concat(stringArrayName, "|").concat(stringArrayCallsWrapperName);
  10129. }
  10130. }, {
  10131. key: "rotateArray",
  10132. value: function rotateArray(rotationValue) {
  10133. this.storage = this.arrayUtils.rotate(this.storage, rotationValue);
  10134. }
  10135. }, {
  10136. key: "toString",
  10137. value: function toString() {
  10138. return this.storage.map(function (value) {
  10139. return "'".concat(value, "'");
  10140. }).toString();
  10141. }
  10142. }]);
  10143. return StringArrayStorage;
  10144. }(ArrayStorage_1.ArrayStorage);
  10145. StringArrayStorage.stringArrayNameLength = 7;
  10146. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], StringArrayStorage.prototype, "initialize", null);
  10147. StringArrayStorage = StringArrayStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayStorage);
  10148. exports.StringArrayStorage = StringArrayStorage;
  10149. /***/ }),
  10150. /***/ "./src/templates/AtobTemplate.ts":
  10151. /*!***************************************!*\
  10152. !*** ./src/templates/AtobTemplate.ts ***!
  10153. \***************************************/
  10154. /*! no static exports found */
  10155. /***/ (function(module, exports, __webpack_require__) {
  10156. "use strict";
  10157. Object.defineProperty(exports, "__esModule", {
  10158. value: true
  10159. });
  10160. function AtobTemplate() {
  10161. return "\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n ";
  10162. }
  10163. exports.AtobTemplate = AtobTemplate;
  10164. /***/ }),
  10165. /***/ "./src/templates/GlobalVariableNoEvalTemplate.ts":
  10166. /*!*******************************************************!*\
  10167. !*** ./src/templates/GlobalVariableNoEvalTemplate.ts ***!
  10168. \*******************************************************/
  10169. /*! no static exports found */
  10170. /***/ (function(module, exports, __webpack_require__) {
  10171. "use strict";
  10172. Object.defineProperty(exports, "__esModule", {
  10173. value: true
  10174. });
  10175. function GlobalVariableNoEvalTemplate() {
  10176. return "\n var that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n ";
  10177. }
  10178. exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;
  10179. /***/ }),
  10180. /***/ "./src/templates/GlobalVariableTemplate1.ts":
  10181. /*!**************************************************!*\
  10182. !*** ./src/templates/GlobalVariableTemplate1.ts ***!
  10183. \**************************************************/
  10184. /*! no static exports found */
  10185. /***/ (function(module, exports, __webpack_require__) {
  10186. "use strict";
  10187. Object.defineProperty(exports, "__esModule", {
  10188. value: true
  10189. });
  10190. function GlobalVariableTemplate1() {
  10191. return "\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n ";
  10192. }
  10193. exports.GlobalVariableTemplate1 = GlobalVariableTemplate1;
  10194. /***/ }),
  10195. /***/ "./src/templates/GlobalVariableTemplate2.ts":
  10196. /*!**************************************************!*\
  10197. !*** ./src/templates/GlobalVariableTemplate2.ts ***!
  10198. \**************************************************/
  10199. /*! no static exports found */
  10200. /***/ (function(module, exports, __webpack_require__) {
  10201. "use strict";
  10202. Object.defineProperty(exports, "__esModule", {
  10203. value: true
  10204. });
  10205. function GlobalVariableTemplate2() {
  10206. return "\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n ";
  10207. }
  10208. exports.GlobalVariableTemplate2 = GlobalVariableTemplate2;
  10209. /***/ }),
  10210. /***/ "./src/templates/Rc4Template.ts":
  10211. /*!**************************************!*\
  10212. !*** ./src/templates/Rc4Template.ts ***!
  10213. \**************************************/
  10214. /*! no static exports found */
  10215. /***/ (function(module, exports, __webpack_require__) {
  10216. "use strict";
  10217. Object.defineProperty(exports, "__esModule", {
  10218. value: true
  10219. });
  10220. function Rc4Template() {
  10221. 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 ";
  10222. }
  10223. exports.Rc4Template = Rc4Template;
  10224. /***/ }),
  10225. /***/ "./src/templates/SingleNodeCallControllerTemplate.ts":
  10226. /*!***********************************************************!*\
  10227. !*** ./src/templates/SingleNodeCallControllerTemplate.ts ***!
  10228. \***********************************************************/
  10229. /*! no static exports found */
  10230. /***/ (function(module, exports, __webpack_require__) {
  10231. "use strict";
  10232. Object.defineProperty(exports, "__esModule", {
  10233. value: true
  10234. });
  10235. function SingleNodeCallControllerTemplate() {
  10236. return "\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n ";
  10237. }
  10238. exports.SingleNodeCallControllerTemplate = SingleNodeCallControllerTemplate;
  10239. /***/ }),
  10240. /***/ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts":
  10241. /*!*****************************************************************************************************************************!*\
  10242. !*** ./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts ***!
  10243. \*****************************************************************************************************************************/
  10244. /*! no static exports found */
  10245. /***/ (function(module, exports, __webpack_require__) {
  10246. "use strict";
  10247. Object.defineProperty(exports, "__esModule", {
  10248. value: true
  10249. });
  10250. function ConsoleOutputDisableExpressionTemplate() {
  10251. return "\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n ";
  10252. }
  10253. exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate;
  10254. /***/ }),
  10255. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts":
  10256. /*!*************************************************************************************************************************!*\
  10257. !*** ./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts ***!
  10258. \*************************************************************************************************************************/
  10259. /*! no static exports found */
  10260. /***/ (function(module, exports, __webpack_require__) {
  10261. "use strict";
  10262. Object.defineProperty(exports, "__esModule", {
  10263. value: true
  10264. });
  10265. function DebugProtectionFunctionCallTemplate() {
  10266. return "\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n ";
  10267. }
  10268. exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;
  10269. /***/ }),
  10270. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts":
  10271. /*!*********************************************************************************************************************************!*\
  10272. !*** ./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts ***!
  10273. \*********************************************************************************************************************************/
  10274. /*! no static exports found */
  10275. /***/ (function(module, exports, __webpack_require__) {
  10276. "use strict";
  10277. Object.defineProperty(exports, "__esModule", {
  10278. value: true
  10279. });
  10280. function DebugProtectionFunctionIntervalTemplate() {
  10281. return "\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n ";
  10282. }
  10283. exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;
  10284. /***/ }),
  10285. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts":
  10286. /*!****************************************************************************************************************!*\
  10287. !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts ***!
  10288. \****************************************************************************************************************/
  10289. /*! no static exports found */
  10290. /***/ (function(module, exports, __webpack_require__) {
  10291. "use strict";
  10292. Object.defineProperty(exports, "__esModule", {
  10293. value: true
  10294. });
  10295. function DebugProtectionFunctionTemplate() {
  10296. return "\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n ";
  10297. }
  10298. exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
  10299. /***/ }),
  10300. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts":
  10301. /*!*************************************************************************************************!*\
  10302. !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts ***!
  10303. \*************************************************************************************************/
  10304. /*! no static exports found */
  10305. /***/ (function(module, exports, __webpack_require__) {
  10306. "use strict";
  10307. Object.defineProperty(exports, "__esModule", {
  10308. value: true
  10309. });
  10310. function DebuggerTemplate() {
  10311. return "\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n ";
  10312. }
  10313. exports.DebuggerTemplate = DebuggerTemplate;
  10314. /***/ }),
  10315. /***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts":
  10316. /*!*******************************************************************************************************!*\
  10317. !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts ***!
  10318. \*******************************************************************************************************/
  10319. /*! no static exports found */
  10320. /***/ (function(module, exports, __webpack_require__) {
  10321. "use strict";
  10322. Object.defineProperty(exports, "__esModule", {
  10323. value: true
  10324. });
  10325. function DebuggerTemplateNoEval() {
  10326. return "\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n ";
  10327. }
  10328. exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;
  10329. /***/ }),
  10330. /***/ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts":
  10331. /*!************************************************************************************!*\
  10332. !*** ./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts ***!
  10333. \************************************************************************************/
  10334. /*! no static exports found */
  10335. /***/ (function(module, exports, __webpack_require__) {
  10336. "use strict";
  10337. Object.defineProperty(exports, "__esModule", {
  10338. value: true
  10339. });
  10340. function DomainLockNodeTemplate() {
  10341. return "\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp(\"[{diff}]\", \"g\");\n var domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n var document;\n var domain;\n var location;\n var hostname;\n\n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!(\"~\" > domain)) {\n for (var d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (var d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n var documentDomain = that[document][domain];\n var documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n var currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\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 }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n ";
  10342. }
  10343. exports.DomainLockNodeTemplate = DomainLockNodeTemplate;
  10344. /***/ }),
  10345. /***/ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts":
  10346. /*!*************************************************************************************************!*\
  10347. !*** ./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts ***!
  10348. \*************************************************************************************************/
  10349. /*! no static exports found */
  10350. /***/ (function(module, exports, __webpack_require__) {
  10351. "use strict";
  10352. Object.defineProperty(exports, "__esModule", {
  10353. value: true
  10354. });
  10355. function SelfDefendingTemplate(escapeSequenceEncoder) {
  10356. return "\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(escapeSequenceEncoder.encode("(\\\\[x|u](\\w){2,4})+", true), "');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('ind\u0435xOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('ind\u0435xOf');\n }\n })\n \n {selfDefendingFunctionName}();\n ");
  10357. }
  10358. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  10359. /***/ }),
  10360. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts":
  10361. /*!**********************************************************************************************!*\
  10362. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts ***!
  10363. \**********************************************************************************************/
  10364. /*! no static exports found */
  10365. /***/ (function(module, exports, __webpack_require__) {
  10366. "use strict";
  10367. Object.defineProperty(exports, "__esModule", {
  10368. value: true
  10369. });
  10370. function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {
  10371. var identifierLength = 6;
  10372. var rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);
  10373. var statesIdentifier = randomGenerator.getRandomString(identifierLength);
  10374. var newStateIdentifier = randomGenerator.getRandomString(identifierLength);
  10375. var firstStateIdentifier = randomGenerator.getRandomString(identifierLength);
  10376. var secondStateIdentifier = randomGenerator.getRandomString(identifierLength);
  10377. var checkStateIdentifier = randomGenerator.getRandomString(identifierLength);
  10378. var runStateIdentifier = randomGenerator.getRandomString(identifierLength);
  10379. var getStateIdentifier = randomGenerator.getRandomString(identifierLength);
  10380. var stateResultIdentifier = randomGenerator.getRandomString(identifierLength);
  10381. return "\n var StatesClass = function (".concat(rc4BytesIdentifier, ") {\n this.").concat(rc4BytesIdentifier, " = ").concat(rc4BytesIdentifier, ";\n this.").concat(statesIdentifier, " = [1, 0, 0];\n this.").concat(newStateIdentifier, " = function(){return 'newState';};\n this.").concat(firstStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *", true), "';\n this.").concat(secondStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("['|\"].+['|\"];? *}", true), "';\n };\n \n StatesClass.prototype.").concat(checkStateIdentifier, " = function () {\n var regExp = new RegExp(this.").concat(firstStateIdentifier, " + this.").concat(secondStateIdentifier, ");\n var expression = regExp.test(this.").concat(newStateIdentifier, ".toString())\n ? --this.").concat(statesIdentifier, "[1]\n : --this.").concat(statesIdentifier, "[0];\n \n return this.").concat(runStateIdentifier, "(expression);\n };\n \n StatesClass.prototype.").concat(runStateIdentifier, " = function (").concat(stateResultIdentifier, ") {\n if (!Boolean(~").concat(stateResultIdentifier, ")) {\n return ").concat(stateResultIdentifier, ";\n }\n \n return this.").concat(getStateIdentifier, "(this.").concat(rc4BytesIdentifier, ");\n };\n\n StatesClass.prototype.").concat(getStateIdentifier, " = function (").concat(rc4BytesIdentifier, ") {\n for (var i = 0, len = this.").concat(statesIdentifier, ".length; i < len; i++) {\n this.").concat(statesIdentifier, ".push(Math.round(Math.random()));\n len = this.").concat(statesIdentifier, ".length;\n }\n \n return ").concat(rc4BytesIdentifier, "(this.").concat(statesIdentifier, "[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(checkStateIdentifier, "();\n ");
  10382. }
  10383. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  10384. /***/ }),
  10385. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts":
  10386. /*!************************************************************************************************************!*\
  10387. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts ***!
  10388. \************************************************************************************************************/
  10389. /*! no static exports found */
  10390. /***/ (function(module, exports, __webpack_require__) {
  10391. "use strict";
  10392. Object.defineProperty(exports, "__esModule", {
  10393. value: true
  10394. });
  10395. function StringArrayBase64DecodeNodeTemplate(randomGenerator) {
  10396. var identifierLength = 6;
  10397. var initializedIdentifier = randomGenerator.getRandomString(identifierLength);
  10398. var base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);
  10399. var dataIdentifier = randomGenerator.getRandomString(identifierLength);
  10400. return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, " = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, "(value);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n ");
  10401. }
  10402. exports.StringArrayBase64DecodeNodeTemplate = StringArrayBase64DecodeNodeTemplate;
  10403. /***/ }),
  10404. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts":
  10405. /*!********************************************************************************************************!*\
  10406. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***!
  10407. \********************************************************************************************************/
  10408. /*! no static exports found */
  10409. /***/ (function(module, exports, __webpack_require__) {
  10410. "use strict";
  10411. Object.defineProperty(exports, "__esModule", {
  10412. value: true
  10413. });
  10414. function StringArrayCallsWrapperTemplate() {
  10415. return "\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n ";
  10416. }
  10417. exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;
  10418. /***/ }),
  10419. /***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts":
  10420. /*!*********************************************************************************************************!*\
  10421. !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts ***!
  10422. \*********************************************************************************************************/
  10423. /*! no static exports found */
  10424. /***/ (function(module, exports, __webpack_require__) {
  10425. "use strict";
  10426. Object.defineProperty(exports, "__esModule", {
  10427. value: true
  10428. });
  10429. function StringArrayRc4DecodeNodeTemplate(randomGenerator) {
  10430. var identifierLength = 6;
  10431. var initializedIdentifier = randomGenerator.getRandomString(identifierLength);
  10432. var rc4Identifier = randomGenerator.getRandomString(identifierLength);
  10433. var dataIdentifier = randomGenerator.getRandomString(identifierLength);
  10434. var onceIdentifier = randomGenerator.getRandomString(identifierLength);
  10435. return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(rc4Identifier, " = rc4;\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(onceIdentifier, " === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(onceIdentifier, " = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(rc4Identifier, "(value, key);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n ");
  10436. }
  10437. exports.StringArrayRc4DecodeNodeTemplate = StringArrayRc4DecodeNodeTemplate;
  10438. /***/ }),
  10439. /***/ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts":
  10440. /*!***********************************************************************************!*\
  10441. !*** ./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts ***!
  10442. \***********************************************************************************/
  10443. /*! no static exports found */
  10444. /***/ (function(module, exports, __webpack_require__) {
  10445. "use strict";
  10446. Object.defineProperty(exports, "__esModule", {
  10447. value: true
  10448. });
  10449. function StringArrayTemplate() {
  10450. return "\n var {stringArrayName} = [{stringArray}];\n ";
  10451. }
  10452. exports.StringArrayTemplate = StringArrayTemplate;
  10453. /***/ }),
  10454. /***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts":
  10455. /*!*****************************************************************************************************!*\
  10456. !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts ***!
  10457. \*****************************************************************************************************/
  10458. /*! no static exports found */
  10459. /***/ (function(module, exports, __webpack_require__) {
  10460. "use strict";
  10461. Object.defineProperty(exports, "__esModule", {
  10462. value: true
  10463. });
  10464. function SelfDefendingTemplate(escapeSequenceEncoder) {
  10465. return "\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n ");
  10466. }
  10467. exports.SelfDefendingTemplate = SelfDefendingTemplate;
  10468. /***/ }),
  10469. /***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts":
  10470. /*!*****************************************************************************************************************!*\
  10471. !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts ***!
  10472. \*****************************************************************************************************************/
  10473. /*! no static exports found */
  10474. /***/ (function(module, exports, __webpack_require__) {
  10475. "use strict";
  10476. Object.defineProperty(exports, "__esModule", {
  10477. value: true
  10478. });
  10479. function StringArrayRotateFunctionTemplate() {
  10480. 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 ";
  10481. }
  10482. exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;
  10483. /***/ }),
  10484. /***/ "./src/utils/ArrayUtils.ts":
  10485. /*!*********************************!*\
  10486. !*** ./src/utils/ArrayUtils.ts ***!
  10487. \*********************************/
  10488. /*! no static exports found */
  10489. /***/ (function(module, exports, __webpack_require__) {
  10490. "use strict";
  10491. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10492. var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray"));
  10493. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10494. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10495. Object.defineProperty(exports, "__esModule", {
  10496. value: true
  10497. });
  10498. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10499. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10500. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10501. var ArrayUtils =
  10502. /*#__PURE__*/
  10503. function () {
  10504. function ArrayUtils(randomGenerator) {
  10505. (0, _classCallCheck2["default"])(this, ArrayUtils);
  10506. this.randomGenerator = randomGenerator;
  10507. }
  10508. (0, _createClass2["default"])(ArrayUtils, [{
  10509. key: "createWithRange",
  10510. value: function createWithRange(length) {
  10511. var range = [];
  10512. for (var i = 0; i < length; i++) {
  10513. range.push(i);
  10514. }
  10515. return range;
  10516. }
  10517. }, {
  10518. key: "rotate",
  10519. value: function rotate(array, times) {
  10520. if (!array.length) {
  10521. throw new ReferenceError("Cannot rotate empty array.");
  10522. }
  10523. if (times <= 0) {
  10524. return array;
  10525. }
  10526. var newArray = array;
  10527. var temp;
  10528. while (times--) {
  10529. temp = newArray.pop();
  10530. if (temp) {
  10531. newArray.unshift(temp);
  10532. }
  10533. }
  10534. return newArray;
  10535. }
  10536. }, {
  10537. key: "shuffle",
  10538. value: function shuffle(array) {
  10539. var shuffledArray = (0, _toConsumableArray2["default"])(array);
  10540. for (var i = shuffledArray.length; i; i--) {
  10541. var j = Math.floor(this.randomGenerator.getMathRandom() * i);
  10542. var _ref = [shuffledArray[j], shuffledArray[i - 1]];
  10543. shuffledArray[i - 1] = _ref[0];
  10544. shuffledArray[j] = _ref[1];
  10545. }
  10546. return shuffledArray;
  10547. }
  10548. }]);
  10549. return ArrayUtils;
  10550. }();
  10551. ArrayUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], ArrayUtils);
  10552. exports.ArrayUtils = ArrayUtils;
  10553. /***/ }),
  10554. /***/ "./src/utils/CryptUtils.ts":
  10555. /*!*********************************!*\
  10556. !*** ./src/utils/CryptUtils.ts ***!
  10557. \*********************************/
  10558. /*! no static exports found */
  10559. /***/ (function(module, exports, __webpack_require__) {
  10560. "use strict";
  10561. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10562. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10563. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10564. Object.defineProperty(exports, "__esModule", {
  10565. value: true
  10566. });
  10567. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10568. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10569. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10570. var RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts");
  10571. var Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts");
  10572. var CryptUtils =
  10573. /*#__PURE__*/
  10574. function () {
  10575. function CryptUtils(randomGenerator) {
  10576. (0, _classCallCheck2["default"])(this, CryptUtils);
  10577. this.randomGenerator = randomGenerator;
  10578. }
  10579. (0, _createClass2["default"])(CryptUtils, [{
  10580. key: "btoa",
  10581. value: function btoa(string) {
  10582. var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  10583. var output = '';
  10584. string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, function (match, p1) {
  10585. return String.fromCharCode(parseInt("".concat(Utils_1.Utils.hexadecimalPrefix).concat(p1)));
  10586. });
  10587. for (var block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {
  10588. charCode = string.charCodeAt(idx += 3 / 4);
  10589. if (charCode > 0xFF) {
  10590. throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
  10591. }
  10592. block = block << 8 | charCode;
  10593. }
  10594. return output;
  10595. }
  10596. }, {
  10597. key: "hideString",
  10598. value: function hideString(str, length) {
  10599. var _this = this;
  10600. var escapeRegExp = function escapeRegExp(s) {
  10601. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  10602. };
  10603. var randomMerge = function randomMerge(s1, s2) {
  10604. var i1 = -1;
  10605. var i2 = -1;
  10606. var result = '';
  10607. while (i1 < s1.length || i2 < s2.length) {
  10608. if (_this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {
  10609. result += s2.charAt(++i2);
  10610. } else {
  10611. result += s1.charAt(++i1);
  10612. }
  10613. }
  10614. return result;
  10615. };
  10616. var randomString = this.randomGenerator.getRandomGenerator().string({
  10617. length: length,
  10618. pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool
  10619. });
  10620. var randomStringDiff = randomString.replace(new RegExp("[".concat(escapeRegExp(str), "]"), 'g'), '');
  10621. var randomStringDiffArray = randomStringDiff.split('');
  10622. this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);
  10623. randomStringDiff = randomStringDiffArray.join('');
  10624. return [randomMerge(str, randomStringDiff), randomStringDiff];
  10625. }
  10626. }, {
  10627. key: "rc4",
  10628. value: function rc4(string, key) {
  10629. var s = [],
  10630. j = 0,
  10631. x,
  10632. result = '';
  10633. for (var i = 0; i < 256; i++) {
  10634. s[i] = i;
  10635. }
  10636. for (i = 0; i < 256; i++) {
  10637. j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
  10638. x = s[i];
  10639. s[i] = s[j];
  10640. s[j] = x;
  10641. }
  10642. i = 0;
  10643. j = 0;
  10644. for (var y = 0; y < string.length; y++) {
  10645. i = (i + 1) % 256;
  10646. j = (j + s[i]) % 256;
  10647. x = s[i];
  10648. s[i] = s[j];
  10649. s[j] = x;
  10650. result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
  10651. }
  10652. return result;
  10653. }
  10654. }]);
  10655. return CryptUtils;
  10656. }();
  10657. CryptUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], CryptUtils);
  10658. exports.CryptUtils = CryptUtils;
  10659. /***/ }),
  10660. /***/ "./src/utils/EscapeSequenceEncoder.ts":
  10661. /*!********************************************!*\
  10662. !*** ./src/utils/EscapeSequenceEncoder.ts ***!
  10663. \********************************************/
  10664. /*! no static exports found */
  10665. /***/ (function(module, exports, __webpack_require__) {
  10666. "use strict";
  10667. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10668. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10669. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10670. Object.defineProperty(exports, "__esModule", {
  10671. value: true
  10672. });
  10673. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10674. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10675. var EscapeSequenceEncoder =
  10676. /*#__PURE__*/
  10677. function () {
  10678. function EscapeSequenceEncoder() {
  10679. (0, _classCallCheck2["default"])(this, EscapeSequenceEncoder);
  10680. this.stringsCache = new Map();
  10681. }
  10682. (0, _createClass2["default"])(EscapeSequenceEncoder, [{
  10683. key: "encode",
  10684. value: function encode(string, encodeAllSymbols) {
  10685. var cacheKey = "".concat(string, "-").concat(String(encodeAllSymbols));
  10686. if (this.stringsCache.has(cacheKey)) {
  10687. return this.stringsCache.get(cacheKey);
  10688. }
  10689. var radix = 16;
  10690. var replaceRegExp = new RegExp('[\\s\\S]', 'g');
  10691. var escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]');
  10692. var regExp = new RegExp('[\\x00-\\x7F]');
  10693. var prefix;
  10694. var template;
  10695. var result = string.replace(replaceRegExp, function (character) {
  10696. if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) {
  10697. return character;
  10698. }
  10699. if (regExp.exec(character)) {
  10700. prefix = '\\x';
  10701. template = '00';
  10702. } else {
  10703. prefix = "\\u";
  10704. template = '0000';
  10705. }
  10706. return "".concat(prefix).concat((template + character.charCodeAt(0).toString(radix)).slice(-template.length));
  10707. });
  10708. this.stringsCache.set(cacheKey, result);
  10709. return result;
  10710. }
  10711. }]);
  10712. return EscapeSequenceEncoder;
  10713. }();
  10714. EscapeSequenceEncoder = tslib_1.__decorate([inversify_1.injectable()], EscapeSequenceEncoder);
  10715. exports.EscapeSequenceEncoder = EscapeSequenceEncoder;
  10716. /***/ }),
  10717. /***/ "./src/utils/LevelledTopologicalSorter.ts":
  10718. /*!************************************************!*\
  10719. !*** ./src/utils/LevelledTopologicalSorter.ts ***!
  10720. \************************************************/
  10721. /*! no static exports found */
  10722. /***/ (function(module, exports, __webpack_require__) {
  10723. "use strict";
  10724. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10725. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10726. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10727. Object.defineProperty(exports, "__esModule", {
  10728. value: true
  10729. });
  10730. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10731. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10732. var LevelledTopologicalSorter =
  10733. /*#__PURE__*/
  10734. function () {
  10735. function LevelledTopologicalSorter() {
  10736. (0, _classCallCheck2["default"])(this, LevelledTopologicalSorter);
  10737. this.graph = new Map();
  10738. }
  10739. (0, _createClass2["default"])(LevelledTopologicalSorter, [{
  10740. key: "add",
  10741. value: function add(precedent) {
  10742. var consequent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
  10743. if (consequent !== null) {
  10744. return this.link(precedent, consequent);
  10745. }
  10746. return this.register(precedent);
  10747. }
  10748. }, {
  10749. key: "sort",
  10750. value: function sort() {
  10751. var consequents = Array.from(this.graph.keys());
  10752. var results = [];
  10753. var marks = {};
  10754. for (var _i = 0, _consequents = consequents; _i < _consequents.length; _i++) {
  10755. var consequent = _consequents[_i];
  10756. if (marks[consequent] !== undefined) {
  10757. continue;
  10758. }
  10759. this.visit(results, marks, consequent);
  10760. }
  10761. return results;
  10762. }
  10763. }, {
  10764. key: "sortByGroups",
  10765. value: function sortByGroups() {
  10766. this.sort();
  10767. var resultItemsGroups = [];
  10768. while (this.hasNodes()) {
  10769. var rootNodes = this.findRootNodes();
  10770. resultItemsGroups.push(rootNodes);
  10771. var _iteratorNormalCompletion = true;
  10772. var _didIteratorError = false;
  10773. var _iteratorError = undefined;
  10774. try {
  10775. for (var _iterator = rootNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  10776. var rootNode = _step.value;
  10777. this["delete"](rootNode);
  10778. }
  10779. } catch (err) {
  10780. _didIteratorError = true;
  10781. _iteratorError = err;
  10782. } finally {
  10783. try {
  10784. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  10785. _iterator["return"]();
  10786. }
  10787. } finally {
  10788. if (_didIteratorError) {
  10789. throw _iteratorError;
  10790. }
  10791. }
  10792. }
  10793. }
  10794. return resultItemsGroups;
  10795. }
  10796. }, {
  10797. key: "delete",
  10798. value: function _delete(consequent) {
  10799. var precedents = this.getPrecedents(consequent);
  10800. if (precedents.length) {
  10801. throw new Error("Unable to remove non-root node: ".concat(consequent));
  10802. }
  10803. this.graph["delete"](consequent);
  10804. var precedentsGroups = Array.from(this.graph.values());
  10805. for (var _i2 = 0, _precedentsGroups = precedentsGroups; _i2 < _precedentsGroups.length; _i2++) {
  10806. var precedentsGroup = _precedentsGroups[_i2];
  10807. var precedentsCount = precedentsGroup.length - 1;
  10808. for (var index = precedentsCount; index >= 0; index = index - 1) {
  10809. if (precedentsGroup[index] !== consequent) {
  10810. continue;
  10811. }
  10812. precedentsGroup.splice(index, 1);
  10813. }
  10814. }
  10815. }
  10816. }, {
  10817. key: "findRootNodes",
  10818. value: function findRootNodes() {
  10819. var consequents = Array.from(this.graph.keys());
  10820. var rootNodes = [];
  10821. for (var _i3 = 0, _consequents2 = consequents; _i3 < _consequents2.length; _i3++) {
  10822. var consequent = _consequents2[_i3];
  10823. if (!this.hasPrecedents(consequent)) {
  10824. rootNodes.push(consequent);
  10825. }
  10826. }
  10827. return rootNodes;
  10828. }
  10829. }, {
  10830. key: "getPrecedents",
  10831. value: function getPrecedents(consequent) {
  10832. var precedents = this.graph.get(consequent);
  10833. if (!precedents) {
  10834. throw new Error("Unknown node: ".concat(consequent));
  10835. }
  10836. return precedents;
  10837. }
  10838. }, {
  10839. key: "hasNodes",
  10840. value: function hasNodes() {
  10841. return this.graph.size > 0;
  10842. }
  10843. }, {
  10844. key: "hasPrecedents",
  10845. value: function hasPrecedents(consequent) {
  10846. return this.getPrecedents(consequent).length > 0;
  10847. }
  10848. }, {
  10849. key: "link",
  10850. value: function link(precedent, consequent) {
  10851. this.register(precedent);
  10852. this.register(consequent);
  10853. var target = this.graph.get(consequent);
  10854. if (target && !target.includes(precedent)) {
  10855. target.push(precedent);
  10856. }
  10857. return this;
  10858. }
  10859. }, {
  10860. key: "register",
  10861. value: function register(name) {
  10862. if (!this.graph.has(name)) {
  10863. this.graph.set(name, []);
  10864. }
  10865. return this;
  10866. }
  10867. }, {
  10868. key: "visit",
  10869. value: function visit(results, marks, name) {
  10870. var mark = marks[name];
  10871. if (mark === 'visiting') {
  10872. throw new Error("Detected cycle involving node: ".concat(name));
  10873. }
  10874. if (mark) {
  10875. return;
  10876. }
  10877. marks[name] = 'visiting';
  10878. var precedents = this.getPrecedents(name);
  10879. var _iteratorNormalCompletion2 = true;
  10880. var _didIteratorError2 = false;
  10881. var _iteratorError2 = undefined;
  10882. try {
  10883. for (var _iterator2 = precedents[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  10884. var precedent = _step2.value;
  10885. this.visit(results, marks, precedent);
  10886. }
  10887. } catch (err) {
  10888. _didIteratorError2 = true;
  10889. _iteratorError2 = err;
  10890. } finally {
  10891. try {
  10892. if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  10893. _iterator2["return"]();
  10894. }
  10895. } finally {
  10896. if (_didIteratorError2) {
  10897. throw _iteratorError2;
  10898. }
  10899. }
  10900. }
  10901. marks[name] = 'ok';
  10902. results.push(name);
  10903. return;
  10904. }
  10905. }]);
  10906. return LevelledTopologicalSorter;
  10907. }();
  10908. LevelledTopologicalSorter = tslib_1.__decorate([inversify_1.injectable()], LevelledTopologicalSorter);
  10909. exports.LevelledTopologicalSorter = LevelledTopologicalSorter;
  10910. /***/ }),
  10911. /***/ "./src/utils/NodeTransformerNamesGroupsBuilder.ts":
  10912. /*!********************************************************!*\
  10913. !*** ./src/utils/NodeTransformerNamesGroupsBuilder.ts ***!
  10914. \********************************************************/
  10915. /*! no static exports found */
  10916. /***/ (function(module, exports, __webpack_require__) {
  10917. "use strict";
  10918. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  10919. var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray"));
  10920. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  10921. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  10922. Object.defineProperty(exports, "__esModule", {
  10923. value: true
  10924. });
  10925. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  10926. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  10927. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  10928. var NodeTransformerNamesGroupsBuilder =
  10929. /*#__PURE__*/
  10930. function () {
  10931. function NodeTransformerNamesGroupsBuilder(levelledTopologicalSorter) {
  10932. (0, _classCallCheck2["default"])(this, NodeTransformerNamesGroupsBuilder);
  10933. this.levelledTopologicalSorter = levelledTopologicalSorter;
  10934. }
  10935. (0, _createClass2["default"])(NodeTransformerNamesGroupsBuilder, [{
  10936. key: "build",
  10937. value: function build(normalizedNodeTransformers) {
  10938. var nodeTransformerNames = Object.keys(normalizedNodeTransformers);
  10939. var relationEdges = this.buildNodeTransformersRelationEdges(nodeTransformerNames, normalizedNodeTransformers);
  10940. var _iteratorNormalCompletion = true;
  10941. var _didIteratorError = false;
  10942. var _iteratorError = undefined;
  10943. try {
  10944. for (var _iterator = relationEdges[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  10945. var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
  10946. precedent = _step$value[0],
  10947. consequent = _step$value[1];
  10948. this.levelledTopologicalSorter.add(precedent, consequent);
  10949. }
  10950. } catch (err) {
  10951. _didIteratorError = true;
  10952. _iteratorError = err;
  10953. } finally {
  10954. try {
  10955. if (!_iteratorNormalCompletion && _iterator["return"] != null) {
  10956. _iterator["return"]();
  10957. }
  10958. } finally {
  10959. if (_didIteratorError) {
  10960. throw _iteratorError;
  10961. }
  10962. }
  10963. }
  10964. return this.levelledTopologicalSorter.sortByGroups();
  10965. }
  10966. }, {
  10967. key: "buildNodeTransformersRelationEdges",
  10968. value: function buildNodeTransformersRelationEdges(nodeTransformerNames, normalizedNodeTransformers) {
  10969. var relationEdges = [];
  10970. var _iteratorNormalCompletion2 = true;
  10971. var _didIteratorError2 = false;
  10972. var _iteratorError2 = undefined;
  10973. try {
  10974. for (var _iterator2 = nodeTransformerNames[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  10975. var nodeTransformerName = _step2.value;
  10976. var nodeTransformer = normalizedNodeTransformers[nodeTransformerName];
  10977. var runAfterRelations = nodeTransformer.runAfter;
  10978. if (!runAfterRelations || !runAfterRelations.length) {
  10979. relationEdges.push([nodeTransformerName, null]);
  10980. continue;
  10981. }
  10982. var _iteratorNormalCompletion3 = true;
  10983. var _didIteratorError3 = false;
  10984. var _iteratorError3 = undefined;
  10985. try {
  10986. for (var _iterator3 = runAfterRelations[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
  10987. var runAfterRelation = _step3.value;
  10988. var isUnknownRelation = !normalizedNodeTransformers[runAfterRelation];
  10989. if (isUnknownRelation) {
  10990. relationEdges.push([nodeTransformerName, null]);
  10991. continue;
  10992. }
  10993. relationEdges.push([runAfterRelation, nodeTransformerName]);
  10994. }
  10995. } catch (err) {
  10996. _didIteratorError3 = true;
  10997. _iteratorError3 = err;
  10998. } finally {
  10999. try {
  11000. if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
  11001. _iterator3["return"]();
  11002. }
  11003. } finally {
  11004. if (_didIteratorError3) {
  11005. throw _iteratorError3;
  11006. }
  11007. }
  11008. }
  11009. }
  11010. } catch (err) {
  11011. _didIteratorError2 = true;
  11012. _iteratorError2 = err;
  11013. } finally {
  11014. try {
  11015. if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
  11016. _iterator2["return"]();
  11017. }
  11018. } finally {
  11019. if (_didIteratorError2) {
  11020. throw _iteratorError2;
  11021. }
  11022. }
  11023. }
  11024. return relationEdges;
  11025. }
  11026. }]);
  11027. return NodeTransformerNamesGroupsBuilder;
  11028. }();
  11029. NodeTransformerNamesGroupsBuilder = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)), tslib_1.__metadata("design:paramtypes", [Object])], NodeTransformerNamesGroupsBuilder);
  11030. exports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;
  11031. /***/ }),
  11032. /***/ "./src/utils/NumberUtils.ts":
  11033. /*!**********************************!*\
  11034. !*** ./src/utils/NumberUtils.ts ***!
  11035. \**********************************/
  11036. /*! no static exports found */
  11037. /***/ (function(module, exports, __webpack_require__) {
  11038. "use strict";
  11039. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  11040. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  11041. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  11042. Object.defineProperty(exports, "__esModule", {
  11043. value: true
  11044. });
  11045. var NumberUtils =
  11046. /*#__PURE__*/
  11047. function () {
  11048. function NumberUtils() {
  11049. (0, _classCallCheck2["default"])(this, NumberUtils);
  11050. }
  11051. (0, _createClass2["default"])(NumberUtils, null, [{
  11052. key: "toHex",
  11053. value: function toHex(dec) {
  11054. var radix = 16;
  11055. return dec.toString(radix);
  11056. }
  11057. }, {
  11058. key: "isCeil",
  11059. value: function isCeil(number) {
  11060. return number % 1 === 0;
  11061. }
  11062. }]);
  11063. return NumberUtils;
  11064. }();
  11065. exports.NumberUtils = NumberUtils;
  11066. /***/ }),
  11067. /***/ "./src/utils/RandomGenerator.ts":
  11068. /*!**************************************!*\
  11069. !*** ./src/utils/RandomGenerator.ts ***!
  11070. \**************************************/
  11071. /*! no static exports found */
  11072. /***/ (function(module, exports, __webpack_require__) {
  11073. "use strict";
  11074. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  11075. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  11076. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  11077. var RandomGenerator_1;
  11078. Object.defineProperty(exports, "__esModule", {
  11079. value: true
  11080. });
  11081. var tslib_1 = __webpack_require__(/*! tslib */ "tslib");
  11082. var inversify_1 = __webpack_require__(/*! inversify */ "inversify");
  11083. var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts");
  11084. var md5_1 = tslib_1.__importDefault(__webpack_require__(/*! md5 */ "md5"));
  11085. var chance_1 = __webpack_require__(/*! chance */ "chance");
  11086. var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts");
  11087. var RandomGenerator = RandomGenerator_1 =
  11088. /*#__PURE__*/
  11089. function () {
  11090. function RandomGenerator(sourceCode, options) {
  11091. (0, _classCallCheck2["default"])(this, RandomGenerator);
  11092. this.sourceCode = sourceCode;
  11093. this.options = options;
  11094. }
  11095. (0, _createClass2["default"])(RandomGenerator, [{
  11096. key: "initialize",
  11097. value: function initialize() {
  11098. var _this = this;
  11099. var getRandomInteger = function getRandomInteger(min, max) {
  11100. return Math.floor(Math.random() * (max - min + 1) + min);
  11101. };
  11102. var getSeed = function getSeed() {
  11103. var md5Hash = md5_1["default"](_this.sourceCode.getSourceCode());
  11104. return _this.seed + Number(md5Hash.replace(/\D/g, ''));
  11105. };
  11106. this.seed = this.options.seed !== 0 ? this.options.seed : getRandomInteger(0, 999999999);
  11107. this.randomGenerator = new chance_1.Chance(getSeed());
  11108. }
  11109. }, {
  11110. key: "getMathRandom",
  11111. value: function getMathRandom() {
  11112. return this.getRandomInteger(0, 99999) / 100000;
  11113. }
  11114. }, {
  11115. key: "getRandomGenerator",
  11116. value: function getRandomGenerator() {
  11117. return this.randomGenerator;
  11118. }
  11119. }, {
  11120. key: "getRandomInteger",
  11121. value: function getRandomInteger(min, max) {
  11122. return this.getRandomGenerator().integer({
  11123. min: min,
  11124. max: max
  11125. });
  11126. }
  11127. }, {
  11128. key: "getRandomString",
  11129. value: function getRandomString(length) {
  11130. var pool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RandomGenerator_1.randomGeneratorPool;
  11131. return this.getRandomGenerator().string({
  11132. length: length,
  11133. pool: pool
  11134. });
  11135. }
  11136. }, {
  11137. key: "getSeed",
  11138. value: function getSeed() {
  11139. return this.seed;
  11140. }
  11141. }]);
  11142. return RandomGenerator;
  11143. }();
  11144. RandomGenerator.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  11145. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], RandomGenerator.prototype, "randomGenerator", void 0);
  11146. tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], RandomGenerator.prototype, "seed", void 0);
  11147. tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], RandomGenerator.prototype, "initialize", null);
  11148. RandomGenerator = RandomGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], RandomGenerator);
  11149. exports.RandomGenerator = RandomGenerator;
  11150. /***/ }),
  11151. /***/ "./src/utils/Utils.ts":
  11152. /*!****************************!*\
  11153. !*** ./src/utils/Utils.ts ***!
  11154. \****************************/
  11155. /*! no static exports found */
  11156. /***/ (function(module, exports, __webpack_require__) {
  11157. "use strict";
  11158. var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault");
  11159. var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck"));
  11160. var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass"));
  11161. Object.defineProperty(exports, "__esModule", {
  11162. value: true
  11163. });
  11164. var Utils =
  11165. /*#__PURE__*/
  11166. function () {
  11167. function Utils() {
  11168. (0, _classCallCheck2["default"])(this, Utils);
  11169. }
  11170. (0, _createClass2["default"])(Utils, null, [{
  11171. key: "extractDomainFrom",
  11172. value: function extractDomainFrom(url) {
  11173. var domain;
  11174. if (url.indexOf('://') > -1 || url.indexOf('//') === 0) {
  11175. domain = url.split('/')[2];
  11176. } else {
  11177. domain = url.split('/')[0];
  11178. }
  11179. domain = domain.split(':')[0];
  11180. return domain;
  11181. }
  11182. }]);
  11183. return Utils;
  11184. }();
  11185. exports.Utils = Utils;
  11186. Utils.hexadecimalPrefix = '0x';
  11187. /***/ }),
  11188. /***/ "@babel/runtime/helpers/classCallCheck":
  11189. /*!********************************************************!*\
  11190. !*** external "@babel/runtime/helpers/classCallCheck" ***!
  11191. \********************************************************/
  11192. /*! no static exports found */
  11193. /***/ (function(module, exports) {
  11194. module.exports = require("@babel/runtime/helpers/classCallCheck");
  11195. /***/ }),
  11196. /***/ "@babel/runtime/helpers/construct":
  11197. /*!***************************************************!*\
  11198. !*** external "@babel/runtime/helpers/construct" ***!
  11199. \***************************************************/
  11200. /*! no static exports found */
  11201. /***/ (function(module, exports) {
  11202. module.exports = require("@babel/runtime/helpers/construct");
  11203. /***/ }),
  11204. /***/ "@babel/runtime/helpers/createClass":
  11205. /*!*****************************************************!*\
  11206. !*** external "@babel/runtime/helpers/createClass" ***!
  11207. \*****************************************************/
  11208. /*! no static exports found */
  11209. /***/ (function(module, exports) {
  11210. module.exports = require("@babel/runtime/helpers/createClass");
  11211. /***/ }),
  11212. /***/ "@babel/runtime/helpers/defineProperty":
  11213. /*!********************************************************!*\
  11214. !*** external "@babel/runtime/helpers/defineProperty" ***!
  11215. \********************************************************/
  11216. /*! no static exports found */
  11217. /***/ (function(module, exports) {
  11218. module.exports = require("@babel/runtime/helpers/defineProperty");
  11219. /***/ }),
  11220. /***/ "@babel/runtime/helpers/get":
  11221. /*!*********************************************!*\
  11222. !*** external "@babel/runtime/helpers/get" ***!
  11223. \*********************************************/
  11224. /*! no static exports found */
  11225. /***/ (function(module, exports) {
  11226. module.exports = require("@babel/runtime/helpers/get");
  11227. /***/ }),
  11228. /***/ "@babel/runtime/helpers/getPrototypeOf":
  11229. /*!********************************************************!*\
  11230. !*** external "@babel/runtime/helpers/getPrototypeOf" ***!
  11231. \********************************************************/
  11232. /*! no static exports found */
  11233. /***/ (function(module, exports) {
  11234. module.exports = require("@babel/runtime/helpers/getPrototypeOf");
  11235. /***/ }),
  11236. /***/ "@babel/runtime/helpers/inherits":
  11237. /*!**************************************************!*\
  11238. !*** external "@babel/runtime/helpers/inherits" ***!
  11239. \**************************************************/
  11240. /*! no static exports found */
  11241. /***/ (function(module, exports) {
  11242. module.exports = require("@babel/runtime/helpers/inherits");
  11243. /***/ }),
  11244. /***/ "@babel/runtime/helpers/interopRequireDefault":
  11245. /*!***************************************************************!*\
  11246. !*** external "@babel/runtime/helpers/interopRequireDefault" ***!
  11247. \***************************************************************/
  11248. /*! no static exports found */
  11249. /***/ (function(module, exports) {
  11250. module.exports = require("@babel/runtime/helpers/interopRequireDefault");
  11251. /***/ }),
  11252. /***/ "@babel/runtime/helpers/possibleConstructorReturn":
  11253. /*!*******************************************************************!*\
  11254. !*** external "@babel/runtime/helpers/possibleConstructorReturn" ***!
  11255. \*******************************************************************/
  11256. /*! no static exports found */
  11257. /***/ (function(module, exports) {
  11258. module.exports = require("@babel/runtime/helpers/possibleConstructorReturn");
  11259. /***/ }),
  11260. /***/ "@babel/runtime/helpers/slicedToArray":
  11261. /*!*******************************************************!*\
  11262. !*** external "@babel/runtime/helpers/slicedToArray" ***!
  11263. \*******************************************************/
  11264. /*! no static exports found */
  11265. /***/ (function(module, exports) {
  11266. module.exports = require("@babel/runtime/helpers/slicedToArray");
  11267. /***/ }),
  11268. /***/ "@babel/runtime/helpers/toConsumableArray":
  11269. /*!***********************************************************!*\
  11270. !*** external "@babel/runtime/helpers/toConsumableArray" ***!
  11271. \***********************************************************/
  11272. /*! no static exports found */
  11273. /***/ (function(module, exports) {
  11274. module.exports = require("@babel/runtime/helpers/toConsumableArray");
  11275. /***/ }),
  11276. /***/ "@babel/runtime/helpers/typeof":
  11277. /*!************************************************!*\
  11278. !*** external "@babel/runtime/helpers/typeof" ***!
  11279. \************************************************/
  11280. /*! no static exports found */
  11281. /***/ (function(module, exports) {
  11282. module.exports = require("@babel/runtime/helpers/typeof");
  11283. /***/ }),
  11284. /***/ "chalk":
  11285. /*!************************!*\
  11286. !*** external "chalk" ***!
  11287. \************************/
  11288. /*! no static exports found */
  11289. /***/ (function(module, exports) {
  11290. module.exports = require("chalk");
  11291. /***/ }),
  11292. /***/ "chance":
  11293. /*!*************************!*\
  11294. !*** external "chance" ***!
  11295. \*************************/
  11296. /*! no static exports found */
  11297. /***/ (function(module, exports) {
  11298. module.exports = require("chance");
  11299. /***/ }),
  11300. /***/ "class-validator":
  11301. /*!**********************************!*\
  11302. !*** external "class-validator" ***!
  11303. \**********************************/
  11304. /*! no static exports found */
  11305. /***/ (function(module, exports) {
  11306. module.exports = require("class-validator");
  11307. /***/ }),
  11308. /***/ "escodegen-wallaby":
  11309. /*!************************************!*\
  11310. !*** external "escodegen-wallaby" ***!
  11311. \************************************/
  11312. /*! no static exports found */
  11313. /***/ (function(module, exports) {
  11314. module.exports = require("escodegen-wallaby");
  11315. /***/ }),
  11316. /***/ "espree":
  11317. /*!*************************!*\
  11318. !*** external "espree" ***!
  11319. \*************************/
  11320. /*! no static exports found */
  11321. /***/ (function(module, exports) {
  11322. module.exports = require("espree");
  11323. /***/ }),
  11324. /***/ "estraverse":
  11325. /*!*****************************!*\
  11326. !*** external "estraverse" ***!
  11327. \*****************************/
  11328. /*! no static exports found */
  11329. /***/ (function(module, exports) {
  11330. module.exports = require("estraverse");
  11331. /***/ }),
  11332. /***/ "eventemitter3":
  11333. /*!********************************!*\
  11334. !*** external "eventemitter3" ***!
  11335. \********************************/
  11336. /*! no static exports found */
  11337. /***/ (function(module, exports) {
  11338. module.exports = require("eventemitter3");
  11339. /***/ }),
  11340. /***/ "inversify":
  11341. /*!****************************!*\
  11342. !*** external "inversify" ***!
  11343. \****************************/
  11344. /*! no static exports found */
  11345. /***/ (function(module, exports) {
  11346. module.exports = require("inversify");
  11347. /***/ }),
  11348. /***/ "js-string-escape":
  11349. /*!***********************************!*\
  11350. !*** external "js-string-escape" ***!
  11351. \***********************************/
  11352. /*! no static exports found */
  11353. /***/ (function(module, exports) {
  11354. module.exports = require("js-string-escape");
  11355. /***/ }),
  11356. /***/ "md5":
  11357. /*!**********************!*\
  11358. !*** external "md5" ***!
  11359. \**********************/
  11360. /*! no static exports found */
  11361. /***/ (function(module, exports) {
  11362. module.exports = require("md5");
  11363. /***/ }),
  11364. /***/ "reflect-metadata":
  11365. /*!***********************************!*\
  11366. !*** external "reflect-metadata" ***!
  11367. \***********************************/
  11368. /*! no static exports found */
  11369. /***/ (function(module, exports) {
  11370. module.exports = require("reflect-metadata");
  11371. /***/ }),
  11372. /***/ "string-template":
  11373. /*!**********************************!*\
  11374. !*** external "string-template" ***!
  11375. \**********************************/
  11376. /*! no static exports found */
  11377. /***/ (function(module, exports) {
  11378. module.exports = require("string-template");
  11379. /***/ }),
  11380. /***/ "tslib":
  11381. /*!************************!*\
  11382. !*** external "tslib" ***!
  11383. \************************/
  11384. /*! no static exports found */
  11385. /***/ (function(module, exports) {
  11386. module.exports = require("tslib");
  11387. /***/ })
  11388. /******/ });
  11389. //# sourceMappingURL=index.js.map